selftests: forwarding: lib: Extract interface-init functions
authorPetr Machata <petrm@mellanox.com>
Tue, 26 Jun 2018 00:08:00 +0000 (02:08 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Jun 2018 01:42:12 +0000 (10:42 +0900)
The function simple_if_init() does two things: it creates a VRF, then
moves an interface into this VRF and configures addresses. The latter
comes in handy when adding more interfaces into a VRF later on. The
situation is similar for simple_if_fini().

Therefore split the interface remastering and address de/initialization
logic to a new pair of helpers __simple_if_init() / __simple_if_fini(),
and defer to these helpers from simple_if_init() and simple_if_fini().

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

index f94ea4bafa133f310549c34b46ca2eae430196b3..1dfdf14894e29cb9e37c011c5065f3c99a8d4893 100644 (file)
@@ -287,6 +287,29 @@ __addr_add_del()
        done
 }
 
+__simple_if_init()
+{
+       local if_name=$1; shift
+       local vrf_name=$1; shift
+       local addrs=("${@}")
+
+       ip link set dev $if_name master $vrf_name
+       ip link set dev $if_name up
+
+       __addr_add_del $if_name add "${addrs[@]}"
+}
+
+__simple_if_fini()
+{
+       local if_name=$1; shift
+       local addrs=("${@}")
+
+       __addr_add_del $if_name del "${addrs[@]}"
+
+       ip link set dev $if_name down
+       ip link set dev $if_name nomaster
+}
+
 simple_if_init()
 {
        local if_name=$1
@@ -298,11 +321,8 @@ simple_if_init()
        array=("${@}")
 
        vrf_create $vrf_name
-       ip link set dev $if_name master $vrf_name
        ip link set dev $vrf_name up
-       ip link set dev $if_name up
-
-       __addr_add_del $if_name add "${array[@]}"
+       __simple_if_init $if_name $vrf_name "${array[@]}"
 }
 
 simple_if_fini()
@@ -315,9 +335,7 @@ simple_if_fini()
        vrf_name=v$if_name
        array=("${@}")
 
-       __addr_add_del $if_name del "${array[@]}"
-
-       ip link set dev $if_name down
+       __simple_if_fini $if_name "${array[@]}"
        vrf_destroy $vrf_name
 }