mac80211: fix the assignment of PREQ's MAC address for Proactive RANN
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>
Tue, 10 Apr 2012 04:31:56 +0000 (12:31 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 12 Apr 2012 19:10:31 +0000 (15:10 -0400)
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 <yeohchunyeow@gmail.com>
Reviewed-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_pathtbl.c

index a80da3784a25bfcc3a342ff9a0121e091ee68327..503016f58631b88213b93015257123e75e892cea 100644 (file)
@@ -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)
index 49aaefd99635f5ca08c31dbe735f568416ae054c..baa6096c66b4b4714c40bcac0f0cb47f75778186 100644 (file)
@@ -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);