mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
#!/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
|
|
|