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 8 PORT_NUM_NETIFS=0 9 10 declare -a unsplit 11 12 port_setup_prepare() 13 { 14 : 15 } 16 17 port_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 28 split_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 49 port_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 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.