Compare commits

...

1 Commits

Author SHA1 Message Date
Janusz Dziedzic
980f72967c map-agent: ts: use one sink interface/device
By default create br-sink and run there
dhcp server and NAT.

We put all sinkX interfaces (untagged vlans) into
br-sink and configure port isolation.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2022-07-28 13:58:18 +00:00

View File

@@ -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}
}
}