tools/testing/selftests/net/forwarding/sch_ets_core.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/forwarding/sch_ets_core.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/net/forwarding/sch_ets_core.sh- Extension
.sh- Size
- 7451 bytes
- Lines
- 277
- 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
# SPDX-License-Identifier: GPL-2.0
# This is a template for ETS Qdisc test.
#
# This test sends from H1 several traffic streams with 802.1p-tagged packets.
# The tags are used at $swp1 to prioritize the traffic. Each stream is then
# queued at a different ETS band according to the assigned priority. After
# runnig for a while, counters at H2 are consulted to determine whether the
# traffic scheduling was according to the ETS configuration.
#
# This template is supposed to be embedded by a test driver, which implements
# statistics collection, any HW-specific stuff, and prominently configures the
# system to assure that there is overcommitment at $swp2. That is necessary so
# that the ETS traffic selection algorithm kicks in and has to schedule some
# traffic at the expense of other.
#
# A driver for veth-based testing is in sch_ets.sh, an example of a driver for
# an offloaded data path is in selftests/drivers/net/mlxsw/sch_ets.sh.
#
# +---------------------------------------------------------------------+
# | H1 |
# | + $h1.10 + $h1.11 + $h1.12 |
# | | 192.0.2.1/28 | 192.0.2.17/28 | 192.0.2.33/28 |
# | | egress-qos-map | egress-qos-map | egress-qos-map |
# | | 0:0 | 0:1 | 0:2 |
# | \____________________ | ____________________/ |
# | \|/ |
# | + $h1 |
# +---------------------------|-----------------------------------------+
# |
# +---------------------------|-----------------------------------------+
# | SW + $swp1 |
# | | >1Gbps |
# | ____________________/|\____________________ |
# | / | \ |
# | +--|----------------+ +--|----------------+ +--|----------------+ |
# | | + $swp1.10 | | + $swp1.11 | | + $swp1.12 | |
# | | ingress-qos-map| | ingress-qos-map| | ingress-qos-map| |
# | | 0:0 1:1 2:2 | | 0:0 1:1 2:2 | | 0:0 1:1 2:2 | |
# | | | | | | | |
# | | BR10 | | BR11 | | BR12 | |
# | | | | | | | |
# | | + $swp2.10 | | + $swp2.11 | | + $swp2.12 | |
# | +--|----------------+ +--|----------------+ +--|----------------+ |
# | \____________________ | ____________________/ |
# | \|/ |
# | + $swp2 |
# | | 1Gbps (ethtool or HTB qdisc) |
# | | qdisc ets quanta $W0 $W1 $W2 |
# | | priomap 0 1 2 |
# +---------------------------|-----------------------------------------+
# |
# +---------------------------|-----------------------------------------+
# | H2 + $h2 |
# | ____________________/|\____________________ |
# | / | \ |
# | + $h2.10 + $h2.11 + $h2.12 |
# | 192.0.2.2/28 192.0.2.18/28 192.0.2.34/28 |
# +---------------------------------------------------------------------+
NUM_NETIFS=4
CHECK_TC=yes
source $lib_dir/lib.sh
source $lib_dir/sch_ets_tests.sh
PARENT=root
QDISC_DEV=
sip()
{
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.