2021-07-24 22:45:08 +08:00

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
}