summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordamien <damien@openbsd.org>2007-07-05 20:59:25 +0000
committerdamien <damien@openbsd.org>2007-07-05 20:59:25 +0000
commitec3b43e3500adda20643ef1b1f6d7a225e8ff510 (patch)
tree3cccac92cea9cc3e7af4789fbfa933f1de6a0ed3
parentdon't set IEEE80211_CAPINFO_ESS bit since we're not operating as an AP. (diff)
downloadwireguard-openbsd-ec3b43e3500adda20643ef1b1f6d7a225e8ff510.tar.xz
wireguard-openbsd-ec3b43e3500adda20643ef1b1f6d7a225e8ff510.zip
some HT frames may have an additional HT Control field.
remove two comments that were misplaced while I'm here (addr4 is always located after the i_seq field, not at the end of the header).
-rw-r--r--sys/net80211/ieee80211.h32
1 files changed, 26 insertions, 6 deletions
diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
index 1770cdaf84f..fbfb88d75d5 100644
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211.h,v 1.29 2007/07/05 20:11:04 damien Exp $ */
+/* $OpenBSD: ieee80211.h,v 1.30 2007/07/05 20:59:25 damien Exp $ */
/* $NetBSD: ieee80211.h,v 1.6 2004/04/30 23:51:53 dyoung Exp $ */
/*-
@@ -65,8 +65,6 @@ struct ieee80211_frame {
u_int8_t i_addr2[IEEE80211_ADDR_LEN];
u_int8_t i_addr3[IEEE80211_ADDR_LEN];
u_int8_t i_seq[2];
- /* possibly followed by addr4[IEEE80211_ADDR_LEN]; */
- /* see below */
} __packed;
struct ieee80211_qosframe {
@@ -77,8 +75,18 @@ struct ieee80211_qosframe {
u_int8_t i_addr3[IEEE80211_ADDR_LEN];
u_int8_t i_seq[2];
u_int8_t i_qos[2];
- /* possibly followed by addr4[IEEE80211_ADDR_LEN]; */
- /* see below */
+} __packed;
+
+/* 802.11n/D2.02 */
+struct ieee80211_htframe {
+ u_int8_t i_fc[2];
+ u_int8_t i_dur[2];
+ u_int8_t i_addr1[IEEE80211_ADDR_LEN];
+ u_int8_t i_addr2[IEEE80211_ADDR_LEN];
+ u_int8_t i_addr3[IEEE80211_ADDR_LEN];
+ u_int8_t i_seq[2];
+ u_int8_t i_qos[2];
+ u_int8_t i_ht[4];
} __packed;
struct ieee80211_frame_addr4 {
@@ -91,7 +99,6 @@ struct ieee80211_frame_addr4 {
u_int8_t i_addr4[IEEE80211_ADDR_LEN];
} __packed;
-
struct ieee80211_qosframe_addr4 {
u_int8_t i_fc[2];
u_int8_t i_dur[2];
@@ -103,6 +110,19 @@ struct ieee80211_qosframe_addr4 {
u_int8_t i_qos[2];
} __packed;
+/* 802.11n/D2.02 */
+struct ieee80211_htframe_addr4 {
+ u_int8_t i_fc[2];
+ u_int8_t i_dur[2];
+ u_int8_t i_addr1[IEEE80211_ADDR_LEN];
+ u_int8_t i_addr2[IEEE80211_ADDR_LEN];
+ u_int8_t i_addr3[IEEE80211_ADDR_LEN];
+ u_int8_t i_seq[2];
+ u_int8_t i_addr4[IEEE80211_ADDR_LEN];
+ u_int8_t i_qos[2];
+ u_int8_t i_ht[4];
+} __packed;
+
/*
* Management Notification Frame
*/