/usr/src/linux-headers-5.15.0-181/tools/testing/selftests/drivers/net/mlxsw
NameSizeModeActions
spectrum/-0755rm
spectrum-2/-0755rm
blackhole_routes.sh50750755editdlrm
devlink_trap.sh19280755editdlrm
devlink_trap_acl_drops.sh24580755editdlrm
devlink_trap_control.sh183990755editdlrm
devlink_trap_l2_drops.sh99660755editdlrm
devlink_trap_l3_drops.sh168120755editdlrm
devlink_trap_l3_exceptions.sh140980755editdlrm
devlink_trap_policer.sh94410755editdlrm
devlink_trap_tunnel_ipip.sh60350755editdlrm
devlink_trap_tunnel_vxlan.sh89890755editdlrm
ethtool_lanes.sh40260755editdlrm
extack.sh34710755editdlrm
fib.sh55620755editdlrm
fib_offload.sh101640755editdlrm
mirror_gre.sh44470755editdlrm
mirror_gre_scale.sh57820644editdlrm
mlxsw_lib.sh3620644editdlrm
one_armed_router.sh69500755editdlrm
port_scale.sh13910644editdlrm
qos_defprio.sh27380755editdlrm
qos_dscp_bridge.sh43250755editdlrm
qos_dscp_router.sh67640755editdlrm
qos_ets_strict.sh88100755editdlrm
qos_headroom.sh83670755editdlrm
qos_lib.sh19180644editdlrm
qos_mc_aware.sh94120755editdlrm
qos_pfc.sh117000755editdlrm
q_in_q_veto.sh79480755editdlrm
router_scale.sh21380644editdlrm
rtnetlink.sh306040755editdlrm
sch_ets.sh23320755editdlrm
sch_red_core.sh180140644editdlrm
sch_red_ets.sh24760755editdlrm
sch_red_prio.sh810755editdlrm
sch_red_root.sh10810755editdlrm
sch_tbf_ets.sh1750755editdlrm
sch_tbf_prio.sh1760755editdlrm
sch_tbf_root.sh1760755editdlrm
sharedbuffer.sh39120755editdlrm
tc_action_hw_stats.sh22930755editdlrm
tc_flower_scale.sh24600644editdlrm
tc_police_occ.sh21200755editdlrm
tc_police_scale.sh16600644editdlrm
tc_restrictions.sh118470755editdlrm
tc_sample.sh178910755editdlrm
vxlan.sh299960755editdlrm
vxlan_fdb_veto.sh29550755editdlrm
vxlan_flooding.sh88490755editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/tools/testing/selftests/drivers/net/mlxsw/router_scale.sh (2138B)
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 ROUTER_NUM_NETIFS=4 : ${TIMEOUT:=20000} # ms router_h1_create() { simple_if_init $h1 192.0.1.1/24 } router_h1_destroy() { simple_if_fini $h1 192.0.1.1/24 } router_h2_create() { simple_if_init $h2 192.0.2.1/24 tc qdisc add dev $h2 handle ffff: ingress } router_h2_destroy() { tc qdisc del dev $h2 handle ffff: ingress simple_if_fini $h2 192.0.2.1/24 } router_create() { ip link set dev $rp1 up ip link set dev $rp2 up ip address add 192.0.1.2/24 dev $rp1 ip address add 192.0.2.2/24 dev $rp2 } router_destroy() { ip address del 192.0.2.2/24 dev $rp2 ip address del 192.0.1.2/24 dev $rp1 ip link set dev $rp2 down ip link set dev $rp1 down } router_setup_prepare() { h1=${NETIFS[p1]} rp1=${NETIFS[p2]} rp2=${NETIFS[p3]} h2=${NETIFS[p4]} h1mac=$(mac_get $h1) rp1mac=$(mac_get $rp1) vrf_prepare router_h1_create router_h2_create router_create } wait_for_routes() { local t0=$1; shift local route_count=$1; shift local t1=$(ip route | grep 'offload' | grep -v 'offload_failed' | wc -l) local delta=$((t1 - t0)) echo $delta [[ $delta -ge $route_count ]] } router_routes_create() { local route_count=$1 local count=0 ROUTE_FILE="$(mktemp)" for i in {0..255} do for j in {0..255} do for k in {0..255} do if [[ $count -eq $route_count ]]; then break 3 fi echo route add 193.${i}.${j}.${k}/32 dev $rp2 \ >> $ROUTE_FILE ((count++)) done done done ip -b $ROUTE_FILE &> /dev/null } router_routes_destroy() { if [[ -v ROUTE_FILE ]]; then rm -f $ROUTE_FILE fi } router_test() { local route_count=$1 local should_fail=$2 local delta RET=0 local t0=$(ip route | grep -o 'offload' | wc -l) router_routes_create $route_count delta=$(busywait "$TIMEOUT" wait_for_routes $t0 $route_count) check_err_fail $should_fail $? "Offload routes: Expected $route_count, got $delta." if [[ $RET -ne 0 ]] || [[ $should_fail -eq 1 ]]; then return fi router_routes_destroy } router_cleanup() { pre_cleanup router_routes_destroy router_destroy router_h2_destroy router_h1_destroy vrf_cleanup }