pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/27996 )
Change subject: ttcn3-ggsn-test-ogs: set CAP_NET_RAW for open5gs-upfd
......................................................................
ttcn3-ggsn-test-ogs: set CAP_NET_RAW for open5gs-upfd
The SO_BINDTODEVICE feature (used for VRF) requires CAP_NET_RAW. Since
we run open5gs-upfd as user "osmocom", that seems to be causing some
permission problems under some systems (like jenkins). Let's make sure
we add the capabilitites to the binary before launching it as user
"osmocom".
Change-Id: I51ee6954a6c019a41cfcd50b2d99166316989d9b
---
M open5gs-master/Dockerfile
M ttcn3-ggsn-test/ogs/upfd.sh
2 files changed, 5 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/96/27996/1
diff --git a/open5gs-master/Dockerfile b/open5gs-master/Dockerfile
index dd6cfd8..0e73559 100644
--- a/open5gs-master/Dockerfile
+++ b/open5gs-master/Dockerfile
@@ -12,6 +12,7 @@
sudo \
iproute2 \
iputils-ping \
+ libcap2-bin \
net-tools && \
apt-get clean
diff --git a/ttcn3-ggsn-test/ogs/upfd.sh b/ttcn3-ggsn-test/ogs/upfd.sh
index 694df35..9089701 100755
--- a/ttcn3-ggsn-test/ogs/upfd.sh
+++ b/ttcn3-ggsn-test/ogs/upfd.sh
@@ -2,5 +2,7 @@
set -e
set -x
/data/upfd-setup.sh
-#du -lha / | grep freeDiameter
-su - osmocom -c "open5gs-upfd $*"
+upfd_bin="$(command -v open5gs-upfd)"
+# so_bindtodevice cfg requires CAP_NET_RAW:
+setcap cap_net_raw+ep "$upfd_bin"
+su - osmocom -c "$upfd_bin $*"
--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/27996
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I51ee6954a6c019a41cfcd50b2d99166316989d9b
Gerrit-Change-Number: 27996
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27994 )
Change subject: BTS_Tests: workaround addr='0.0.0.0' in f_rtpem_activate()
......................................................................
BTS_Tests: workaround addr='0.0.0.0' in f_rtpem_activate()
If a CRXC message contains optional remote IP and port IEs, the
CRCX ACK received from the BTS is expected to contain its listen
address and port. In some cases osmo-bts may indicate nonsense
addr='0.0.0.0', and indeed the RTP_Emulation component is not gonna
like this. This makes both BTS_Tests.TC_speech_rtp_tch[fh] test
cases fail whenever executed in Docker:
Connection refused (unexpected)
Let's work this around by sending the remote IP and port IEs in
additional MDCX message and omitting them in CRCX. This mimics
osmo-bsc's behavior and makes both test cases pass.
Change-Id: I03453e72f62819989dfe6aa12d8bd889fced1046
Related: OS#5242
---
M bts/BTS_Tests.ttcn
1 file changed, 19 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/27994/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 06fe43b..c2de538 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -2532,16 +2532,28 @@
var PortNumber rtpem_bind_port := mp_rtpem_bind_port;
f_rtpem_bind(RTPEM_CTRL, mp_rtpem_bind_ip, rtpem_bind_port);
- /* Step 3: send CRCX with the configured address/port to the IUT */
- var RSL_Message rsl_pdu := f_rsl_transceive_ret(
- ts_RSL_IPA_CRCX(g_chan_nr, f_inet_addr(mp_rtpem_bind_ip), rtpem_bind_port),
+ /* Step 3a: send CRCX to create an RTP connection at the IUT */
+ var RSL_Message crcx_ack := f_rsl_transceive_ret(
+ /* FIXME (OS#5242): do not include Remote IP/Port IEs because
+ * osmo-bts would respond with nonsense listen addr='0.0.0.0'. */
+ ts_RSL_IPA_CRCX(g_chan_nr, omit, omit),
tr_RSL_IPA_CRCX_ACK(g_chan_nr, ?, ?, ?),
"IPA CRCX ACK");
+ var uint16_t conn_id := crcx_ack.ies[1].body.ipa_conn_id;
- /* Step 4: connect to the IUT's address/port parsed from CRCX ACK */
- var HostName local_addr := f_inet_ntoa(rsl_pdu.ies[2].body.ipa_local_ip);
- var PortNumber local_port := rsl_pdu.ies[3].body.ipa_local_port;
- f_rtpem_connect(RTPEM_CTRL, local_addr, local_port);
+ /* Step 3b: send MDCX with the configured address/port to the IUT */
+ var RSL_Message mdcx_ack := f_rsl_transceive_ret(
+ ts_RSL_IPA_MDCX(g_chan_nr, conn_id,
+ remote_ip := f_inet_addr(mp_rtpem_bind_ip),
+ remote_port := rtpem_bind_port,
+ rtp_pt2 := 0),
+ tr_RSL_IPA_MDCX_ACK(g_chan_nr, conn_id, ?, ?, ?),
+ "IPA MDCX ACK");
+
+ /* Step 4: connect to the IUT's address/port parsed from MDCX ACK */
+ var HostName bts_bind_ip := f_inet_ntoa(mdcx_ack.ies[2].body.ipa_local_ip);
+ var PortNumber bts_bind_port := mdcx_ack.ies[3].body.ipa_local_port;
+ f_rtpem_connect(RTPEM_CTRL, bts_bind_ip, bts_bind_port);
/* Step 5: set the given RTP emulation mode */
f_rtpem_mode(RTPEM_CTRL, mode);
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27994
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I03453e72f62819989dfe6aa12d8bd889fced1046
Gerrit-Change-Number: 27994
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange