Kalle Valo says:
[sfrench/cifs-2.6.git] / net / mac80211 / ieee80211_i.h
index a842f2e1c230966c52e45bb6e84fbcfbac994c60..63ff0d2524b6530bcd0b27649ecf4492d70ea10f 100644 (file)
@@ -390,6 +390,7 @@ struct ieee80211_mgd_auth_data {
        bool done, waiting;
        bool peer_confirmed;
        bool timeout_started;
+       int link_id;
 
        u8 ap_addr[ETH_ALEN] __aligned(2);
 
@@ -412,6 +413,8 @@ struct ieee80211_mgd_assoc_data {
                u8 *elems; /* pointing to inside ie[] below */
 
                ieee80211_conn_flags_t conn_flags;
+
+               u16 status;
        } link[IEEE80211_MLD_MAX_NUM_LINKS];
 
        u8 ap_addr[ETH_ALEN] __aligned(2);
@@ -1707,6 +1710,17 @@ struct ieee802_11_elems {
        u8 tx_pwr_env_num;
        u8 eht_cap_len;
 
+       /* mult-link element can be de-fragmented and thus u8 is not sufficient */
+       size_t multi_link_len;
+
+       /*
+        * store the per station profile pointer and length in case that the
+        * parsing also handled Multi-Link element parsing for a specific link
+        * ID.
+        */
+       struct ieee80211_mle_per_sta_profile *prof;
+       size_t sta_prof_len;
+
        /* whether a parse error occurred while retrieving these elements */
        bool parse_error;
 
@@ -2205,9 +2219,13 @@ static inline void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata,
  *     represent a non-transmitting BSS in which case the data
  *     for that non-transmitting BSS is returned
  * @link_id: the link ID to parse elements for, if a STA profile
- *     is present in the multi-link element, or -1 to ignore
+ *     is present in the multi-link element, or -1 to ignore;
+ *     note that the code currently assumes parsing an association
+ *     (or re-association) response frame if this is given
  * @from_ap: frame is received from an AP (currently used only
  *     for EHT capabilities parsing)
+ * @scratch_len: if non zero, specifies the requested length of the scratch
+ *      buffer; otherwise, 'len' is used.
  */
 struct ieee80211_elems_parse_params {
        const u8 *start;
@@ -2218,6 +2236,7 @@ struct ieee80211_elems_parse_params {
        struct cfg80211_bss *bss;
        int link_id;
        bool from_ap;
+       size_t scratch_len;
 };
 
 struct ieee802_11_elems *
@@ -2288,7 +2307,6 @@ void ieee80211_wake_queue_by_reason(struct ieee80211_hw *hw, int queue,
 void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue,
                                    enum queue_stop_reason reason,
                                    bool refcounted);
-void ieee80211_propagate_queue_wake(struct ieee80211_local *local, int queue);
 void ieee80211_add_pending_skb(struct ieee80211_local *local,
                               struct sk_buff *skb);
 void ieee80211_add_pending_skbs(struct ieee80211_local *local,