• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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="do_test"
7TST_CLEANUP="cleanup"
8
9. mpls_lib.sh
10
11cleanup()
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
23setup()
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
40do_test()
41{
42	local type=$2
43	local max_size=$TST_NET_MAX_PKT
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
53tst_run
54