tools/testing/selftests/drivers/net/team/transmit_failover.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/drivers/net/team/transmit_failover.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/drivers/net/team/transmit_failover.sh
Extension
.sh
Size
4504 bytes
Lines
159
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

# These tests verify the basic failover capability of the team driver via the
# `enabled` team driver option across different team driver modes. This does not
# rely on teamd, and instead just uses teamnl to set the `enabled` option
# directly.
#
# Topology:
#
#  +-------------------------+  NS1
#  |        test_team1       |
#  |            +            |
#  |      eth0  |  eth1      |
#  |        +---+---+        |
#  |        |       |        |
#  +-------------------------+
#           |       |
#  +-------------------------+  NS2
#  |        |       |        |
#  |        +-------+        |
#  |      eth0  |  eth1      |
#  |            +            |
#  |        test_team2       |
#  +-------------------------+

export ALL_TESTS="team_test_failover"

test_dir="$(dirname "$0")"
# shellcheck disable=SC1091
source "${test_dir}/../../../net/lib.sh"
# shellcheck disable=SC1091
source "${test_dir}/team_lib.sh"

NS1=""
NS2=""
export NODAD="nodad"
PREFIX_LENGTH="64"
NS1_IP="fd00::1"
NS2_IP="fd00::2"
NS1_IP4="192.168.0.1"
NS2_IP4="192.168.0.2"
MEMBERS=("eth0" "eth1")

while getopts "4" opt; do
	case $opt in
		4)
			echo "IPv4 mode selected."
			export NODAD=
			PREFIX_LENGTH="24"
			NS1_IP="${NS1_IP4}"
			NS2_IP="${NS2_IP4}"
			;;
		\?)
			echo "Invalid option: -$OPTARG" >&2
			exit 1
			;;
	esac
done

# Create the network namespaces, veth pair, and team devices in the specified
# mode.
# Globals:
#   RET - Used by test infra, set by `check_err` functions.
# Arguments:
#   mode - The team driver mode to use for the team devices.
environment_create()
{
	trap cleanup_all_ns EXIT
	setup_ns ns1 ns2

Annotation

Implementation Notes