0001
0002
0003
0004
0005
0006
0007 if [[ ! -v MLXSW_CHIP ]]; then
0008 MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]')
0009 if [ -z "$MLXSW_CHIP" ]; then
0010 echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command"
0011 exit 1
0012 fi
0013 fi
0014
0015 MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in
0016 mlxsw_spectrum)
0017 echo 1 ;;
0018 mlxsw_spectrum*)
0019 echo ${MLXSW_CHIP
0020 *)
0021 echo "Couldn't determine Spectrum chip revision." \
0022 > /dev/stderr ;;
0023 esac)
0024
0025 mlxsw_on_spectrum()
0026 {
0027 local rev=$1; shift
0028 local op="=="
0029 local rev2=${rev%+}
0030
0031 if [[ $rev2 != $rev ]]; then
0032 op=">="
0033 fi
0034
0035 ((MLXSW_SPECTRUM_REV $op rev2))
0036 }
0037
0038 __mlxsw_only_on_spectrum()
0039 {
0040 local rev=$1; shift
0041 local caller=$1; shift
0042 local src=$1; shift
0043
0044 if ! mlxsw_on_spectrum "$rev"; then
0045 log_test_skip $src:$caller "(Spectrum-$rev only)"
0046 return 1
0047 fi
0048 }
0049
0050 mlxsw_only_on_spectrum()
0051 {
0052 local caller=${FUNCNAME[1]}
0053 local src=${BASH_SOURCE[1]}
0054 local rev
0055
0056 for rev in "$@"; do
0057 if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then
0058 return 0
0059 fi
0060 done
0061
0062 return 1
0063 }