Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'selftests-mark-auto-deferring-functions-clearly'

Petr Machata says:

====================
selftests: Mark auto-deferring functions clearly

selftests/net/lib.sh contains a suite of iproute2 wrappers that
automatically schedule the corresponding cleanup through defer. The fact
they do so is however not immediately obvious, one needs to know which
functions are handling the deferral behind the scenes, and which expect the
caller to handle cleanups themselves.

A convention for these auto-deferring functions would help both writing and
patch review. This patchset does so by marking these functions with an adf_
prefix. We already have a few such functions: forwarding/lib.sh has
adf_mcd_start() and a few selftests add private helpers that conform to
this convention.

Patches #1 to #8 gradually convert individual functions, one per patch.

Patch #9 renames an auto-deferring private helpers named dfr_* to adf_*.
The plan is not to retro-rename all private helpers, but I happened to know
about this one.

Patches #10 to #12 introduce several autodefer helpers for commonly used
forwarding/lib.sh functions, and opportunistically convert straightforward
instances of 'action; defer counteraction' to the new helpers.

Patch #13 adds some README verbiage to pitch defer and the adf_*
convention.
====================

Link: https://patch.msgid.link/cover.1758821127.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+225 -237
+4 -8
tools/testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh
··· 57 57 58 58 h1_create() 59 59 { 60 - simple_if_init $h1 61 - defer simple_if_fini $h1 60 + adf_simple_if_init $h1 62 61 63 62 mtu_set $h1 10000 64 63 defer mtu_restore $h1 ··· 69 70 70 71 h2_create() 71 72 { 72 - simple_if_init $h2 73 - defer simple_if_fini $h2 73 + adf_simple_if_init $h2 74 74 75 75 mtu_set $h2 10000 76 76 defer mtu_restore $h2 ··· 81 83 82 84 h3_create() 83 85 { 84 - simple_if_init $h3 85 - defer simple_if_fini $h3 86 + adf_simple_if_init $h3 86 87 87 88 mtu_set $h3 10000 88 89 defer mtu_restore $h3 ··· 222 225 223 226 h3mac=$(mac_get $h3) 224 227 225 - vrf_prepare 226 - defer vrf_cleanup 228 + adf_vrf_prepare 227 229 228 230 h1_create 229 231 h2_create
+3 -6
tools/testing/selftests/drivers/net/mlxsw/qos_max_descriptors.sh
··· 68 68 69 69 h1_create() 70 70 { 71 - simple_if_init $h1 72 - defer simple_if_fini $h1 71 + adf_simple_if_init $h1 73 72 74 73 vlan_create $h1 111 v$h1 192.0.2.33/28 75 74 defer vlan_destroy $h1 111 ··· 77 78 78 79 h2_create() 79 80 { 80 - simple_if_init $h2 81 - defer simple_if_fini $h2 81 + adf_simple_if_init $h2 82 82 83 83 vlan_create $h2 111 v$h2 192.0.2.34/28 84 84 defer vlan_destroy $h2 111 ··· 176 178 177 179 h2mac=$(mac_get $h2) 178 180 179 - vrf_prepare 180 - defer vrf_cleanup 181 + adf_vrf_prepare 181 182 182 183 h1_create 183 184 h2_create
+4 -8
tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh
··· 72 72 73 73 h1_create() 74 74 { 75 - simple_if_init $h1 192.0.2.65/28 76 - defer simple_if_fini $h1 192.0.2.65/28 75 + adf_simple_if_init $h1 192.0.2.65/28 77 76 78 77 mtu_set $h1 10000 79 78 defer mtu_restore $h1 ··· 80 81 81 82 h2_create() 82 83 { 83 - simple_if_init $h2 84 - defer simple_if_fini $h2 84 + adf_simple_if_init $h2 85 85 86 86 mtu_set $h2 10000 87 87 defer mtu_restore $h2 ··· 92 94 93 95 h3_create() 94 96 { 95 - simple_if_init $h3 192.0.2.66/28 96 - defer simple_if_fini $h3 192.0.2.66/28 97 + adf_simple_if_init $h3 192.0.2.66/28 97 98 98 99 mtu_set $h3 10000 99 100 defer mtu_restore $h3 ··· 193 196 194 197 h3mac=$(mac_get $h3) 195 198 196 - vrf_prepare 197 - defer vrf_cleanup 199 + adf_vrf_prepare 198 200 199 201 h1_create 200 202 h2_create
+2 -4
tools/testing/selftests/drivers/net/mlxsw/sch_red_core.sh
··· 100 100 local dev=$1; shift 101 101 local host=$1; shift 102 102 103 - simple_if_init $dev 104 - defer simple_if_fini $dev 103 + adf_simple_if_init $dev 105 104 106 105 mtu_set $dev 10000 107 106 defer mtu_restore $dev ··· 249 250 250 251 h3_mac=$(mac_get $h3) 251 252 252 - vrf_prepare 253 - defer vrf_cleanup 253 + adf_vrf_prepare 254 254 255 255 h1_create 256 256 h2_create
+13 -13
tools/testing/selftests/net/fdb_notify.sh
··· 40 40 41 41 test_dup_bridge() 42 42 { 43 - ip_link_add br up type bridge vlan_filtering 1 43 + adf_ip_link_add br up type bridge vlan_filtering 1 44 44 do_test_dup add "bridge" dev br self 45 45 do_test_dup del "bridge" dev br self 46 46 } 47 47 48 48 test_dup_vxlan_self() 49 49 { 50 - ip_link_add br up type bridge vlan_filtering 1 51 - ip_link_add vx up type vxlan id 2000 dstport 4789 52 - ip_link_set_master vx br 50 + adf_ip_link_add br up type bridge vlan_filtering 1 51 + adf_ip_link_add vx up type vxlan id 2000 dstport 4789 52 + adf_ip_link_set_master vx br 53 53 54 54 do_test_dup add "vxlan" dev vx self dst 192.0.2.1 55 55 do_test_dup del "vxlan" dev vx self dst 192.0.2.1 ··· 57 57 58 58 test_dup_vxlan_master() 59 59 { 60 - ip_link_add br up type bridge vlan_filtering 1 61 - ip_link_add vx up type vxlan id 2000 dstport 4789 62 - ip_link_set_master vx br 60 + adf_ip_link_add br up type bridge vlan_filtering 1 61 + adf_ip_link_add vx up type vxlan id 2000 dstport 4789 62 + adf_ip_link_set_master vx br 63 63 64 64 do_test_dup add "vxlan master" dev vx master 65 65 do_test_dup del "vxlan master" dev vx master ··· 67 67 68 68 test_dup_macvlan_self() 69 69 { 70 - ip_link_add dd up type dummy 71 - ip_link_add mv up link dd type macvlan mode passthru 70 + adf_ip_link_add dd up type dummy 71 + adf_ip_link_add mv up link dd type macvlan mode passthru 72 72 73 73 do_test_dup add "macvlan self" dev mv self 74 74 do_test_dup del "macvlan self" dev mv self ··· 76 76 77 77 test_dup_macvlan_master() 78 78 { 79 - ip_link_add br up type bridge vlan_filtering 1 80 - ip_link_add dd up type dummy 81 - ip_link_add mv up link dd type macvlan mode passthru 82 - ip_link_set_master mv br 79 + adf_ip_link_add br up type bridge vlan_filtering 1 80 + adf_ip_link_add dd up type dummy 81 + adf_ip_link_add mv up link dd type macvlan mode passthru 82 + adf_ip_link_set_master mv br 83 83 84 84 do_test_dup add "macvlan master" dev mv self 85 85 do_test_dup del "macvlan master" dev mv self
+15
tools/testing/selftests/net/forwarding/README
··· 57 57 58 58 1. https://www.shellcheck.net/ 59 59 60 + Cleanups 61 + -------- 62 + 63 + o lib.sh brings in defer.sh (by way of ../lib.sh) by default. Consider 64 + making use of the defer primitive to schedule automatic cleanups. This 65 + makes it harder to forget to remove a temporary netdevice, kill a running 66 + process or perform other cleanup when the test script is interrupted. 67 + 68 + o When adding a helper that dirties the environment, but schedules all 69 + necessary cleanups through defer, consider prefixing it adf_ for 70 + consistency with lib.sh and ../lib.sh helpers. This serves as an 71 + immediately visible bit of documentation about the helper API. 72 + 73 + o Definitely do the above for any new code in lib.sh, if practical. 74 + 60 75 Customization 61 76 ============= 62 77
+9 -12
tools/testing/selftests/net/forwarding/bridge_activity_notify.sh
··· 26 26 27 27 h1_create() 28 28 { 29 - simple_if_init "$h1" 192.0.2.1/28 30 - defer simple_if_fini "$h1" 192.0.2.1/28 29 + adf_simple_if_init "$h1" 192.0.2.1/28 31 30 } 32 31 33 32 h2_create() 34 33 { 35 - simple_if_init "$h2" 192.0.2.2/28 36 - defer simple_if_fini "$h2" 192.0.2.2/28 34 + adf_simple_if_init "$h2" 192.0.2.2/28 37 35 } 38 36 39 37 switch_create() 40 38 { 41 - ip_link_add br1 type bridge vlan_filtering 0 mcast_snooping 0 \ 39 + adf_ip_link_add br1 type bridge vlan_filtering 0 mcast_snooping 0 \ 42 40 ageing_time "$LOW_AGEING_TIME" 43 - ip_link_set_up br1 41 + adf_ip_link_set_up br1 44 42 45 - ip_link_set_master "$swp1" br1 46 - ip_link_set_up "$swp1" 43 + adf_ip_link_set_master "$swp1" br1 44 + adf_ip_link_set_up "$swp1" 47 45 48 - ip_link_set_master "$swp2" br1 49 - ip_link_set_up "$swp2" 46 + adf_ip_link_set_master "$swp2" br1 47 + adf_ip_link_set_up "$swp2" 50 48 } 51 49 52 50 setup_prepare() ··· 55 57 swp2=${NETIFS[p3]} 56 58 h2=${NETIFS[p4]} 57 59 58 - vrf_prepare 59 - defer vrf_cleanup 60 + adf_vrf_prepare 60 61 61 62 h1_create 62 63 h2_create
+29 -36
tools/testing/selftests/net/forwarding/bridge_fdb_local_vlan_0.sh
··· 44 44 local ipv4=$1; shift 45 45 local ipv6=$1; shift 46 46 47 - simple_if_init "$h" "$ipv4" "$ipv6" 48 - defer simple_if_fini "$h" "$ipv4" "$ipv6" 49 - 50 - ip_route_add vrf "v$h" 192.0.2.16/28 nexthop via 192.0.2.3 51 - ip_route_add vrf "v$h" 2001:db8:2::/64 nexthop via 2001:db8:1::3 47 + adf_simple_if_init "$h" "$ipv4" "$ipv6" 48 + adf_ip_route_add vrf "v$h" 192.0.2.16/28 nexthop via 192.0.2.3 49 + adf_ip_route_add vrf "v$h" 2001:db8:2::/64 nexthop via 2001:db8:1::3 52 50 } 53 51 54 52 h3_create() 55 53 { 56 - simple_if_init "$h3" 192.0.2.18/28 2001:db8:2::2/64 57 - defer simple_if_fini "$h3" 192.0.2.18/28 2001:db8:2::2/64 58 - 59 - ip_route_add vrf "v$h3" 192.0.2.0/28 nexthop via 192.0.2.17 60 - ip_route_add vrf "v$h3" 2001:db8:1::/64 nexthop via 2001:db8:2::1 54 + adf_simple_if_init "$h3" 192.0.2.18/28 2001:db8:2::2/64 55 + adf_ip_route_add vrf "v$h3" 192.0.2.0/28 nexthop via 192.0.2.17 56 + adf_ip_route_add vrf "v$h3" 2001:db8:1::/64 nexthop via 2001:db8:2::1 61 57 62 58 tc qdisc add dev "$h3" clsact 63 59 defer tc qdisc del dev "$h3" clsact ··· 74 78 75 79 switch_create() 76 80 { 77 - ip_link_set_up "$swp1" 81 + adf_ip_link_set_up "$swp1" 78 82 79 - ip_link_set_up "$swp2" 83 + adf_ip_link_set_up "$swp2" 80 84 81 - ip_addr_add "$swp3" 192.0.2.17/28 82 - ip_addr_add "$swp3" 2001:db8:2::1/64 83 - ip_link_set_up "$swp3" 85 + adf_ip_addr_add "$swp3" 192.0.2.17/28 86 + adf_ip_addr_add "$swp3" 2001:db8:2::1/64 87 + adf_ip_link_set_up "$swp3" 84 88 } 85 89 86 90 setup_prepare() ··· 94 98 swp3=${NETIFS[p5]} 95 99 h3=${NETIFS[p6]} 96 100 97 - vrf_prepare 98 - defer vrf_cleanup 99 - 100 - forwarding_enable 101 - defer forwarding_restore 101 + adf_vrf_prepare 102 + adf_forwarding_enable 102 103 103 104 host_create "$h1" 192.0.2.1/28 2001:db8:1::1/64 104 105 host_create "$h2" 192.0.2.2/28 2001:db8:1::2/64 ··· 108 115 { 109 116 local dev 110 117 111 - ip_addr_add br 192.0.2.3/28 112 - ip_addr_add br 2001:db8:1::3/64 118 + adf_ip_addr_add br 192.0.2.3/28 119 + adf_ip_addr_add br 2001:db8:1::3/64 113 120 114 - bridge_vlan_add dev br vid 1 pvid untagged self 115 - bridge_vlan_add dev br vid 2 self 116 - bridge_vlan_add dev br vid 3 self 121 + adf_bridge_vlan_add dev br vid 1 pvid untagged self 122 + adf_bridge_vlan_add dev br vid 2 self 123 + adf_bridge_vlan_add dev br vid 3 self 117 124 118 125 for dev in "$swp1" "$swp2"; do 119 - ip_link_set_master "$dev" br 120 - bridge_vlan_add dev "$dev" vid 1 pvid untagged 121 - bridge_vlan_add dev "$dev" vid 2 122 - bridge_vlan_add dev "$dev" vid 3 126 + adf_ip_link_set_master "$dev" br 127 + adf_bridge_vlan_add dev "$dev" vid 1 pvid untagged 128 + adf_bridge_vlan_add dev "$dev" vid 2 129 + adf_bridge_vlan_add dev "$dev" vid 3 123 130 done 124 131 } 125 132 ··· 127 134 { 128 135 local mac 129 136 130 - ip_link_add br up type bridge vlan_default_pvid 0 "$@" 137 + adf_ip_link_add br up type bridge vlan_default_pvid 0 "$@" 131 138 mac=$(mac_get br) 132 139 adf_bridge_configure 133 - ip_link_set_addr br "$mac" 140 + adf_ip_link_set_addr br "$mac" 134 141 } 135 142 136 143 check_fdb_local_vlan_0_support() 137 144 { 138 - if ip_link_add XXbr up type bridge vlan_filtering 1 fdb_local_vlan_0 1 \ 139 - &>/dev/null; then 145 + if adf_ip_link_add XXbr up type bridge vlan_filtering 1 \ 146 + fdb_local_vlan_0 1 &>/dev/null; then 140 147 return 0 141 148 fi 142 149 ··· 289 296 cur_mac=$(mac_get "$dev") 290 297 291 298 log_info "Change $dev MAC $cur_mac -> $mac" 292 - ip_link_set_addr "$dev" "$mac" 299 + adf_ip_link_set_addr "$dev" "$mac" 293 300 defer log_info "Change $dev MAC back" 294 301 } 295 302 ··· 368 375 369 376 adf_addr_set_bridge_create() 370 377 { 371 - ip_link_add br up type bridge vlan_filtering 0 372 - ip_link_set_addr br "$(mac_get br)" 378 + adf_ip_link_add br up type bridge vlan_filtering 0 379 + adf_ip_link_set_addr br "$(mac_get br)" 373 380 adf_bridge_configure 374 381 } 375 382
+18
tools/testing/selftests/net/forwarding/lib.sh
··· 599 599 ip -4 rule del pref 32765 600 600 } 601 601 602 + adf_vrf_prepare() 603 + { 604 + vrf_prepare 605 + defer vrf_cleanup 606 + } 607 + 602 608 __last_tb_id=0 603 609 declare -A __TB_IDS 604 610 ··· 715 709 716 710 __simple_if_fini $if_name "${array[@]}" 717 711 vrf_destroy $vrf_name 712 + } 713 + 714 + adf_simple_if_init() 715 + { 716 + simple_if_init "$@" 717 + defer simple_if_fini "$@" 718 718 } 719 719 720 720 tunnel_create() ··· 1021 1009 { 1022 1010 sysctl_restore net.ipv6.conf.all.forwarding 1023 1011 sysctl_restore net.ipv4.conf.all.forwarding 1012 + } 1013 + 1014 + adf_forwarding_enable() 1015 + { 1016 + forwarding_enable 1017 + defer forwarding_restore 1024 1018 } 1025 1019 1026 1020 declare -A MTU_ORIG
+3 -6
tools/testing/selftests/net/forwarding/sch_ets_core.sh
··· 165 165 { 166 166 local i; 167 167 168 - simple_if_init $h1 169 - defer simple_if_fini $h1 168 + adf_simple_if_init $h1 170 169 171 170 mtu_set $h1 9900 172 171 defer mtu_restore $h1 ··· 181 182 { 182 183 local i 183 184 184 - simple_if_init $h2 185 - defer simple_if_fini $h2 185 + adf_simple_if_init $h2 186 186 187 187 mtu_set $h2 9900 188 188 defer mtu_restore $h2 ··· 249 251 put=$swp2 250 252 hut=$h2 251 253 252 - vrf_prepare 253 - defer vrf_cleanup 254 + adf_vrf_prepare 254 255 255 256 h1_create 256 257 h2_create
+4 -8
tools/testing/selftests/net/forwarding/sch_red.sh
··· 52 52 53 53 h1_create() 54 54 { 55 - simple_if_init $h1 192.0.2.1/28 56 - defer simple_if_fini $h1 192.0.2.1/28 55 + adf_simple_if_init $h1 192.0.2.1/28 57 56 58 57 mtu_set $h1 10000 59 58 defer mtu_restore $h1 ··· 64 65 65 66 h2_create() 66 67 { 67 - simple_if_init $h2 192.0.2.2/28 68 - defer simple_if_fini $h2 192.0.2.2/28 68 + adf_simple_if_init $h2 192.0.2.2/28 69 69 70 70 mtu_set $h2 10000 71 71 defer mtu_restore $h2 ··· 72 74 73 75 h3_create() 74 76 { 75 - simple_if_init $h3 192.0.2.3/28 76 - defer simple_if_fini $h3 192.0.2.3/28 77 + adf_simple_if_init $h3 192.0.2.3/28 77 78 78 79 mtu_set $h3 10000 79 80 defer mtu_restore $h3 ··· 122 125 123 126 h3_mac=$(mac_get $h3) 124 127 125 - vrf_prepare 126 - defer vrf_cleanup 128 + adf_vrf_prepare 127 129 128 130 h1_create 129 131 h2_create
+2 -4
tools/testing/selftests/net/forwarding/sch_tbf_core.sh
··· 59 59 local dev=$1; shift 60 60 local host=$1; shift 61 61 62 - simple_if_init $dev 63 - defer simple_if_fini $dev 62 + adf_simple_if_init $dev 64 63 65 64 mtu_set $dev 10000 66 65 defer mtu_restore $dev ··· 148 149 149 150 h2_mac=$(mac_get $h2) 150 151 151 - vrf_prepare 152 - defer vrf_cleanup 152 + adf_vrf_prepare 153 153 154 154 h1_create 155 155 h2_create
+68 -73
tools/testing/selftests/net/forwarding/vxlan_bridge_1q_mc_ul.sh
··· 119 119 120 120 h1_create() 121 121 { 122 - simple_if_init "$h1" 123 - defer simple_if_fini "$h1" 122 + adf_simple_if_init "$h1" 124 123 125 - ip_link_add "$h1.10" master "v$h1" link "$h1" type vlan id 10 126 - ip_link_set_up "$h1.10" 127 - ip_addr_add "$h1.10" 192.0.2.1/28 124 + adf_ip_link_add "$h1.10" master "v$h1" link "$h1" type vlan id 10 125 + adf_ip_link_set_up "$h1.10" 126 + adf_ip_addr_add "$h1.10" 192.0.2.1/28 128 127 129 - ip_link_add "$h1.20" master "v$h1" link "$h1" type vlan id 20 130 - ip_link_set_up "$h1.20" 131 - ip_addr_add "$h1.20" 2001:db8:1::1/64 128 + adf_ip_link_add "$h1.20" master "v$h1" link "$h1" type vlan id 20 129 + adf_ip_link_set_up "$h1.20" 130 + adf_ip_addr_add "$h1.20" 2001:db8:1::1/64 132 131 } 133 132 134 133 install_capture() ··· 151 152 h2_create() 152 153 { 153 154 # $h2 154 - ip_link_set_up "$h2" 155 + adf_ip_link_set_up "$h2" 155 156 156 157 # H2 157 158 vrf_create "v$h2" 158 159 defer vrf_destroy "v$h2" 159 160 160 - ip_link_set_up "v$h2" 161 + adf_ip_link_set_up "v$h2" 161 162 162 163 # br2 163 - ip_link_add br2 type bridge vlan_filtering 0 mcast_snooping 0 164 - ip_link_set_master br2 "v$h2" 165 - ip_link_set_up br2 164 + adf_ip_link_add br2 type bridge vlan_filtering 0 mcast_snooping 0 165 + adf_ip_link_set_master br2 "v$h2" 166 + adf_ip_link_set_up br2 166 167 167 168 # $h2 168 - ip_link_set_master "$h2" br2 169 + adf_ip_link_set_master "$h2" br2 169 170 install_capture "$h2" 170 171 171 172 # v1$h2 172 - ip_link_set_up "v1$h2" 173 - ip_link_set_master "v1$h2" br2 173 + adf_ip_link_set_up "v1$h2" 174 + adf_ip_link_set_master "v1$h2" br2 174 175 } 175 176 176 177 h3_create() 177 178 { 178 179 # $h3 179 - ip_link_set_up "$h3" 180 + adf_ip_link_set_up "$h3" 180 181 181 182 # H3 182 183 vrf_create "v$h3" 183 184 defer vrf_destroy "v$h3" 184 185 185 - ip_link_set_up "v$h3" 186 + adf_ip_link_set_up "v$h3" 186 187 187 188 # br3 188 - ip_link_add br3 type bridge vlan_filtering 0 mcast_snooping 0 189 - ip_link_set_master br3 "v$h3" 190 - ip_link_set_up br3 189 + adf_ip_link_add br3 type bridge vlan_filtering 0 mcast_snooping 0 190 + adf_ip_link_set_master br3 "v$h3" 191 + adf_ip_link_set_up br3 191 192 192 193 # $h3 193 - ip_link_set_master "$h3" br3 194 + adf_ip_link_set_master "$h3" br3 194 195 install_capture "$h3" 195 196 196 197 # v1$h3 197 - ip_link_set_up "v1$h3" 198 - ip_link_set_master "v1$h3" br3 198 + adf_ip_link_set_up "v1$h3" 199 + adf_ip_link_set_master "v1$h3" br3 199 200 } 200 201 201 202 switch_create() ··· 204 205 205 206 # br1 206 207 swp1_mac=$(mac_get "$swp1") 207 - ip_link_add br1 type bridge vlan_filtering 1 \ 208 + adf_ip_link_add br1 type bridge vlan_filtering 1 \ 208 209 vlan_default_pvid 0 mcast_snooping 0 209 - ip_link_set_addr br1 "$swp1_mac" 210 - ip_link_set_up br1 210 + adf_ip_link_set_addr br1 "$swp1_mac" 211 + adf_ip_link_set_up br1 211 212 212 213 # A dummy to force the IPv6 OIF=0 test to install a suitable MC route on 213 214 # $IPMR to be deterministic. Also used for the IPv6 RX!=TX ping test. 214 - ip_link_add "X$IPMR" up type dummy 215 + adf_ip_link_add "X$IPMR" up type dummy 215 216 216 217 # IPMR 217 - ip_link_add "$IPMR" up type dummy 218 - ip_addr_add "$IPMR" 192.0.2.100/28 219 - ip_addr_add "$IPMR" 2001:db8:4::1/64 218 + adf_ip_link_add "$IPMR" up type dummy 219 + adf_ip_addr_add "$IPMR" 192.0.2.100/28 220 + adf_ip_addr_add "$IPMR" 2001:db8:4::1/64 220 221 221 222 # $swp1 222 - ip_link_set_up "$swp1" 223 - ip_link_set_master "$swp1" br1 224 - bridge_vlan_add vid 10 dev "$swp1" 225 - bridge_vlan_add vid 20 dev "$swp1" 223 + adf_ip_link_set_up "$swp1" 224 + adf_ip_link_set_master "$swp1" br1 225 + adf_bridge_vlan_add vid 10 dev "$swp1" 226 + adf_bridge_vlan_add vid 20 dev "$swp1" 226 227 227 228 # $swp2 228 - ip_link_set_up "$swp2" 229 - ip_addr_add "$swp2" 192.0.2.33/28 230 - ip_addr_add "$swp2" 2001:db8:2::1/64 229 + adf_ip_link_set_up "$swp2" 230 + adf_ip_addr_add "$swp2" 192.0.2.33/28 231 + adf_ip_addr_add "$swp2" 2001:db8:2::1/64 231 232 232 233 # $swp3 233 - ip_link_set_up "$swp3" 234 - ip_addr_add "$swp3" 192.0.2.65/28 235 - ip_addr_add "$swp3" 2001:db8:3::1/64 234 + adf_ip_link_set_up "$swp3" 235 + adf_ip_addr_add "$swp3" 192.0.2.65/28 236 + adf_ip_addr_add "$swp3" 2001:db8:3::1/64 236 237 } 237 238 238 239 vx_create() ··· 240 241 local name=$1; shift 241 242 local vid=$1; shift 242 243 243 - ip_link_add "$name" up type vxlan dstport "$VXPORT" \ 244 + adf_ip_link_add "$name" up type vxlan dstport "$VXPORT" \ 244 245 nolearning noudpcsum tos inherit ttl 16 \ 245 246 "$@" 246 - ip_link_set_master "$name" br1 247 - bridge_vlan_add vid "$vid" dev "$name" pvid untagged 247 + adf_ip_link_set_master "$name" br1 248 + adf_bridge_vlan_add vid "$vid" dev "$name" pvid untagged 248 249 } 249 250 export -f vx_create 250 251 ··· 289 290 local ipv6_host=$1; shift 290 291 291 292 # v2$h2 / v2$h3 292 - ip_link_set_up "$if_in" 293 - ip_addr_add "$if_in" "$ipv4_in" 294 - ip_addr_add "$if_in" "$ipv6_in" 293 + adf_ip_link_set_up "$if_in" 294 + adf_ip_addr_add "$if_in" "$ipv4_in" 295 + adf_ip_addr_add "$if_in" "$ipv6_in" 295 296 296 297 # br1 297 - ip_link_add br1 type bridge vlan_filtering 1 \ 298 + adf_ip_link_add br1 type bridge vlan_filtering 1 \ 298 299 vlan_default_pvid 0 mcast_snooping 0 299 - ip_link_set_up br1 300 + adf_ip_link_set_up br1 300 301 301 302 # vx10, vx20 302 303 vx10_create local "${ipv4_in%/*}" group "$GROUP4" dev "$if_in" 303 304 vx20_create local "${ipv6_in%/*}" group "$GROUP6" dev "$if_in" 304 305 305 306 # w1 306 - ip_link_add w1 type veth peer name w2 307 - ip_link_set_master w1 br1 308 - ip_link_set_up w1 309 - bridge_vlan_add vid 10 dev w1 310 - bridge_vlan_add vid 20 dev w1 307 + adf_ip_link_add w1 type veth peer name w2 308 + adf_ip_link_set_master w1 br1 309 + adf_ip_link_set_up w1 310 + adf_bridge_vlan_add vid 10 dev w1 311 + adf_bridge_vlan_add vid 20 dev w1 311 312 312 313 # w2 313 - simple_if_init w2 314 - defer simple_if_fini w2 314 + adf_simple_if_init w2 315 315 316 316 # w2.10 317 - ip_link_add w2.10 master vw2 link w2 type vlan id 10 318 - ip_link_set_up w2.10 319 - ip_addr_add w2.10 "$ipv4_host" 317 + adf_ip_link_add w2.10 master vw2 link w2 type vlan id 10 318 + adf_ip_link_set_up w2.10 319 + adf_ip_addr_add w2.10 "$ipv4_host" 320 320 321 321 # w2.20 322 - ip_link_add w2.20 master vw2 link w2 type vlan id 20 323 - ip_link_set_up w2.20 324 - ip_addr_add w2.20 "$ipv6_host" 322 + adf_ip_link_add w2.20 master vw2 link w2 type vlan id 20 323 + adf_ip_link_set_up w2.20 324 + adf_ip_addr_add w2.20 "$ipv6_host" 325 325 } 326 326 export -f ns_init_common 327 327 ··· 369 371 swp3=${NETIFS[p5]} 370 372 h3=${NETIFS[p6]} 371 373 372 - vrf_prepare 373 - defer vrf_cleanup 374 + adf_vrf_prepare 375 + adf_forwarding_enable 374 376 375 - forwarding_enable 376 - defer forwarding_restore 377 - 378 - ip_link_add "v1$h2" type veth peer name "v2$h2" 379 - ip_link_add "v1$h3" type veth peer name "v2$h3" 377 + adf_ip_link_add "v1$h2" type veth peer name "v2$h2" 378 + adf_ip_link_add "v1$h3" type veth peer name "v2$h3" 380 379 381 380 h1_create 382 381 h2_create ··· 715 720 { 716 721 adf_install_sg_sep 717 722 718 - ip_addr_add lo 192.0.2.120/28 723 + adf_ip_addr_add lo 192.0.2.120/28 719 724 vx10_create_wait local 192.0.2.120 group "$GROUP4" dev "$IPMR" mcroute 720 725 bridge fdb del dev vx10 00:00:00:00:00:00 721 726 bridge fdb add dev vx10 00:00:00:00:00:00 self static dst "$GROUP4" ··· 726 731 { 727 732 adf_install_sg_sep_rx lo 728 733 729 - ip_addr_add lo 192.0.2.120/28 734 + adf_ip_addr_add lo 192.0.2.120/28 730 735 vx10_create_wait local 192.0.2.120 group "$GROUP4" dev "$IPMR" mcroute 731 736 bridge fdb del dev vx10 00:00:00:00:00:00 732 737 bridge fdb add dev vx10 00:00:00:00:00:00 self static dst "$GROUP4" ··· 737 742 { 738 743 adf_install_sg_sep_rx lo 739 744 740 - ip_addr_add lo 192.0.2.120/28 745 + adf_ip_addr_add lo 192.0.2.120/28 741 746 vx10_create_wait local 192.0.2.120 group "$GROUP4" dev "$IPMR" mcroute 742 747 bridge fdb del dev vx10 00:00:00:00:00:00 743 748 bridge fdb add \ ··· 749 754 { 750 755 adf_install_sg_sep_rx "X$IPMR" 751 756 752 - ip_addr_add "X$IPMR" 2001:db8:5::1/64 757 + adf_ip_addr_add "X$IPMR" 2001:db8:5::1/64 753 758 vx20_create_wait local 2001:db8:5::1 group "$GROUP6" dev "$IPMR" mcroute 754 759 bridge -6 fdb del dev vx20 00:00:00:00:00:00 755 760 bridge -6 fdb add dev vx20 00:00:00:00:00:00 \
+14 -19
tools/testing/selftests/net/forwarding/vxlan_reserved.sh
··· 47 47 48 48 h1_create() 49 49 { 50 - simple_if_init $h1 192.0.2.1/28 51 - defer simple_if_fini $h1 192.0.2.1/28 50 + adf_simple_if_init $h1 192.0.2.1/28 52 51 53 52 tc qdisc add dev $h1 clsact 54 53 defer tc qdisc del dev $h1 clsact ··· 59 60 60 61 switch_create() 61 62 { 62 - ip_link_add br1 type bridge vlan_filtering 0 mcast_snooping 0 63 + adf_ip_link_add br1 type bridge vlan_filtering 0 mcast_snooping 0 63 64 # Make sure the bridge uses the MAC address of the local port and not 64 65 # that of the VxLAN's device. 65 - ip_link_set_addr br1 $(mac_get $swp1) 66 - ip_link_set_up br1 66 + adf_ip_link_set_addr br1 $(mac_get $swp1) 67 + adf_ip_link_set_up br1 67 68 68 - ip_link_set_up $rp1 69 - ip_addr_add $rp1 192.0.2.17/28 70 - ip_route_add 192.0.2.32/28 nexthop via 192.0.2.18 69 + adf_ip_link_set_up $rp1 70 + adf_ip_addr_add $rp1 192.0.2.17/28 71 + adf_ip_route_add 192.0.2.32/28 nexthop via 192.0.2.18 71 72 72 - ip_link_set_master $swp1 br1 73 - ip_link_set_up $swp1 73 + adf_ip_link_set_master $swp1 br1 74 + adf_ip_link_set_up $swp1 74 75 } 75 76 76 77 vrp2_create() 77 78 { 78 - simple_if_init $rp2 192.0.2.18/28 79 - defer simple_if_fini $rp2 192.0.2.18/28 79 + adf_simple_if_init $rp2 192.0.2.18/28 80 80 } 81 81 82 82 setup_prepare() ··· 86 88 rp1=${NETIFS[p3]} 87 89 rp2=${NETIFS[p4]} 88 90 89 - vrf_prepare 90 - defer vrf_cleanup 91 - 92 - forwarding_enable 93 - defer forwarding_restore 91 + adf_vrf_prepare 92 + adf_forwarding_enable 94 93 95 94 h1_create 96 95 switch_create ··· 195 200 196 201 vxlan_device_add() 197 202 { 198 - ip_link_add vx1 up type vxlan id 1000 \ 203 + adf_ip_link_add vx1 up type vxlan id 1000 \ 199 204 local 192.0.2.17 dstport "$VXPORT" \ 200 205 nolearning noudpcsum tos inherit ttl 100 "$@" 201 - ip_link_set_master vx1 br1 206 + adf_ip_link_set_master vx1 br1 202 207 } 203 208 204 209 vxlan_all_reserved_bits()
+8 -8
tools/testing/selftests/net/lib.sh
··· 543 543 fi 544 544 } 545 545 546 - ip_link_add() 546 + adf_ip_link_add() 547 547 { 548 548 local name=$1; shift 549 549 ··· 551 551 defer ip link del dev "$name" 552 552 } 553 553 554 - ip_link_set_master() 554 + adf_ip_link_set_master() 555 555 { 556 556 local member=$1; shift 557 557 local master=$1; shift ··· 560 560 defer ip link set dev "$member" nomaster 561 561 } 562 562 563 - ip_link_set_addr() 563 + adf_ip_link_set_addr() 564 564 { 565 565 local name=$1; shift 566 566 local addr=$1; shift ··· 585 585 ip_link_has_flag "$1" UP 586 586 } 587 587 588 - ip_link_set_up() 588 + adf_ip_link_set_up() 589 589 { 590 590 local name=$1; shift 591 591 ··· 595 595 fi 596 596 } 597 597 598 - ip_link_set_down() 598 + adf_ip_link_set_down() 599 599 { 600 600 local name=$1; shift 601 601 ··· 605 605 fi 606 606 } 607 607 608 - ip_addr_add() 608 + adf_ip_addr_add() 609 609 { 610 610 local name=$1; shift 611 611 ··· 613 613 defer ip addr del dev "$name" "$@" 614 614 } 615 615 616 - ip_route_add() 616 + adf_ip_route_add() 617 617 { 618 618 ip route add "$@" && \ 619 619 defer ip route del "$@" 620 620 } 621 621 622 - bridge_vlan_add() 622 + adf_bridge_vlan_add() 623 623 { 624 624 bridge vlan add "$@" && \ 625 625 defer bridge vlan del "$@"
+4 -4
tools/testing/selftests/net/test_vxlan_fdb_changelink.sh
··· 21 21 { 22 22 RET=0 23 23 24 - ip_link_add vx up type vxlan id 2000 dstport 4789 24 + adf_ip_link_add vx up type vxlan id 2000 dstport 4789 25 25 bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.20 self permanent 26 26 bridge fdb ap dev vx 00:00:00:00:00:00 dst 192.0.2.30 self permanent 27 27 check_remotes "fdb append" ··· 74 74 { 75 75 check_command netstat || return 76 76 77 - ip_link_add v1 up type veth peer name v2 78 - ip_link_set_up v2 77 + adf_ip_link_add v1 up type veth peer name v2 78 + adf_ip_link_set_up v2 79 79 80 80 RET=0 81 81 82 - ip_link_add vx up type vxlan dstport 4789 \ 82 + adf_ip_link_add vx up type vxlan dstport 4789 \ 83 83 local 192.0.2.1 $(fmt_remote 224.1.1.1) dev v1 vni 1000 84 84 85 85 check_membership "group=224.1.1.1 fail=0" \
+22 -22
tools/testing/selftests/net/vlan_bridge_binding.sh
··· 18 18 { 19 19 local port 20 20 21 - ip_link_add br up type bridge vlan_filtering 1 21 + adf_ip_link_add br up type bridge vlan_filtering 1 22 22 23 23 for port in d1 d2 d3; do 24 - ip_link_add $port type veth peer name r$port 25 - ip_link_set_up $port 26 - ip_link_set_up r$port 27 - ip_link_set_master $port br 24 + adf_ip_link_add $port type veth peer name r$port 25 + adf_ip_link_set_up $port 26 + adf_ip_link_set_up r$port 27 + adf_ip_link_set_master $port br 28 28 done 29 29 30 - bridge_vlan_add vid 11 dev br self 31 - bridge_vlan_add vid 11 dev d1 master 30 + adf_bridge_vlan_add vid 11 dev br self 31 + adf_bridge_vlan_add vid 11 dev d1 master 32 32 33 - bridge_vlan_add vid 12 dev br self 34 - bridge_vlan_add vid 12 dev d2 master 33 + adf_bridge_vlan_add vid 12 dev br self 34 + adf_bridge_vlan_add vid 12 dev d2 master 35 35 36 - bridge_vlan_add vid 13 dev br self 37 - bridge_vlan_add vid 13 dev d1 master 38 - bridge_vlan_add vid 13 dev d2 master 36 + adf_bridge_vlan_add vid 13 dev br self 37 + adf_bridge_vlan_add vid 13 dev d1 master 38 + adf_bridge_vlan_add vid 13 dev d2 master 39 39 40 - bridge_vlan_add vid 14 dev br self 41 - bridge_vlan_add vid 14 dev d1 master 42 - bridge_vlan_add vid 14 dev d2 master 43 - bridge_vlan_add vid 14 dev d3 master 40 + adf_bridge_vlan_add vid 14 dev br self 41 + adf_bridge_vlan_add vid 14 dev d1 master 42 + adf_bridge_vlan_add vid 14 dev d2 master 43 + adf_bridge_vlan_add vid 14 dev d3 master 44 44 } 45 45 46 46 operstate_is() ··· 74 74 local link=$1; shift 75 75 local id=$1; shift 76 76 77 - ip_link_add $link.$id link $link type vlan id $id "$@" 77 + adf_ip_link_add $link.$id link $link type vlan id $id "$@" 78 78 } 79 79 80 80 add_vlans() ··· 98 98 local dev 99 99 100 100 for dev in "$@"; do 101 - ip_link_set_down $dev 101 + adf_ip_link_set_down $dev 102 102 done 103 103 } 104 104 ··· 207 207 do_test_binding_off : "on->off" 208 208 } 209 209 210 - dfr_set_binding_on() 210 + adf_set_binding_on() 211 211 { 212 212 set_vlans type vlan bridge_binding on 213 213 defer set_vlans type vlan bridge_binding off 214 214 } 215 215 216 - dfr_set_binding_off() 216 + adf_set_binding_off() 217 217 { 218 218 set_vlans type vlan bridge_binding off 219 219 defer set_vlans type vlan bridge_binding on ··· 223 223 { 224 224 add_vlans bridge_binding off 225 225 set_vlans up 226 - do_test_binding_on dfr_set_binding_on "off->on when lower down" 226 + do_test_binding_on adf_set_binding_on "off->on when lower down" 227 227 } 228 228 229 229 test_binding_toggle_off_when_lower_down() 230 230 { 231 231 add_vlans bridge_binding on 232 232 set_vlans up 233 - do_test_binding_off dfr_set_binding_off "on->off when lower down" 233 + do_test_binding_off adf_set_binding_off "on->off when lower down" 234 234 } 235 235 236 236 test_binding_toggle_on_when_upper_down()