xref: /linux/tools/testing/selftests/net/forwarding/ip6gre_hier.sh (revision b919f1e54e11662d5aa9582b514431c168c0bed8)
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4# Test IP-in-IP GRE tunnels without key.
5# This test uses hierarchical topology for IP tunneling tests. See
6# ip6gre_lib.sh for more details.
7
8ALL_TESTS="
9	gre_hier
10	gre_mtu_change
11	gre_hier_remote_change
12"
13
14NUM_NETIFS=6
15source lib.sh
16source ip6gre_lib.sh
17
18setup_prepare()
19{
20	h1=${NETIFS[p1]}
21	ol1=${NETIFS[p2]}
22
23	ul1=${NETIFS[p3]}
24	ul2=${NETIFS[p4]}
25
26	ol2=${NETIFS[p5]}
27	h2=${NETIFS[p6]}
28
29	forwarding_enable
30	vrf_prepare
31	h1_create
32	h2_create
33	sw1_hierarchical_create $ol1 $ul1
34	sw2_hierarchical_create $ol2 $ul2
35}
36
37gre_hier()
38{
39	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6"
40	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6"
41}
42
43gre_mtu_change()
44{
45	test_mtu_change gre
46}
47
48gre_hier_remote_change()
49{
50	hier_remote_change
51
52	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 (new remote)"
53	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 (new remote)"
54
55	hier_remote_restore
56
57	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 (old remote)"
58	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 (old remote)"
59}
60
61cleanup()
62{
63	pre_cleanup
64
65	sw2_hierarchical_destroy $ol2 $ul2
66	sw1_hierarchical_destroy $ol1 $ul1
67	h2_destroy
68	h1_destroy
69	vrf_cleanup
70	forwarding_restore
71}
72
73trap cleanup EXIT
74
75setup_prepare
76setup_wait
77tests_run
78
79exit $EXIT_STATUS
80