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