Search Linux Wireless

[RFC] wireless: add BlockAck frame structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch adds the BlockAck frame structure as described in
802.11n specification section 7.2.1.8.

Signed-off-by: Christian Lamparter <chunkeey@xxxxxxxxxxxxxx>
---
I'm not sure if:
 - everyone will be happy about ext. ieee80211_ba_cb structure?
 - this structure should a part of ieee80211_bar?
---
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 49b1abd..cda0b23 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -747,10 +747,48 @@ struct ieee80211_bar {
 	__le16 start_seq_num;
 } __attribute__((packed));
 
-/* 802.11 BAR control masks */
+/* 802.11 BA(R) control masks */
 #define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL     0x0000
+#define IEEE80211_BAR_CTRL_MULTI_TID		 0x0002
 #define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA  0x0004
 
+/**
+ * struct ieee80211_ba_cb - Compressed BlockAck variant
+ *
+ * This structure refers to "BA Information field" as
+ * described in 802.11n specification section 7.2.1.8.3
+ */
+struct ieee80211_ba_cb {
+	__le16 start_seq_num;
+	__u8 bitmap[8];
+} __attribute__((packed));
+
+/**
+ * struct ieee80211_ba - BlockAck frame
+ *
+ * This structure refers to "BlockAck frame" as
+ * described in 802.11n specification section 7.2.1.8.1
+ */
+struct ieee80211_ba {
+	__le16 frame_control;
+	__le16 duration;
+	__u8 ra[6];
+	__u8 ta[6];
+	__le16 control;
+	union {
+		struct {
+			__le16 start_seq_num;
+			__u8 bitmap[128];
+		} basic __attribute__((packed));
+
+		struct ieee80211_ba_cb cb;
+
+		struct {
+			__le16 per_tid;
+			struct ieee80211_ba_cb cb;
+		} cbmtid[0] __attribute__((packed));
+	} __attribute__((packed));
+} __attribute__((packed));
 
 #define IEEE80211_HT_MCS_MASK_LEN		10
 
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux