Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4##############################################################################
5# Defines
6
7if [[ ! -v MLXSW_CHIP ]]; then
8 MLXSW_CHIP=$(devlink -j dev info $DEVLINK_DEV | jq -r '.[][]["driver"]')
9 if [ -z "$MLXSW_CHIP" ]; then
10 echo "SKIP: Device $DEVLINK_DEV doesn't support devlink info command"
11 exit 1
12 fi
13fi
14
15MLXSW_SPECTRUM_REV=$(case $MLXSW_CHIP in
16 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; shift
28 local op="=="
29 local rev2=${rev%+}
30
31 if [[ $rev2 != $rev ]]; then
32 op=">="
33 fi
34
35 ((MLXSW_SPECTRUM_REV $op rev2))
36}
37
38__mlxsw_only_on_spectrum()
39{
40 local rev=$1; shift
41 local caller=$1; shift
42 local src=$1; shift
43
44 if ! mlxsw_on_spectrum "$rev"; then
45 log_test_xfail $src:$caller "(Spectrum-$rev only)"
46 return 1
47 fi
48}
49
50mlxsw_only_on_spectrum()
51{
52 local caller=${FUNCNAME[1]}
53 local src=${BASH_SOURCE[1]}
54 local rev
55
56 for rev in "$@"; do
57 if __mlxsw_only_on_spectrum "$rev" "$caller" "$src"; then
58 return 0
59 fi
60 done
61
62 return 1
63}
64
65mlxsw_max_descriptors_get()
66{
67 local spectrum_rev=$MLXSW_SPECTRUM_REV
68
69 case $spectrum_rev in
70 1) echo 81920 ;;
71 2) echo 136960 ;;
72 3) echo 204800 ;;
73 4) echo 220000 ;;
74 *) echo "Unknown max descriptors for chip revision." > /dev/stderr
75 return 1 ;;
76 esac
77}