You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (c) 2018 Oracle and/or its affiliates. All Rights Reserved.
|
|
|
|
TST_SETUP="setup"
|
|
TST_TESTFUNC="test"
|
|
TST_CLEANUP="cleanup"
|
|
TST_CNT=3
|
|
TST_MIN_KVER="4.1"
|
|
TST_NEEDS_TMPDIR=1
|
|
TST_NEEDS_ROOT=1
|
|
TST_NEEDS_DRIVERS="mpls_router"
|
|
TST_NEEDS_CMDS="sysctl modprobe"
|
|
|
|
. tst_net.sh
|
|
|
|
cleanup()
|
|
{
|
|
ip -f mpls route flush dev lo > /dev/null 2>&1
|
|
ip -f mpls route flush dev $(tst_iface) > /dev/null 2>&1
|
|
}
|
|
|
|
setup()
|
|
{
|
|
ROD modprobe mpls_router
|
|
}
|
|
|
|
test1()
|
|
{
|
|
ROD sysctl -q net.mpls.platform_labels=0xfffff
|
|
ROD ip -f mpls route add 0xffffe dev lo
|
|
ROD ip -f mpls route show \> /dev/null
|
|
ROD ip -f mpls route del 0xffffe dev lo
|
|
tst_res TPASS "added label 0xffffe to lo dev"
|
|
}
|
|
|
|
test2()
|
|
{
|
|
ROD sysctl -q net.mpls.platform_labels=0xffffe
|
|
ip -f mpls route add 0xffffe dev lo > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
tst_res TFAIL "can add label that is >= platform_labels"
|
|
return
|
|
fi
|
|
|
|
tst_res TPASS "can't add label >= platform_lables"
|
|
}
|
|
|
|
test3()
|
|
{
|
|
local start=16
|
|
local end=$((start + NS_TIMES))
|
|
|
|
ROD sysctl -q net.mpls.platform_labels=$((end + 1))
|
|
tst_res TINFO "creating mpls routes with labels from $start..$end"
|
|
for l in $(seq $start $end); do
|
|
ROD ip -f mpls route add $l dev $(tst_iface)
|
|
done
|
|
|
|
tst_res TINFO "listing created routes"
|
|
ROD ip -f mpls route show \> /dev/null
|
|
|
|
tst_res TINFO "removing the routes"
|
|
for l in $(seq $start $end); do
|
|
ROD ip -f mpls route del $l dev $(tst_iface)
|
|
done
|
|
tst_res TPASS "created and removed mpls routes"
|
|
}
|
|
|
|
tst_run
|