On Fri, Feb 1, 2013 at 11:56 AM, Thomas Pedersen <[email protected]> wrote: > Mesh interfaces will now respond to mesh probe requests > with a probe response. > > Signed-off-by: Thomas Pedersen <[email protected]> > --- > net/mac80211/mesh.c | 63 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > net/mac80211/rx.c | 5 ++-- > 2 files changed, 66 insertions(+), 2 deletions(-) > > diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c > index 47d89eb..476bd53 100644 > --- a/net/mac80211/mesh.c > +++ b/net/mac80211/mesh.c > @@ -808,6 +808,66 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data > *sdata) > sdata->u.mesh.timers_running = 0; > } > > +static void > +ieee80211_mesh_rx_probe_req(struct ieee80211_sub_if_data *sdata, > + struct ieee80211_mgmt *mgmt, size_t len) > +{ > + struct ieee80211_local *local = sdata->local; > + struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; > + struct sk_buff *presp; > + struct beacon_data *bcn; > + struct ieee80211_mgmt *hdr; > + struct ieee802_11_elems elems; > + size_t baselen; > + u8 *pos, *end; > + > + end = ((u8 *) mgmt) + len; > + pos = mgmt->u.probe_req.variable; > + baselen = (u8 *) pos - (u8 *) mgmt; > + if (baselen > len) > + return; > + > + ieee802_11_parse_elems(pos, len - baselen, &elems); > + > + /* 802.11-2012 10.1.4.3.2 */ > + if ((!ether_addr_equal(mgmt->da, sdata->vif.addr) && > + !is_broadcast_ether_addr(mgmt->da)) || > + elems.ssid_len != 0 || !elems.mesh_id) > + return;
Maybe we don't want to ignore non-mesh probe requests, so users scanning on a non-mesh interface have a better chance of discovering our MBSS? wpa_supplicant, for example, could then decide to switch the interface type and join our mesh. Does anyone know whether a non-mesh interface will drop probe responses with the null SSID IE? -- Thomas _______________________________________________ Devel mailing list [email protected] http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel
