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 
8 ALL_TESTS="
9 	gre_hier
10 	gre_mtu_change
11 	gre_hier_remote_change
12 "
13 
14 NUM_NETIFS=6
15 source lib.sh
16 source ip6gre_lib.sh
17 
18 setup_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 key 22
34 	sw2_hierarchical_create $ol2 $ul2 key 22
35 }
36 
37 gre_hier()
38 {
39 	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with key"
40 	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with key"
41 }
42 
43 gre_mtu_change()
44 {
45 	test_mtu_change gre
46 }
47 
48 gre_hier_remote_change()
49 {
50 	hier_remote_change
51 
52 	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with key (new remote)"
53 	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with key (new remote)"
54 
55 	hier_remote_restore
56 
57 	test_traffic_ip4ip6 "GRE hierarchical IPv4-in-IPv6 with key (old remote)"
58 	test_traffic_ip6ip6 "GRE hierarchical IPv6-in-IPv6 with key (old remote)"
59 }
60 
61 cleanup()
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 
73 trap cleanup EXIT
74 
75 setup_prepare
76 setup_wait
77 tests_run
78 
79 exit $EXIT_STATUS
80