selftests: forwarding: lib: Add sysctl_set(), sysctl_restore()
authorPetr Machata <petrm@mellanox.com>
Thu, 3 May 2018 10:36:59 +0000 (12:36 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 May 2018 17:37:02 +0000 (13:37 -0400)
Add two helper functions: sysctl_set() to change the value of a given
sysctl setting, and sysctl_restore() to change it back to what it was.

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 061c87b..e49e78b 100644 (file)
@@ -381,6 +381,23 @@ 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)