mac80211: add ieee80211_is_any_nullfunc()
[carl9170fw.git] / include / linux / ieee80211.h
index 8b84b71fdf242c91f3024ebe0825c7623d44f4e8..ca9507d5c2dca0fe34a207755115bf1185de4c3c 100644 (file)
@@ -624,6 +624,15 @@ static inline unsigned int ieee80211_hdrlen(__le16 fc)
         return hdrlen;
 }
 
+/**
+ * ieee80211_is_any_nullfunc - check if frame is regular or QoS nullfunc frame
+ * @fc: frame control bytes in little-endian byteorder
+ */
+static inline bool ieee80211_is_any_nullfunc(__le16 fc)
+{
+       return (ieee80211_is_nullfunc(fc) || ieee80211_is_qos_nullfunc(fc));
+}
+
 /**
  * ieee80211_is_bufferable_mmpdu - check if frame is bufferable MMPDU
  * @fc: frame control field in little-endian byteorder
@@ -983,6 +992,8 @@ struct ieee80211_mgmt {
                                        __le16 capab;
                                        __le16 timeout;
                                        __le16 start_seq_num;
+                                       /* followed by BA Extension */
+                                       u8 variable[0];
                                } __packed addba_req;
                                struct{
                                        u8 action_code;
@@ -2064,7 +2075,7 @@ ieee80211_he_ppe_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
 #define IEEE80211_HE_OPERATION_ER_SU_DISABLE                   0x00010000
 #define IEEE80211_HE_OPERATION_6GHZ_OP_INFO                    0x00020000
 #define IEEE80211_HE_OPERATION_BSS_COLOR_MASK                  0x3f000000
-#define IEEE80211_HE_OPERATION_BSS_COLOR_OFFSET                24
+#define IEEE80211_HE_OPERATION_BSS_COLOR_OFFSET                        24
 #define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR               0x40000000
 #define IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED              0x80000000
 
@@ -2072,8 +2083,8 @@ ieee80211_he_ppe_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
  * ieee80211_he_oper_size - calculate 802.11ax HE Operations IE size
  * @he_oper_ie: byte data of the He Operations IE, stating from the the byte
  *     after the ext ID byte. It is assumed that he_oper_ie has at least
- *     sizeof(struct ieee80211_he_operation) bytes, checked already in
- *     ieee802_11_parse_elems_crc()
+ *     sizeof(struct ieee80211_he_operation) bytes, the caller must have
+ *     validated this.
  * @return the actual size of the IE data (not including header), or 0 on error
  */
 static inline u8