iopsys-feed/layer2interface/broadcom/etc/init.d/layer2_interface_vlan
2017-12-25 18:28:59 +01:00

48 lines
1 KiB
Bash
Executable file

#!/bin/sh /etc/rc.common
. /lib/functions.sh
START=22
USE_PROCD=1
DEVICE_ADDED=0
vlan_exists() {
ubus call uci get '{"config":"network","type":"device"}' | grep -w name | grep -qw "$1" && return 0
return 1
}
vlan_inf_conf() {
local name baseifname ifname
local vlan8021p vlan8021q
config_get name $1 name
config_get baseifname $1 baseifname
config_get ifname $1 ifname
config_get vlan8021p $1 vlan8021p
config_get vlan8021q $1 vlan8021q
[ -n "$ifname" -a -n "$name" ] || return
vlan_exists "$ifname" && return
uci -q set network.$name=device
uci -q set network.$name.type=8021q
uci -q set network.$name.priority=$vlan8021p
uci -q set network.$name.vid="$vlan8021q"
uci -q set network.$name.ifname="$baseifname"
uci -q set network.$name.name="$ifname"
DEVICE_ADDED=1
}
start_service() {
config_load layer2_interface_vlan
config_foreach vlan_inf_conf vlan_interface
[ $DEVICE_ADDED -eq 1 ] && ubus call uci commit '{"config":"network"}'
}
service_triggers() {
procd_add_reload_trigger layer2_interface_vlan
}