#!/bin/bash # SPDX-License-Identifier: GPL-2.0 ############################################################################## # Defines if [[ ! -v MLXSW_CHIP ]]; then MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]') if [ -z "$MLXSW_CHIP" ]; then echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command" exit 1 fi fi MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in mlxsw_spectrum) echo 1 ;; mlxsw_spectrum*) echo ${MLXSW_CHIP#mlxsw_spectrum} ;; *) echo "Couldn't determine Spectrum chip revision." \ > /dev/stderr ;; esac) mlxsw_on_spectrum() { local rev=$1; shift local op="==" local rev2=${rev%+} if [[ $rev2 != $rev ]]; then op=">=" fi ((MLXSW_SPECTRUM_REV $op rev2)) } __mlxsw_only_on_spectrum() { local rev=$1; shift local caller=$1; shift local src=$1; shift if ! mlxsw_on_spectrum "$rev"; then log_test_skip $src:$caller "(Spectrum-$rev only)" return 1 fi } mlxsw_only_on_spectrum() { local caller=${FUNCNAME[1]} local src=${BASH_SOURCE[1]} local rev for rev in "$@"; do if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then return 0 fi done return 1 } mlxsw_max_descriptors_get() { local spectrum_rev=$MLXSW_SPECTRUM_REV case $spectrum_rev in 1) echo 81920 ;; 2) echo 136960 ;; 3) echo 204800 ;; 4) echo 220000 ;; *) echo "Unknown max descriptors for chip revision." > /dev/stderr return 1 ;; esac }