Record the RANN sender's address only for RANNs that meet the acceptance
criteria (per sections 13.10.12.4.2).

Signed-off-by: Chun-Yeow Yeoh <[email protected]>
---
v2: reword description (Javier)
    initialize is_root and rann_snd_addr

 net/mac80211/mesh_hwmp.c    |    5 +++--
 net/mac80211/mesh_pathtbl.c |    2 ++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index a80da37..8130e5f 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -800,10 +800,11 @@ static void hwmp_rann_frame_process(struct 
ieee80211_sub_if_data *sdata,
                                       0, sdata);
                mpath->sn = orig_sn;
                mpath->rann_metric = metric + metric_txsta;
+               /* Recording RANNs sender address to send individually
+                * addressed PREQs destined for root mesh STA */
+               memcpy(mpath->rann_snd_addr, mgmt->sa, ETH_ALEN);
        }

-       /* Using individually addressed PREQ for root node */
-       memcpy(mpath->rann_snd_addr, mgmt->sa, ETH_ALEN);
        mpath->is_root = true;

        if (root_is_gate)
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index 49aaefd..baa6096 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -538,6 +538,8 @@ int mesh_path_add(u8 *dst, struct ieee80211_sub_if_data 
*sdata)

        read_lock_bh(&pathtbl_resize_lock);
        memcpy(new_mpath->dst, dst, ETH_ALEN);
+       memset(new_mpath->rann_snd_addr, 0xff, ETH_ALEN);
+       new_mpath->is_root = false;
        new_mpath->sdata = sdata;
        new_mpath->flags = 0;
        skb_queue_head_init(&new_mpath->frame_queue);
--
1.7.0.4

_______________________________________________
Devel mailing list
[email protected]
http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

Reply via email to