78 lines
1.4 KiB
Bash
78 lines
1.4 KiB
Bash
#!/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
|
|
}
|