tools/testing/selftests/net/rds/test.py
Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/rds/test.py
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/net/rds/test.py- Extension
.py- Size
- 18393 bytes
- Lines
- 557
- 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
#! /usr/bin/env python3
# SPDX-License-Identifier: GPL-2.0
"""
This module provides functional testing for the net/rds component.
"""
import argparse
import atexit
import ctypes
import errno
import hashlib
import os
import select
import re
import signal
import socket
import subprocess
import sys
import time
# Allow utils module to be imported from different directory
this_dir = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(this_dir, "../"))
# pylint: disable-next=wrong-import-position,import-error,no-name-in-module
from lib.py.utils import ip, cmd # noqa: E402
# pylint: disable-next=wrong-import-position,import-error,no-name-in-module
from lib.py.ksft import ksft_pr # noqa: E402
libc = ctypes.cdll.LoadLibrary('libc.so.6')
setns = libc.setns
NET0 = 'net0'
NET1 = 'net1'
VETH0 = 'veth0'
VETH1 = 'veth1'
tcpdump_procs = []
tcp_addrs = [
# we technically don't need different port numbers, but this will
# help identify traffic in the network analyzer
('10.0.0.1', 10000),
('10.0.0.2', 20000),
]
# RDMA network configs
RXE_DEV0 = 'rxe0'
RXE_DEV1 = 'rxe1'
VETH_RDMA0 = 'veth_rdma0'
VETH_RDMA1 = 'veth_rdma1'
rdma_addrs = [
('10.0.0.3', 30000),
('10.0.0.4', 30000),
]
# send_packets flag space
OP_FLAG_TCP = 0x1
OP_FLAG_RDMA = 0x2
# from include/uapi/linux/rds.h: SO_RDS_TRANSPORT pins a socket to a
# specific RDS transport so connection setup cannot silently fall back
# to another (e.g. loopback) transport.
SOL_RDS = 276
SO_RDS_TRANSPORT = 8
RDS_TRANS_TCP = 2
RDS_TRANS_IB = 0
signal_handler_label = ""
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.