selftests: forwarding: lib: Support team devices
authorPetr Machata <petrm@mellanox.com>
Mon, 30 Jul 2018 14:39:52 +0000 (16:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Jul 2018 16:47:21 +0000 (09:47 -0700)
Add team_create() and team_destroy() to manage team netdevices.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/lib.sh

index 81e36157bf169f46e07ff47952ef4a8107af6495..3a4eba4f0d084be86f55d3ceeba25a6154c55eaa 100644 (file)
@@ -8,6 +8,7 @@
 PING=${PING:=ping}
 PING6=${PING6:=ping6}
 MZ=${MZ:=mausezahn}
+TEAMD=${TEAMD:=teamd}
 WAIT_TIME=${WAIT_TIME:=5}
 PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
 PAUSE_ON_CLEANUP=${PAUSE_ON_CLEANUP:=no}
@@ -425,6 +426,28 @@ vlan_destroy()
        ip link del dev $name
 }
 
+team_create()
+{
+       local if_name=$1; shift
+       local mode=$1; shift
+
+       require_command $TEAMD
+       $TEAMD -t $if_name -d -c '{"runner": {"name": "'$mode'"}}'
+       for slave in "$@"; do
+               ip link set dev $slave down
+               ip link set dev $slave master $if_name
+               ip link set dev $slave up
+       done
+       ip link set dev $if_name up
+}
+
+team_destroy()
+{
+       local if_name=$1; shift
+
+       $TEAMD -t $if_name -k
+}
+
 master_name_get()
 {
        local if_name=$1