15b5233fbSMatteo Croce#!/bin/bash -e 25b5233fbSMatteo Croce# SPDX-License-Identifier: GPL-2.0 35b5233fbSMatteo Croce# 45b5233fbSMatteo Croce# This test checks that the network buffer sysctls are present 55b5233fbSMatteo Croce# in a network namespaces, and that they are readonly. 65b5233fbSMatteo Croce 75b5233fbSMatteo Crocesource lib.sh 85b5233fbSMatteo Croce 95b5233fbSMatteo Crocecleanup() { 105b5233fbSMatteo Croce cleanup_ns $test_ns 115b5233fbSMatteo Croce} 125b5233fbSMatteo Croce 135b5233fbSMatteo Crocetrap cleanup EXIT 145b5233fbSMatteo Croce 155b5233fbSMatteo Crocefail() { 165b5233fbSMatteo Croce echo "ERROR: $*" >&2 175b5233fbSMatteo Croce exit 1 185b5233fbSMatteo Croce} 195b5233fbSMatteo Croce 205b5233fbSMatteo Crocesetup_ns test_ns 215b5233fbSMatteo Croce 225b5233fbSMatteo Crocefor sc in {r,w}mem_{default,max}; do 235b5233fbSMatteo Croce # check that this is writable in a netns 245b5233fbSMatteo Croce [ -w "/proc/sys/net/core/$sc" ] || 255b5233fbSMatteo Croce fail "$sc isn't writable in the init netns!" 265b5233fbSMatteo Croce 275b5233fbSMatteo Croce # change the value in the host netns 285b5233fbSMatteo Croce sysctl -qw "net.core.$sc=300000" || 295b5233fbSMatteo Croce fail "Can't write $sc in init netns!" 305b5233fbSMatteo Croce 315b5233fbSMatteo Croce # check that the value is read from the init netns 325b5233fbSMatteo Croce [ "$(ip netns exec $test_ns sysctl -n "net.core.$sc")" -eq 300000 ] || 335b5233fbSMatteo Croce fail "Value for $sc mismatch!" 345b5233fbSMatteo Croce 355b5233fbSMatteo Croce # check that this isn't writable in a netns 365b5233fbSMatteo Croce ip netns exec $test_ns [ -w "/proc/sys/net/core/$sc" ] && 375b5233fbSMatteo Croce fail "$sc is writable in a netns!" 385b5233fbSMatteo Crocedone 395b5233fbSMatteo Croce 405b5233fbSMatteo Croceecho 'Test passed OK' 41