brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · 20ed98f Raw
131 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4lib_dir=$(dirname $0)/../../../net/forwarding5 6ALL_TESTS="7	default_hw_stats_test8	immediate_hw_stats_test9	delayed_hw_stats_test10	disabled_hw_stats_test11"12NUM_NETIFS=213 14source $lib_dir/tc_common.sh15source $lib_dir/lib.sh16source $lib_dir/devlink_lib.sh17 18h1_create()19{20	simple_if_init $h1 192.0.2.1/2421}22 23h1_destroy()24{25	simple_if_fini $h1 192.0.2.1/2426}27 28switch_create()29{30	simple_if_init $swp1 192.0.2.2/2431	tc qdisc add dev $swp1 clsact32}33 34switch_destroy()35{36	tc qdisc del dev $swp1 clsact37	simple_if_fini $swp1 192.0.2.2/2438}39 40hw_stats_test()41{42	RET=043 44	local name=$145	local action_hw_stats=$246	local occ_delta=$347	local expected_packet_count=$448 49	local orig_occ=$(devlink_resource_get "counters" "flow" | jq '.["occ"]')50 51	tc filter add dev $swp1 ingress protocol ip pref 1 handle 101 flower \52		skip_sw dst_ip 192.0.2.2 action drop $action_hw_stats53	check_err $? "Failed to add rule with $name hw_stats"54 55	local new_occ=$(devlink_resource_get "counters" "flow" | jq '.["occ"]')56	local expected_occ=$((orig_occ + occ_delta))57	[ "$new_occ" == "$expected_occ" ]58	check_err $? "Expected occupancy of $expected_occ, got $new_occ"59 60	$MZ $h1 -c 1 -p 64 -a $h1mac -b $swp1mac -A 192.0.2.1 -B 192.0.2.2 \61		-t ip -q62 63	tc_check_packets "dev $swp1 ingress" 101 $expected_packet_count64	check_err $? "Did not match incoming packet"65 66	tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower67 68	log_test "$name hw_stats"69}70 71default_hw_stats_test()72{73	hw_stats_test "default" "" 2 174}75 76immediate_hw_stats_test()77{78	hw_stats_test "immediate" "hw_stats immediate" 2 179}80 81delayed_hw_stats_test()82{83	RET=084 85	tc filter add dev $swp1 ingress protocol ip pref 1 handle 101 flower \86		skip_sw dst_ip 192.0.2.2 action drop hw_stats delayed87	check_fail $? "Unexpected success in adding rule with delayed hw_stats"88 89	log_test "delayed hw_stats"90}91 92disabled_hw_stats_test()93{94	hw_stats_test "disabled" "hw_stats disabled" 0 095}96 97setup_prepare()98{99	h1=${NETIFS[p1]}100	swp1=${NETIFS[p2]}101 102	h1mac=$(mac_get $h1)103	swp1mac=$(mac_get $swp1)104 105	vrf_prepare106 107	h1_create108	switch_create109}110 111cleanup()112{113	pre_cleanup114 115	switch_destroy116	h1_destroy117 118	vrf_cleanup119}120 121check_tc_action_hw_stats_support122 123trap cleanup EXIT124 125setup_prepare126setup_wait127 128tests_run129 130exit $EXIT_STATUS131