39 lines
974 B
Bash
39 lines
974 B
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
NAME=qtn-utils
|
|
# must start before networking
|
|
START=19
|
|
|
|
USE_PROCD=1
|
|
|
|
start_service() {
|
|
ifconfig host0 1.1.1.1 netmask 255.255.255.252 up
|
|
local ifname="host0"
|
|
local ipaddr="1.1.1.1"
|
|
local hex_ip=$(printf "0x%02x%02x%02x%02x" $(echo $ipaddr | tr . \ ))
|
|
|
|
eval "$(ipcalc.sh $ipaddr 255.255.255.252 2)"
|
|
echo "1.1.1.2" > /tmp/qcsapi_target_ip.conf
|
|
|
|
# work around Quatenna vlan bug - pop bogus tags from arp and ip packets for 1.1.1.1
|
|
tc qdisc add dev $ifname handle ffff: ingress
|
|
tc filter add dev $ifname parent ffff: pref 1 \
|
|
protocol 802.1q u32 \
|
|
match u16 0x0806 0xffff at -2 \
|
|
match u32 $hex_ip 0xffffffff at 24 \
|
|
action vlan pop
|
|
tc filter add dev $ifname parent ffff: pref 2 \
|
|
protocol 802.1q u32 \
|
|
match u16 0x0800 0xffff at -2 \
|
|
match u32 $hex_ip 0xffffffff at 16 \
|
|
action vlan pop
|
|
}
|
|
|
|
stop_service() {
|
|
local ifname="host0"
|
|
|
|
tc filter del dev $ifname ingress
|
|
tc qdisc del dev $ifname ingress
|
|
|
|
}
|