Skip to content

Commit

Permalink
selftests: net: Test headroom handling of ip6_gre devices
Browse files Browse the repository at this point in the history
Commit 5691484 ("net: ip6_gre: Fix headroom request in
ip6erspan_tunnel_xmit()") and commit 01b8d06 ("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>
  • Loading branch information
Petr Machata authored and David S. Miller committed Jun 26, 2018
1 parent 16572a4 commit 99672eb
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions tools/testing/selftests/net/ip6_gre_headroom.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 99672eb

Please sign in to comment.