tools/testing/selftests/rdma/rxe_ipv6.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/rdma/rxe_ipv6.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/rdma/rxe_ipv6.sh- Extension
.sh- Size
- 1766 bytes
- Lines
- 66
- 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.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#!/bin/bash
# Configuration
NS_NAME="net6"
VETH_HOST="veth0"
VETH_NS="veth1"
RXE_NAME="rxe6"
PORT=4791
IP6_ADDR="2001:db8::1/64"
source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
exec > /dev/null
# Cleanup function to run on exit (even on failure)
cleanup() {
ip netns del "$NS_NAME" 2>/dev/null
modprobe -r rdma_rxe 2>/dev/null
echo "Done."
}
trap cleanup EXIT
# 1. Prerequisites check
for mod in tun veth rdma_rxe; do
if ! modinfo "$mod" >/dev/null 2>&1; then
echo "SKIP: Kernel module '$mod' not found." >&2
exit $KSFT_SKIP
fi
done
modprobe rdma_rxe
# 2. Setup Namespace and Networking
echo "Setting up IPv6 network namespace..."
ip netns add "$NS_NAME"
ip link add "$VETH_HOST" type veth peer name "$VETH_NS"
ip link set "$VETH_NS" netns "$NS_NAME"
ip netns exec "$NS_NAME" ip addr add "$IP6_ADDR" dev "$VETH_NS"
ip netns exec "$NS_NAME" ip link set "$VETH_NS" up
ip link set "$VETH_HOST" up
# 3. Add RDMA Link
echo "Adding RDMA RXE link..."
if ! ip netns exec "$NS_NAME" rdma link add "$RXE_NAME" type rxe netdev "$VETH_NS"; then
echo "Error: Failed to create RXE link."
exit 1
fi
# 4. Verification: Port should be listening
# Using -H to skip headers and -q for quiet exit codes
if ! ip netns exec "$NS_NAME" ss -Hul6n sport = :$PORT | grep -q ":$PORT"; then
echo "Error: UDP port $PORT is NOT listening after link creation."
exit 1
fi
echo "Verified: Port $PORT is active."
# 5. Removal and Verification
echo "Deleting RDMA link..."
ip netns exec "$NS_NAME" rdma link del "$RXE_NAME"
if ip netns exec "$NS_NAME" ss -Hul6n sport = :$PORT | grep -q ":$PORT"; then
echo "Error: UDP port $PORT still active after link deletion."
exit 1
fi
echo "Verified: Port $PORT closed successfully."
Annotation
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.