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.

Dependency Surface

Detected Declarations

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

Implementation Notes