Lines Matching +full:8 +full:- +full:bit

1 /*-
2 * Copyright (c) 2020-2024 The FreeBSD Foundation
49 /* 9.4.2.55 Management MIC element (CMAC-256, GMAC-128, and GMAC-256). */
58 #define IEEE80211_CCMP_HDR_LEN 8 /* 802.11i .. net80211 comment */
60 #define IEEE80211_CCMP_MIC_LEN 8 /* || 16 */
61 #define IEEE80211_CCMP_256_HDR_LEN 8
63 #define IEEE80211_GCMP_HDR_LEN 8
70 #define IEEE80211_INVAL_HW_QUEUE ((uint8_t)-1)
79 #define IEEE80211_MAX_MPDU_LEN_HT_BA 4095 /* 9.3.2.1 Format of Data frames; non-VHT non-DMG STA */
90 /* Wi-Fi Peer-to-Peer (P2P) Technical Specification */
92 #define IEEE80211_P2P_OPPPS_ENABLE_BIT BIT(7)
94 /* 802.11-2016, 9.2.4.5.1, Table 9-6 QoS Control Field */
103 #define IEEE80211_RATE_SHORT_PREAMBLE BIT(0)
106 IEEE80211_RC_BW_CHANGED = BIT(0),
107 IEEE80211_RC_NSS_CHANGED = BIT(1),
108 IEEE80211_RC_SUPP_RATES_CHANGED = BIT(2),
109 IEEE80211_RC_SMPS_CHANGED = BIT(3),
116 #define IEEE80211_TKIP_IV_LEN 8 /* WEP + KID + EXT */
120 #define IEEE80211_VHT_MAX_AMPDU_1024K 7 /* 9.4.2.56.3 A-MPDU Parameters field, Table 9-163 */
154 /* 802.11-2020, 9.4.2.55.3, Table 9-185 Subfields of the A-MPDU Parameters field */
164 IEEE80211_HT_MPDU_DENSITY_8 = 6, /* 8us */
168 /* 9.4.2.57, Table 9-168, HT Operation element fields and subfields */
173 #define IEEE80211_FCTL_ORDER (IEEE80211_FC1_ORDER << 8)
174 #define IEEE80211_FCTL_PROTECTED (IEEE80211_FC1_PROTECTED << 8)
175 #define IEEE80211_FCTL_FROMDS (IEEE80211_FC1_DIR_FROMDS << 8)
176 #define IEEE80211_FCTL_TODS (IEEE80211_FC1_DIR_TODS << 8)
177 #define IEEE80211_FCTL_MOREFRAGS (IEEE80211_FC1_MORE_FRAG << 8)
178 #define IEEE80211_FCTL_PM (IEEE80211_FC1_PWR_MGT << 8)
196 #define IEEE80211_STYPE_QOS_CFACK 0xd0 /* XXX-BZ reserved? */
203 /* Figure 9-27, BAR Control field */
210 #define IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK 8 /* TODO FIXME ax? */
213 /* 802.11-2012, Table 8-130-HT Operation element fields and subfields, HT Protection */
218 #define IEEE80211_HT_OP_MODE_PROTECTION_NONHT_MIXED IEEE80211_HTINFO_OPMODE_MIXED /* Non-HT mixed */
221 /* 9.6.13.1, Table 9-342 TDLS Action field values. */
231 WLAN_TDLS_PEER_PSM_RESPONSE = 8,
234 /* 11-255 reserved */
237 /* 802.11-2020 9.4.2.26, Table 9-153. Extended Capabilities field. */
239 #define WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING BIT(2 % 8)
240 #define WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT BIT(22 % 8)
241 #define WLAN_EXT_CAPA3_TIMING_MEASUREMENT_SUPPORT BIT(23 % 8)
242 #define WLAN_EXT_CAPA8_OPMODE_NOTIF BIT(62 % 8)
243 #define WLAN_EXT_CAPA8_MAX_MSDU_IN_AMSDU_LSB BIT(63 % 8)
244 #define WLAN_EXT_CAPA9_MAX_MSDU_IN_AMSDU_MSB BIT(64 % 8)
245 #define WLAN_EXT_CAPA10_TWT_REQUESTER_SUPPORT BIT(77 % 8)
246 #define WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT BIT(78 % 8)
247 #define WLAN_EXT_CAPA10_OBSS_NARROW_BW_RU_TOLERANCE_SUPPORT BIT(79 % 8)
266 #define IEEE80211_WMM_IE_STA_QOSINFO_AC_BE 8
303 /* 802.11-2020, 9.4.2.55.1 HT Capabilities element structure */
341 IEEE80211_CHANCTX_CHANGE_MIN_WIDTH = BIT(0),
342 IEEE80211_CHANCTX_CHANGE_RADAR = BIT(1),
343 IEEE80211_CHANCTX_CHANGE_RX_CHAINS = BIT(2),
344 IEEE80211_CHANCTX_CHANGE_WIDTH = BIT(3),
345 IEEE80211_CHANCTX_CHANGE_CHANNEL = BIT(4),
346 IEEE80211_CHANCTX_CHANGE_PUNCTURING = BIT(5),
391 /* XXX TODO .. right shift numbers - not sure where that came from? */
392 IEEE80211_TX_CTL_AMPDU = BIT(0),
393 IEEE80211_TX_CTL_ASSIGN_SEQ = BIT(1),
394 IEEE80211_TX_CTL_NO_ACK = BIT(2),
395 IEEE80211_TX_CTL_SEND_AFTER_DTIM = BIT(3),
396 IEEE80211_TX_CTL_TX_OFFCHAN = BIT(4),
397 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(5),
398 IEEE80211_TX_STATUS_EOSP = BIT(6),
399 IEEE80211_TX_STAT_ACK = BIT(7),
400 IEEE80211_TX_STAT_AMPDU = BIT(8),
401 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(9),
402 IEEE80211_TX_STAT_TX_FILTERED = BIT(10),
403 IEEE80211_TX_STAT_NOACK_TRANSMITTED = BIT(11),
404 IEEE80211_TX_CTL_FIRST_FRAGMENT = BIT(12),
405 IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(13),
406 IEEE80211_TX_CTL_NO_CCK_RATE = BIT(14),
407 IEEE80211_TX_CTL_INJECTED = BIT(15),
408 IEEE80211_TX_CTL_HW_80211_ENCAP = BIT(16),
409 IEEE80211_TX_CTL_USE_MINRATE = BIT(17),
410 IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(18),
411 IEEE80211_TX_CTL_LDPC = BIT(19),
412 IEEE80211_TX_CTL_STBC = BIT(20),
416 IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = BIT(0),
421 IEEE80211_TX_CTRL_PORT_CTRL_PROTO = BIT(0),
422 IEEE80211_TX_CTRL_PS_RESPONSE = BIT(1),
423 IEEE80211_TX_CTRL_RATE_INJECT = BIT(2),
429 IEEE80211_TX_RC_40_MHZ_WIDTH = BIT(0),
430 IEEE80211_TX_RC_80_MHZ_WIDTH = BIT(1),
431 IEEE80211_TX_RC_160_MHZ_WIDTH = BIT(2),
432 IEEE80211_TX_RC_GREEN_FIELD = BIT(3),
433 IEEE80211_TX_RC_MCS = BIT(4),
434 IEEE80211_TX_RC_SHORT_GI = BIT(5),
435 IEEE80211_TX_RC_VHT_MCS = BIT(6),
436 IEEE80211_TX_RC_USE_SHORT_PREAMBLE = BIT(7),
439 #define IEEE80211_RNR_TBTT_PARAMS_PSD_RESERVED -128
475 /* 802.11-2020, Table 9-359-Block Ack Action field values */
484 /* 802.11-2020, Table 9-51-Category values */
487 WLAN_CATEGORY_SA_QUERY = 8, /* net80211::IEEE80211_ACTION_CAT_SA_QUERY */
490 /* 80211-2020 9.3.3.2 Format of Management frames */
521 /* 9.6.8 Public Action details */
543 /* 802.11-2016, 9.6.5.2 ADDBA Request frame format */
591 /* 9.4.2.21.1, Table 9-82. */
592 #define IEEE80211_SPCT_MSR_RPRT_TYPE_LCI 8
595 /* 9.4.2.1, Table 9-77. Element IDs. */
625 (((const uint8_t *)(_data) + (_len) - (const uint8_t *)_elem) >= sizeof(*_elem)) && \
626 (((const uint8_t *)(_data) + (_len) - (const uint8_t *)_elem) >= (sizeof(*_elem) + _elem->datalen)); \
627 _elem = (const struct element *)(_elem->data + _elem->datalen))
631 if (_elem->id == (_eid))
633 /* 9.4.1.7, Table 9-45. Reason codes. */
642 /* 9.4.1.9, Table 9-46. Status codes. */
648 /* 9.3.1.22 Trigger frame format; 80211ax-2021 */
654 __le64 common_info; /* 8+ really */
658 /* Table 9-29c-Trigger Type subfield encoding */
665 MU-RTS = 0x3,
667 GCR MU-BAR = 0x5,
681 /* 802.11-2020, Figure 9-687-Control field format; 802.11ax-2021 */
682 #define IEEE80211_TWT_CONTROL_NEG_TYPE_BROADCAST BIT(3)
683 #define IEEE80211_TWT_CONTROL_RX_DISABLED BIT(4)
684 #define IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT BIT(5)
686 /* 802.11-2020, Figure 9-688-Request Type field format; 802.11ax-2021 */
687 #define IEEE80211_TWT_REQTYPE_SETUP_CMD (BIT(1) | BIT(2) | BIT(3))
688 #define IEEE80211_TWT_REQTYPE_TRIGGER BIT(4)
689 #define IEEE80211_TWT_REQTYPE_IMPLICIT BIT(5)
690 #define IEEE80211_TWT_REQTYPE_FLOWTYPE BIT(6)
691 #define IEEE80211_TWT_REQTYPE_FLOWID (BIT(7) | BIT(8) | BIT(9))
692 #define IEEE80211_TWT_REQTYPE_WAKE_INT_EXP (BIT(10) | BIT(11) | BIT(12) | BIT(13) | BIT(14))
693 #define IEEE80211_TWT_REQTYPE_PROTECTION BIT(15)
705 /* 802.11-2020, Table 9-297-TWT Setup Command field values */
729 * 802.11ax-2021, Table 9-277-Meaning of Maximum Transmit Power Count subfield
732 #define IEEE80211_MAX_NUM_PWR_LEVEL 8
735 * 802.11ax-2021, Table 9-275a-Maximum Transmit Power Interpretation subfield
736 * encoding (4) * Table E-12-Regulatory Info subfield encoding in the
739 #define IEEE80211_TPE_MAX_IE_NUM 8
741 /* 802.11ax-2021, 9.4.2.161 Transmit Power Envelope element */
747 /* 802.11ax-2021, Figure 9-617-Transmit Power Information field format */
748 /* These are field masks (3bit/3bit/2bit). */
754 * 802.11ax-2021, Table 9-275a-Maximum Transmit Power Interpretation subfield
768 /* 802.11-2020, 9.4.2.27 BSS Load element */
843 if ((fc & htole16(IEEE80211_FC1_DIR_MASK << 8)) ==
844 htole16(IEEE80211_FC1_DIR_DSTODS << 8))
855 printf("XXX-BZ %s: TODO? fc %#04x size %u\n",
1018 return (fc & htole16(IEEE80211_FC1_PROTECTED << 8));
1038 mgmt = (struct ieee80211_mgmt *)skb->data;
1039 fc = mgmt->frame_control;
1041 /* 11.2.2 Bufferable MMPDUs, 80211-2020. */
1103 fc &= htole16((IEEE80211_FC1_DIR_TODS | IEEE80211_FC1_DIR_FROMDS) << 8);
1104 v = htole16((IEEE80211_FC1_DIR_TODS | IEEE80211_FC1_DIR_FROMDS) << 8);
1113 return (fc & htole16(IEEE80211_FC1_ORDER << 8));
1120 return (fc & htole16(IEEE80211_FC1_RETRY << 8));
1128 return (fc & htole16(IEEE80211_FC1_DIR_FROMDS << 8));
1135 return (fc & htole16(IEEE80211_FC1_DIR_TODS << 8));
1142 if (ieee80211_has_a4(hdr->frame_control))
1143 return (hdr->addr4);
1144 if (ieee80211_has_fromds(hdr->frame_control))
1145 return (hdr->addr3);
1146 return (hdr->addr2);
1153 if (ieee80211_has_tods(hdr->frame_control))
1154 return (hdr->addr3);
1155 return (hdr->addr1);
1204 fc &= htole16(IEEE80211_FC1_MORE_FRAG << 8);
1211 if (ieee80211_has_a4(hdr->frame_control))