tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh- Extension
.sh- Size
- 1660 bytes
- Lines
- 102
- 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
TC_POLICE_NUM_NETIFS=2
tc_police_h1_create()
{
simple_if_init $h1
}
tc_police_h1_destroy()
{
simple_if_fini $h1
}
tc_police_switch_create()
{
simple_if_init $swp1
tc qdisc add dev $swp1 clsact
}
tc_police_switch_destroy()
{
tc qdisc del dev $swp1 clsact
simple_if_fini $swp1
}
tc_police_addr()
{
local num=$1; shift
printf "2001:db8:1::%x" $num
}
tc_police_rules_create()
{
local count=$1; shift
local should_fail=$1; shift
TC_POLICE_BATCH_FILE="$(mktemp)"
for ((i = 0; i < count; ++i)); do
cat >> $TC_POLICE_BATCH_FILE <<-EOF
filter add dev $swp1 ingress \
prot ipv6 \
pref 1000 \
flower skip_sw dst_ip $(tc_police_addr $i) \
action police rate 10mbit burst 100k \
conform-exceed drop/ok
EOF
done
tc -b $TC_POLICE_BATCH_FILE
check_err_fail $should_fail $? "Rule insertion"
}
__tc_police_test()
{
local count=$1; shift
local should_fail=$1; shift
tc_police_rules_create $count $should_fail
offload_count=$(tc -j filter show dev $swp1 ingress |
jq "[.[] | select(.options.in_hw == true)] | length")
((offload_count == count))
check_err_fail $should_fail $? "tc police offload count"
}
tc_police_test()
{
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.