aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/mesh.c6
-rw-r--r--net/mac80211/mesh_pathtbl.c6
-rw-r--r--net/mac80211/mesh_plink.c69
-rw-r--r--net/mac80211/rx.c2
-rw-r--r--net/mac80211/sta_info.c2
-rw-r--r--net/mac80211/sta_info.h31
6 files changed, 65 insertions, 51 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 54d5ced566e..594a3356a50 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -91,9 +91,9 @@ void mesh_accept_plinks_update(struct ieee80211_sub_if_data *sdata)
91 91
92 /* In case mesh_plink_free_count > 0 and mesh_plinktbl_capacity == 0, 92 /* In case mesh_plink_free_count > 0 and mesh_plinktbl_capacity == 0,
93 * the mesh interface might be able to establish plinks with peers that 93 * the mesh interface might be able to establish plinks with peers that
94 * are already on the table but are not on ESTAB state. However, in 94 * are already on the table but are not on PLINK_ESTAB state. However,
95 * general the mesh interface is not accepting peer link requests from 95 * in general the mesh interface is not accepting peer link requests
96 * new peers, and that must be reflected in the beacon 96 * from new peers, and that must be reflected in the beacon
97 */ 97 */
98 free_plinks = mesh_plink_availables(sdata); 98 free_plinks = mesh_plink_availables(sdata);
99 99
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index f74e4ce40ec..135022d7ee5 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -261,9 +261,9 @@ EXPORT_SYMBOL(mesh_plink_broken);
261 * 261 *
262 * @sta - mesh peer to match 262 * @sta - mesh peer to match
263 * 263 *
264 * RCU notes: this function is called when a mesh plink transitions from ESTAB 264 * RCU notes: this function is called when a mesh plink transitions from
265 * to any other state, since ESTAB state is the only one that allows path 265 * PLINK_ESTAB to any other state, since PLINK_ESTAB state is the only one that
266 * creation. This will happen before the sta can be freed (because 266 * allows path creation. This will happen before the sta can be freed (because
267 * sta_info_destroy() calls this) so any reader in a rcu read block will be 267 * sta_info_destroy() calls this) so any reader in a rcu read block will be
268 * protected against the plink disappearing. 268 * protected against the plink disappearing.
269 */ 269 */
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 23d951a8366..18fe52436c4 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -84,7 +84,7 @@ void mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata)
84 */ 84 */
85static inline void mesh_plink_fsm_restart(struct sta_info *sta) 85static inline void mesh_plink_fsm_restart(struct sta_info *sta)
86{ 86{
87 sta->plink_state = LISTEN; 87 sta->plink_state = PLINK_LISTEN;
88 sta->llid = sta->plid = sta->reason = 0; 88 sta->llid = sta->plid = sta->reason = 0;
89 sta->plink_retries = 0; 89 sta->plink_retries = 0;
90} 90}
@@ -121,9 +121,9 @@ static void __mesh_plink_deactivate(struct sta_info *sta)
121{ 121{
122 struct ieee80211_sub_if_data *sdata = sta->sdata; 122 struct ieee80211_sub_if_data *sdata = sta->sdata;
123 123
124 if (sta->plink_state == ESTAB) 124 if (sta->plink_state == PLINK_ESTAB)
125 mesh_plink_dec_estab_count(sdata); 125 mesh_plink_dec_estab_count(sdata);
126 sta->plink_state = BLOCKED; 126 sta->plink_state = PLINK_BLOCKED;
127 mesh_path_flush_by_nexthop(sta); 127 mesh_path_flush_by_nexthop(sta);
128} 128}
129 129
@@ -243,7 +243,7 @@ void mesh_neighbour_update(u8 *hw_addr, u64 rates, struct net_device *dev,
243 243
244 sta->last_rx = jiffies; 244 sta->last_rx = jiffies;
245 sta->supp_rates[local->hw.conf.channel->band] = rates; 245 sta->supp_rates[local->hw.conf.channel->band] = rates;
246 if (peer_accepting_plinks && sta->plink_state == LISTEN && 246 if (peer_accepting_plinks && sta->plink_state == PLINK_LISTEN &&
247 sdata->u.sta.accepting_plinks && 247 sdata->u.sta.accepting_plinks &&
248 sdata->u.sta.mshcfg.auto_open_plinks) 248 sdata->u.sta.mshcfg.auto_open_plinks)
249 mesh_plink_open(sta); 249 mesh_plink_open(sta);
@@ -283,8 +283,8 @@ static void mesh_plink_timer(unsigned long data)
283 dev = sdata->dev; 283 dev = sdata->dev;
284 284
285 switch (sta->plink_state) { 285 switch (sta->plink_state) {
286 case OPN_RCVD: 286 case PLINK_OPN_RCVD:
287 case OPN_SNT: 287 case PLINK_OPN_SNT:
288 /* retry timer */ 288 /* retry timer */
289 if (sta->plink_retries < dot11MeshMaxRetries(sdata)) { 289 if (sta->plink_retries < dot11MeshMaxRetries(sdata)) {
290 u32 rand; 290 u32 rand;
@@ -303,17 +303,17 @@ static void mesh_plink_timer(unsigned long data)
303 } 303 }
304 reason = cpu_to_le16(MESH_MAX_RETRIES); 304 reason = cpu_to_le16(MESH_MAX_RETRIES);
305 /* fall through on else */ 305 /* fall through on else */
306 case CNF_RCVD: 306 case PLINK_CNF_RCVD:
307 /* confirm timer */ 307 /* confirm timer */
308 if (!reason) 308 if (!reason)
309 reason = cpu_to_le16(MESH_CONFIRM_TIMEOUT); 309 reason = cpu_to_le16(MESH_CONFIRM_TIMEOUT);
310 sta->plink_state = HOLDING; 310 sta->plink_state = PLINK_HOLDING;
311 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)); 311 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
312 spin_unlock_bh(&sta->plink_lock); 312 spin_unlock_bh(&sta->plink_lock);
313 mesh_plink_frame_tx(dev, PLINK_CLOSE, sta->addr, llid, plid, 313 mesh_plink_frame_tx(dev, PLINK_CLOSE, sta->addr, llid, plid,
314 reason); 314 reason);
315 break; 315 break;
316 case HOLDING: 316 case PLINK_HOLDING:
317 /* holding timer */ 317 /* holding timer */
318 del_timer(&sta->plink_timer); 318 del_timer(&sta->plink_timer);
319 mesh_plink_fsm_restart(sta); 319 mesh_plink_fsm_restart(sta);
@@ -345,11 +345,11 @@ int mesh_plink_open(struct sta_info *sta)
345 spin_lock_bh(&sta->plink_lock); 345 spin_lock_bh(&sta->plink_lock);
346 get_random_bytes(&llid, 2); 346 get_random_bytes(&llid, 2);
347 sta->llid = llid; 347 sta->llid = llid;
348 if (sta->plink_state != LISTEN) { 348 if (sta->plink_state != PLINK_LISTEN) {
349 spin_unlock_bh(&sta->plink_lock); 349 spin_unlock_bh(&sta->plink_lock);
350 return -EBUSY; 350 return -EBUSY;
351 } 351 }
352 sta->plink_state = OPN_SNT; 352 sta->plink_state = PLINK_OPN_SNT;
353 mesh_plink_timer_set(sta, dot11MeshRetryTimeout(sdata)); 353 mesh_plink_timer_set(sta, dot11MeshRetryTimeout(sdata));
354 spin_unlock_bh(&sta->plink_lock); 354 spin_unlock_bh(&sta->plink_lock);
355 mpl_dbg("Mesh plink: starting establishment with %s\n", 355 mpl_dbg("Mesh plink: starting establishment with %s\n",
@@ -367,7 +367,7 @@ void mesh_plink_block(struct sta_info *sta)
367 367
368 spin_lock_bh(&sta->plink_lock); 368 spin_lock_bh(&sta->plink_lock);
369 __mesh_plink_deactivate(sta); 369 __mesh_plink_deactivate(sta);
370 sta->plink_state = BLOCKED; 370 sta->plink_state = PLINK_BLOCKED;
371 spin_unlock_bh(&sta->plink_lock); 371 spin_unlock_bh(&sta->plink_lock);
372} 372}
373 373
@@ -385,18 +385,19 @@ int mesh_plink_close(struct sta_info *sta)
385 sta->reason = cpu_to_le16(MESH_LINK_CANCELLED); 385 sta->reason = cpu_to_le16(MESH_LINK_CANCELLED);
386 reason = sta->reason; 386 reason = sta->reason;
387 387
388 if (sta->plink_state == LISTEN || sta->plink_state == BLOCKED) { 388 if (sta->plink_state == PLINK_LISTEN ||
389 sta->plink_state == PLINK_BLOCKED) {
389 mesh_plink_fsm_restart(sta); 390 mesh_plink_fsm_restart(sta);
390 spin_unlock_bh(&sta->plink_lock); 391 spin_unlock_bh(&sta->plink_lock);
391 return 0; 392 return 0;
392 } else if (sta->plink_state == ESTAB) { 393 } else if (sta->plink_state == PLINK_ESTAB) {
393 __mesh_plink_deactivate(sta); 394 __mesh_plink_deactivate(sta);
394 /* The timer should not be running */ 395 /* The timer should not be running */
395 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)); 396 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
396 } else if (!mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata))) 397 } else if (!mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)))
397 sta->ignore_plink_timer = true; 398 sta->ignore_plink_timer = true;
398 399
399 sta->plink_state = HOLDING; 400 sta->plink_state = PLINK_HOLDING;
400 llid = sta->llid; 401 llid = sta->llid;
401 plid = sta->plid; 402 plid = sta->plid;
402 spin_unlock_bh(&sta->plink_lock); 403 spin_unlock_bh(&sta->plink_lock);
@@ -468,7 +469,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
468 return; 469 return;
469 } 470 }
470 471
471 if (sta && sta->plink_state == BLOCKED) { 472 if (sta && sta->plink_state == PLINK_BLOCKED) {
472 rcu_read_unlock(); 473 rcu_read_unlock();
473 return; 474 return;
474 } 475 }
@@ -529,7 +530,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
529 event = CNF_ACPT; 530 event = CNF_ACPT;
530 break; 531 break;
531 case PLINK_CLOSE: 532 case PLINK_CLOSE:
532 if (sta->plink_state == ESTAB) 533 if (sta->plink_state == PLINK_ESTAB)
533 /* Do not check for llid or plid. This does not 534 /* Do not check for llid or plid. This does not
534 * follow the standard but since multiple plinks 535 * follow the standard but since multiple plinks
535 * per sta are not supported, it is necessary in 536 * per sta are not supported, it is necessary in
@@ -562,14 +563,14 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
562 reason = 0; 563 reason = 0;
563 switch (sta->plink_state) { 564 switch (sta->plink_state) {
564 /* spin_unlock as soon as state is updated at each case */ 565 /* spin_unlock as soon as state is updated at each case */
565 case LISTEN: 566 case PLINK_LISTEN:
566 switch (event) { 567 switch (event) {
567 case CLS_ACPT: 568 case CLS_ACPT:
568 mesh_plink_fsm_restart(sta); 569 mesh_plink_fsm_restart(sta);
569 spin_unlock_bh(&sta->plink_lock); 570 spin_unlock_bh(&sta->plink_lock);
570 break; 571 break;
571 case OPN_ACPT: 572 case OPN_ACPT:
572 sta->plink_state = OPN_RCVD; 573 sta->plink_state = PLINK_OPN_RCVD;
573 sta->plid = plid; 574 sta->plid = plid;
574 get_random_bytes(&llid, 2); 575 get_random_bytes(&llid, 2);
575 sta->llid = llid; 576 sta->llid = llid;
@@ -586,7 +587,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
586 } 587 }
587 break; 588 break;
588 589
589 case OPN_SNT: 590 case PLINK_OPN_SNT:
590 switch (event) { 591 switch (event) {
591 case OPN_RJCT: 592 case OPN_RJCT:
592 case CNF_RJCT: 593 case CNF_RJCT:
@@ -595,7 +596,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
595 if (!reason) 596 if (!reason)
596 reason = cpu_to_le16(MESH_CLOSE_RCVD); 597 reason = cpu_to_le16(MESH_CLOSE_RCVD);
597 sta->reason = reason; 598 sta->reason = reason;
598 sta->plink_state = HOLDING; 599 sta->plink_state = PLINK_HOLDING;
599 if (!mod_plink_timer(sta, 600 if (!mod_plink_timer(sta,
600 dot11MeshHoldingTimeout(sdata))) 601 dot11MeshHoldingTimeout(sdata)))
601 sta->ignore_plink_timer = true; 602 sta->ignore_plink_timer = true;
@@ -607,7 +608,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
607 break; 608 break;
608 case OPN_ACPT: 609 case OPN_ACPT:
609 /* retry timer is left untouched */ 610 /* retry timer is left untouched */
610 sta->plink_state = OPN_RCVD; 611 sta->plink_state = PLINK_OPN_RCVD;
611 sta->plid = plid; 612 sta->plid = plid;
612 llid = sta->llid; 613 llid = sta->llid;
613 spin_unlock_bh(&sta->plink_lock); 614 spin_unlock_bh(&sta->plink_lock);
@@ -615,7 +616,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
615 plid, 0); 616 plid, 0);
616 break; 617 break;
617 case CNF_ACPT: 618 case CNF_ACPT:
618 sta->plink_state = CNF_RCVD; 619 sta->plink_state = PLINK_CNF_RCVD;
619 if (!mod_plink_timer(sta, 620 if (!mod_plink_timer(sta,
620 dot11MeshConfirmTimeout(sdata))) 621 dot11MeshConfirmTimeout(sdata)))
621 sta->ignore_plink_timer = true; 622 sta->ignore_plink_timer = true;
@@ -628,7 +629,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
628 } 629 }
629 break; 630 break;
630 631
631 case OPN_RCVD: 632 case PLINK_OPN_RCVD:
632 switch (event) { 633 switch (event) {
633 case OPN_RJCT: 634 case OPN_RJCT:
634 case CNF_RJCT: 635 case CNF_RJCT:
@@ -637,7 +638,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
637 if (!reason) 638 if (!reason)
638 reason = cpu_to_le16(MESH_CLOSE_RCVD); 639 reason = cpu_to_le16(MESH_CLOSE_RCVD);
639 sta->reason = reason; 640 sta->reason = reason;
640 sta->plink_state = HOLDING; 641 sta->plink_state = PLINK_HOLDING;
641 if (!mod_plink_timer(sta, 642 if (!mod_plink_timer(sta,
642 dot11MeshHoldingTimeout(sdata))) 643 dot11MeshHoldingTimeout(sdata)))
643 sta->ignore_plink_timer = true; 644 sta->ignore_plink_timer = true;
@@ -655,7 +656,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
655 break; 656 break;
656 case CNF_ACPT: 657 case CNF_ACPT:
657 del_timer(&sta->plink_timer); 658 del_timer(&sta->plink_timer);
658 sta->plink_state = ESTAB; 659 sta->plink_state = PLINK_ESTAB;
659 mesh_plink_inc_estab_count(sdata); 660 mesh_plink_inc_estab_count(sdata);
660 spin_unlock_bh(&sta->plink_lock); 661 spin_unlock_bh(&sta->plink_lock);
661 mpl_dbg("Mesh plink with %s ESTABLISHED\n", 662 mpl_dbg("Mesh plink with %s ESTABLISHED\n",
@@ -667,7 +668,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
667 } 668 }
668 break; 669 break;
669 670
670 case CNF_RCVD: 671 case PLINK_CNF_RCVD:
671 switch (event) { 672 switch (event) {
672 case OPN_RJCT: 673 case OPN_RJCT:
673 case CNF_RJCT: 674 case CNF_RJCT:
@@ -676,7 +677,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
676 if (!reason) 677 if (!reason)
677 reason = cpu_to_le16(MESH_CLOSE_RCVD); 678 reason = cpu_to_le16(MESH_CLOSE_RCVD);
678 sta->reason = reason; 679 sta->reason = reason;
679 sta->plink_state = HOLDING; 680 sta->plink_state = PLINK_HOLDING;
680 if (!mod_plink_timer(sta, 681 if (!mod_plink_timer(sta,
681 dot11MeshHoldingTimeout(sdata))) 682 dot11MeshHoldingTimeout(sdata)))
682 sta->ignore_plink_timer = true; 683 sta->ignore_plink_timer = true;
@@ -688,7 +689,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
688 break; 689 break;
689 case OPN_ACPT: 690 case OPN_ACPT:
690 del_timer(&sta->plink_timer); 691 del_timer(&sta->plink_timer);
691 sta->plink_state = ESTAB; 692 sta->plink_state = PLINK_ESTAB;
692 mesh_plink_inc_estab_count(sdata); 693 mesh_plink_inc_estab_count(sdata);
693 spin_unlock_bh(&sta->plink_lock); 694 spin_unlock_bh(&sta->plink_lock);
694 mpl_dbg("Mesh plink with %s ESTABLISHED\n", 695 mpl_dbg("Mesh plink with %s ESTABLISHED\n",
@@ -702,13 +703,13 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
702 } 703 }
703 break; 704 break;
704 705
705 case ESTAB: 706 case PLINK_ESTAB:
706 switch (event) { 707 switch (event) {
707 case CLS_ACPT: 708 case CLS_ACPT:
708 reason = cpu_to_le16(MESH_CLOSE_RCVD); 709 reason = cpu_to_le16(MESH_CLOSE_RCVD);
709 sta->reason = reason; 710 sta->reason = reason;
710 __mesh_plink_deactivate(sta); 711 __mesh_plink_deactivate(sta);
711 sta->plink_state = HOLDING; 712 sta->plink_state = PLINK_HOLDING;
712 llid = sta->llid; 713 llid = sta->llid;
713 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)); 714 mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
714 spin_unlock_bh(&sta->plink_lock); 715 spin_unlock_bh(&sta->plink_lock);
@@ -726,7 +727,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
726 break; 727 break;
727 } 728 }
728 break; 729 break;
729 case HOLDING: 730 case PLINK_HOLDING:
730 switch (event) { 731 switch (event) {
731 case CLS_ACPT: 732 case CLS_ACPT:
732 if (del_timer(&sta->plink_timer)) 733 if (del_timer(&sta->plink_timer))
@@ -749,8 +750,8 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
749 } 750 }
750 break; 751 break;
751 default: 752 default:
752 /* should not get here, BLOCKED is dealt with at the beggining 753 /* should not get here, PLINK_BLOCKED is dealt with at the
753 * of the function 754 * beggining of the function
754 */ 755 */
755 spin_unlock_bh(&sta->plink_lock); 756 spin_unlock_bh(&sta->plink_lock);
756 break; 757 break;
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 8e1e2859bfd..644d2774469 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -411,7 +411,7 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
411 * establisment frame, beacon or probe, drop the frame. 411 * establisment frame, beacon or probe, drop the frame.
412 */ 412 */
413 413
414 if (!rx->sta || sta_plink_state(rx->sta) != ESTAB) { 414 if (!rx->sta || sta_plink_state(rx->sta) != PLINK_ESTAB) {
415 struct ieee80211_mgmt *mgmt; 415 struct ieee80211_mgmt *mgmt;
416 416
417 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT) 417 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT)
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 909fa38edb6..e27f896dae5 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -248,7 +248,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
248#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ 248#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
249 249
250#ifdef CONFIG_MAC80211_MESH 250#ifdef CONFIG_MAC80211_MESH
251 sta->plink_state = LISTEN; 251 sta->plink_state = PLINK_LISTEN;
252 spin_lock_init(&sta->plink_lock); 252 spin_lock_init(&sta->plink_lock);
253 init_timer(&sta->plink_timer); 253 init_timer(&sta->plink_timer);
254#endif 254#endif
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 547bfc3b243..f166c8039f2 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -106,14 +106,27 @@ struct tid_ampdu_rx {
106 struct timer_list session_timer; 106 struct timer_list session_timer;
107}; 107};
108 108
109/**
110 * enum plink_state - state of a mesh peer link finite state machine
111 *
112 * @PLINK_LISTEN: initial state, considered the implicit state of non existant
113 * mesh peer links
114 * @PLINK_OPN_SNT: mesh plink open frame has been sent to this mesh peer
115 * @PLINK_OPN_RCVD: mesh plink open frame has been received from this mesh peer
116 * @PLINK_CNF_RCVD: mesh plink confirm frame has been received from this mesh
117 * peer
118 * @PLINK_ESTAB: mesh peer link is established
119 * @PLINK_HOLDING: mesh peer link is being closed or cancelled
120 * @PLINK_BLOCKED: all frames transmitted from this mesh plink are discarded
121 */
109enum plink_state { 122enum plink_state {
110 LISTEN, 123 PLINK_LISTEN,
111 OPN_SNT, 124 PLINK_OPN_SNT,
112 OPN_RCVD, 125 PLINK_OPN_RCVD,
113 CNF_RCVD, 126 PLINK_CNF_RCVD,
114 ESTAB, 127 PLINK_ESTAB,
115 HOLDING, 128 PLINK_HOLDING,
116 BLOCKED 129 PLINK_BLOCKED
117}; 130};
118 131
119/** 132/**
@@ -248,7 +261,7 @@ struct sta_info {
248 */ 261 */
249 __le16 llid; /* Local link ID */ 262 __le16 llid; /* Local link ID */
250 __le16 plid; /* Peer link ID */ 263 __le16 plid; /* Peer link ID */
251 __le16 reason; /* Buffer for cancel reason on HOLDING state */ 264 __le16 reason; /* Cancel reason on PLINK_HOLDING state */
252 u8 plink_retries; /* Retries in establishment */ 265 u8 plink_retries; /* Retries in establishment */
253 bool ignore_plink_timer; 266 bool ignore_plink_timer;
254 enum plink_state plink_state; 267 enum plink_state plink_state;
@@ -280,7 +293,7 @@ static inline enum plink_state sta_plink_state(struct sta_info *sta)
280#ifdef CONFIG_MAC80211_MESH 293#ifdef CONFIG_MAC80211_MESH
281 return sta->plink_state; 294 return sta->plink_state;
282#endif 295#endif
283 return LISTEN; 296 return PLINK_LISTEN;
284} 297}
285 298
286 299