brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · 48395cf Raw
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