__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
# 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
		defer stop_traffic $!
	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
}

ets_dwrr_test_012()
{
	in_defer_scope \
		__ets_dwrr_test 0 1 2
}

ets_dwrr_test_01()
{
	in_defer_scope \
		__ets_dwrr_test 0 1
}

ets_dwrr_test_12()
{
	in_defer_scope \
		__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
	xfail_on_slow ets_dwrr_test_01
	xfail_on_slow ets_dwrr_test_12
}

ets_test_mixed()
{
	ets_set_mixed
	xfail_on_slow ets_dwrr_test_01
	xfail_on_slow ets_dwrr_test_12
}

ets_test_dwrr()
{
	ets_set_dwrr_uniform
	xfail_on_slow ets_dwrr_test_012

	ets_set_dwrr_varying
	xfail_on_slow ets_dwrr_test_012

	ets_change_quantum
	xfail_on_slow ets_dwrr_test_012

	ets_set_dwrr_two_bands
	xfail_on_slow ets_dwrr_test_01
}

Filemanager

Name Type Size Permission Actions
Makefile File 2.94 KB 0644
bridge_fdb_learning_limit.sh File 5.8 KB 0755
bridge_igmp.sh File 14.71 KB 0755
bridge_locked_port.sh File 9.25 KB 0755
bridge_mdb.sh File 45.15 KB 0755
bridge_mdb_host.sh File 1.66 KB 0755
bridge_mdb_max.sh File 29.98 KB 0755
bridge_mdb_port_down.sh File 2.24 KB 0755
bridge_mld.sh File 16.17 KB 0755
bridge_port_isolation.sh File 2.32 KB 0755
bridge_sticky_fdb.sh File 1.13 KB 0755
bridge_vlan_aware.sh File 4.2 KB 0755
bridge_vlan_mcast.sh File 16.74 KB 0755
bridge_vlan_unaware.sh File 1.65 KB 0755
custom_multipath_hash.sh File 9.8 KB 0755
devlink_lib.sh File 12.81 KB 0644
dual_vxlan_bridge.sh File 11.21 KB 0755
fib_offload_lib.sh File 24.57 KB 0644
gre_custom_multipath_hash.sh File 12.51 KB 0755
gre_inner_v4_multipath.sh File 7.55 KB 0755
gre_inner_v6_multipath.sh File 7.66 KB 0755
gre_multipath.sh File 6.29 KB 0755
gre_multipath_nh.sh File 8.1 KB 0755
gre_multipath_nh_res.sh File 8.25 KB 0755
ip6_forward_instats_vrf.sh File 3.04 KB 0755
ip6gre_custom_multipath_hash.sh File 12.77 KB 0755
ip6gre_flat.sh File 1.18 KB 0755
ip6gre_flat_key.sh File 1.24 KB 0755
ip6gre_flat_keys.sh File 1.3 KB 0755
ip6gre_hier.sh File 1.27 KB 0755
ip6gre_hier_key.sh File 1.33 KB 0755
ip6gre_hier_keys.sh File 1.39 KB 0755
ip6gre_inner_v4_multipath.sh File 7.77 KB 0755
ip6gre_inner_v6_multipath.sh File 7.88 KB 0755
ip6gre_lib.sh File 15.75 KB 0644
ipip_flat_gre.sh File 838 B 0755
ipip_flat_gre_key.sh File 860 B 0755
ipip_flat_gre_keys.sh File 886 B 0755
ipip_hier_gre.sh File 887 B 0755
ipip_hier_gre_key.sh File 910 B 0755
ipip_hier_gre_keys.sh File 938 B 0755
ipip_lib.sh File 8.34 KB 0644
lib.sh File 41.63 KB 0644
lib_sh_test.sh File 3.57 KB 0755
local_termination.sh File 14.42 KB 0755
min_max_mtu.sh File 4.74 KB 0755
mirror_gre.sh File 2.9 KB 0755
mirror_gre_bound.sh File 5.51 KB 0755
mirror_gre_bridge_1d.sh File 4.12 KB 0755
mirror_gre_bridge_1d_vlan.sh File 2.37 KB 0755
mirror_gre_bridge_1q.sh File 3.97 KB 0755
mirror_gre_bridge_1q_lag.sh File 7.02 KB 0755
mirror_gre_changes.sh File 5.17 KB 0755
mirror_gre_flower.sh File 2.61 KB 0755
mirror_gre_lag_lacp.sh File 7.48 KB 0755
mirror_gre_lib.sh File 3.65 KB 0644
mirror_gre_neigh.sh File 2.08 KB 0755
mirror_gre_nh.sh File 2.53 KB 0755
mirror_gre_topo_lib.sh File 3.45 KB 0644
mirror_gre_vlan.sh File 1.36 KB 0755
mirror_gre_vlan_bridge_1q.sh File 8.46 KB 0755
mirror_lib.sh File 3.72 KB 0644
mirror_topo_lib.sh File 2.73 KB 0644
mirror_vlan.sh File 1.86 KB 0755
no_forwarding.sh File 5.52 KB 0755
pedit_dsfield.sh File 6.69 KB 0755
pedit_ip.sh File 4.41 KB 0755
pedit_l4port.sh File 4.46 KB 0755
q_in_vni.sh File 10.71 KB 0755
q_in_vni_ipv6.sh File 10.87 KB 0755
router.sh File 7.32 KB 0755
router_bridge.sh File 3.97 KB 0755
router_bridge_1d.sh File 5.1 KB 0755
router_bridge_1d_lag.sh File 9.3 KB 0755
router_bridge_lag.sh File 6.82 KB 0755
router_bridge_pvid_vlan_upper.sh File 3.5 KB 0755
router_bridge_vlan.sh File 5.46 KB 0755
router_bridge_vlan_upper.sh File 3.92 KB 0755
router_bridge_vlan_upper_pvid.sh File 3.7 KB 0755
router_broadcast.sh File 5.02 KB 0755
router_mpath_nh.sh File 10.73 KB 0755
router_mpath_nh_lib.sh File 3.2 KB 0644
router_mpath_nh_res.sh File 12.71 KB 0755
router_mpath_seed.sh File 7.37 KB 0755
router_multicast.sh File 14.6 KB 0755
router_multipath.sh File 7.07 KB 0755
router_nh.sh File 3.31 KB 0755
router_vid_1.sh File 3.52 KB 0755
sch_ets.sh File 745 B 0755
sch_ets_core.sh File 7.33 KB 0644
sch_ets_tests.sh File 4.09 KB 0644
sch_red.sh File 11.14 KB 0755
sch_tbf_core.sh File 4.77 KB 0644
sch_tbf_ets.sh File 118 B 0755
sch_tbf_etsprio.sh File 1.37 KB 0644
sch_tbf_prio.sh File 118 B 0755
sch_tbf_root.sh File 496 B 0755
skbedit_priority.sh File 3.87 KB 0755
tc_actions.sh File 9.3 KB 0755
tc_chains.sh File 4.83 KB 0755
tc_common.sh File 710 B 0644
tc_flower.sh File 21.24 KB 0755
tc_flower_cfm.sh File 4.85 KB 0755
tc_flower_l2_miss.sh File 9.13 KB 0755
tc_flower_port_range.sh File 7.35 KB 0755
tc_flower_router.sh File 3.02 KB 0755
tc_mpls_l2vpn.sh File 5.03 KB 0755
tc_police.sh File 11.75 KB 0755
tc_shblocks.sh File 2.68 KB 0755
tc_tunnel_key.sh File 3.71 KB 0755
tc_vlan_modify.sh File 3.17 KB 0755
tsn_lib.sh File 5.47 KB 0644
vxlan_asymmetric.sh File 17.55 KB 0755
vxlan_asymmetric_ipv6.sh File 16.03 KB 0755
vxlan_bridge_1d.sh File 20.4 KB 0755
vxlan_bridge_1d_ipv6.sh File 21.31 KB 0755
vxlan_bridge_1d_port_8472.sh File 172 B 0755
vxlan_bridge_1d_port_8472_ipv6.sh File 188 B 0755
vxlan_bridge_1q.sh File 22.91 KB 0755
vxlan_bridge_1q_ipv6.sh File 24.35 KB 0755
vxlan_bridge_1q_port_8472.sh File 172 B 0755
vxlan_bridge_1q_port_8472_ipv6.sh File 188 B 0755
vxlan_reserved.sh File 7.23 KB 0755
vxlan_symmetric.sh File 18.05 KB 0755
vxlan_symmetric_ipv6.sh File 18.31 KB 0755
Filemanager