On Thu, May 11, 2017 at 08:56:50AM +0200, Sven Eckelmann wrote: > From: Sven Eckelmann <sven.eckelm...@open-mesh.com> > > The wpa_supplicant code for IBSS allows to set the mcast rate. It is > recommended to increase this value from 1 or 6 Mbit/s to something higher > when using a mesh protocol on top which uses the multicast packet loss as > indicator for the link quality. > > This setting was unfortunately not applied for mesh mode. But it would be > beneficial when wpa_supplicant would behave similar to IBSS mode and set > this argument during mesh join like authsae already does. At least it is > helpful for companies/projects which are currently switching to 802.11s > (without mesh_fwding and with mesh_ttl set to 1) as replacement for IBSS > because newer drivers seem to support 802.11s but not IBSS anymore.
I do think this is needed, however, also note that 802.11s doesn't do legacy CCK rates by spec. Hence the lowest possible rate is 6 Mbit/s also on 2.4 GHz (and has always been 6 MBit/s for 5 GHz). everyone: Should we merge this patch now? > > Signed-off-by: Sven Eckelmann <sven.eckelm...@openmesh.com> > Tested-by: Simon Wunderlich <simon.wunderl...@openmesh.com> > --- > .../patches/463-add-mcast_rate-to-11s.patch | 68 > ++++++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 > package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch > > diff --git > a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch > b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch > new file mode 100644 > index 0000000000..9cf9d51ff7 > --- /dev/null > +++ b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch > @@ -0,0 +1,68 @@ > +From: Sven Eckelmann <sven.eckelm...@openmesh.com> > +Date: Thu, 11 May 2017 08:21:45 +0200 > +Subject: [PATCH] set mcast_rate in mesh mode > + > +The wpa_supplicant code for IBSS allows to set the mcast rate. It is > +recommended to increase this value from 1 or 6 Mbit/s to something higher > +when using a mesh protocol on top which uses the multicast packet loss as > +indicator for the link quality. > + > +This setting was unfortunately not applied for mesh mode. But it would be > +beneficial when wpa_supplicant would behave similar to IBSS mode and set > +this argument during mesh join like authsae already does. At least it is > +helpful for companies/projects which are currently switching to 802.11s > +(without mesh_fwding and with mesh_ttl set to 1) as replacement for IBSS > +because newer drivers seem to support 802.11s but not IBSS anymore. > + > +Signed-off-by: Sven Eckelmann <sven.eckelm...@openmesh.com> > +Tested-by: Simon Wunderlich <simon.wunderl...@openmesh.com> > + > +--- a/src/drivers/driver.h > ++++ b/src/drivers/driver.h > +@@ -1230,6 +1230,7 @@ struct wpa_driver_mesh_join_params { > + #define WPA_DRIVER_MESH_FLAG_SAE_AUTH 0x00000004 > + #define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008 > + unsigned int flags; > ++ int mcast_rate; > + }; > + > + /** > +--- a/src/drivers/driver_nl80211.c > ++++ b/src/drivers/driver_nl80211.c > +@@ -8764,6 +8764,18 @@ static int nl80211_put_mesh_id(struct nl > + } > + > + > ++static int nl80211_put_mcast_rate(struct nl_msg *msg, int mcast_rate) > ++{ > ++ if (mcast_rate > 0) { > ++ wpa_printf(MSG_DEBUG, " * mcast_rate=%.1f", > ++ (double)mcast_rate / 10); > ++ return nla_put_u32(msg, NL80211_ATTR_MCAST_RATE, mcast_rate); > ++ } > ++ > ++ return 0; > ++} > ++ > ++ > + static int nl80211_put_mesh_config(struct nl_msg *msg, > + struct wpa_driver_mesh_bss_params *params) > + { > +@@ -8819,6 +8831,7 @@ static int nl80211_join_mesh(struct i802 > + nl80211_put_basic_rates(msg, params->basic_rates) || > + nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) || > + nl80211_put_beacon_int(msg, params->beacon_int) || > ++ nl80211_put_mcast_rate(msg, params->mcast_rate) || > + nl80211_put_dtim_period(msg, params->dtim_period)) > + goto fail; > + > +--- a/wpa_supplicant/mesh.c > ++++ b/wpa_supplicant/mesh.c > +@@ -380,6 +380,7 @@ int wpa_supplicant_join_mesh(struct wpa_ > + os_memset(¶ms, 0, sizeof(params)); > + params.meshid = ssid->ssid; > + params.meshid_len = ssid->ssid_len; > ++ params.mcast_rate = ssid->mcast_rate; > + ibss_mesh_setup_freq(wpa_s, ssid, ¶ms.freq); > + wpa_s->mesh_ht_enabled = !!params.freq.ht_enabled; > + wpa_s->mesh_vht_enabled = !!params.freq.vht_enabled; > -- > 2.11.0 > > > _______________________________________________ > Lede-dev mailing list > Lede-dev@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/lede-dev _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev