File Index
Files and directories
Sign in
FILE

port_scale.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/drivers/net/mlxsw/port_scale.sh BASH
 1#!/bin/bash
 2# SPDX-License-Identifier: GPL-2.0
 3
 4# Test for physical ports resource. The test splits each splittable port
 5# to its width and checks that eventually the number of physical ports equals
 6# the maximum number of physical ports.
 7
 8PORT_NUM_NETIFS=0
 9
10declare -a unsplit
11
12port_setup_prepare()
13{
14	:
15}
16
17port_cleanup()
18{
19	pre_cleanup
20
21	for port in "${unsplit[@]}"; do
22		devlink port unsplit $port
23		check_err $? "Did not unsplit $netdev"
24	done
25	unsplit=()
26}
27
28split_all_ports()
29{
30	local should_fail=$1; shift
31
32	# Loop over the splittable netdevs and create tuples of netdev along
33	# with its width. For example:
34	# '$netdev1 $count1 $netdev2 $count2...', when:
35	# $netdev1-2 are splittable netdevs in the device, and
36	# $count1-2 are the netdevs width respectively.
37	while read netdev count <<<$(
38		devlink -j port show |
39		jq -r '.[][] | select(.splittable==true) | "\(.netdev) \(.lanes)"'
40		)
41		[[ ! -z $netdev ]]
42	do
43		devlink port split $netdev count $count
44		check_err $? "Did not split $netdev into $count"
45		unsplit+=( "${netdev}s0" )
46	done
47}
48
49port_test()
50{
51	local max_ports=$1; shift
52	local should_fail=$1; shift
53
54	split_all_ports $should_fail
55
56	occ=$(devlink -j resource show $DEVLINK_DEV \
57	      | jq '.[][][] | select(.name=="physical_ports") |.["occ"]')
58
59	[[ $occ -eq $max_ports ]]
60	check_err_fail $should_fail $? "Attempt to create $max_ports ports (actual result $occ)"
61
62}
~/ Read-only file preview.