mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
mac80211: implement the meshconf formation info field
The Mesh Configuration Formation Info field contains the number of neighbors. This means that the beacon must be updated every time a peer joins or leaves. Signed-off-by: Rui Paulo <rpaulo@gmail.com> Signed-off-by: Javier Cardona <rpaulo@gmail.com> Reviewed-by: Andrey Yurovsky <andrey@cozybit.com> Tested-by: Brian Cavagnolo <brian@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a1935218da
commit
8f2fda9594
2 changed files with 8 additions and 3 deletions
|
@ -223,6 +223,7 @@ void mesh_mgmt_ies_add(struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
|
|||
struct ieee80211_supported_band *sband;
|
||||
u8 *pos;
|
||||
int len, i, rate;
|
||||
u8 neighbors;
|
||||
|
||||
sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
|
||||
len = sband->n_bitrates;
|
||||
|
@ -271,9 +272,11 @@ void mesh_mgmt_ies_add(struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
|
|||
/* Authentication Protocol identifier */
|
||||
*pos++ = sdata->u.mesh.mesh_auth_id;
|
||||
|
||||
/* Mesh Formation Info */
|
||||
memset(pos, 0x00, 1);
|
||||
pos += 1;
|
||||
/* Mesh Formation Info - number of neighbors */
|
||||
neighbors = atomic_read(&sdata->u.mesh.mshstats.estab_plinks);
|
||||
/* Number of neighbor mesh STAs or 15 whichever is smaller */
|
||||
neighbors = (neighbors > 15) ? 15 : neighbors;
|
||||
*pos++ = neighbors << 1;
|
||||
|
||||
/* Mesh capability */
|
||||
sdata->u.mesh.accepting_plinks = mesh_plink_availables(sdata);
|
||||
|
|
|
@ -65,6 +65,7 @@ void mesh_plink_inc_estab_count(struct ieee80211_sub_if_data *sdata)
|
|||
{
|
||||
atomic_inc(&sdata->u.mesh.mshstats.estab_plinks);
|
||||
mesh_accept_plinks_update(sdata);
|
||||
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON);
|
||||
}
|
||||
|
||||
static inline
|
||||
|
@ -72,6 +73,7 @@ void mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata)
|
|||
{
|
||||
atomic_dec(&sdata->u.mesh.mshstats.estab_plinks);
|
||||
mesh_accept_plinks_update(sdata);
|
||||
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue