mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-31 08:28:13 +00:00
50b3ed57de
Adds a test that sends different types of packets over multiple tunnels and verifies that valid packets are dissected correctly. To do so, a tc-flower rule is added to drop packets on UDP src port 9, and packets are sent from ports 8, 9, and 10. Only the packets on port 9 should be dropped. Because tc-flower relies on the flow dissector to match flows, correct classification demonstrates correct dissection. Also add support logic to load the BPF program and to inject the test packets. Signed-off-by: Petar Penkov <ppenkov@google.com> Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
54 lines
1.3 KiB
Bash
Executable file
54 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# add private ipv4 and ipv6 addresses to loopback
|
|
|
|
readonly V6_INNER='100::a/128'
|
|
readonly V4_INNER='192.168.0.1/32'
|
|
|
|
if getopts ":s" opt; then
|
|
readonly SIT_DEV_NAME='sixtofourtest0'
|
|
readonly V6_SIT='2::/64'
|
|
readonly V4_SIT='172.17.0.1/32'
|
|
shift
|
|
fi
|
|
|
|
fail() {
|
|
echo "error: $*" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
setup() {
|
|
ip -6 addr add "${V6_INNER}" dev lo || fail 'failed to setup v6 address'
|
|
ip -4 addr add "${V4_INNER}" dev lo || fail 'failed to setup v4 address'
|
|
|
|
if [[ -n "${V6_SIT}" ]]; then
|
|
ip link add "${SIT_DEV_NAME}" type sit remote any local any \
|
|
|| fail 'failed to add sit'
|
|
ip link set dev "${SIT_DEV_NAME}" up \
|
|
|| fail 'failed to bring sit device up'
|
|
ip -6 addr add "${V6_SIT}" dev "${SIT_DEV_NAME}" \
|
|
|| fail 'failed to setup v6 SIT address'
|
|
ip -4 addr add "${V4_SIT}" dev "${SIT_DEV_NAME}" \
|
|
|| fail 'failed to setup v4 SIT address'
|
|
fi
|
|
|
|
sleep 2 # avoid race causing bind to fail
|
|
}
|
|
|
|
cleanup() {
|
|
if [[ -n "${V6_SIT}" ]]; then
|
|
ip -4 addr del "${V4_SIT}" dev "${SIT_DEV_NAME}"
|
|
ip -6 addr del "${V6_SIT}" dev "${SIT_DEV_NAME}"
|
|
ip link del "${SIT_DEV_NAME}"
|
|
fi
|
|
|
|
ip -4 addr del "${V4_INNER}" dev lo
|
|
ip -6 addr del "${V6_INNER}" dev lo
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
setup
|
|
"$@"
|
|
exit "$?"
|