mac80211: update mesh peer link counter during userspace peering
The established peer link count is indicated in mesh beacons and used for other internal tasks. Previously it was not updated when authenticated peering is performed in userspace. Signed-off-by: Marco Porsch <marco@cozybit.com> Acked-by: Thomas Pedersen <thomas@cozybit.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
ea54fba209
commit
1617bab8db
@@ -1243,18 +1243,33 @@ static int sta_apply_parameters(struct ieee80211_local *local,
|
||||
|
||||
if (ieee80211_vif_is_mesh(&sdata->vif)) {
|
||||
#ifdef CONFIG_MAC80211_MESH
|
||||
if (sdata->u.mesh.security & IEEE80211_MESH_SEC_SECURED)
|
||||
if (sdata->u.mesh.security & IEEE80211_MESH_SEC_SECURED) {
|
||||
u32 changed = 0;
|
||||
|
||||
switch (params->plink_state) {
|
||||
case NL80211_PLINK_LISTEN:
|
||||
case NL80211_PLINK_ESTAB:
|
||||
if (sta->plink_state != NL80211_PLINK_ESTAB)
|
||||
changed = mesh_plink_inc_estab_count(
|
||||
sdata);
|
||||
sta->plink_state = params->plink_state;
|
||||
break;
|
||||
case NL80211_PLINK_LISTEN:
|
||||
case NL80211_PLINK_BLOCKED:
|
||||
case NL80211_PLINK_OPN_SNT:
|
||||
case NL80211_PLINK_OPN_RCVD:
|
||||
case NL80211_PLINK_CNF_RCVD:
|
||||
case NL80211_PLINK_HOLDING:
|
||||
if (sta->plink_state == NL80211_PLINK_ESTAB)
|
||||
changed = mesh_plink_dec_estab_count(
|
||||
sdata);
|
||||
sta->plink_state = params->plink_state;
|
||||
break;
|
||||
default:
|
||||
/* nothing */
|
||||
break;
|
||||
}
|
||||
else
|
||||
ieee80211_bss_info_change_notify(sdata, changed);
|
||||
} else {
|
||||
switch (params->plink_action) {
|
||||
case PLINK_ACTION_OPEN:
|
||||
mesh_plink_open(sta);
|
||||
@@ -1263,6 +1278,7 @@ static int sta_apply_parameters(struct ieee80211_local *local,
|
||||
mesh_plink_block(sta);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user