aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm53xx/base-files/usr/libexec/platform/packet-steering.sh
blob: dacd1adc7e0fa39adce38d500cb95cd21b0f15d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh /etc/rc.common

packet_steering="$(uci -q get network.@globals[0].packet_steering)"
flow_offloading="$(uci -q get firewall.@defaults[0].flow_offloading)"
flow_offloading_hw="$(uci -q get firewall.@defaults[0].flow_offloading_hw)"

[ "$packet_steering" != 1 ] && {
	echo 0 > /sys/class/net/br-lan/queues/rx-0/rps_cpus
	echo 0 > /sys/class/net/eth0/queues/rx-0/rps_cpus
	exit 0
}

if [ ${flow_offloading_hw:-0} -gt 0 ]; then
	# HW offloading
	echo 0 > /sys/class/net/br-lan/queues/rx-0/rps_cpus
	echo 0 > /sys/class/net/eth0/queues/rx-0/rps_cpus
elif [ ${flow_offloading:-0} -gt 0 ]; then
	# SW offloading
	# br-lan setup doesn't seem to matter for offloading case
	echo 2 > /sys/class/net/eth0/queues/rx-0/rps_cpus
else
	# Default
	echo 2 > /sys/class/net/br-lan/queues/rx-0/rps_cpus
	echo 0 > /sys/class/net/eth0/queues/rx-0/rps_cpus
fi