mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-03-10 11:17:16 +01:00
layer2interface: let netifd and vlanconf handle tagged and untagged vlans
This commit is contained in:
parent
dd22d60889
commit
60dae510cc
3 changed files with 33 additions and 90 deletions
|
|
@ -18,46 +18,6 @@ get_current_status() {
|
|||
fi
|
||||
}
|
||||
|
||||
removeethernet() {
|
||||
config_get baseifname $1 baseifname
|
||||
config_get ifname $1 ifname
|
||||
|
||||
ifname="${ifname:-$baseifname.1}"
|
||||
|
||||
vlanctl --if-delete $ifname
|
||||
config_load layer2_interface_vlan
|
||||
#kill all vlans related to this interface
|
||||
config_foreach removevlan vlan_interface
|
||||
}
|
||||
|
||||
removevlan() {
|
||||
local baseifname
|
||||
local ifname
|
||||
local wan=`uci -q get layer2_interface_ethernet.Wan.baseifname`
|
||||
|
||||
config_get baseifname $1 baseifname
|
||||
config_get ifname $1 ifname
|
||||
|
||||
ifname="${ifname:-$baseifname.1}"
|
||||
|
||||
if [ "$wan" == "$baseifname" ]; then
|
||||
echo "vlanctl --if-delete $ifname"
|
||||
vlanctl --if-delete $ifname
|
||||
fi
|
||||
}
|
||||
|
||||
addethernet() {
|
||||
config_get baseifname $1 baseifname
|
||||
config_get ifname $1 ifname
|
||||
config_get bridge $1 bridge
|
||||
config_get mac2 $1 mac2
|
||||
|
||||
ifname="${ifname:-$baseifname.1}"
|
||||
|
||||
brcm_virtual_interface_rules "$baseifname" "$ifname" "$bridge" "$mac2"
|
||||
|
||||
}
|
||||
|
||||
boot() {
|
||||
local baseifname wanport portnum
|
||||
config_load layer2_interface_ethernet
|
||||
|
|
@ -94,26 +54,4 @@ boot() {
|
|||
[ -n $baseifname ] && ifconfig $baseifname up
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local baseifname
|
||||
echo "Setting up Ethernet WAN"
|
||||
config_load layer2_interface_ethernet
|
||||
config_foreach addethernet ethernet_interface
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
local ifname
|
||||
config_load layer2_interface_ethernet
|
||||
config_foreach removeethernet ethernet_interface
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger layer2_interface_ethernet
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,47 +1,35 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
. /lib/functions.sh
|
||||
include /lib/network
|
||||
|
||||
START=22
|
||||
USE_PROCD=1
|
||||
|
||||
vlan_inf_conf() {
|
||||
local baseifname
|
||||
local vlan8021p
|
||||
local vlan8021q
|
||||
local routed
|
||||
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
|
||||
config_get bridge $1 bridge
|
||||
|
||||
ifname="${ifname:-$baseifname.$vlan8021q}"
|
||||
[ -n "$name" ] || return
|
||||
|
||||
addbrcmvlan "$baseifname" "$vlan8021p" "$vlan8021q" "$bridge" "$ifname"
|
||||
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="$baseifname.$vlan8021q"
|
||||
}
|
||||
|
||||
boot() {
|
||||
echo "VLAN does not run at boot"
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local vdslstatus
|
||||
echo "Starting VLAN"
|
||||
|
||||
config_load layer2_interface_vlan
|
||||
config_foreach vlan_inf_conf vlan_interface
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
echo "Stopping VLAN"
|
||||
removeall_vlandevices
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
ubus call uci commit '{"config":"network"}'
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
|
|
|
|||
|
|
@ -113,15 +113,32 @@ EOF
|
|||
|
||||
populate_network_config_ifnames() {
|
||||
uci -q get network.lan.ifname >/dev/null || uci -q set network.lan.ifname="$LANPORTS"
|
||||
# uci -q get network.wan.ifname >/dev/null || uci -q set network.wan.ifname="$WANPORTS"
|
||||
uci -q get network.wan.ifname >/dev/null || uci -q set network.wan.ifname="$(db -q get hw.board.ethernetWanPort)"
|
||||
uci commit network
|
||||
|
||||
[ "$hasEthWan" == "0" ] && {
|
||||
uci -q commit network
|
||||
return
|
||||
}
|
||||
|
||||
WANPORT="$(db -q get hw.board.ethernetWanPort)"
|
||||
WANIFACE="${WANPORT}.1"
|
||||
|
||||
uci -q get network.ethwan >/dev/null || {
|
||||
uci -q set network.ethwan=device
|
||||
uci -q set network.ethwan.type=8021q
|
||||
uci -q set network.ethwan.untagged=1
|
||||
uci -q set network.ethwan.ifname="$WANPORT"
|
||||
uci -q set network.ethwan.name="$WANIFACE"
|
||||
}
|
||||
|
||||
uci -q get network.wan.ifname || uci -q set network.wan.ifname="$WANIFACE"
|
||||
|
||||
uci -q commit network
|
||||
}
|
||||
|
||||
#populate_layer2_interface
|
||||
#populate_layer2_interface_vdsl
|
||||
#populate_layer2_interface_adsl
|
||||
#populate_layer2_interface_ethernet
|
||||
populate_layer2_interface_ethernet
|
||||
populate_network_config_ifnames
|
||||
|
||||
sync
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue