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

Reply via email to