1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 4 source lib.sh 5 set -o pipefail 6 7 DEV=dummy-dev0 8 DEV2=dummy-dev1 9 ALT_NAME=some-alt-name 10 11 RET_CODE=0 12 13 cleanup() { 14 cleanup_ns $NS $test_ns 15 } 16 17 trap cleanup EXIT 18 19 fail() { 20 echo "ERROR: ${1:-unexpected return code} (ret: $_)" >&2 21 RET_CODE=1 22 } 23 24 setup_ns NS test_ns 25 26 # 27 # Test basic move without a rename 28 # 29 ip -netns $NS link add name $DEV type dummy || fail 30 ip -netns $NS link set dev $DEV netns $test_ns || 31 fail "Can't perform a netns move" 32 ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move" 33 ip -netns $test_ns link del $DEV || fail 34 35 # 36 # Test move with a conflict 37 # 38 ip -netns $test_ns link add name $DEV type dummy 39 ip -netns $NS link add name $DEV type dummy || fail 40 ip -netns $NS link set dev $DEV netns $test_ns 2> /dev/null && 41 fail "Performed a netns move with a name conflict" 42 ip -netns $test_ns link show dev $DEV >> /dev/null || fail "Device not found after move" 43 ip -netns $NS link del $DEV || fail 44 ip -netns $test_ns link del $DEV || fail 45 46 # 47 # Test move with a conflict and rename 48 # 49 ip -netns $test_ns link add name $DEV type dummy 50 ip -netns $NS link add name $DEV type dummy || fail 51 ip -netns $NS link set dev $DEV netns $test_ns name $DEV2 || 52 fail "Can't perform a netns move with rename" 53 ip -netns $test_ns link del $DEV2 || fail 54 ip -netns $test_ns link del $DEV || fail 55 56 # 57 # Test dup alt-name with netns move 58 # 59 ip -netns $test_ns link add name $DEV type dummy || fail 60 ip -netns $test_ns link property add dev $DEV altname $ALT_NAME || fail 61 ip -netns $NS link add name $DEV2 type dummy || fail 62 ip -netns $NS link property add dev $DEV2 altname $ALT_NAME || fail 63 64 ip -netns $NS link set dev $DEV2 netns $test_ns 2> /dev/null && 65 fail "Moved with alt-name dup" 66 67 ip -netns $test_ns link del $DEV || fail 68 ip -netns $NS link del $DEV2 || fail 69 70 # 71 # Test creating alt-name in one net-ns and using in another 72 # 73 ip -netns $NS link add name $DEV type dummy || fail 74 ip -netns $NS link property add dev $DEV altname $ALT_NAME || fail 75 ip -netns $NS link set dev $DEV netns $test_ns || fail 76 ip -netns $test_ns link show dev $ALT_NAME >> /dev/null || fail "Can't find alt-name after move" 77 ip -netns $NS link show dev $ALT_NAME 2> /dev/null && 78 fail "Can still find alt-name after move" 79 ip -netns $test_ns link del $DEV || fail 80 81 echo -ne "$(basename $0) \t\t\t\t" 82 if [ $RET_CODE -eq 0 ]; then 83 echo "[ OK ]" 84 else 85 echo "[ FAIL ]" 86 fi 87 exit $RET_CODE
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.