From 03ed475a42990fd76fab6f906b0a7fdb982a49ca Mon Sep 17 00:00:00 2001 From: Nils Schneider Date: Fri, 24 Jul 2015 21:54:41 +0200 Subject: [PATCH] openwrt/mac80211: set mcast-rate for mesh point interfaces --- ...mcast-rate-for-mesh-point-interfaces.patch | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 patches/openwrt/0016-mac80211-set-mcast-rate-for-mesh-point-interfaces.patch diff --git a/patches/openwrt/0016-mac80211-set-mcast-rate-for-mesh-point-interfaces.patch b/patches/openwrt/0016-mac80211-set-mcast-rate-for-mesh-point-interfaces.patch new file mode 100644 index 00000000..cb5d7b5e --- /dev/null +++ b/patches/openwrt/0016-mac80211-set-mcast-rate-for-mesh-point-interfaces.patch @@ -0,0 +1,47 @@ +From: Nils Schneider +Date: Fri, 24 Jul 2015 21:52:12 +0200 +Subject: mac80211: set mcast-rate for mesh point interfaces + +In order to set the multicast rate for mesh point interfaces the "mesh join" +was made explicit and moved to mac80211_setup_vif(), similar to how it is +done for IBSS interfaces. + +Previously, the mesh join was made implicit in case authentication (i.e. +$key) was not used when creating the interface in mac80211_prepare_vif(), +while using authentication would create the interface first, then join +later in mac80211_setup_vif() by starting authsae. + +Signed-off-by: Nils Schneider + +diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh +index c9bc3d6..8137b24 100644 +--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh ++++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh +@@ -455,12 +455,7 @@ mac80211_prepare_vif() { + } + ;; + mesh) +- json_get_vars key mesh_id +- if [ -n "$key" ]; then +- iw phy "$phy" interface add "$ifname" type mp +- else +- iw phy "$phy" interface add "$ifname" type mp mesh_id "$mesh_id" +- fi ++ iw phy "$phy" interface add "$ifname" type mp + ;; + monitor) + iw phy "$phy" interface add "$ifname" type monitor +@@ -603,6 +598,13 @@ mac80211_setup_vif() { + wireless_vif_parse_encryption + mac80211_setup_supplicant || failed=1 + fi ++ else ++ json_get_vars mesh_id mcast_rate ++ ++ mcval= ++ [ -n "$mcast_rate" ] && wpa_supplicant_add_rate mcval "$mcast_rate" ++ ++ iw dev "$ifname" mesh join "$mesh_id" ${mcval:+mcast-rate $mcval} + fi + + for var in $MP_CONFIG_INT $MP_CONFIG_BOOL $MP_CONFIG_STRING; do