SRTP Protocol

This document describe the VPP SRTP (Secure Real-time Transport Protocol) implementation libsrtp2 based SRTP transport protocol implementation.

Maturity level

Experimental

Quickstart

  1. Install libsrtp2-dev. On debian based OS:

sudo apt get install libsrtp2-dev
  1. Build vpp

make build
  1. Test protocol using vcl test server and client. On server side, start vpp and server app:

export VT_PATH=$WS/build-root/build-vpp_debug-native/vpp/bin
$VT_PATH/vcl_test_server 1234 -p srtp

On client side:

export VT_PATH=$WS/build-root/build-vpp_debug-native/vpp/bin
$VT_PATH/vcl_test_client <server-ip> 1234 -U -X -S -N 10000 -T 128 -p srtp

Custom libsrtp2 build

  1. Create build/external/packages/srtp.mk with following example contents:

srtp_version := 2.6.0
srtp_tarball := libsrtp_$(srtp_version).tar.gz
srtp_tarball_sha256sum := bf641aa654861be10570bfc137d1441283822418e9757dc71ebb69a6cf84ea6b
srtp_tarball_strip_dirs := 1
srtp_url := https://github.com/cisco/libsrtp/archive/v$(srtp_version).tar.gz

define  srtp_build_cmds
    @cd $(srtp_build_dir) && \
        $(CMAKE) -DCMAKE_INSTALL_PREFIX:PATH=$(srtp_install_dir)    \
        -DCMAKE_C_FLAGS='-fPIC -fvisibility=hidden'  $(srtp_src_dir) > $(srtp_build_log)
    @$(MAKE) $(MAKE_ARGS) -C $(srtp_build_dir) > $(srtp_build_log)
endef

define  srtp_config_cmds
    @true
endef

define  srtp_install_cmds
    @$(MAKE) $(MAKE_ARGS) -C $(srtp_build_dir) install > $(srtp_install_log)
endef


$(eval $(call package,srtp))
  1. Include srtp.mk in build/external/Makefile and add to install target.

  2. Rebuild external dependencies:

make install-ext-deps