summaryrefslogtreecommitdiffstats
path: root/src/plugins/srtp/srtp_plugin.md
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2021-01-06 17:35:17 -0800
committerDave Wallace <dwallacelf@gmail.com>2021-05-25 21:18:54 +0000
commit6621abf49aec6d764e654316ff75274c75d4c1a1 (patch)
tree918ce456d904d3cf192e8f79ba6b8c6609f7129d /src/plugins/srtp/srtp_plugin.md
parent6bb77dec7074e6b7b27d6bc94238bcddda375a66 (diff)
srtp: basic implementation based on libsrtp2
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic5e99938a5f130e83de6d590d2f89252d055bceb
Diffstat (limited to 'src/plugins/srtp/srtp_plugin.md')
-rw-r--r--src/plugins/srtp/srtp_plugin.md72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/plugins/srtp/srtp_plugin.md b/src/plugins/srtp/srtp_plugin.md
new file mode 100644
index 00000000000..81185864dbe
--- /dev/null
+++ b/src/plugins/srtp/srtp_plugin.md
@@ -0,0 +1,72 @@
+# SRTP (Secure Real-time Transport Protocol) {#srtp_doc}
+
+libsrtp2 based SRTP transport protocol implementation.
+
+## Maturity level
+Experimental
+
+## Quickstart
+
+1. Install libsrtp2-dev. On debian based OS:
+
+```
+sudo apt get install libsrtp2-dev
+```
+
+2. Build vpp
+
+```
+make build
+```
+
+3. 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.3.0
+srtp_tarball := srtp_$(srtp_version).tar.gz
+srtp_tarball_md5sum := da38ee5d9c31be212a12964c22d7f795
+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))
+```
+
+2. Include `srtp.mk` in `build/external/Makefile` and add to install target.
+
+3. Rebuild external dependencies:
+
+```
+make install-ext-deps
+```