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 submitted this change. ( 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(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved 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-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200224/64e71698/attachment.htm>