selftests: net: Test headroom handling of ip6_gre devices
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>
This commit is contained in:
parent
16572a48b4
commit
99672eb6c6
|
@ -0,0 +1,65 @@
|
|||
#!/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
|
Loading…
Reference in New Issue