forked from Minki/linux
99672eb6c6
Commit5691484df9
("net: ip6_gre: Fix headroom request in ip6erspan_tunnel_xmit()") and commit01b8d064d5
("net: ip6_gre: Request headroom in __gre6_xmit()") fix problems in reserving headroom in the packets tunneled through ip6gre/tap and ip6erspan netdevices. These two patches included snippets that reproduced the issues. This patch elevates the snippets to a full-fledged test case. Suggested-by: David Miller <davem@davemloft.net> Signed-off-by: Petr Machata <petrm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
66 lines
1.4 KiB
Bash
Executable File
66 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Test that enough headroom is reserved for the first packet passing through an
|
|
# IPv6 GRE-like netdevice.
|
|
|
|
setup_prepare()
|
|
{
|
|
ip link add h1 type veth peer name swp1
|
|
ip link add h3 type veth peer name swp3
|
|
|
|
ip link set dev h1 up
|
|
ip address add 192.0.2.1/28 dev h1
|
|
|
|
ip link add dev vh3 type vrf table 20
|
|
ip link set dev h3 master vh3
|
|
ip link set dev vh3 up
|
|
ip link set dev h3 up
|
|
|
|
ip link set dev swp3 up
|
|
ip address add dev swp3 2001:db8:2::1/64
|
|
ip address add dev swp3 2001:db8:2::3/64
|
|
|
|
ip link set dev swp1 up
|
|
tc qdisc add dev swp1 clsact
|
|
|
|
ip link add name er6 type ip6erspan \
|
|
local 2001:db8:2::1 remote 2001:db8:2::2 oseq okey 123
|
|
ip link set dev er6 up
|
|
|
|
ip link add name gt6 type ip6gretap \
|
|
local 2001:db8:2::3 remote 2001:db8:2::4
|
|
ip link set dev gt6 up
|
|
|
|
sleep 1
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
ip link del dev gt6
|
|
ip link del dev er6
|
|
ip link del dev swp1
|
|
ip link del dev swp3
|
|
ip link del dev vh3
|
|
}
|
|
|
|
test_headroom()
|
|
{
|
|
local type=$1; shift
|
|
local tundev=$1; shift
|
|
|
|
tc filter add dev swp1 ingress pref 1000 matchall skip_hw \
|
|
action mirred egress mirror dev $tundev
|
|
ping -I h1 192.0.2.2 -c 1 -w 2 &> /dev/null
|
|
tc filter del dev swp1 ingress pref 1000
|
|
|
|
# If it doesn't panic, it passes.
|
|
printf "TEST: %-60s [PASS]\n" "$type headroom"
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
setup_prepare
|
|
test_headroom ip6gretap gt6
|
|
test_headroom ip6erspan er6
|