1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 4 ############################################################################## 5 # Defines 6 7 if [[ ! -v MLXSW_CHIP ]]; then 8 MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]') 9 if [ -z "$MLXSW_CHIP" ]; then 10 echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command" 11 exit 1 12 fi 13 fi 14 15 MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in 16 mlxsw_spectrum) 17 echo 1 ;; 18 mlxsw_spectrum*) 19 echo ${MLXSW_CHIP#mlxsw_spectrum} ;; 20 *) 21 echo "Couldn't determine Spectrum chip revision." \ 22 > /dev/stderr ;; 23 esac) 24 25 mlxsw_on_spectrum() 26 { 27 local rev=$1; shift 28 local op="==" 29 local rev2=${rev%+} 30 31 if [[ $rev2 != $rev ]]; then 32 op=">=" 33 fi 34 35 ((MLXSW_SPECTRUM_REV $op rev2)) 36 } 37 38 __mlxsw_only_on_spectrum() 39 { 40 local rev=$1; shift 41 local caller=$1; shift 42 local src=$1; shift 43 44 if ! mlxsw_on_spectrum "$rev"; then 45 log_test_xfail $src:$caller "(Spectrum-$rev only)" 46 return 1 47 fi 48 } 49 50 mlxsw_only_on_spectrum() 51 { 52 local caller=${FUNCNAME[1]} 53 local src=${BASH_SOURCE[1]} 54 local rev 55 56 for rev in "$@"; do 57 if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then 58 return 0 59 fi 60 done 61 62 return 1 63 } 64 65 mlxsw_max_descriptors_get() 66 { 67 local spectrum_rev=$MLXSW_SPECTRUM_REV 68 69 case $spectrum_rev in 70 1) echo 81920 ;; 71 2) echo 136960 ;; 72 3) echo 204800 ;; 73 4) echo 220000 ;; 74 *) echo "Unknown max descriptors for chip revision." > /dev/stderr 75 return 1 ;; 76 esac 77 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.