xref: /linux/tools/testing/selftests/net/forwarding/sch_ets.sh (revision ead5d1f4d877e92c051e1a1ade623d0d30e71619)
1ddd3fd75SPetr Machata#!/bin/bash
2ddd3fd75SPetr Machata# SPDX-License-Identifier: GPL-2.0
3ddd3fd75SPetr Machata
4ddd3fd75SPetr Machata# A driver for the ETS selftest that implements testing in slowpath.
5ddd3fd75SPetr Machatalib_dir=.
6ddd3fd75SPetr Machatasource sch_ets_core.sh
7ddd3fd75SPetr Machata
8ddd3fd75SPetr MachataALL_TESTS="
9ddd3fd75SPetr Machata	ping_ipv4
10ddd3fd75SPetr Machata	priomap_mode
11ddd3fd75SPetr Machata	ets_test_strict
12ddd3fd75SPetr Machata	ets_test_mixed
13ddd3fd75SPetr Machata	ets_test_dwrr
14ddd3fd75SPetr Machata	classifier_mode
15ddd3fd75SPetr Machata	ets_test_strict
16ddd3fd75SPetr Machata	ets_test_mixed
17ddd3fd75SPetr Machata	ets_test_dwrr
18ddd3fd75SPetr Machata"
19ddd3fd75SPetr Machata
20ddd3fd75SPetr Machataswitch_create()
21ddd3fd75SPetr Machata{
22ddd3fd75SPetr Machata	ets_switch_create
23ddd3fd75SPetr Machata
24ddd3fd75SPetr Machata	# Create a bottleneck so that the DWRR process can kick in.
25ddd3fd75SPetr Machata	tc qdisc add dev $swp2 root handle 1: tbf \
26ddd3fd75SPetr Machata	   rate 1Gbit burst 1Mbit latency 100ms
27ddd3fd75SPetr Machata	PARENT="parent 1:"
28ddd3fd75SPetr Machata}
29ddd3fd75SPetr Machata
30ddd3fd75SPetr Machataswitch_destroy()
31ddd3fd75SPetr Machata{
32ddd3fd75SPetr Machata	ets_switch_destroy
33ddd3fd75SPetr Machata	tc qdisc del dev $swp2 root
34ddd3fd75SPetr Machata}
35ddd3fd75SPetr Machata
36ddd3fd75SPetr Machata# Callback from sch_ets_tests.sh
37*b9b72999SPetr Machatacollect_stats()
38ddd3fd75SPetr Machata{
39*b9b72999SPetr Machata	local -a streams=("$@")
40*b9b72999SPetr Machata	local stream
41ddd3fd75SPetr Machata
42*b9b72999SPetr Machata	for stream in ${streams[@]}; do
43*b9b72999SPetr Machata		qdisc_parent_stats_get $swp2 10:$((stream + 1)) .bytes
44*b9b72999SPetr Machata	done
45ddd3fd75SPetr Machata}
46ddd3fd75SPetr Machata
47ddd3fd75SPetr Machataets_run
48