brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 448b75c Raw
109 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# Test that policers shared by different tc filters are correctly reference5# counted by observing policers' occupancy via devlink-resource.6 7lib_dir=$(dirname $0)/../../../net/forwarding8 9ALL_TESTS="10	tc_police_occ_test11"12NUM_NETIFS=213source $lib_dir/lib.sh14source $lib_dir/devlink_lib.sh15 16h1_create()17{18	simple_if_init $h119}20 21h1_destroy()22{23	simple_if_fini $h124}25 26switch_create()27{28	simple_if_init $swp129	tc qdisc add dev $swp1 clsact30}31 32switch_destroy()33{34	tc qdisc del dev $swp1 clsact35	simple_if_fini $swp136}37 38setup_prepare()39{40	h1=${NETIFS[p1]}41	swp1=${NETIFS[p2]}42 43	vrf_prepare44 45	h1_create46	switch_create47}48 49cleanup()50{51	pre_cleanup52 53	switch_destroy54	h1_destroy55 56	vrf_cleanup57}58 59tc_police_occ_get()60{61	devlink_resource_occ_get global_policers single_rate_policers62}63 64tc_police_occ_test()65{66	RET=067 68	local occ=$(tc_police_occ_get)69 70	tc filter add dev $swp1 ingress pref 1 handle 101 proto ip \71		flower skip_sw \72		action police rate 100mbit burst 100k conform-exceed drop/ok73	(( occ + 1 == $(tc_police_occ_get) ))74	check_err $? "Got occupancy $(tc_police_occ_get), expected $((occ + 1))"75 76	tc filter del dev $swp1 ingress pref 1 handle 101 flower77	(( occ == $(tc_police_occ_get) ))78	check_err $? "Got occupancy $(tc_police_occ_get), expected $occ"79 80	tc filter add dev $swp1 ingress pref 1 handle 101 proto ip \81		flower skip_sw \82		action police rate 100mbit burst 100k conform-exceed drop/ok \83		index 1084	tc filter add dev $swp1 ingress pref 2 handle 102 proto ip \85		flower skip_sw action police index 1086 87	(( occ + 1 == $(tc_police_occ_get) ))88	check_err $? "Got occupancy $(tc_police_occ_get), expected $((occ + 1))"89 90	tc filter del dev $swp1 ingress pref 2 handle 102 flower91	(( occ + 1 == $(tc_police_occ_get) ))92	check_err $? "Got occupancy $(tc_police_occ_get), expected $((occ + 1))"93 94	tc filter del dev $swp1 ingress pref 1 handle 101 flower95	(( occ == $(tc_police_occ_get) ))96	check_err $? "Got occupancy $(tc_police_occ_get), expected $occ"97 98	log_test "tc police occupancy"99}100 101trap cleanup EXIT102 103setup_prepare104setup_wait105 106tests_run107 108exit $EXIT_STATUS109