1*49cdfc7eSAndroid Build Coastguard Worker#!/bin/sh 2*49cdfc7eSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0-or-later 3*49cdfc7eSAndroid Build Coastguard Worker# Copyright (c) 2018 Oracle and/or its affiliates. All Rights Reserved. 4*49cdfc7eSAndroid Build Coastguard Worker 5*49cdfc7eSAndroid Build Coastguard WorkerTST_SETUP="setup" 6*49cdfc7eSAndroid Build Coastguard WorkerTST_TESTFUNC="do_test" 7*49cdfc7eSAndroid Build Coastguard WorkerTST_CLEANUP="cleanup" 8*49cdfc7eSAndroid Build Coastguard Worker 9*49cdfc7eSAndroid Build Coastguard Workercleanup() 10*49cdfc7eSAndroid Build Coastguard Worker{ 11*49cdfc7eSAndroid Build Coastguard Worker ip route del $ip_rmt/$mask > /dev/null 2>&1 12*49cdfc7eSAndroid Build Coastguard Worker tst_rhost_run -c "ip route del $ip_loc/$mask" > /dev/null 13*49cdfc7eSAndroid Build Coastguard Worker 14*49cdfc7eSAndroid Build Coastguard Worker [ -n "$ip_loc" ] && ip addr del $ip_loc/$mask dev lo > /dev/null 2>&1 15*49cdfc7eSAndroid Build Coastguard Worker [ -n "$ip_rmt" ] && tst_rhost_run -c "ip addr del $ip_rmt/$mask dev lo" > \ 16*49cdfc7eSAndroid Build Coastguard Worker /dev/null 2>&1 17*49cdfc7eSAndroid Build Coastguard Worker 18*49cdfc7eSAndroid Build Coastguard Worker mpls_cleanup 19*49cdfc7eSAndroid Build Coastguard Worker} 20*49cdfc7eSAndroid Build Coastguard Worker 21*49cdfc7eSAndroid Build Coastguard Workersetup() 22*49cdfc7eSAndroid Build Coastguard Worker{ 23*49cdfc7eSAndroid Build Coastguard Worker mpls_setup 61 24*49cdfc7eSAndroid Build Coastguard Worker 25*49cdfc7eSAndroid Build Coastguard Worker ip_loc=$(tst_ipaddr_un) 26*49cdfc7eSAndroid Build Coastguard Worker ip_rmt=$(tst_ipaddr_un rhost) 27*49cdfc7eSAndroid Build Coastguard Worker [ -n "$TST_IPV6" ] && mask=128 || mask=32 28*49cdfc7eSAndroid Build Coastguard Worker 29*49cdfc7eSAndroid Build Coastguard Worker ROD ip addr add $ip_loc/$mask dev lo 30*49cdfc7eSAndroid Build Coastguard Worker ROD ip route add $ip_rmt/$mask encap mpls 50 via inet$TST_IPV6 $(tst_ipaddr rhost) 31*49cdfc7eSAndroid Build Coastguard Worker ROD ip -f mpls route add 60 dev lo 32*49cdfc7eSAndroid Build Coastguard Worker 33*49cdfc7eSAndroid Build Coastguard Worker tst_rhost_run -s -c "ip addr add $ip_rmt/$mask dev lo" 34*49cdfc7eSAndroid Build Coastguard Worker tst_rhost_run -s -c "ip route add $ip_loc/$mask encap mpls 60 via inet$TST_IPV6 $(tst_ipaddr)" 35*49cdfc7eSAndroid Build Coastguard Worker tst_rhost_run -s -c "ip -f mpls route add 50 dev lo" 36*49cdfc7eSAndroid Build Coastguard Worker} 37*49cdfc7eSAndroid Build Coastguard Worker 38*49cdfc7eSAndroid Build Coastguard Workerdo_test() 39*49cdfc7eSAndroid Build Coastguard Worker{ 40*49cdfc7eSAndroid Build Coastguard Worker local type=$2 41*49cdfc7eSAndroid Build Coastguard Worker local max_size=$TST_NET_MAX_PKT 42*49cdfc7eSAndroid Build Coastguard Worker 43*49cdfc7eSAndroid Build Coastguard Worker if [ "$type" = "icmp" ]; then 44*49cdfc7eSAndroid Build Coastguard Worker tst_ping -I $ip_loc -H $ip_rmt -s "10 100 1000 2000 $max_size" 45*49cdfc7eSAndroid Build Coastguard Worker else 46*49cdfc7eSAndroid Build Coastguard Worker tst_netload -S $ip_loc -H $ip_rmt -T $type -n 10 -N 10 47*49cdfc7eSAndroid Build Coastguard Worker tst_netload -S $ip_loc -H $ip_rmt -T $type -A $max_size 48*49cdfc7eSAndroid Build Coastguard Worker fi 49*49cdfc7eSAndroid Build Coastguard Worker} 50*49cdfc7eSAndroid Build Coastguard Worker 51*49cdfc7eSAndroid Build Coastguard Worker. mpls_lib.sh 52*49cdfc7eSAndroid Build Coastguard Workertst_run 53