tools/testing/selftests/drivers/net/team/propagation.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/drivers/net/team/propagation.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/drivers/net/team/propagation.sh- Extension
.sh- Size
- 2024 bytes
- Lines
- 81
- 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
# SPDX-License-Identifier: GPL-2.0
set -e
NSIM_LRO_ID=$((256 + RANDOM % 256))
NSIM_LRO_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_LRO_ID
NSIM_DEV_SYS_NEW=/sys/bus/netdevsim/new_device
NSIM_DEV_SYS_DEL=/sys/bus/netdevsim/del_device
cleanup()
{
set +e
ip link del dummyteam &>/dev/null
ip link del team0 &>/dev/null
echo $NSIM_LRO_ID > $NSIM_DEV_SYS_DEL
modprobe -r netdevsim
}
# Trigger LRO propagation to the lower.
# https://lore.kernel.org/netdev/aBvOpkIoxcr9PfDg@mini-arch/
team_lro()
{
# using netdevsim because it supports NETIF_F_LRO
NSIM_LRO_NAME=$(find $NSIM_LRO_SYS/net -maxdepth 1 -type d ! \
-path $NSIM_LRO_SYS/net -exec basename {} \;)
ip link add name team0 type team
ip link set $NSIM_LRO_NAME down
ip link set dev $NSIM_LRO_NAME master team0
ip link set team0 up
ethtool -K team0 large-receive-offload off
ip link del team0
}
# Trigger promisc propagation to the lower during IFLA_MASTER.
# https://lore.kernel.org/netdev/20250506032328.3003050-1-sdf@fomichev.me/
team_promisc()
{
ip link add name dummyteam type dummy
ip link add name team0 type team
ip link set dummyteam down
ip link set team0 promisc on
ip link set dev dummyteam master team0
ip link set team0 up
ip link del team0
ip link del dummyteam
}
# Trigger promisc propagation to the lower via netif_change_flags (aka
# ndo_change_rx_flags).
# https://lore.kernel.org/netdev/20250514220319.3505158-1-stfomichev@gmail.com/
team_change_flags()
{
ip link add name dummyteam type dummy
ip link add name team0 type team
ip link set dummyteam down
ip link set dev dummyteam master team0
ip link set team0 up
ip link set team0 promisc on
# Make sure we can add more L2 addresses without any issues.
ip link add link team0 address 00:00:00:00:00:01 team0.1 type macvlan
ip link set team0.1 up
ip link del team0.1
ip link del team0
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.