Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
0003 
0004 ##############################################################################
0005 # Defines
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#mlxsw_spectrum} ;;
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 }