This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17250 )
Change subject: srsue: Create netns on demand
......................................................................
srsue: Create netns on demand
Already existing script osmo-gsm-tester_netns_setup.sh is modified to
support only creating the entns without moving an iface to it.
Change-Id: I1b7e186b0146f932fe37fbea68e4dfa3120b7a74
---
M src/osmo_gsm_tester/remote.py
M src/osmo_gsm_tester/srs_ue.py
M src/osmo_gsm_tester/util.py
M utils/bin/osmo-gsm-tester_netns_setup.sh
4 files changed, 31 insertions(+), 11 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/50/17250/1
diff --git a/src/osmo_gsm_tester/remote.py b/src/osmo_gsm_tester/remote.py
index c5246ce..10ba069 100644
--- a/src/osmo_gsm_tester/remote.py
+++ b/src/osmo_gsm_tester/remote.py
@@ -171,6 +171,13 @@
SETCAP_NETSYS_ADMIN_BIN = 'osmo-gsm-tester_setcap_netsys_admin.sh'
self.run_remote_sync('setcap-netsysadm', ('sudo', SETCAP_NETSYS_ADMIN_BIN, binary_path))
+ def create_netns(self, netns):
+ '''
+ It creates the netns if it doesn't already exist.
+ '''
+ NETNS_SETUP_BIN = 'osmo-gsm-tester_netns_setup.sh'
+ self.run_remote_sync('create_netns', ('sudo', NETNS_SETUP_BIN, netns))
+
def change_elf_rpath(self, binary_path, paths):
'''
Change RPATH field in ELF executable binary.
diff --git a/src/osmo_gsm_tester/srs_ue.py b/src/osmo_gsm_tester/srs_ue.py
index 4a99ad9..0accaea 100644
--- a/src/osmo_gsm_tester/srs_ue.py
+++ b/src/osmo_gsm_tester/srs_ue.py
@@ -125,6 +125,9 @@
self.log('Applying CAP_SYS_ADMIN+CAP_NET_ADMIN capability to srsue')
self.rem_host.setcap_netsys_admin(remote_binary)
+ self.log('Creating netns %s' % self.netns())
+ self.rem_host.create_netns(self.netns())
+
#'strace', '-ff',
args = (remote_binary, self.remote_config_file,
'--phy.nof_phy_threads=1',
@@ -159,6 +162,9 @@
self.log('Applying CAP_SYS_ADMIN+CAP_NET_ADMIN capability to srsue')
util.setcap_netsys_admin(binary, self.run_dir.new_dir('setcap_netsys_admin'))
+ self.log('Creating netns %s' % self.netns())
+ util.create_netns(self.netns(), self.run_dir.new_dir('create_netns'))
+
args = (binary, os.path.abspath(self.config_file),
'--phy.nof_phy_threads=1',
'--gw.netns=' + self.netns(),
diff --git a/src/osmo_gsm_tester/util.py b/src/osmo_gsm_tester/util.py
index de37078..a5b2bbf 100644
--- a/src/osmo_gsm_tester/util.py
+++ b/src/osmo_gsm_tester/util.py
@@ -110,15 +110,22 @@
proc = Process(SETCAP_NETSYS_ADMIN_BIN, run_dir, ['sudo', SETCAP_NETSYS_ADMIN_BIN, binary])
proc.launch_sync()
-def move_iface_to_netns(ifname, netns, run_dir):
+def create_netns(netns, run_dir):
'''
- Moves an iface to a netns. It creates the netns if it doesn't exist.
- fail_iface_not_found=False is handy in order to assume the iface is already
- in another netns and thus cannot be foud.
+ It creates the netns if it doesn't already exist.
'''
from .process import Process
NETNS_SETUP_BIN = 'osmo-gsm-tester_netns_setup.sh'
- proc = Process('move_netns', run_dir, ['sudo', NETNS_SETUP_BIN, ifname, netns])
+ proc = Process('create_netns', ('sudo', NETNS_SETUP_BIN, netns))
+ proc.launch_sync()
+
+def move_iface_to_netns(ifname, netns, run_dir):
+ '''
+ Moves an iface to a netns. It creates the netns if it doesn't exist.
+ '''
+ from .process import Process
+ NETNS_SETUP_BIN = 'osmo-gsm-tester_netns_setup.sh'
+ proc = Process('move_netns', run_dir, ['sudo', NETNS_SETUP_BIN, netns, ifname])
proc.launch_sync()
def import_path_prepend(pathname):
diff --git a/utils/bin/osmo-gsm-tester_netns_setup.sh b/utils/bin/osmo-gsm-tester_netns_setup.sh
index 1600c44..e3d09ea 100755
--- a/utils/bin/osmo-gsm-tester_netns_setup.sh
+++ b/utils/bin/osmo-gsm-tester_netns_setup.sh
@@ -1,11 +1,7 @@
#!/bin/bash -e
-ifname="$1"
-netns="$2"
-shift
-shift
-
-
+netns="$1"
+ifname="$2" # optional
if [ -f "/var/run/netns/${netns}" ]; then
echo "netns $netns already exists"
@@ -14,6 +10,10 @@
ip netns add "$netns"
fi
+if [ "x$ifname" = "x" ]; then
+ exit 0
+fi
+
if [ -d "/sys/class/net/${ifname}" ]; then
echo "Moving iface $ifname to netns $netns"
ip link set $ifname netns $netns
--
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17250
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Change-Id: I1b7e186b0146f932fe37fbea68e4dfa3120b7a74
Gerrit-Change-Number: 17250
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200224/ae6ecc41/attachment.htm>