brintos

brintos / linux-shallow public Read only

0
0
Text · 4.5 KiB · 0c47faf Raw
219 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4ALL_TESTS="5	port_pool_test6	port_tc_ip_test7	port_tc_arp_test8"9 10NUM_NETIFS=211source ../../../net/forwarding/lib.sh12source ../../../net/forwarding/devlink_lib.sh13source mlxsw_lib.sh14 15SB_POOL_ING=016SB_POOL_EGR_CPU=1017 18SB_ITC_CPU_IP=219SB_ITC_CPU_ARP=220SB_ITC=021 22h1_create()23{24	simple_if_init $h1 192.0.1.1/2425}26 27h1_destroy()28{29	simple_if_fini $h1 192.0.1.1/2430}31 32h2_create()33{34	simple_if_init $h2 192.0.1.2/2435}36 37h2_destroy()38{39	simple_if_fini $h2 192.0.1.2/2440}41 42sb_occ_pool_check()43{44	local dl_port=$1; shift45	local pool=$1; shift46	local exp_max_occ=$147	local max_occ48	local err=049 50	max_occ=$(devlink sb -j occupancy show $dl_port \51		  | jq -e ".[][][\"pool\"][\"$pool\"][\"max\"]")52 53	if [[ "$max_occ" -ne "$exp_max_occ" ]]; then54		err=155	fi56 57	echo $max_occ58	return $err59}60 61sb_occ_itc_check()62{63	local dl_port=$1; shift64	local itc=$1; shift65	local exp_max_occ=$166	local max_occ67	local err=068 69	max_occ=$(devlink sb -j occupancy show $dl_port \70		  | jq -e ".[][][\"itc\"][\"$itc\"][\"max\"]")71 72	if [[ "$max_occ" -ne "$exp_max_occ" ]]; then73		err=174	fi75 76	echo $max_occ77	return $err78}79 80sb_occ_etc_check()81{82	local dl_port=$1; shift83	local etc=$1; shift84	local exp_max_occ=$1; shift85	local max_occ86	local err=087 88	max_occ=$(devlink sb -j occupancy show $dl_port \89		  | jq -e ".[][][\"etc\"][\"$etc\"][\"max\"]")90 91	if [[ "$max_occ" -ne "$exp_max_occ" ]]; then92		err=193	fi94 95	echo $max_occ96	return $err97}98 99port_pool_test()100{101	local exp_max_occ=$(devlink_cell_size_get)102	local max_occ103 104	devlink sb occupancy clearmax $DEVLINK_DEV105 106	$MZ $h1 -c 1 -p 10 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \107		-t ip -q108 109	devlink sb occupancy snapshot $DEVLINK_DEV110 111	RET=0112	max_occ=$(sb_occ_pool_check $dl_port1 $SB_POOL_ING $exp_max_occ)113	check_err $? "Expected iPool($SB_POOL_ING) max occupancy to be $exp_max_occ, but got $max_occ"114	log_test "physical port's($h1) ingress pool"115 116	RET=0117	max_occ=$(sb_occ_pool_check $dl_port2 $SB_POOL_ING $exp_max_occ)118	check_err $? "Expected iPool($SB_POOL_ING) max occupancy to be $exp_max_occ, but got $max_occ"119	log_test "physical port's($h2) ingress pool"120 121	RET=0122	max_occ=$(sb_occ_pool_check $cpu_dl_port $SB_POOL_EGR_CPU $exp_max_occ)123	check_err $? "Expected ePool($SB_POOL_EGR_CPU) max occupancy to be $exp_max_occ, but got $max_occ"124	log_test "CPU port's egress pool"125}126 127port_tc_ip_test()128{129	local exp_max_occ=$(devlink_cell_size_get)130	local max_occ131 132	devlink sb occupancy clearmax $DEVLINK_DEV133 134	$MZ $h1 -c 1 -p 10 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \135		-t ip -q136 137	devlink sb occupancy snapshot $DEVLINK_DEV138 139	RET=0140	max_occ=$(sb_occ_itc_check $dl_port2 $SB_ITC $exp_max_occ)141	check_err $? "Expected ingress TC($SB_ITC) max occupancy to be $exp_max_occ, but got $max_occ"142	log_test "physical port's($h1) ingress TC - IP packet"143 144	RET=0145	max_occ=$(sb_occ_itc_check $dl_port2 $SB_ITC $exp_max_occ)146	check_err $? "Expected ingress TC($SB_ITC) max occupancy to be $exp_max_occ, but got $max_occ"147	log_test "physical port's($h2) ingress TC - IP packet"148 149	RET=0150	max_occ=$(sb_occ_etc_check $cpu_dl_port $SB_ITC_CPU_IP $exp_max_occ)151	check_err $? "Expected egress TC($SB_ITC_CPU_IP) max occupancy to be $exp_max_occ, but got $max_occ"152	log_test "CPU port's egress TC - IP packet"153}154 155port_tc_arp_test()156{157	local exp_max_occ=$(devlink_cell_size_get)158	local max_occ159 160	devlink sb occupancy clearmax $DEVLINK_DEV161 162	$MZ $h1 -c 1 -p 10 -a $h1mac -A 192.0.1.1 -t arp -q163 164	devlink sb occupancy snapshot $DEVLINK_DEV165 166	RET=0167	max_occ=$(sb_occ_itc_check $dl_port2 $SB_ITC $exp_max_occ)168	check_err $? "Expected ingress TC($SB_ITC) max occupancy to be $exp_max_occ, but got $max_occ"169	log_test "physical port's($h1) ingress TC - ARP packet"170 171	RET=0172	max_occ=$(sb_occ_itc_check $dl_port2 $SB_ITC $exp_max_occ)173	check_err $? "Expected ingress TC($SB_ITC) max occupancy to be $exp_max_occ, but got $max_occ"174	log_test "physical port's($h2) ingress TC - ARP packet"175 176	RET=0177	max_occ=$(sb_occ_etc_check $cpu_dl_port $SB_ITC_CPU_ARP $exp_max_occ)178	check_err $? "Expected egress TC($SB_ITC_IP2ME) max occupancy to be $exp_max_occ, but got $max_occ"179	log_test "CPU port's egress TC - ARP packet"180}181 182setup_prepare()183{184	h1=${NETIFS[p1]}185	h2=${NETIFS[p2]}186 187	h1mac=$(mac_get $h1)188	h2mac=$(mac_get $h2)189 190	dl_port1=$(devlink_port_by_netdev $h1)191	dl_port2=$(devlink_port_by_netdev $h2)192 193	cpu_dl_port=$(devlink_cpu_port_get)194 195	vrf_prepare196 197	h1_create198	h2_create199}200 201cleanup()202{203	pre_cleanup204 205	h2_destroy206	h1_destroy207 208	vrf_cleanup209}210 211trap cleanup EXIT212 213setup_prepare214setup_wait215 216tests_run217 218exit $EXIT_STATUS219