nl80211/mac80211: define and allow configuring mesh element TTL
The TTL in path selection information elements is different from the mesh ttl used in mesh data frames. Version 7.03 of the 11s draft calls this ttl 'Element TTL'. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
b9e61f11f4
commit
45904f2165
@@ -232,7 +232,7 @@ int mesh_path_error_tx(u8 ttl, u8 *target, __le32 target_sn,
|
||||
*pos++ = WLAN_EID_PERR;
|
||||
*pos++ = ie_len;
|
||||
/* ttl */
|
||||
*pos++ = MESH_TTL;
|
||||
*pos++ = ttl;
|
||||
/* number of destinations */
|
||||
*pos++ = 1;
|
||||
/*
|
||||
@@ -522,7 +522,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
if (reply) {
|
||||
lifetime = PREQ_IE_LIFETIME(preq_elem);
|
||||
ttl = ifmsh->mshcfg.dot11MeshTTL;
|
||||
ttl = ifmsh->mshcfg.element_ttl;
|
||||
if (ttl != 0) {
|
||||
mhwmp_dbg("replying to the PREQ\n");
|
||||
mesh_path_sel_frame_tx(MPATH_PREP, 0, target_addr,
|
||||
@@ -877,7 +877,7 @@ void mesh_path_start_discovery(struct ieee80211_sub_if_data *sdata)
|
||||
sdata->u.mesh.last_sn_update = jiffies;
|
||||
}
|
||||
lifetime = default_lifetime(sdata);
|
||||
ttl = sdata->u.mesh.mshcfg.dot11MeshTTL;
|
||||
ttl = sdata->u.mesh.mshcfg.element_ttl;
|
||||
if (ttl == 0) {
|
||||
sdata->u.mesh.mshstats.dropped_frames_ttl++;
|
||||
spin_unlock_bh(&mpath->state_lock);
|
||||
@@ -1013,5 +1013,6 @@ mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata)
|
||||
mesh_path_sel_frame_tx(MPATH_RANN, 0, sdata->vif.addr,
|
||||
cpu_to_le32(++ifmsh->sn),
|
||||
0, NULL, 0, broadcast_addr,
|
||||
0, MESH_TTL, 0, 0, 0, sdata);
|
||||
0, sdata->u.mesh.mshcfg.element_ttl,
|
||||
0, 0, 0, sdata);
|
||||
}
|
||||
|
Reference in New Issue
Block a user