Path: blob/master/tools/testing/selftests/drivers/net/mlxsw/router_scale.sh
26292 views
#!/bin/bash1# SPDX-License-Identifier: GPL-2.023ROUTER_NUM_NETIFS=44: ${TIMEOUT:=20000} # ms56router_h1_create()7{8simple_if_init $h1 192.0.1.1/249}1011router_h1_destroy()12{13simple_if_fini $h1 192.0.1.1/2414}1516router_h2_create()17{18simple_if_init $h2 192.0.2.1/2419tc qdisc add dev $h2 handle ffff: ingress20}2122router_h2_destroy()23{24tc qdisc del dev $h2 handle ffff: ingress25simple_if_fini $h2 192.0.2.1/2426}2728router_create()29{30ip link set dev $rp1 up31ip link set dev $rp2 up3233ip address add 192.0.1.2/24 dev $rp134ip address add 192.0.2.2/24 dev $rp235}3637router_destroy()38{39ip address del 192.0.2.2/24 dev $rp240ip address del 192.0.1.2/24 dev $rp14142ip link set dev $rp2 down43ip link set dev $rp1 down44}4546router_setup_prepare()47{48h1=${NETIFS[p1]}49rp1=${NETIFS[p2]}5051rp2=${NETIFS[p3]}52h2=${NETIFS[p4]}5354h1mac=$(mac_get $h1)55rp1mac=$(mac_get $rp1)5657vrf_prepare5859router_h1_create60router_h2_create6162router_create63}6465wait_for_routes()66{67local t0=$1; shift68local route_count=$1; shift6970local t1=$(ip route | grep 'offload' | grep -v 'offload_failed' | wc -l)71local delta=$((t1 - t0))72echo $delta73[[ $delta -ge $route_count ]]74}7576router_routes_create()77{78local route_count=$179local count=08081ROUTE_FILE="$(mktemp)"8283for i in {0..255}84do85for j in {0..255}86do87for k in {0..255}88do89if [[ $count -eq $route_count ]]; then90break 391fi9293echo route add 193.${i}.${j}.${k}/32 dev $rp2 \94>> $ROUTE_FILE95((count++))96done97done98done99100ip -b $ROUTE_FILE &> /dev/null101}102103router_routes_destroy()104{105if [[ -v ROUTE_FILE ]]; then106rm -f $ROUTE_FILE107fi108}109110router_test()111{112local route_count=$1113local should_fail=$2114local delta115116RET=0117118local t0=$(ip route | grep -o 'offload' | wc -l)119router_routes_create $route_count120delta=$(busywait "$TIMEOUT" wait_for_routes $t0 $route_count)121122check_err_fail $should_fail $? "Offload routes: Expected $route_count, got $delta."123if [[ $RET -ne 0 ]] || [[ $should_fail -eq 1 ]]; then124return125fi126127router_routes_destroy128}129130router_cleanup()131{132pre_cleanup133134router_routes_destroy135router_destroy136137router_h2_destroy138router_h1_destroy139140vrf_cleanup141}142143144