78 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4##############################################################################5# Defines6 7if [[ ! -v MLXSW_CHIP ]]; then8 MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]')9 if [ -z "$MLXSW_CHIP" ]; then10 echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command"11 exit 112 fi13fi14 15MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in16 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 25mlxsw_on_spectrum()26{27 local rev=$1; shift28 local op="=="29 local rev2=${rev%+}30 31 if [[ $rev2 != $rev ]]; then32 op=">="33 fi34 35 ((MLXSW_SPECTRUM_REV $op rev2))36}37 38__mlxsw_only_on_spectrum()39{40 local rev=$1; shift41 local caller=$1; shift42 local src=$1; shift43 44 if ! mlxsw_on_spectrum "$rev"; then45 log_test_xfail $src:$caller "(Spectrum-$rev only)"46 return 147 fi48}49 50mlxsw_only_on_spectrum()51{52 local caller=${FUNCNAME[1]}53 local src=${BASH_SOURCE[1]}54 local rev55 56 for rev in "$@"; do57 if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then58 return 059 fi60 done61 62 return 163}64 65mlxsw_max_descriptors_get()66{67 local spectrum_rev=$MLXSW_SPECTRUM_REV68 69 case $spectrum_rev in70 1) echo 81920 ;;71 2) echo 136960 ;;72 3) echo 204800 ;;73 4) echo 220000 ;;74 *) echo "Unknown max descriptors for chip revision." > /dev/stderr75 return 1 ;;76 esac77}78