mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
Merge branch 'selftests-forwarding-sysctl'
Petr Machata says: ==================== selftests: forwarding: Updates to sysctl handling Some selftests need to adjust sysctl settings. In order to be neutral to the system that the test is run on, it is a good practice to change back to the original setting after the test ends. That involves some boilerplate that can be abstracted away. In patch #1, introduce two functions, sysctl_set() and sysctl_restore(). The former stores the current value of a given setting, and sets a new value. The latter restores the setting to the previously-stored value. In patch #2, use these wrappers in a number of tests. Additionally in patch #3, fix a problem in mirror_gre_nh.sh, which neglected to set a sysctl that's crucial for the test to work. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
2e51855194
@ -381,19 +381,33 @@ bridge_ageing_time_get()
|
||||
echo $((ageing_time / 100))
|
||||
}
|
||||
|
||||
declare -A SYSCTL_ORIG
|
||||
sysctl_set()
|
||||
{
|
||||
local key=$1; shift
|
||||
local value=$1; shift
|
||||
|
||||
SYSCTL_ORIG[$key]=$(sysctl -n $key)
|
||||
sysctl -qw $key=$value
|
||||
}
|
||||
|
||||
sysctl_restore()
|
||||
{
|
||||
local key=$1; shift
|
||||
|
||||
sysctl -qw $key=${SYSCTL_ORIG["$key"]}
|
||||
}
|
||||
|
||||
forwarding_enable()
|
||||
{
|
||||
ipv4_fwd=$(sysctl -n net.ipv4.conf.all.forwarding)
|
||||
ipv6_fwd=$(sysctl -n net.ipv6.conf.all.forwarding)
|
||||
|
||||
sysctl -q -w net.ipv4.conf.all.forwarding=1
|
||||
sysctl -q -w net.ipv6.conf.all.forwarding=1
|
||||
sysctl_set net.ipv4.conf.all.forwarding 1
|
||||
sysctl_set net.ipv6.conf.all.forwarding 1
|
||||
}
|
||||
|
||||
forwarding_restore()
|
||||
{
|
||||
sysctl -q -w net.ipv6.conf.all.forwarding=$ipv6_fwd
|
||||
sysctl -q -w net.ipv4.conf.all.forwarding=$ipv4_fwd
|
||||
sysctl_restore net.ipv6.conf.all.forwarding
|
||||
sysctl_restore net.ipv4.conf.all.forwarding
|
||||
}
|
||||
|
||||
tc_offload_check()
|
||||
|
@ -36,9 +36,7 @@ setup_prepare()
|
||||
|
||||
# This test downs $swp3, which deletes the configured IPv6 address
|
||||
# unless this sysctl is set.
|
||||
local key=net.ipv6.conf.$swp3.keep_addr_on_down
|
||||
SWP3_KEEP_ADDR_ON_DOWN=$(sysctl -n $key)
|
||||
sysctl -qw $key=1
|
||||
sysctl_set net.ipv6.conf.$swp3.keep_addr_on_down 1
|
||||
|
||||
ip address add dev $swp3 192.0.2.129/28
|
||||
ip address add dev $h3 192.0.2.130/28
|
||||
@ -57,8 +55,7 @@ cleanup()
|
||||
ip address del dev $h3 192.0.2.130/28
|
||||
ip address del dev $swp3 192.0.2.129/28
|
||||
|
||||
local key=net.ipv6.conf.$swp3.keep_addr_on_down
|
||||
sysctl -qw $key=$SWP3_KEEP_ADDR_ON_DOWN
|
||||
sysctl_restore net.ipv6.conf.$swp3.keep_addr_on_down
|
||||
|
||||
mirror_gre_topo_destroy
|
||||
vrf_cleanup
|
||||
|
@ -29,6 +29,9 @@ setup_prepare()
|
||||
swp3=${NETIFS[p5]}
|
||||
h3=${NETIFS[p6]}
|
||||
|
||||
sysctl_set net.ipv4.conf.all.rp_filter 0
|
||||
sysctl_set net.ipv4.conf.$h3.rp_filter 0
|
||||
|
||||
vrf_prepare
|
||||
mirror_gre_topo_create
|
||||
|
||||
@ -60,6 +63,9 @@ cleanup()
|
||||
|
||||
mirror_gre_topo_destroy
|
||||
vrf_cleanup
|
||||
|
||||
sysctl_restore net.ipv4.conf.$h3.rp_filter
|
||||
sysctl_restore net.ipv4.conf.all.rp_filter
|
||||
}
|
||||
|
||||
test_gretap()
|
||||
|
@ -205,13 +205,11 @@ multipath4_test()
|
||||
local weight_rp13=$3
|
||||
local t0_rp12 t0_rp13 t1_rp12 t1_rp13
|
||||
local packets_rp12 packets_rp13
|
||||
local hash_policy
|
||||
|
||||
# Transmit multiple flows from h1 to h2 and make sure they are
|
||||
# distributed between both multipath links (rp12 and rp13)
|
||||
# according to the configured weights.
|
||||
hash_policy=$(sysctl -n net.ipv4.fib_multipath_hash_policy)
|
||||
sysctl -q -w net.ipv4.fib_multipath_hash_policy=1
|
||||
sysctl_set net.ipv4.fib_multipath_hash_policy 1
|
||||
ip route replace 198.51.100.0/24 vrf vrf-r1 \
|
||||
nexthop via 169.254.2.22 dev $rp12 weight $weight_rp12 \
|
||||
nexthop via 169.254.3.23 dev $rp13 weight $weight_rp13
|
||||
@ -233,7 +231,7 @@ multipath4_test()
|
||||
ip route replace 198.51.100.0/24 vrf vrf-r1 \
|
||||
nexthop via 169.254.2.22 dev $rp12 \
|
||||
nexthop via 169.254.3.23 dev $rp13
|
||||
sysctl -q -w net.ipv4.fib_multipath_hash_policy=$hash_policy
|
||||
sysctl_restore net.ipv4.fib_multipath_hash_policy
|
||||
}
|
||||
|
||||
multipath6_l4_test()
|
||||
@ -243,13 +241,11 @@ multipath6_l4_test()
|
||||
local weight_rp13=$3
|
||||
local t0_rp12 t0_rp13 t1_rp12 t1_rp13
|
||||
local packets_rp12 packets_rp13
|
||||
local hash_policy
|
||||
|
||||
# Transmit multiple flows from h1 to h2 and make sure they are
|
||||
# distributed between both multipath links (rp12 and rp13)
|
||||
# according to the configured weights.
|
||||
hash_policy=$(sysctl -n net.ipv6.fib_multipath_hash_policy)
|
||||
sysctl -q -w net.ipv6.fib_multipath_hash_policy=1
|
||||
sysctl_set net.ipv6.fib_multipath_hash_policy 1
|
||||
|
||||
ip route replace 2001:db8:2::/64 vrf vrf-r1 \
|
||||
nexthop via fe80:2::22 dev $rp12 weight $weight_rp12 \
|
||||
@ -272,7 +268,7 @@ multipath6_l4_test()
|
||||
nexthop via fe80:2::22 dev $rp12 \
|
||||
nexthop via fe80:3::23 dev $rp13
|
||||
|
||||
sysctl -q -w net.ipv6.fib_multipath_hash_policy=$hash_policy
|
||||
sysctl_restore net.ipv6.fib_multipath_hash_policy
|
||||
}
|
||||
|
||||
multipath6_test()
|
||||
|
Loading…
Reference in New Issue
Block a user