summaryrefslogtreecommitdiffstats
path: root/src/plugins/srtp/srtp_plugin.md
blob: 81185864dbea6a37d3472b330680bd696679440b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
```