Przeglądaj źródła

openwrt/mac80211: set mcast-rate for mesh point interfaces

Nils Schneider 9 lat temu
rodzic
commit
03ed475a42

+ 47 - 0
patches/openwrt/0016-mac80211-set-mcast-rate-for-mesh-point-interfaces.patch

@@ -0,0 +1,47 @@
+From: Nils Schneider <nils@nilsschneider.net>
+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 <nils@nilsschneider.net>
+
+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