mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-10 06:37:15 +08:00
Compare commits
1 Commits
signal
...
map-single
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
980f72967c |
@@ -3,6 +3,8 @@
|
||||
. /lib/functions.sh
|
||||
|
||||
AL_BRIDGE=${AL_BRIDGE-"br-lan"}
|
||||
SINK_BRIDGE=${SINK_BRIDGE-"br-sink"}
|
||||
SINK_IFACE=${SINK_IFACE-"sink"}
|
||||
PRIMARY_VID=${PRIMARY_VID-1}
|
||||
|
||||
### Traffic Separation ###
|
||||
@@ -30,10 +32,12 @@ EOF
|
||||
local dev=$4
|
||||
local port_dev=$5
|
||||
|
||||
[ -z "$(uci -q get network.${name})" ] || return
|
||||
[ -z "$(uci -q get network.${dev})" ] || return
|
||||
|
||||
local ip_addr="192.168.${vid}.1"
|
||||
local br_dev="${AL_BRIDGE/-/_}"
|
||||
local sink_dev="${SINK_BRIDGE/-/_}"
|
||||
local sink_iface="${SINK_IFACE/-/_}"
|
||||
local tag=":t"
|
||||
|
||||
[ "${vid}" = "${PRIMARY_VID}" ] && {
|
||||
@@ -50,19 +54,26 @@ EOF
|
||||
uci -q delete network.lan.ip6assign
|
||||
}
|
||||
|
||||
uci -q set network.${name}="interface"
|
||||
uci -q set network.${name}.device="$dev"
|
||||
uci -q set network.${name}.is_lan="1"
|
||||
[ -x "/usr/sbin/mapcontroller" ] && {
|
||||
[ -z "$(uci -q get network.${sink_dev})" ] && {
|
||||
uci -q set network.${sink_dev}="device"
|
||||
uci -q set network.${sink_dev}.type="bridge"
|
||||
uci -q set network.${sink_dev}.name="${SINK_BRIDGE}"
|
||||
|
||||
if [ "$proto" = "static" ] ; then
|
||||
uci -q set network.${name}.proto="static"
|
||||
# TODO vid > 255
|
||||
uci -q set network.${name}.ipaddr="${ip_addr}"
|
||||
uci -q set network.${name}.netmask="255.255.255.0"
|
||||
uci -q set network.${name}.ip6assign '60'
|
||||
else
|
||||
uci -q set network.${name}.proto="dhcp"
|
||||
fi
|
||||
uci -q set network.${sink_iface}="interface"
|
||||
uci -q set network.${sink_iface}.device="${SINK_BRIDGE}"
|
||||
uci -q set network.${sink_iface}.proto="static"
|
||||
uci -q set network.${sink_iface}.ipaddr="192.168.1.1"
|
||||
uci -q set network.${sink_iface}.netmask="255.255.255.0"
|
||||
uci -q set network.${sink_iface}.ip6assign="60"
|
||||
}
|
||||
|
||||
uci -q add_list network.${sink_dev}.ports="$dev"
|
||||
}
|
||||
|
||||
uci -q set network.${dev}="device"
|
||||
uci -q set network.${dev}.name="${dev}"
|
||||
uci -q set network.${dev}.isolate="1"
|
||||
|
||||
uci -q add network bridge-vlan
|
||||
uci -q set network.@bridge-vlan[-1].device="$AL_BRIDGE"
|
||||
@@ -160,8 +171,8 @@ EOF
|
||||
_net_setup "vlan${vid}" ${vid} ${proto} "sink${vid}" "sink_peer${vid}"
|
||||
|
||||
[ -x "/usr/sbin/mapcontroller" ] && {
|
||||
_dhcp_setup vlan${vid}
|
||||
_firewall_setup vlan${vid} ${vid}
|
||||
_dhcp_setup "${SINK_IFACE}"
|
||||
_firewall_setup "${SINK_IFACE}" ${vid}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user