41 lines · bash
1#!/bin/bash -e2# SPDX-License-Identifier: GPL-2.03#4# This test checks that the network buffer sysctls are present5# in a network namespaces, and that they are readonly.6 7source lib.sh8 9cleanup() {10 cleanup_ns $test_ns11}12 13trap cleanup EXIT14 15fail() {16 echo "ERROR: $*" >&217 exit 118}19 20setup_ns test_ns21 22for sc in {r,w}mem_{default,max}; do23 # check that this is writable in a netns24 [ -w "/proc/sys/net/core/$sc" ] ||25 fail "$sc isn't writable in the init netns!"26 27 # change the value in the host netns28 sysctl -qw "net.core.$sc=300000" ||29 fail "Can't write $sc in init netns!"30 31 # check that the value is read from the init netns32 [ "$(ip netns exec $test_ns sysctl -n "net.core.$sc")" -eq 300000 ] ||33 fail "Value for $sc mismatch!"34 35 # check that this isn't writable in a netns36 ip netns exec $test_ns [ -w "/proc/sys/net/core/$sc" ] &&37 fail "$sc is writable in a netns!"38done39 40echo 'Test passed OK'41