1 # SPDX-License-Identifier: GPL-2.0
9 if ((rate
> min
)); then
13 echo "$what $(humanize $ir) < $(humanize $min)" > /dev
/stderr
19 local sw_in
=$1; shift # Where the traffic ingresses the switch
20 local host_in
=$1; shift # Where it ingresses another host
21 local counter
=$1; shift # Counter to use for measurement
28 # Dips in performance might cause momentary ingress rate to drop below
29 # 1Gbps. That wouldn't saturate egress and MC would thus get through,
30 # seemingly winning bandwidth on account of UC. Demand at least 2Gbps
31 # average ingress rate to somewhat mitigate this.
32 local min_ingress
=2147483648
35 local t0
=$
(ethtool_stats_get
$host_in $counter)
36 local u0
=$
(ethtool_stats_get
$sw_in $counter)
38 local t1
=$
(ethtool_stats_get
$host_in $counter)
39 local u1
=$
(ethtool_stats_get
$sw_in $counter)
41 local ir
=$
(rate
$u0 $u1 $interval)
42 local er
=$
(rate
$t0 $t1 $interval)
44 if check_rate
$ir $min_ingress "$what ingress rate"; then
48 # Fail the test if we can't get the throughput.
60 if systemctl is-active
--quiet lldpad
; then
62 cat >/dev
/stderr
<<-EOF
63 WARNING: lldpad is running
65 lldpad will likely configure DCB, and this test will
66 configure Qdiscs. mlxsw does not support both at the
67 same time, one of them is arbitrarily going to overwrite
68 the other. That will cause spurious failures (or,
69 unlikely, passes) of this test.
72 if [[ -z $ALLOW_LLDPAD ]]; then
73 cat >/dev
/stderr
<<-EOF
75 If you want to run the test anyway, please set
76 an environment variable ALLOW_LLDPAD to a
90 mlnx_qos
"$@" 2>/dev
/null
94 echo "Error ($err) in mlnx_qos $@" >/dev
/stderr