1 #!/bin/bash -e 1 #!/bin/bash -e 2 # SPDX-License-Identifier: GPL-2.0 2 # SPDX-License-Identifier: GPL-2.0 3 # 3 # 4 # This test checks that the network buffer sys 4 # This test checks that the network buffer sysctls are present 5 # in a network namespaces, and that they are r 5 # in a network namespaces, and that they are readonly. 6 6 7 source lib.sh 7 source lib.sh 8 8 9 cleanup() { 9 cleanup() { 10 cleanup_ns $test_ns 10 cleanup_ns $test_ns 11 } 11 } 12 12 13 trap cleanup EXIT 13 trap cleanup EXIT 14 14 15 fail() { 15 fail() { 16 echo "ERROR: $*" >&2 16 echo "ERROR: $*" >&2 17 exit 1 17 exit 1 18 } 18 } 19 19 20 setup_ns test_ns 20 setup_ns test_ns 21 21 22 for sc in {r,w}mem_{default,max}; do 22 for sc in {r,w}mem_{default,max}; do 23 # check that this is writable in a net 23 # check that this is writable in a netns 24 [ -w "/proc/sys/net/core/$sc" ] || 24 [ -w "/proc/sys/net/core/$sc" ] || 25 fail "$sc isn't writable in th 25 fail "$sc isn't writable in the init netns!" 26 26 27 # change the value in the host netns 27 # change the value in the host netns 28 sysctl -qw "net.core.$sc=300000" || 28 sysctl -qw "net.core.$sc=300000" || 29 fail "Can't write $sc in init 29 fail "Can't write $sc in init netns!" 30 30 31 # check that the value is read from th 31 # check that the value is read from the init netns 32 [ "$(ip netns exec $test_ns sysctl -n 32 [ "$(ip netns exec $test_ns sysctl -n "net.core.$sc")" -eq 300000 ] || 33 fail "Value for $sc mismatch!" 33 fail "Value for $sc mismatch!" 34 34 35 # check that this isn't writable in a 35 # check that this isn't writable in a netns 36 ip netns exec $test_ns [ -w "/proc/sys 36 ip netns exec $test_ns [ -w "/proc/sys/net/core/$sc" ] && 37 fail "$sc is writable in a net 37 fail "$sc is writable in a netns!" 38 done 38 done 39 39 40 echo 'Test passed OK' 40 echo 'Test passed OK'
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.