brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · 1e9a4af Raw
63 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# Test for physical ports resource. The test splits each splittable port5# to its width and checks that eventually the number of physical ports equals6# the maximum number of physical ports.7 8PORT_NUM_NETIFS=09 10declare -a unsplit11 12port_setup_prepare()13{14	:15}16 17port_cleanup()18{19	pre_cleanup20 21	for port in "${unsplit[@]}"; do22		devlink port unsplit $port23		check_err $? "Did not unsplit $netdev"24	done25	unsplit=()26}27 28split_all_ports()29{30	local should_fail=$1; shift31 32	# Loop over the splittable netdevs and create tuples of netdev along33	# with its width. For example:34	# '$netdev1 $count1 $netdev2 $count2...', when:35	# $netdev1-2 are splittable netdevs in the device, and36	# $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	do43		devlink port split $netdev count $count44		check_err $? "Did not split $netdev into $count"45		unsplit+=( "${netdev}s0" )46	done47}48 49port_test()50{51	local max_ports=$1; shift52	local should_fail=$1; shift53 54	split_all_ports $should_fail55 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}63