diff --git a/contrib/scripts/test-create-many-device-setup.sh b/contrib/scripts/test-create-many-device-setup.sh index 230833ff24..55f2a1c6bf 100755 --- a/contrib/scripts/test-create-many-device-setup.sh +++ b/contrib/scripts/test-create-many-device-setup.sh @@ -14,6 +14,7 @@ test -n "$ARG_OP" || die "specify the operation (setup, cleanup)" test "$USER" = root || die "must run as root" NUM_DEVS="${NUM_DEVS:-50}" +NUM_VLAN_DEVS="${NUM_VLAN_DEVS:-0}" DNSMASQ_PIDFILE="/tmp/nm-test-create-many-device-setup.dnsmasq.pid" @@ -21,6 +22,11 @@ NM_TEST_CONF="/etc/NetworkManager/conf.d/99-my-test.conf" TEST_NETNS="T" +_do_service() { + test "$DO_SERVICE" = 1 || return 0 + "$@" +} + _dnsmasq_kill() { pkill -F "$DNSMASQ_PIDFILE" rm -rf "$DNSMASQ_PIDFILE" @@ -39,16 +45,16 @@ cleanup_base() { } cmd_cleanup() { - systemctl stop NetworkManager + _do_service systemctl stop NetworkManager cleanup_base systemctl unmask NetworkManager-dispatcher systemctl enable NetworkManager-dispatcher - systemctl start NetworkManager + _do_service systemctl start NetworkManager } cmd_setup() { - systemctl stop NetworkManager + _do_service systemctl stop NetworkManager systemctl mask NetworkManager-dispatcher systemctl stop NetworkManager-dispatcher @@ -78,6 +84,10 @@ cmd_setup() { ip --netns "$TEST_NETNS" link set t-a$i up ip --netns "$TEST_NETNS" link set t-b$i up master t-br0 done + for i in `seq "$NUM_VLAN_DEVS"`; do + ip --netns "$TEST_NETNS" link add link t-b1 name t-b1.$i type vlan id $i + ip --netns "$TEST_NETNS" link set t-b1.$i up master t-br0 + done cat < "$NM_TEST_CONF" [main] @@ -92,15 +102,24 @@ level=INFO enabled=0 EOF - systemctl start NetworkManager + _do_service systemctl start NetworkManager for i in `seq "$NUM_DEVS"`; do ip --netns "$TEST_NETNS" link set t-a$i netns $$ done - for i in `seq "$NUM_DEVS"`; do - nmcli connection add save no type ethernet con-name c-a$i ifname t-a$i autoconnect no ipv4.method auto ipv6.method auto - done + if [ "$DO_ADD_CON" = 1 ]; then + for i in `seq "$NUM_DEVS"`; do + nmcli connection add save no type ethernet con-name c-a$i ifname t-a$i autoconnect no ipv4.method auto ipv6.method auto + done + fi + + if [ "$DO_ADD_VLAN_CON" = 1 ]; then + for i in `seq "$NUM_VLAN_DEVS"`; do + nmcli connection add save no type bridge con-name c-a1.$i-br ifname t-a1.$i.br autoconnect no ipv4.method auto ipv6.method auto bridge.stp 0 + nmcli connection add save no type vlan con-name c-a1.$i-po ifname t-a1.$i.po autoconnect no vlan.id $i vlan.parent t-a1 master c-a1.$i-br slave-type bridge + done + fi }