1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/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
|