1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (c) 2018 Oracle and/or its affiliates. All Rights Reserved. 4 5TST_SETUP="setup" 6TST_TESTFUNC="test" 7TST_CLEANUP="cleanup" 8TST_CNT=3 9TST_MIN_KVER="4.1" 10TST_NEEDS_TMPDIR=1 11TST_NEEDS_ROOT=1 12TST_NEEDS_DRIVERS="mpls_router" 13TST_NEEDS_CMDS="sysctl modprobe" 14 15 16cleanup() 17{ 18 ip -f mpls route flush dev lo > /dev/null 2>&1 19 ip -f mpls route flush dev $(tst_iface) > /dev/null 2>&1 20} 21 22setup() 23{ 24 ROD modprobe mpls_router 25} 26 27test1() 28{ 29 ROD sysctl -q net.mpls.platform_labels=0xfffff 30 ROD ip -f mpls route add 0xffffe dev lo 31 ROD ip -f mpls route show \> /dev/null 32 ROD ip -f mpls route del 0xffffe dev lo 33 tst_res TPASS "added label 0xffffe to lo dev" 34} 35 36test2() 37{ 38 ROD sysctl -q net.mpls.platform_labels=0xffffe 39 ip -f mpls route add 0xffffe dev lo > /dev/null 2>&1 40 if [ $? -eq 0 ]; then 41 tst_res TFAIL "can add label that is >= platform_labels" 42 return 43 fi 44 45 tst_res TPASS "can't add label >= platform_lables" 46} 47 48test3() 49{ 50 local start=16 51 local end=$((start + NS_TIMES)) 52 53 ROD sysctl -q net.mpls.platform_labels=$((end + 1)) 54 tst_res TINFO "creating mpls routes with labels from $start..$end" 55 for l in $(seq $start $end); do 56 ROD ip -f mpls route add $l dev $(tst_iface) 57 done 58 59 tst_res TINFO "listing created routes" 60 ROD ip -f mpls route show \> /dev/null 61 62 tst_res TINFO "removing the routes" 63 for l in $(seq $start $end); do 64 ROD ip -f mpls route del $l dev $(tst_iface) 65 done 66 tst_res TPASS "created and removed mpls routes" 67} 68 69. tst_net.sh 70tst_run 71