1*053f45beSAndroid Build Coastguard Worker#!/bin/bash 2*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0 3*053f45beSAndroid Build Coastguard Worker 4*053f45beSAndroid Build Coastguard Workerlib_dir=$(dirname $0)/forwarding 5*053f45beSAndroid Build Coastguard Worker 6*053f45beSAndroid Build Coastguard WorkerALL_TESTS="altnames_test" 7*053f45beSAndroid Build Coastguard WorkerNUM_NETIFS=0 8*053f45beSAndroid Build Coastguard Workersource $lib_dir/lib.sh 9*053f45beSAndroid Build Coastguard Worker 10*053f45beSAndroid Build Coastguard WorkerDUMMY_DEV=dummytest 11*053f45beSAndroid Build Coastguard WorkerSHORT_NAME=shortname 12*053f45beSAndroid Build Coastguard WorkerLONG_NAME=someveryveryveryveryveryverylongname 13*053f45beSAndroid Build Coastguard Worker 14*053f45beSAndroid Build Coastguard Workeraltnames_test() 15*053f45beSAndroid Build Coastguard Worker{ 16*053f45beSAndroid Build Coastguard Worker RET=0 17*053f45beSAndroid Build Coastguard Worker local output 18*053f45beSAndroid Build Coastguard Worker local name 19*053f45beSAndroid Build Coastguard Worker 20*053f45beSAndroid Build Coastguard Worker ip link property add $DUMMY_DEV altname $SHORT_NAME 21*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to add short alternative name" 22*053f45beSAndroid Build Coastguard Worker 23*053f45beSAndroid Build Coastguard Worker output=$(ip -j -p link show $SHORT_NAME) 24*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to do link show with short alternative name" 25*053f45beSAndroid Build Coastguard Worker 26*053f45beSAndroid Build Coastguard Worker name=$(echo $output | jq -e -r ".[0].altnames[0]") 27*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to get short alternative name from link show JSON" 28*053f45beSAndroid Build Coastguard Worker 29*053f45beSAndroid Build Coastguard Worker [ "$name" == "$SHORT_NAME" ] 30*053f45beSAndroid Build Coastguard Worker check_err $? "Got unexpected short alternative name from link show JSON" 31*053f45beSAndroid Build Coastguard Worker 32*053f45beSAndroid Build Coastguard Worker ip -j -p link show $DUMMY_DEV &>/dev/null 33*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to do link show with original name" 34*053f45beSAndroid Build Coastguard Worker 35*053f45beSAndroid Build Coastguard Worker ip link property add $DUMMY_DEV altname $LONG_NAME 36*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to add long alternative name" 37*053f45beSAndroid Build Coastguard Worker 38*053f45beSAndroid Build Coastguard Worker output=$(ip -j -p link show $LONG_NAME) 39*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to do link show with long alternative name" 40*053f45beSAndroid Build Coastguard Worker 41*053f45beSAndroid Build Coastguard Worker name=$(echo $output | jq -e -r ".[0].altnames[1]") 42*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to get long alternative name from link show JSON" 43*053f45beSAndroid Build Coastguard Worker 44*053f45beSAndroid Build Coastguard Worker [ "$name" == "$LONG_NAME" ] 45*053f45beSAndroid Build Coastguard Worker check_err $? "Got unexpected long alternative name from link show JSON" 46*053f45beSAndroid Build Coastguard Worker 47*053f45beSAndroid Build Coastguard Worker ip link property del $DUMMY_DEV altname $SHORT_NAME 48*053f45beSAndroid Build Coastguard Worker check_err $? "Failed to delete short alternative name" 49*053f45beSAndroid Build Coastguard Worker 50*053f45beSAndroid Build Coastguard Worker ip -j -p link show $SHORT_NAME &>/dev/null 51*053f45beSAndroid Build Coastguard Worker check_fail $? "Unexpected success while trying to do link show with deleted short alternative name" 52*053f45beSAndroid Build Coastguard Worker 53*053f45beSAndroid Build Coastguard Worker # long name is left there on purpose to be removed alongside the device 54*053f45beSAndroid Build Coastguard Worker 55*053f45beSAndroid Build Coastguard Worker log_test "altnames test" 56*053f45beSAndroid Build Coastguard Worker} 57*053f45beSAndroid Build Coastguard Worker 58*053f45beSAndroid Build Coastguard Workersetup_prepare() 59*053f45beSAndroid Build Coastguard Worker{ 60*053f45beSAndroid Build Coastguard Worker ip link add name $DUMMY_DEV type dummy 61*053f45beSAndroid Build Coastguard Worker} 62*053f45beSAndroid Build Coastguard Worker 63*053f45beSAndroid Build Coastguard Workercleanup() 64*053f45beSAndroid Build Coastguard Worker{ 65*053f45beSAndroid Build Coastguard Worker pre_cleanup 66*053f45beSAndroid Build Coastguard Worker ip link del name $DUMMY_DEV 67*053f45beSAndroid Build Coastguard Worker} 68*053f45beSAndroid Build Coastguard Worker 69*053f45beSAndroid Build Coastguard Workertrap cleanup EXIT 70*053f45beSAndroid Build Coastguard Worker 71*053f45beSAndroid Build Coastguard Workersetup_prepare 72*053f45beSAndroid Build Coastguard Worker 73*053f45beSAndroid Build Coastguard Workertests_run 74*053f45beSAndroid Build Coastguard Worker 75*053f45beSAndroid Build Coastguard Workerexit $EXIT_STATUS 76