]> err.no Git - linux-2.6/commitdiff
mac80211: add PLINK_ prefix and kernel doc to enum plink_state
authorLuis Carlos Cobo <luisca@cozybit.com>
Fri, 29 Feb 2008 23:46:08 +0000 (15:46 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Mar 2008 21:40:52 +0000 (16:40 -0500)
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mesh.c
net/mac80211/mesh_pathtbl.c
net/mac80211/mesh_plink.c
net/mac80211/rx.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h

index 54d5ced566ef9241c0e293838c7ecdbc4eeb2a52..594a3356a5082c3c33760c67254cac02133f42fb 100644 (file)
@@ -91,9 +91,9 @@ void mesh_accept_plinks_update(struct ieee80211_sub_if_data *sdata)
 
        /* In case mesh_plink_free_count > 0 and mesh_plinktbl_capacity == 0,
         * the mesh interface might be able to establish plinks with peers that
-        * are already on the table but are not on ESTAB state. However, in
-        * general the mesh interface is not accepting peer link requests from
-        * new peers, and that must be reflected in the beacon
+        * are already on the table but are not on PLINK_ESTAB state. However,
+        * in general the mesh interface is not accepting peer link requests
+        * from new peers, and that must be reflected in the beacon
         */
        free_plinks = mesh_plink_availables(sdata);
 
index f74e4ce40ec74f45fa51041a6a0c2450d9d2cbaf..135022d7ee57f0fe83a77859c71c3e4531c851f1 100644 (file)
@@ -261,9 +261,9 @@ EXPORT_SYMBOL(mesh_plink_broken);
  *
  * @sta - mesh peer to match
  *
- * RCU notes: this function is called when a mesh plink transitions from ESTAB
- * to any other state, since ESTAB state is the only one that allows path
- * creation. This will happen before the sta can be freed (because
+ * RCU notes: this function is called when a mesh plink transitions from
+ * PLINK_ESTAB to any other state, since PLINK_ESTAB state is the only one that
+ * allows path creation. This will happen before the sta can be freed (because
  * sta_info_destroy() calls this) so any reader in a rcu read block will be
  * protected against the plink disappearing.
  */
index 23d951a8366897578526b8f174d2b66964a171c7..18fe52436c47b7d6aa1437ad22f896a8c09983cd 100644 (file)
@@ -84,7 +84,7 @@ void mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata)
  */
 static inline void mesh_plink_fsm_restart(struct sta_info *sta)
 {
-       sta->plink_state = LISTEN;
+       sta->plink_state = PLINK_LISTEN;
        sta->llid = sta->plid = sta->reason = 0;
        sta->plink_retries = 0;
 }
@@ -121,9 +121,9 @@ static void __mesh_plink_deactivate(struct sta_info *sta)
 {
        struct ieee80211_sub_if_data *sdata = sta->sdata;
 
-       if (sta->plink_state == ESTAB)
+       if (sta->plink_state == PLINK_ESTAB)
                mesh_plink_dec_estab_count(sdata);
-       sta->plink_state = BLOCKED;
+       sta->plink_state = PLINK_BLOCKED;
        mesh_path_flush_by_nexthop(sta);
 }
 
@@ -243,7 +243,7 @@ void mesh_neighbour_update(u8 *hw_addr, u64 rates, struct net_device *dev,
 
        sta->last_rx = jiffies;
        sta->supp_rates[local->hw.conf.channel->band] = rates;
-       if (peer_accepting_plinks && sta->plink_state == LISTEN &&
+       if (peer_accepting_plinks && sta->plink_state == PLINK_LISTEN &&
                        sdata->u.sta.accepting_plinks &&
                        sdata->u.sta.mshcfg.auto_open_plinks)
                mesh_plink_open(sta);
@@ -283,8 +283,8 @@ static void mesh_plink_timer(unsigned long data)
        dev = sdata->dev;
 
        switch (sta->plink_state) {
-       case OPN_RCVD:
-       case OPN_SNT:
+       case PLINK_OPN_RCVD:
+       case PLINK_OPN_SNT:
                /* retry timer */
                if (sta->plink_retries < dot11MeshMaxRetries(sdata)) {
                        u32 rand;
@@ -303,17 +303,17 @@ static void mesh_plink_timer(unsigned long data)
                }
                reason = cpu_to_le16(MESH_MAX_RETRIES);
                /* fall through on else */
-       case CNF_RCVD:
+       case PLINK_CNF_RCVD:
                /* confirm timer */
                if (!reason)
                        reason = cpu_to_le16(MESH_CONFIRM_TIMEOUT);
-               sta->plink_state = HOLDING;
+               sta->plink_state = PLINK_HOLDING;
                mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
                spin_unlock_bh(&sta->plink_lock);
                mesh_plink_frame_tx(dev, PLINK_CLOSE, sta->addr, llid, plid,
                                    reason);
                break;
-       case HOLDING:
+       case PLINK_HOLDING:
                /* holding timer */
                del_timer(&sta->plink_timer);
                mesh_plink_fsm_restart(sta);
@@ -345,11 +345,11 @@ int mesh_plink_open(struct sta_info *sta)
        spin_lock_bh(&sta->plink_lock);
        get_random_bytes(&llid, 2);
        sta->llid = llid;
-       if (sta->plink_state != LISTEN) {
+       if (sta->plink_state != PLINK_LISTEN) {
                spin_unlock_bh(&sta->plink_lock);
                return -EBUSY;
        }
-       sta->plink_state = OPN_SNT;
+       sta->plink_state = PLINK_OPN_SNT;
        mesh_plink_timer_set(sta, dot11MeshRetryTimeout(sdata));
        spin_unlock_bh(&sta->plink_lock);
        mpl_dbg("Mesh plink: starting establishment with %s\n",
@@ -367,7 +367,7 @@ void mesh_plink_block(struct sta_info *sta)
 
        spin_lock_bh(&sta->plink_lock);
        __mesh_plink_deactivate(sta);
-       sta->plink_state = BLOCKED;
+       sta->plink_state = PLINK_BLOCKED;
        spin_unlock_bh(&sta->plink_lock);
 }
 
@@ -385,18 +385,19 @@ int mesh_plink_close(struct sta_info *sta)
        sta->reason = cpu_to_le16(MESH_LINK_CANCELLED);
        reason = sta->reason;
 
-       if (sta->plink_state == LISTEN || sta->plink_state == BLOCKED) {
+       if (sta->plink_state == PLINK_LISTEN ||
+           sta->plink_state == PLINK_BLOCKED) {
                mesh_plink_fsm_restart(sta);
                spin_unlock_bh(&sta->plink_lock);
                return 0;
-       } else if (sta->plink_state == ESTAB) {
+       } else if (sta->plink_state == PLINK_ESTAB) {
                __mesh_plink_deactivate(sta);
                /* The timer should not be running */
                mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
        } else if (!mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)))
                sta->ignore_plink_timer = true;
 
-       sta->plink_state = HOLDING;
+       sta->plink_state = PLINK_HOLDING;
        llid = sta->llid;
        plid = sta->plid;
        spin_unlock_bh(&sta->plink_lock);
@@ -468,7 +469,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                return;
        }
 
-       if (sta && sta->plink_state == BLOCKED) {
+       if (sta && sta->plink_state == PLINK_BLOCKED) {
                rcu_read_unlock();
                return;
        }
@@ -529,7 +530,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                                event = CNF_ACPT;
                        break;
                case PLINK_CLOSE:
-                       if (sta->plink_state == ESTAB)
+                       if (sta->plink_state == PLINK_ESTAB)
                                /* Do not check for llid or plid. This does not
                                 * follow the standard but since multiple plinks
                                 * 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,
        reason = 0;
        switch (sta->plink_state) {
                /* spin_unlock as soon as state is updated at each case */
-       case LISTEN:
+       case PLINK_LISTEN:
                switch (event) {
                case CLS_ACPT:
                        mesh_plink_fsm_restart(sta);
                        spin_unlock_bh(&sta->plink_lock);
                        break;
                case OPN_ACPT:
-                       sta->plink_state = OPN_RCVD;
+                       sta->plink_state = PLINK_OPN_RCVD;
                        sta->plid = plid;
                        get_random_bytes(&llid, 2);
                        sta->llid = llid;
@@ -586,7 +587,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                }
                break;
 
-       case OPN_SNT:
+       case PLINK_OPN_SNT:
                switch (event) {
                case OPN_RJCT:
                case CNF_RJCT:
@@ -595,7 +596,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        if (!reason)
                                reason = cpu_to_le16(MESH_CLOSE_RCVD);
                        sta->reason = reason;
-                       sta->plink_state = HOLDING;
+                       sta->plink_state = PLINK_HOLDING;
                        if (!mod_plink_timer(sta,
                                             dot11MeshHoldingTimeout(sdata)))
                                sta->ignore_plink_timer = true;
@@ -607,7 +608,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        break;
                case OPN_ACPT:
                        /* retry timer is left untouched */
-                       sta->plink_state = OPN_RCVD;
+                       sta->plink_state = PLINK_OPN_RCVD;
                        sta->plid = plid;
                        llid = sta->llid;
                        spin_unlock_bh(&sta->plink_lock);
@@ -615,7 +616,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                                            plid, 0);
                        break;
                case CNF_ACPT:
-                       sta->plink_state = CNF_RCVD;
+                       sta->plink_state = PLINK_CNF_RCVD;
                        if (!mod_plink_timer(sta,
                                             dot11MeshConfirmTimeout(sdata)))
                                sta->ignore_plink_timer = true;
@@ -628,7 +629,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                }
                break;
 
-       case OPN_RCVD:
+       case PLINK_OPN_RCVD:
                switch (event) {
                case OPN_RJCT:
                case CNF_RJCT:
@@ -637,7 +638,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        if (!reason)
                                reason = cpu_to_le16(MESH_CLOSE_RCVD);
                        sta->reason = reason;
-                       sta->plink_state = HOLDING;
+                       sta->plink_state = PLINK_HOLDING;
                        if (!mod_plink_timer(sta,
                                             dot11MeshHoldingTimeout(sdata)))
                                sta->ignore_plink_timer = true;
@@ -655,7 +656,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        break;
                case CNF_ACPT:
                        del_timer(&sta->plink_timer);
-                       sta->plink_state = ESTAB;
+                       sta->plink_state = PLINK_ESTAB;
                        mesh_plink_inc_estab_count(sdata);
                        spin_unlock_bh(&sta->plink_lock);
                        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,
                }
                break;
 
-       case CNF_RCVD:
+       case PLINK_CNF_RCVD:
                switch (event) {
                case OPN_RJCT:
                case CNF_RJCT:
@@ -676,7 +677,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        if (!reason)
                                reason = cpu_to_le16(MESH_CLOSE_RCVD);
                        sta->reason = reason;
-                       sta->plink_state = HOLDING;
+                       sta->plink_state = PLINK_HOLDING;
                        if (!mod_plink_timer(sta,
                                             dot11MeshHoldingTimeout(sdata)))
                                sta->ignore_plink_timer = true;
@@ -688,7 +689,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        break;
                case OPN_ACPT:
                        del_timer(&sta->plink_timer);
-                       sta->plink_state = ESTAB;
+                       sta->plink_state = PLINK_ESTAB;
                        mesh_plink_inc_estab_count(sdata);
                        spin_unlock_bh(&sta->plink_lock);
                        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,
                }
                break;
 
-       case ESTAB:
+       case PLINK_ESTAB:
                switch (event) {
                case CLS_ACPT:
                        reason = cpu_to_le16(MESH_CLOSE_RCVD);
                        sta->reason = reason;
                        __mesh_plink_deactivate(sta);
-                       sta->plink_state = HOLDING;
+                       sta->plink_state = PLINK_HOLDING;
                        llid = sta->llid;
                        mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
                        spin_unlock_bh(&sta->plink_lock);
@@ -726,7 +727,7 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                        break;
                }
                break;
-       case HOLDING:
+       case PLINK_HOLDING:
                switch (event) {
                case CLS_ACPT:
                        if (del_timer(&sta->plink_timer))
@@ -749,8 +750,8 @@ void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,
                }
                break;
        default:
-               /* should not get here, BLOCKED is dealt with at the beggining
-                * of the function
+               /* should not get here, PLINK_BLOCKED is dealt with at the
+                * beggining of the function
                 */
                spin_unlock_bh(&sta->plink_lock);
                break;
index 8e1e2859bfd5481b83e32741da942d2b1ac6c630..644d2774469dfaed7367589b6f06c7a6e4f59f88 100644 (file)
@@ -411,7 +411,7 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
         * establisment frame, beacon or probe, drop the frame.
         */
 
-       if (!rx->sta || sta_plink_state(rx->sta) != ESTAB) {
+       if (!rx->sta || sta_plink_state(rx->sta) != PLINK_ESTAB) {
                struct ieee80211_mgmt *mgmt;
 
                if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT)
index 909fa38edb6cfc50405e074b5621bf52ec89e9d2..e27f896dae537f70e6e65ca8c1b8dd98e0affa5a 100644 (file)
@@ -248,7 +248,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
 #endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
 
 #ifdef CONFIG_MAC80211_MESH
-       sta->plink_state = LISTEN;
+       sta->plink_state = PLINK_LISTEN;
        spin_lock_init(&sta->plink_lock);
        init_timer(&sta->plink_timer);
 #endif
index 547bfc3b24318505c583c2a967b32e7749beda74..f166c8039f2bf745562bc8a11a2f229f8994c195 100644 (file)
@@ -106,14 +106,27 @@ struct tid_ampdu_rx {
        struct timer_list session_timer;
 };
 
+/**
+ * enum plink_state - state of a mesh peer link finite state machine
+ *
+ * @PLINK_LISTEN: initial state, considered the implicit state of non existant
+ *     mesh peer links
+ * @PLINK_OPN_SNT: mesh plink open frame has been sent to this mesh peer
+ * @PLINK_OPN_RCVD: mesh plink open frame has been received from this mesh peer
+ * @PLINK_CNF_RCVD: mesh plink confirm frame has been received from this mesh
+ *     peer
+ * @PLINK_ESTAB: mesh peer link is established
+ * @PLINK_HOLDING: mesh peer link is being closed or cancelled
+ * @PLINK_BLOCKED: all frames transmitted from this mesh plink are discarded
+ */
 enum plink_state {
-       LISTEN,
-       OPN_SNT,
-       OPN_RCVD,
-       CNF_RCVD,
-       ESTAB,
-       HOLDING,
-       BLOCKED
+       PLINK_LISTEN,
+       PLINK_OPN_SNT,
+       PLINK_OPN_RCVD,
+       PLINK_CNF_RCVD,
+       PLINK_ESTAB,
+       PLINK_HOLDING,
+       PLINK_BLOCKED
 };
 
 /**
@@ -248,7 +261,7 @@ struct sta_info {
         */
        __le16 llid;            /* Local link ID */
        __le16 plid;            /* Peer link ID */
-       __le16 reason;          /* Buffer for cancel reason on HOLDING state */
+       __le16 reason;          /* Cancel reason on PLINK_HOLDING state */
        u8 plink_retries;       /* Retries in establishment */
        bool ignore_plink_timer;
        enum plink_state plink_state;
@@ -280,7 +293,7 @@ static inline enum plink_state sta_plink_state(struct sta_info *sta)
 #ifdef CONFIG_MAC80211_MESH
        return sta->plink_state;
 #endif
-       return LISTEN;
+       return PLINK_LISTEN;
 }