1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (c) Köry Maincent <[email protected]> 2020 4# Copyright (c) 2015 Red Hat, Inc. 5# Copyright (c) Linux Test Project, 2015-2023 6# 7# Tests that a separate network namespace cannot affect sysfs contents 8# of the main namespace. 9 10TST_NEEDS_DRIVERS="dummy" 11TST_CLEANUP=do_cleanup 12TST_SETUP=do_setup 13TST_TESTFUNC=do_test 14TST_NEEDS_TMPDIR=1 15 16do_setup() 17{ 18 NS_TYPE="net,mnt" 19 DUMMYDEV_HOST="dummy_test0" 20 DUMMYDEV="dummy_test1" 21 22 NS_HANDLE=$(tst_ns_create $NS_TYPE) 23 if [ $? -eq 1 ]; then 24 tst_res TINFO "$NS_HANDLE" 25 tst_brk TBROK "unable to create a new network namespace" 26 fi 27 28 ip link add $DUMMYDEV_HOST type dummy || \ 29 tst_brk TBROK "failed to add a new (host) dummy device" 30 31 tst_ns_exec $NS_HANDLE $NS_TYPE mount --make-rprivate /sys 32 tst_ns_exec $NS_HANDLE $NS_TYPE ip link add $DUMMYDEV type dummy || \ 33 tst_brk TBROK "failed to add a new dummy device" 34 tst_ns_exec $NS_HANDLE $NS_TYPE mount -t sysfs none /sys 2>/dev/null 35} 36 37do_cleanup() 38{ 39 ip link del $DUMMYDEV_HOST 2>/dev/null 40 ip link del $DUMMYDEV 2>/dev/null 41 kill -9 $NS_HANDLE 2>/dev/null 42} 43 44do_test() 45{ 46 EXPECT_PASS tst_ns_exec $NS_HANDLE $NS_TYPE test -e /sys/class/net/$DUMMYDEV 47 EXPECT_FAIL tst_ns_exec $NS_HANDLE $NS_TYPE test -e /sys/class/net/$DUMMYDEV_HOST 48 EXPECT_FAIL test -e /sys/class/net/$DUMMYDEV 49} 50 51. tst_test.sh 52tst_run 53