/
usr
/
src
/
linux-headers-5.15.0-181
/
tools
/
testing
/
selftests
/
net
/
forwarding
/
/usr/src/linux-headers-5.15.0-181/tools/testing/selftests/net/forwarding
mkdir
upload
Name
Size
Mode
Actions
bridge_igmp.sh
15152
0755
edit
dl
rm
bridge_mld.sh
16563
0755
edit
dl
rm
bridge_port_isolation.sh
2378
0755
edit
dl
rm
bridge_sticky_fdb.sh
1159
0755
edit
dl
rm
bridge_vlan_aware.sh
2524
0755
edit
dl
rm
bridge_vlan_unaware.sh
1248
0755
edit
dl
rm
custom_multipath_hash.sh
9993
0755
edit
dl
rm
devlink_lib.sh
13118
0644
edit
dl
rm
dual_vxlan_bridge.sh
11439
0755
edit
dl
rm
ethtool.sh
6745
0755
edit
dl
rm
ethtool_extended_state.sh
1923
0755
edit
dl
rm
ethtool_lib.sh
2815
0644
edit
dl
rm
fib_offload_lib.sh
25157
0644
edit
dl
rm
gre_custom_multipath_hash.sh
12768
0755
edit
dl
rm
gre_inner_v4_multipath.sh
7730
0755
edit
dl
rm
gre_inner_v6_multipath.sh
7843
0755
edit
dl
rm
gre_multipath.sh
6439
0755
edit
dl
rm
gre_multipath_nh.sh
9301
0755
edit
dl
rm
gre_multipath_nh_res.sh
9491
0755
edit
dl
rm
ip6gre_custom_multipath_hash.sh
13038
0755
edit
dl
rm
ip6gre_inner_v4_multipath.sh
7956
0755
edit
dl
rm
ip6gre_inner_v6_multipath.sh
8069
0755
edit
dl
rm
ip6_forward_instats_vrf.sh
3092
0755
edit
dl
rm
ipip_flat_gre.sh
838
0755
edit
dl
rm
ipip_flat_gre_key.sh
860
0755
edit
dl
rm
ipip_flat_gre_keys.sh
886
0755
edit
dl
rm
ipip_hier_gre.sh
887
0755
edit
dl
rm
ipip_hier_gre_key.sh
910
0755
edit
dl
rm
ipip_hier_gre_keys.sh
938
0755
edit
dl
rm
ipip_lib.sh
8557
0644
edit
dl
rm
lib.sh
28668
0644
edit
dl
rm
loopback.sh
1589
0755
edit
dl
rm
Makefile
1718
0644
edit
dl
rm
mirror_gre.sh
3366
0755
edit
dl
rm
mirror_gre_bound.sh
5929
0755
edit
dl
rm
mirror_gre_bridge_1d.sh
4504
0755
edit
dl
rm
mirror_gre_bridge_1d_vlan.sh
2717
0755
edit
dl
rm
mirror_gre_bridge_1q.sh
4380
0755
edit
dl
rm
mirror_gre_bridge_1q_lag.sh
7485
0755
edit
dl
rm
mirror_gre_changes.sh
5824
0755
edit
dl
rm
mirror_gre_flower.sh
2891
0755
edit
dl
rm
mirror_gre_lag_lacp.sh
7458
0755
edit
dl
rm
mirror_gre_lib.sh
2565
0644
edit
dl
rm
mirror_gre_neigh.sh
2338
0755
edit
dl
rm
mirror_gre_nh.sh
2974
0755
edit
dl
rm
mirror_gre_topo_lib.sh
3524
0644
edit
dl
rm
mirror_gre_vlan.sh
1715
0755
edit
dl
rm
mirror_gre_vlan_bridge_1q.sh
9117
0755
edit
dl
rm
mirror_lib.sh
2964
0644
edit
dl
rm
mirror_topo_lib.sh
2758
0644
edit
dl
rm
mirror_vlan.sh
2303
0755
edit
dl
rm
pedit_dsfield.sh
6789
0755
edit
dl
rm
pedit_l4port.sh
4564
0755
edit
dl
rm
q_in_vni.sh
10926
0755
edit
dl
rm
router.sh
6322
0755
edit
dl
rm
router_bridge.sh
1794
0755
edit
dl
rm
router_bridge_vlan.sh
2108
0755
edit
dl
rm
router_broadcast.sh
5142
0755
edit
dl
rm
router_mpath_nh.sh
9828
0755
edit
dl
rm
router_mpath_nh_res.sh
10223
0755
edit
dl
rm
router_multicast.sh
11597
0755
edit
dl
rm
router_multipath.sh
8449
0755
edit
dl
rm
router_nh.sh
2627
0755
edit
dl
rm
router_vid_1.sh
2153
0755
edit
dl
rm
sch_ets.sh
781
0755
edit
dl
rm
sch_ets_core.sh
7456
0644
edit
dl
rm
sch_ets_tests.sh
4044
0644
edit
dl
rm
sch_red.sh
11358
0755
edit
dl
rm
sch_tbf_core.sh
5140
0644
edit
dl
rm
sch_tbf_ets.sh
118
0755
edit
dl
rm
sch_tbf_etsprio.sh
711
0644
edit
dl
rm
sch_tbf_prio.sh
118
0755
edit
dl
rm
sch_tbf_root.sh
422
0755
edit
dl
rm
skbedit_priority.sh
3901
0755
edit
dl
rm
tc_actions.sh
6606
0755
edit
dl
rm
tc_chains.sh
4945
0755
edit
dl
rm
tc_common.sh
524
0644
edit
dl
rm
tc_flower.sh
21752
0755
edit
dl
rm
tc_flower_router.sh
3096
0755
edit
dl
rm
tc_mpls_l2vpn.sh
5146
0755
edit
dl
rm
tc_police.sh
12111
0755
edit
dl
rm
tc_shblocks.sh
2748
0755
edit
dl
rm
tc_vlan_modify.sh
3246
0755
edit
dl
rm
vxlan_asymmetric.sh
17978
0755
edit
dl
rm
vxlan_bridge_1d.sh
20863
0755
edit
dl
rm
vxlan_bridge_1d_port_8472.sh
172
0755
edit
dl
rm
vxlan_bridge_1q.sh
24053
0755
edit
dl
rm
vxlan_bridge_1q_port_8472.sh
172
0755
edit
dl
rm
vxlan_symmetric.sh
18488
0755
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-181/tools/testing/selftests/net/forwarding/sch_ets_tests.sh
(4044B)
# SPDX-License-Identifier: GPL-2.0 # Global interface: # $put -- port under test (e.g. $swp2) # collect_stats($streams...) -- A function to get stats for individual streams # ets_start_traffic($band) -- Start traffic for this band # ets_change_qdisc($op, $dev, $nstrict, $quanta...) -- Add or change qdisc # WS describes the Qdisc configuration. It has one value per band (so the # number of array elements indicates the number of bands). If the value is # 0, it is a strict band, otherwise the it's a DRR band and the value is # that band's quantum. declare -a WS qdisc_describe() { local nbands=${#WS[@]} local nstrict=0 local i for ((i = 0; i < nbands; i++)); do if ((!${WS[$i]})); then : $((nstrict++)) fi done echo -n "ets bands $nbands" if ((nstrict)); then echo -n " strict $nstrict" fi if ((nstrict < nbands)); then echo -n " quanta" for ((i = nstrict; i < nbands; i++)); do echo -n " ${WS[$i]}" done fi } __strict_eval() { local desc=$1; shift local d=$1; shift local total=$1; shift local above=$1; shift RET=0 if ((! total)); then check_err 1 "No traffic observed" log_test "$desc" return fi local ratio=$(echo "scale=2; 100 * $d / $total" | bc -l) if ((above)); then test $(echo "$ratio > 95.0" | bc -l) -eq 1 check_err $? "Not enough traffic" log_test "$desc" log_info "Expected ratio >95% Measured ratio $ratio" else test $(echo "$ratio < 5" | bc -l) -eq 1 check_err $? "Too much traffic" log_test "$desc" log_info "Expected ratio <5% Measured ratio $ratio" fi } strict_eval() { __strict_eval "$@" 1 } notraf_eval() { __strict_eval "$@" 0 } __ets_dwrr_test() { local -a streams=("$@") local low_stream=${streams[0]} local seen_strict=0 local -a t0 t1 d local stream local total local i echo "Testing $(qdisc_describe), streams ${streams[@]}" for stream in ${streams[@]}; do ets_start_traffic $stream done sleep 10 t0=($(collect_stats "${streams[@]}")) sleep 10 t1=($(collect_stats "${streams[@]}")) d=($(for ((i = 0; i < ${#streams[@]}; i++)); do echo $((${t1[$i]} - ${t0[$i]})) done)) total=$(echo ${d[@]} | sed 's/ /+/g' | bc) for ((i = 0; i < ${#streams[@]}; i++)); do local stream=${streams[$i]} if ((seen_strict)); then notraf_eval "band $stream" ${d[$i]} $total elif ((${WS[$stream]} == 0)); then strict_eval "band $stream" ${d[$i]} $total seen_strict=1 elif ((stream == low_stream)); then # Low stream is used as DWRR evaluation reference. continue else multipath_eval "bands $low_stream:$stream" \ ${WS[$low_stream]} ${WS[$stream]} \ ${d[0]} ${d[$i]} fi done for stream in ${streams[@]}; do stop_traffic done } ets_dwrr_test_012() { __ets_dwrr_test 0 1 2 } ets_dwrr_test_01() { __ets_dwrr_test 0 1 } ets_dwrr_test_12() { __ets_dwrr_test 1 2 } ets_qdisc_setup() { local dev=$1; shift local nstrict=$1; shift local -a quanta=("$@") local ndwrr=${#quanta[@]} local nbands=$((nstrict + ndwrr)) local nstreams=$(if ((nbands > 3)); then echo 3; else echo $nbands; fi) local priomap=$(seq 0 $((nstreams - 1))) local i WS=($( for ((i = 0; i < nstrict; i++)); do echo 0 done for ((i = 0; i < ndwrr; i++)); do echo ${quanta[$i]} done )) ets_change_qdisc $dev $nstrict "$priomap" ${quanta[@]} } ets_set_dwrr_uniform() { ets_qdisc_setup $put 0 3300 3300 3300 } ets_set_dwrr_varying() { ets_qdisc_setup $put 0 5000 3500 1500 } ets_set_strict() { ets_qdisc_setup $put 3 } ets_set_mixed() { ets_qdisc_setup $put 1 5000 2500 1500 } ets_change_quantum() { tc class change dev $put classid 10:2 ets quantum 8000 WS[1]=8000 } ets_set_dwrr_two_bands() { ets_qdisc_setup $put 0 5000 2500 } ets_test_strict() { ets_set_strict ets_dwrr_test_01 ets_dwrr_test_12 } ets_test_mixed() { ets_set_mixed ets_dwrr_test_01 ets_dwrr_test_12 } ets_test_dwrr() { ets_set_dwrr_uniform ets_dwrr_test_012 ets_set_dwrr_varying ets_dwrr_test_012 ets_change_quantum ets_dwrr_test_012 ets_set_dwrr_two_bands ets_dwrr_test_01 }
Save
cmd:
run