1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4# Test IP-in-IP GRE tunnel with key.
5# This test uses flat topology for IP tunneling tests. See ip6gre_lib.sh for
6# more details.
7
8ALL_TESTS="
9	gre_flat
10	gre_mtu_change
11	gre_flat_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_flat_create $ol1 $ul1 key 233
34	sw2_flat_create $ol2 $ul2 key 233
35}
36
37gre_flat()
38{
39	test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with key"
40	test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with key"
41}
42
43gre_mtu_change()
44{
45	test_mtu_change
46}
47
48gre_flat_remote_change()
49{
50	flat_remote_change
51
52	test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with key (new remote)"
53	test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with key (new remote)"
54
55	flat_remote_restore
56
57	test_traffic_ip4ip6 "GRE flat IPv4-in-IPv6 with key (old remote)"
58	test_traffic_ip6ip6 "GRE flat IPv6-in-IPv6 with key (old remote)"
59}
60
61cleanup()
62{
63	pre_cleanup
64
65	sw2_flat_destroy $ol2 $ul2
66	sw1_flat_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