浏览代码

selftests: forwarding: lib: Add sysctl_set(), sysctl_restore()

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>
Petr Machata 7 年之前
父节点
当前提交
f5ae57784b
共有 1 个文件被更改,包括 17 次插入0 次删除
  1. 17 0
      tools/testing/selftests/net/forwarding/lib.sh

+ 17 - 0
tools/testing/selftests/net/forwarding/lib.sh

@@ -381,6 +381,23 @@ bridge_ageing_time_get()
 	echo $((ageing_time / 100))
 	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()
 forwarding_enable()
 {
 {
        ipv4_fwd=$(sysctl -n net.ipv4.conf.all.forwarding)
        ipv4_fwd=$(sysctl -n net.ipv4.conf.all.forwarding)