tools/testing/selftests/net/netfilter/conntrack_tcp_unreplied.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/netfilter/conntrack_tcp_unreplied.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/net/netfilter/conntrack_tcp_unreplied.sh
Extension
.sh
Size
3773 bytes
Lines
165
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# Check that UNREPLIED tcp conntrack will eventually timeout.
#

source lib.sh

if ! nft --version > /dev/null 2>&1;then
	echo "SKIP: Could not run test without nft tool"
	exit $ksft_skip
fi

if ! conntrack --version > /dev/null 2>&1;then
	echo "SKIP: Could not run test without conntrack tool"
	exit $ksft_skip
fi

ret=0

cleanup() {
	ip netns pids "$ns1" | xargs kill 2>/dev/null
	ip netns pids "$ns2" | xargs kill 2>/dev/null

	cleanup_all_ns
}

ipv4() {
    echo -n 192.168."$1".2
}

check_counter()
{
	ns=$1
	name=$2
	expect=$3
	local lret=0

	if ! ip netns exec "$ns2" nft list counter inet filter "$name" | grep -q "$expect"; then
		echo "ERROR: counter $name in $ns2 has unexpected value (expected $expect)" 1>&2
		ip netns exec "$ns2" nft list counter inet filter "$name" 1>&2
		lret=1
	fi

	return $lret
}

trap cleanup EXIT

# Create test namespaces
setup_ns ns1 ns2

# Connect the namespace to the host using a veth pair
ip -net "$ns1" link add name veth1 type veth peer name veth2
ip -net "$ns1" link set netns "$ns2" dev veth2

ip -net "$ns1" link set up dev lo
ip -net "$ns2" link set up dev lo
ip -net "$ns1" link set up dev veth1
ip -net "$ns2" link set up dev veth2

ip -net "$ns2" addr add 10.11.11.2/24 dev veth2
ip -net "$ns2" route add default via 10.11.11.1

ip netns exec "$ns2" sysctl -q net.ipv4.conf.veth2.forwarding=1

# add a rule inside NS so we enable conntrack
ip netns exec "$ns1" nft -f - <<EOF
table inet filter {
	chain input {

Annotation

Implementation Notes