summaryrefslogtreecommitdiffhomepage
path: root/scripts/netifd-wireless.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/netifd-wireless.sh')
-rw-r--r--scripts/netifd-wireless.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/netifd-wireless.sh b/scripts/netifd-wireless.sh
index c5d8a96..f981f1b 100644
--- a/scripts/netifd-wireless.sh
+++ b/scripts/netifd-wireless.sh
@@ -248,12 +248,26 @@ wireless_vif_parse_encryption() {
esac
}
+_wireless_set_brsnoop_isolation() {
+ local multicast_to_unicast="$1"
+ local isolate
+
+ json_get_var isolate isolate
+
+ [ $isolate -gt 0 -o -z "$network_bridge" ] && return
+
+ [ -z "$multicast_to_unicast" ] && multicast_to_unicast=1
+ [ $multicast_to_unicast -gt 0 ] && json_add_boolean isolate 1
+}
+
for_each_interface() {
local _w_types="$1"; shift
local _w_ifaces _w_iface
local _w_type
local _w_found
+ local multicast_to_unicast
+
json_get_keys _w_ifaces interfaces
json_select interfaces
for _w_iface in $_w_ifaces; do
@@ -261,6 +275,7 @@ for_each_interface() {
if [ -n "$_w_types" ]; then
json_get_var network_bridge bridge
json_select config
+ _wireless_set_brsnoop_isolation "$multicast_to_unicast"
json_get_var _w_type mode
json_select ..
_w_types=" $_w_types "