Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/drivers/net/mlxsw/mlxsw_lib.sh
26292 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0
3
4
##############################################################################
5
# Defines
6
7
if [[ ! -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
13
fi
14
15
MLXSW_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
25
mlxsw_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
50
mlxsw_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
65
mlxsw_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
}
78
79