Home | History | Annotate | Download | only in mpls
      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 
      5 TST_SETUP="setup"
      6 TST_TESTFUNC="do_test"
      7 TST_CLEANUP="cleanup"
      8 
      9 . mpls_lib.sh
     10 
     11 cleanup()
     12 {
     13 	ip route del $ip_rmt/$mask > /dev/null 2>&1
     14 	tst_rhost_run -c "ip route del $ip_loc/$mask" > /dev/null
     15 
     16 	[ -n "$ip_loc" ] && ip addr del $ip_loc/$mask dev lo > /dev/null 2>&1
     17 	[ -n "$ip_rmt" ] && tst_rhost_run -c "ip addr del $ip_rmt/$mask dev lo" > \
     18 					      /dev/null 2>&1
     19 
     20 	mpls_cleanup
     21 }
     22 
     23 setup()
     24 {
     25 	mpls_setup 61
     26 
     27 	ip_loc=$(tst_ipaddr_un)
     28 	ip_rmt=$(tst_ipaddr_un rhost)
     29 	[ -n "$TST_IPV6" ] && mask=128 || mask=32
     30 
     31 	ROD ip addr add $ip_loc/$mask dev lo
     32 	ROD ip route add $ip_rmt/$mask encap mpls 50 via inet$TST_IPV6 $(tst_ipaddr rhost)
     33 	ROD ip -f mpls route add 60 dev lo
     34 
     35 	tst_rhost_run -s -c "ip addr add $ip_rmt/$mask dev lo"
     36 	tst_rhost_run -s -c "ip route add $ip_loc/$mask encap mpls 60 via inet$TST_IPV6 $(tst_ipaddr)"
     37 	tst_rhost_run -s -c "ip -f mpls route add 50 dev lo"
     38 }
     39 
     40 do_test()
     41 {
     42 	local type=$2
     43 	local max_size=10000
     44 
     45 	if [ "$type" = "icmp" ]; then
     46 		tst_ping $ip_loc $ip_rmt 10 100 1000 2000 $max_size
     47 	else
     48 		tst_netload -S $ip_loc -H $ip_rmt -T $type -n 10 -N 10
     49 		tst_netload -S $ip_loc -H $ip_rmt -T $type -A $max_size
     50 	fi
     51 }
     52 
     53 tst_run
     54