ieee802_11_defs.h revision 61d9df3e62aaa0e87ad05452fcb95142159a17b6
15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * IEEE 802.11 Frame type definitions 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi> 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (c) 2007-2008 Intel Corporation 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This software may be distributed under the terms of the BSD license. 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * See README for more details. 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef IEEE802_11_DEFS_H 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define IEEE802_11_DEFS_H 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* IEEE 802.11 defines */ 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_PVER 0x0003 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_TODS 0x0100 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_FROMDS 0x0200 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_MOREFRAG 0x0400 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_RETRY 0x0800 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_PWRMGT 0x1000 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_MOREDATA 0x2000 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_ISWEP 0x4000 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_ORDER 0x8000 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_GET_TYPE(fc) (((fc) & 0x000c) >> 2) 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_GET_STYPE(fc) (((fc) & 0x00f0) >> 4) 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_GET_SEQ_FRAG(seq) ((seq) & (BIT(3) | BIT(2) | BIT(1) | BIT(0))) 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_GET_SEQ_SEQ(seq) \ 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) (((seq) & (~(BIT(3) | BIT(2) | BIT(1) | BIT(0)))) >> 4) 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_TYPE_MGMT 0 33f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_FC_TYPE_CTRL 1 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_FC_TYPE_DATA 2 35926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 36926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/* management */ 3776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#define WLAN_FC_STYPE_ASSOC_REQ 0 38197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_ASSOC_RESP 1 39aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_FC_STYPE_REASSOC_REQ 2 40197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_REASSOC_RESP 3 41aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_FC_STYPE_PROBE_REQ 4 4253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_PROBE_RESP 5 439e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_FC_STYPE_BEACON 8 44c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_FC_STYPE_ATIM 9 4553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_DISASSOC 10 460019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch#define WLAN_FC_STYPE_AUTH 11 4753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_DEAUTH 12 481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_FC_STYPE_ACTION 13 49f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) 5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)/* control */ 519e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_FC_STYPE_PSPOLL 10 52d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_FC_STYPE_RTS 11 53d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_FC_STYPE_CTS 12 54d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_FC_STYPE_ACK 13 55197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_CFEND 14 56e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#define WLAN_FC_STYPE_CFENDACK 15 57197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 58197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch/* data */ 59e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#define WLAN_FC_STYPE_DATA 0 60197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_DATA_CFACK 1 6153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_DATA_CFPOLL 2 62197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_DATA_CFACKPOLL 3 6353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_NULLFUNC 4 6453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_FC_STYPE_CFACK 5 65d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_FC_STYPE_CFPOLL 6 669e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_FC_STYPE_CFACKPOLL 7 67f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_FC_STYPE_QOS_DATA 8 6876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#define WLAN_FC_STYPE_QOS_DATA_CFACK 9 69d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_FC_STYPE_QOS_DATA_CFPOLL 10 701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_FC_STYPE_QOS_DATA_CFACKPOLL 11 711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_FC_STYPE_QOS_NULL 12 72a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define WLAN_FC_STYPE_QOS_CFPOLL 14 73197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_FC_STYPE_QOS_CFACKPOLL 15 745267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 755267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)/* Authentication algorithms */ 76197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_AUTH_OPEN 0 775267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WLAN_AUTH_SHARED_KEY 1 78bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define WLAN_AUTH_FT 2 795267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WLAN_AUTH_LEAP 128 80bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) 819e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_AUTH_CHALLENGE_LEN 128 82f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu 83f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_ESS BIT(0) 84f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_IBSS BIT(1) 85f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_CF_POLLABLE BIT(2) 86f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_CF_POLL_REQUEST BIT(3) 87f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_PRIVACY BIT(4) 88e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#define WLAN_CAPABILITY_SHORT_PREAMBLE BIT(5) 89f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_PBCC BIT(6) 90197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define WLAN_CAPABILITY_CHANNEL_AGILITY BIT(7) 91f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_SPECTRUM_MGMT BIT(8) 92f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_SHORT_SLOT_TIME BIT(10) 93f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_CAPABILITY_DSSS_OFDM BIT(13) 94f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu 95f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu/* Status codes (IEEE 802.11-2007, 7.3.1.9, Table 7-23) */ 96f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_SUCCESS 0 97f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_UNSPECIFIED_FAILURE 1 98f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_TDLS_WAKEUP_ALTERNATE 2 99f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_TDLS_WAKEUP_REJECT 3 100f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_SECURITY_DISABLED 5 101f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_UNACCEPTABLE_LIFETIME 6 102f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_NOT_IN_SAME_BSS 7 103591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#define WLAN_STATUS_CAPS_UNSUPPORTED 10 104d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WLAN_STATUS_REASSOC_NO_ASSOC 11 105f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_ASSOC_DENIED_UNSPEC 12 106f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG 13 1071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION 14 108f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_CHALLENGE_FAIL 15 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_AUTH_TIMEOUT 16 11051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#define WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA 17 111c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_RATES 18 112c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/* IEEE 802.11b */ 113c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NOSHORT 19 114c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NOPBCC 20 115c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NOAGILITY 21 116c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/* IEEE 802.11h */ 11751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#define WLAN_STATUS_SPEC_MGMT_REQUIRED 22 11851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#define WLAN_STATUS_PWR_CAPABILITY_NOT_VALID 23 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_SUPPORTED_CHANNEL_NOT_VALID 24 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* IEEE 802.11g */ 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NO_SHORT_SLOT_TIME 25 122f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NO_DSSS_OFDM 26 123f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NO_HT 27 124926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_R0KH_UNREACHABLE 28 125926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_NO_PCO 29 126926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/* IEEE 802.11w */ 127926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY 30 128926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION 31 129926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_UNSPECIFIED_QOS_FAILURE 32 130f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WLAN_STATUS_REQUEST_DECLINED 37 13153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_STATUS_INVALID_PARAMETERS 38 13243e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles)/* IEEE 802.11i */ 13353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_STATUS_INVALID_IE 40 13453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_STATUS_GROUP_CIPHER_NOT_VALID 41 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID 42 1361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_STATUS_AKMP_NOT_VALID 43 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_UNSUPPORTED_RSN_IE_VERSION 44 138926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_INVALID_RSN_IE_CAPAB 45 139926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_CIPHER_REJECTED_PER_POLICY 46 140926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_TS_NOT_CREATED 47 141926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_DIRECT_LINK_NOT_ALLOWED 48 142926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_DEST_STA_NOT_PRESENT 49 143926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_STATUS_DEST_STA_NOT_QOS_STA 50 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_ASSOC_DENIED_LISTEN_INT_TOO_LARGE 51 145926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/* IEEE 802.11r */ 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_INVALID_FT_ACTION_FRAME_COUNT 52 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_INVALID_PMKID 53 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_INVALID_MDIE 54 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_INVALID_FTIE 55 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_GAS_ADV_PROTO_NOT_SUPPORTED 59 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_NO_OUTSTANDING_GAS_REQ 60 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_GAS_RESP_NOT_RECEIVED 61 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_STA_TIMED_OUT_WAITING_FOR_GAS_RESP 62 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_GAS_RESP_LARGER_THAN_LIMIT 63 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_REQ_REFUSED_HOME 64 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_ADV_SRV_UNREACHABLE 65 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_STATUS_REQ_REFUSED_SSPN 67 158aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_STATUS_REQ_REFUSED_UNAUTH_ACCESS 68 159aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_STATUS_INVALID_RSNIE 72 160c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_STATUS_TRANSMISSION_FAILURE 79 161c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 162c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/* Reason codes (IEEE 802.11-2007, 7.3.1.7, Table 7-22) */ 163c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_REASON_UNSPECIFIED 1 164aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_REASON_PREV_AUTH_NOT_VALID 2 1655d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)#define WLAN_REASON_DEAUTH_LEAVING 3 166c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY 4 167aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_REASON_DISASSOC_AP_BUSY 5 168aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA 6 169aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch#define WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA 7 1701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_DISASSOC_STA_HAS_LEFT 8 17153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH 9 1721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* IEEE 802.11h */ 1739e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_REASON_PWR_CAPABILITY_NOT_VALID 10 1749e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_REASON_SUPPORTED_CHANNEL_NOT_VALID 11 1759e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)/* IEEE 802.11i */ 1769e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_REASON_INVALID_IE 13 1779e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_REASON_MICHAEL_MIC_FAILURE 14 1789e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)#define WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT 15 17953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_REASON_GROUP_KEY_UPDATE_TIMEOUT 16 18053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define WLAN_REASON_IE_IN_4WAY_DIFFERS 17 1811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_GROUP_CIPHER_NOT_VALID 18 1821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_PAIRWISE_CIPHER_NOT_VALID 19 1831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_AKMP_NOT_VALID 20 1841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_UNSUPPORTED_RSN_IE_VERSION 21 1851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_INVALID_RSN_IE_CAPAB 22 1861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_REASON_IEEE_802_1X_AUTH_FAILED 23 187c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)#define WLAN_REASON_CIPHER_SUITE_REJECTED 24 188c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE 25 189f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED 26 190f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)/* IEEE 802.11e */ 191f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_REASON_DISASSOC_LOW_ACK 34 192f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) 193f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) 194c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/* Information Element IDs */ 195c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_EID_SSID 0 196f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_EID_SUPP_RATES 1 197f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_EID_FH_PARAMS 2 198f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define WLAN_EID_DS_PARAMS 3 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_CF_PARAMS 4 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_TIM 5 2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_IBSS_PARAMS 6 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_COUNTRY 7 2038abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_CHALLENGE 16 2048abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)/* EIDs defined by IEEE 802.11h - START */ 2058abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_PWR_CONSTRAINT 32 2068abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_PWR_CAPABILITY 33 207c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_EID_TPC_REQUEST 34 208c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_EID_TPC_REPORT 35 209c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_EID_SUPPORTED_CHANNELS 36 2108abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_CHANNEL_SWITCH 37 2118abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_MEASURE_REQUEST 38 2128abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_MEASURE_REPORT 39 2138abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_QUITE 40 214c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WLAN_EID_IBSS_DFS 41 215c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)/* EIDs defined by IEEE 802.11h - END */ 2168abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_ERP_INFO 42 2178abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_HT_CAP 45 2188abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_RSN 48 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_EXT_SUPP_RATES 50 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_MOBILITY_DOMAIN 54 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_FAST_BSS_TRANSITION 55 2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_TIMEOUT_INTERVAL 56 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_RIC_DATA 57 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_HT_OPERATION 61 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_SECONDARY_CHANNEL_OFFSET 62 2261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_EID_TIME_ADVERTISEMENT 69 2271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_EID_20_40_BSS_COEXISTENCE 72 2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_20_40_BSS_INTOLERANT 73 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_OVERLAPPING_BSS_SCAN_PARAMS 74 2301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_EID_MMIE 76 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_BSS_MAX_IDLE_PERIOD 90 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_TFS_REQ 91 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_TFS_RESP 92 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_WNMSLEEP 93 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_TIME_ZONE 98 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_LINK_ID 101 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_INTERWORKING 107 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_ADV_PROTO 108 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_ROAMING_CONSORTIUM 111 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_EXT_CAPAB 127 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_VHT_CAP 191 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_VHT_OPERATION 192 2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_VHT_EXTENDED_BSS_LOAD 193 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_VHT_WIDE_BW_CHSWITCH 194 2451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_EID_VHT_TRANSMIT_POWER_ENVELOPE 195 2461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_EID_VHT_CHANNEL_SWITCH_WRAPPER 196 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_EID_VHT_AID 197 2488abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_EID_VHT_QUIET_CHANNEL 198 2496f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch#define WLAN_EID_VHT_OPERATING_MODE_NOTIFICATION 199 2506f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch#define WLAN_EID_VENDOR_SPECIFIC 221 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* Action frame categories (IEEE 802.11-2007, 7.3.1.11, Table 7-24) */ 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_SPECTRUM_MGMT 0 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_QOS 1 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_DLS 2 2571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_ACTION_BLOCK_ACK 3 2581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_ACTION_PUBLIC 4 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_RADIO_MEASUREMENT 5 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_FT 6 2611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_ACTION_HT 7 2621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_ACTION_SA_QUERY 8 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_WNM 10 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_UNPROTECTED_WNM 11 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_TDLS 12 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_WMM 17 /* WMM Specification 1.1 */ 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_ACTION_VENDOR_SPECIFIC 127 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* Public action codes */ 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_PA_20_40_BSS_COEX 0 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_PA_VENDOR_SPECIFIC 9 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_PA_GAS_INITIAL_REQ 10 27302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch#define WLAN_PA_GAS_INITIAL_RESP 11 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_PA_GAS_COMEBACK_REQ 12 2751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_PA_GAS_COMEBACK_RESP 13 2761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_TDLS_DISCOVERY_RESPONSE 14 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* SA Query Action frame (IEEE 802.11w/D8.0, 7.4.9) */ 2791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_SA_QUERY_REQUEST 0 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_SA_QUERY_RESPONSE 1 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_SA_QUERY_TR_ID_LEN 2 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* TDLS action codes */ 2851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_TDLS_SETUP_REQUEST 0 2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_SETUP_RESPONSE 1 2875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_SETUP_CONFIRM 2 2885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_TEARDOWN 3 2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_PEER_TRAFFIC_INDICATION 4 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_CHANNEL_SWITCH_REQUEST 5 2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_CHANNEL_SWITCH_RESPONSE 6 2925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_PEER_PSM_REQUEST 7 2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TDLS_PEER_PSM_RESPONSE 8 2941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_TDLS_PEER_TRAFFIC_RESPONSE 9 2951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_TDLS_DISCOVERY_REQUEST 10 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* Timeout Interval Type */ 2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TIMEOUT_REASSOC_DEADLINE 1 2991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_TIMEOUT_KEY_LIFETIME 2 3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_TIMEOUT_ASSOC_COMEBACK 3 3015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* Interworking element (IEEE 802.11u) - Access Network Options */ 3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define INTERWORKING_ANO_ACCESS_NETWORK_MASK 0x0f 3045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define INTERWORKING_ANO_INTERNET 0x10 3051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define INTERWORKING_ANO_ASRA 0x20 3065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define INTERWORKING_ANO_ESR 0x40 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define INTERWORKING_ANO_UESA 0x80 3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 309bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_PRIVATE 0 310bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_PRIVATE_WITH_GUEST 1 311bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_CHARGEABLE_PUBLIC 2 312bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_FREE_PUBLIC 3 313bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_PERSONAL_DEVICE 4 314bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_EMERGENCY_SERVICES 5 315bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_TEST 6 316bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define INTERWORKING_ANT_WILDCARD 15 317bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) 318bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)/* Advertisement Protocol ID definitions (IEEE Std 802.11u-2011) */ 319bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)enum adv_proto_id { 320bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ACCESS_NETWORK_QUERY_PROTOCOL = 0, 321bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) MIH_INFO_SERVICE = 1, 322bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) MIH_CMD_AND_EVENT_DISCOVERY = 2, 323bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) EMERGENCY_ALERT_SYSTEM = 3, 324bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ADV_PROTO_VENDOR_SPECIFIC = 221 325bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}; 326bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) 327bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)/* Access Network Query Protocol info ID definitions (IEEE Std 802.11u-2011) */ 328bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)enum anqp_info_id { 329bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_QUERY_LIST = 256, 330bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_CAPABILITY_LIST = 257, 331bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_VENUE_NAME = 258, 332bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_EMERGENCY_CALL_NUMBER = 259, 333bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_NETWORK_AUTH_TYPE = 260, 334bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_ROAMING_CONSORTIUM = 261, 335bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_IP_ADDR_TYPE_AVAILABILITY = 262, 336bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_NAI_REALM = 263, 337bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_3GPP_CELLULAR_NETWORK = 264, 338bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_AP_GEOSPATIAL_LOCATION = 265, 339bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_AP_CIVIC_LOCATION = 266, 340bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_AP_LOCATION_PUBLIC_URI = 267, 341bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_DOMAIN_NAME = 268, 342bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_EMERGENCY_ALERT_URI = 269, 343bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_EMERGENCY_NAI = 271, 344bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) ANQP_VENDOR_SPECIFIC = 56797 345bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}; 346bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) 347bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)/* NAI Realm list - EAP Method subfield - Authentication Parameter ID */ 348d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)enum nai_realm_eap_auth_param { 3491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_EAP_AUTH_EXPANDED_EAP_METHOD = 1, 3501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_EAP_AUTH_NON_EAP_INNER_AUTH = 2, 351a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch NAI_REALM_EAP_AUTH_INNER_AUTH_EAP_METHOD = 3, 3521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_EAP_AUTH_EXPANDED_INNER_EAP_METHOD = 4, 353a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch NAI_REALM_EAP_AUTH_CRED_TYPE = 5, 3541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_EAP_AUTH_TUNNELED_CRED_TYPE = 6, 3551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_EAP_AUTH_VENDOR_SPECIFIC = 221 3561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}; 357a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch 3581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum nai_realm_eap_auth_inner_non_eap { 3591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_INNER_NON_EAP_PAP = 1, 3601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_INNER_NON_EAP_CHAP = 2, 3611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_INNER_NON_EAP_MSCHAP = 3, 3621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_INNER_NON_EAP_MSCHAPV2 = 4 3631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}; 3641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 3651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum nai_realm_eap_cred_type { 3661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_SIM = 1, 3671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_USIM = 2, 3681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_NFC_SECURE_ELEMENT = 3, 3691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_HARDWARE_TOKEN = 4, 3701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_SOFTOKEN = 5, 3711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_CERTIFICATE = 6, 3721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_USERNAME_PASSWORD = 7, 3731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_NONE = 8, 3741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_ANONYMOUS = 9, 3751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) NAI_REALM_CRED_TYPE_VENDOR_SPECIFIC = 10 3761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}; 3771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 378a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch#ifdef _MSC_VER 3791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#pragma pack(push, 1) 3801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#endif /* _MSC_VER */ 3811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 3821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_hdr { 3831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 frame_control; 3841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 duration_id; 3851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 addr1[6]; 3861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 addr2[6]; 3871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 addr3[6]; 3881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 seq_ctrl; 3891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* followed by 'u8 addr4[6];' if ToDS and FromDS is set in data frame 3901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) */ 3911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 3921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 3931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_DA_FROMDS addr1 3941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_BSSID_FROMDS addr2 3951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_SA_FROMDS addr3 3961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 3971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_HDRLEN (sizeof(struct ieee80211_hdr)) 3981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 3991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_FC(type, stype) host_to_le16((type << 2) | (stype << 4)) 4001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 401d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)struct ieee80211_mgmt { 4021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 frame_control; 403d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) le16 duration; 4041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 da[6]; 4051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 sa[6]; 4061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 bssid[6]; 4071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 seq_ctrl; 4081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) union { 40909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) struct { 4101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 auth_alg; 4111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 auth_transaction; 4121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 status_code; 4131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* possibly followed by Challenge text */ 4141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 415a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch } STRUCT_PACKED auth; 4161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 reason_code; 41851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) u8 variable[0]; 4191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED deauth; 4201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 capab_info; 4221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 listen_interval; 4231e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* followed by SSID and Supported rates */ 4241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED assoc_req; 4261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 capab_info; 4281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 status_code; 4291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 aid; 4301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* followed by Supported rates */ 4311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED assoc_resp, reassoc_resp; 43309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) struct { 4341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 capab_info; 4351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 listen_interval; 4361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 current_ap[6]; 4371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* followed by SSID and Supported rates */ 4381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED reassoc_req; 4401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 44109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) le16 reason_code; 4421e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED disassoc; 4441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 timestamp[8]; 4461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 beacon_int; 4471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 capab_info; 44809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) /* followed by some of SSID, Supported rates, 4491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * FH Params, DS Params, CF Params, IBSS Params, TIM */ 4501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED beacon; 4521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* only variable items: SSID, Supported rates */ 4541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED probe_req; 4561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 timestamp[8]; 4581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 beacon_int; 4591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 capab_info; 4601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* followed by some of SSID, Supported rates, 4611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * FH Params, DS Params, CF Params, IBSS Params */ 4621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED probe_resp; 4641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 category; 4661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) union { 4671e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action_code; 4691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 dialog_token; 4701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 status_code; 4711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 4721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED wmm_action; 4731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct{ 4741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action_code; 4751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 element_id; 4761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 length; 4771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 switch_mode; 4781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 new_chan; 4791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 switch_count; 4801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED chan_switch; 4811e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 4831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 sta_addr[ETH_ALEN]; 4841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 target_ap_addr[ETH_ALEN]; 4851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; /* FT Request */ 4861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED ft_action_req; 4871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 4891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 sta_addr[ETH_ALEN]; 4901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 target_ap_addr[ETH_ALEN]; 4911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 status_code; 4921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; /* FT Request */ 4931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED ft_action_resp; 49451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) struct { 4951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 4961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN]; 4971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED sa_query_req; 4981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 4991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; /* */ 5001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN]; 5011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED sa_query_resp; 5021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 5031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 5041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 dialogtoken; 5051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 5061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED wnm_sleep_req; 5071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 5081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 5091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 dialogtoken; 5101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 keydata_len; 5111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 51251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) } STRUCT_PACKED wnm_sleep_resp; 5131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 5141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; 5151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 5161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED public_action; 5171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 5181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; /* 9 */ 5191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 oui[3]; 5201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* Vendor-specific content */ 5211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 5221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED vs_public_action; 5231e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) struct { 5241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 action; /* 7 */ 5251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 dialog_token; 5261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 req_mode; 5271e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 disassoc_timer; 5281e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 validity_interval; 5291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) /* BSS Termination Duration (optional), 5301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * Session Information URL (optional), 5311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * BSS Transition Candidate List 5321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * Entries */ 5331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 variable[0]; 5341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED bss_tm_req; 5351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } u; 5361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } STRUCT_PACKED action; 5371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) } u; 5381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 5391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5411e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* Rx MCS bitmask is in the first 77 bits of supported_mcs_set */ 5421e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define IEEE80211_HT_MCS_MASK_LEN 10 5431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_ht_capabilities { 5451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 ht_capabilities_info; 5461e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 a_mpdu_params; 5471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 supported_mcs_set[16]; 5481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 ht_extended_capabilities; 5491e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le32 tx_bf_capability_info; 5501e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 asel_capabilities; 5511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 5521e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5531e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_ht_operation { 5551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 control_chan; 5561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 ht_param; 5571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 operation_mode; 5581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 stbc_param; 5591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 basic_set[16]; 5601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 5611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_vht_capabilities { 5641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le32 vht_capabilities_info; 5651e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 vht_supported_mcs_set[8]; 5661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 56709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 5681e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_vht_operation { 5691e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 vht_op_info_chwidth; 5701e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 vht_op_info_chan_center_freq_seg0_idx; 5711e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 vht_op_info_chan_center_freq_seg1_idx; 5721e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 vht_basic_mcs_set; 5731e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 5741e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5751e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#ifdef _MSC_VER 5761e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#pragma pack(pop) 5771e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#endif /* _MSC_VER */ 5781e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5791e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define ERP_INFO_NON_ERP_PRESENT BIT(0) 5801e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define ERP_INFO_USE_PROTECTION BIT(1) 58151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#define ERP_INFO_BARKER_PREAMBLE_MODE BIT(2) 5821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5831e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 5841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_LDPC_CODING_CAP ((u16) BIT(0)) 5851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET ((u16) BIT(1)) 5861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SMPS_MASK ((u16) (BIT(2) | BIT(3))) 5871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SMPS_STATIC ((u16) 0) 5881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SMPS_DYNAMIC ((u16) BIT(2)) 5891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SMPS_DISABLED ((u16) (BIT(2) | BIT(3))) 5901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_GREEN_FIELD ((u16) BIT(4)) 59109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_CAP_INFO_SHORT_GI20MHZ ((u16) BIT(5)) 5921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_SHORT_GI40MHZ ((u16) BIT(6)) 59309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_CAP_INFO_TX_STBC ((u16) BIT(7)) 5941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_RX_STBC_MASK ((u16) (BIT(8) | BIT(9))) 5951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_RX_STBC_1 ((u16) BIT(8)) 5961e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_RX_STBC_12 ((u16) BIT(9)) 5971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_RX_STBC_123 ((u16) (BIT(8) | BIT(9))) 5981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_DELAYED_BA ((u16) BIT(10)) 5991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_MAX_AMSDU_SIZE ((u16) BIT(11)) 6001e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_DSSS_CCK40MHZ ((u16) BIT(12)) 6011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_PSMP_SUPP ((u16) BIT(13)) 6021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_40MHZ_INTOLERANT ((u16) BIT(14)) 6031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define HT_CAP_INFO_LSIG_TXOP_PROTECT_SUPPORT ((u16) BIT(15)) 6041e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 6051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 6061e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define EXT_HT_CAP_INFO_PCO ((u16) BIT(0)) 6071e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define EXT_HT_CAP_INFO_TRANS_TIME_OFFSET 1 60809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define EXT_HT_CAP_INFO_MCS_FEEDBACK_OFFSET 8 6091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define EXT_HT_CAP_INFO_HTC_SUPPORTED ((u16) BIT(10)) 61009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define EXT_HT_CAP_INFO_RD_RESPONDER ((u16) BIT(11)) 6111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 6121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 6131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_TXBF_CAP ((u32) BIT(0)) 6141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_RX_STAGGERED_SOUNDING_CAP ((u32) BIT(1)) 6151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_TX_STAGGERED_SOUNDING_CAP ((u32) BIT(2)) 6165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_RX_ZLF_CAP ((u32) BIT(3)) 6175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_TX_ZLF_CAP ((u32) BIT(4)) 6185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_IMPLICIT_ZLF_CAP ((u32) BIT(5)) 6195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_CALIB_OFFSET 6 6205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_EXPLICIT_CSI_TXBF_CAP ((u32) BIT(8)) 6211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_EXPLICIT_UNCOMPR_STEERING_MATRIX_CAP ((u32) BIT(9)) 6221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_EXPLICIT_BF_CSI_FEEDBACK_CAP ((u32) BIT(10)) 62302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch#define TX_BEAMFORM_CAP_EXPLICIT_BF_CSI_FEEDBACK_OFFSET 11 6245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_EXPLICIT_UNCOMPR_STEERING_MATRIX_FEEDBACK_OFFSET 13 6255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_EXPLICIT_COMPRESSED_STEERING_MATRIX_FEEDBACK_OFFSET 15 6261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_MINIMAL_GROUPING_OFFSET 17 6275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_CSI_NUM_BEAMFORMER_ANT_OFFSET 19 6285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_UNCOMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 21 6295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define TX_BEAMFORM_CAP_COMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 23 6301e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define TX_BEAMFORM_CAP_SCI_MAX_OF_ROWS_BEANFORMER_SUPPORTED_OFFSET 25 6315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ASEL_CAPABILITY_ASEL_CAPABLE ((u8) BIT(0)) 6341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define ASEL_CAPABILITY_EXPLICIT_CSI_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(1)) 6355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ASEL_CAPABILITY_ANT_INDICES_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(2)) 6365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ASEL_CAPABILITY_EXPLICIT_CSI_FEEDBACK_CAP ((u8) BIT(3)) 6371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define ASEL_CAPABILITY_ANT_INDICES_FEEDBACK_CAP ((u8) BIT(4)) 6385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ASEL_CAPABILITY_RX_AS_CAP ((u8) BIT(5)) 6395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ASEL_CAPABILITY_TX_SOUND_PPDUS_CAP ((u8) BIT(6)) 6401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 6415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_HT_PARAM_SECONDARY_CHNL_OFF_MASK ((u8) BIT(0) | BIT(1)) 6425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE ((u8) BIT(0)) 6435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW ((u8) BIT(0) | BIT(1)) 6445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH ((u8) BIT(2)) 64509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_HT_PARAM_RIFS_MODE ((u8) BIT(3)) 64609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_HT_PARAM_CTRL_ACCESS_ONLY ((u8) BIT(4)) 64709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_HT_PARAM_SRV_INTERVAL_GRANULARITY ((u8) BIT(5)) 64809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 64909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 650c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define OP_MODE_PURE 0 651c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define OP_MODE_MAY_BE_LEGACY_STAS 1 652c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define OP_MODE_20MHZ_HT_STA_ASSOCED 2 65309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define OP_MODE_MIXED 3 65409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 65509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_OPERATION_MODE_OP_MODE_MASK \ 65609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) (0x0001 | 0x0002) 65709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_OPERATION_MODE_OP_MODE_OFFSET 0 65809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT ((u8) BIT(2)) 65909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#define HT_INFO_OPERATION_MODE_TRANSMIT_BURST_LIMIT ((u8) BIT(3)) 660f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define HT_INFO_OPERATION_MODE_NON_HT_STA_PRESENT ((u8) BIT(4)) 6615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_STBC_PARAM_DUAL_BEACON ((u16) BIT(6)) 6635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_STBC_PARAM_DUAL_STBC_PROTECT ((u16) BIT(7)) 6645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_STBC_PARAM_SECONDARY_BCN ((u16) BIT(8)) 6655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_STBC_PARAM_LSIG_TXOP_PROTECT_ALLOWED ((u16) BIT(9)) 6665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HT_INFO_STBC_PARAM_PCO_ACTIVE ((u16) BIT(10)) 667a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define HT_INFO_STBC_PARAM_PCO_PHASE ((u16) BIT(11)) 668a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 669a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127 670a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 671a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)/* VHT Defines */ 672a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define VHT_CAP_MAX_MPDU_LENGTH_7991 ((u32) BIT(0)) 673a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch#define VHT_CAP_MAX_MPDU_LENGTH_11454 ((u32) BIT(1)) 674a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define VHT_CAP_SUPP_CHAN_WIDTH_160MHZ ((u32) BIT(2)) 675a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ ((u32) BIT(3)) 676926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_RXLDPC ((u32) BIT(4)) 677926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_SHORT_GI_80 ((u32) BIT(5)) 678bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define VHT_CAP_SHORT_GI_160 ((u32) BIT(6)) 679926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_TXSTBC ((u32) BIT(7)) 680926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_RXSTBC_1 ((u32) BIT(8)) 681926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_RXSTBC_2 ((u32) BIT(9)) 682926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_RXSTBC_3 ((u32) BIT(8) | BIT(9)) 683926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_RXSTBC_4 ((u32) BIT(10)) 684926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_SU_BEAMFORMER_CAPABLE ((u32) BIT(11)) 685926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_SU_BEAMFORMEE_CAPABLE ((u32) BIT(12)) 686926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_BEAMFORMER_ANTENNAS_MAX ((u32) BIT(13) | BIT(14)) 6871e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define VHT_CAP_SOUNDING_DIMENTION_MAX ((u32) BIT(16) | BIT(17)) 688a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define VHT_CAP_MU_BEAMFORMER_CAPABLE ((u32) BIT(19)) 6891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define VHT_CAP_MU_BEAMFORMEE_CAPABLE ((u32) BIT(20)) 6901e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define VHT_CAP_VHT_TXOP_PS ((u32) BIT(21)) 691926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_HTC_VHT ((u32) BIT(22)) 692c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT ((u32) BIT(23)) 6931e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB ((u32) BIT(27)) 694926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB ((u32) BIT(26) | BIT(27)) 6951e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define VHT_CAP_RX_ANTENNA_PATTERN ((u32) BIT(28)) 696c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define VHT_CAP_TX_ANTENNA_PATTERN ((u32) BIT(29)) 6971e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 698926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define OUI_MICROSOFT 0x0050f2 /* Microsoft (also used in Wi-Fi specs) 6991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) * 00:50:F2 */ 700926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WPA_IE_VENDOR_TYPE 0x0050f201 701926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WPS_IE_VENDOR_TYPE 0x0050f204 70207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define OUI_WFA 0x506f9a 70307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define P2P_IE_VENDOR_TYPE 0x506f9a09 70407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WFD_IE_VENDOR_TYPE 0x506f9a0a 70507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WFD_OUI_TYPE 10 706c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define HS20_IE_VENDOR_TYPE 0x506f9a10 70707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 70807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_OUI_TYPE 2 70907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0 71007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_OUI_SUBTYPE_PARAMETER_ELEMENT 1 71107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_OUI_SUBTYPE_TSPEC_ELEMENT 2 71207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_VERSION 1 71307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 71407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ACTION_CODE_ADDTS_REQ 0 71507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ACTION_CODE_ADDTS_RESP 1 71607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ACTION_CODE_DELTS 2 71707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 71807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ADDTS_STATUS_ADMISSION_ACCEPTED 0 71907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ADDTS_STATUS_INVALID_PARAMETERS 1 72007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch/* 2 - Reserved */ 72107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_ADDTS_STATUS_REFUSED 3 72207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch/* 4-255 - Reserved */ 72307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 72407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch/* WMM TSPEC Direction Field Values */ 72507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_TSPEC_DIRECTION_UPLINK 0 72607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_TSPEC_DIRECTION_DOWNLINK 1 72707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch/* 2 - Reserved */ 72807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_TSPEC_DIRECTION_BI_DIRECTIONAL 3 7295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 730bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)/* 7315267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) * WMM Information Element (used in (Re)Association Request frames; may also be 7325267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) * used in Beacon frames) 7335267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) */ 7345267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)struct wmm_information_element { 7355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /* Element ID: 221 (0xdd); Length: 7 */ 7365267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) /* required fields for WMM version 1 */ 7371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 oui[3]; /* 00:50:f2 */ 738a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) u8 oui_type; /* 2 */ 7395267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) u8 oui_subtype; /* 0 */ 740c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) u8 version; /* 1 for WMM version 1.0 */ 7415267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) u8 qos_info; /* AP/STA specific QoS info */ 7425267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 7431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 7441e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 7455267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WMM_QOSINFO_STA_AC_MASK 0x0f 74607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_QOSINFO_STA_SP_MASK 0x03 7475267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WMM_QOSINFO_STA_SP_SHIFT 5 748c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 7498abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WMM_AC_AIFSN_MASK 0x0f 750c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WMM_AC_AIFNS_SHIFT 0 751c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#define WMM_AC_ACM 0x10 752bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define WMM_AC_ACI_MASK 0x60 7535267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#define WMM_AC_ACI_SHIFT 5 75407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 75507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_AC_ECWMIN_MASK 0x0f 75607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_AC_ECWMIN_SHIFT 0 757f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#define WMM_AC_ECWMAX_MASK 0xf0 75807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define WMM_AC_ECWMAX_SHIFT 4 75907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 76007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochstruct wmm_ac_parameter { 76107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 aci_aifsn; /* AIFSN, ACM, ACI */ 76207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 cw; /* ECWmin, ECWmax (CW = 2^ECW - 1) */ 76307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch le16 txop_limit; 76407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch} STRUCT_PACKED; 76507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 76607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch/* 76707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch * WMM Parameter Element (used in Beacon, Probe Response, and (Re)Association 76807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch * Response frmaes) 76907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch */ 770c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)struct wmm_parameter_element { 771c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) /* Element ID: 221 (0xdd); Length: 24 */ 772c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) /* required fields for WMM version 1 */ 77307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 oui[3]; /* 00:50:f2 */ 77407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 oui_type; /* 2 */ 77507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 oui_subtype; /* 1 */ 77607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 version; /* 1 for WMM version 1.0 */ 77707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 qos_info; /* AP/STA specific QoS info */ 778c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) u8 reserved; /* 0 */ 7795d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) struct wmm_ac_parameter ac[4]; /* AC_BE, AC_BK, AC_VI, AC_VO */ 7805d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 7815d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} STRUCT_PACKED; 782c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 783f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu/* WMM TSPEC Element */ 784f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liustruct wmm_tspec_element { 785f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu u8 eid; /* 221 = 0xdd */ 786f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu u8 length; /* 6 + 55 = 61 */ 78707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch u8 oui[3]; /* 00:50:f2 */ 788c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) u8 oui_type; /* 2 */ 789c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) u8 oui_subtype; /* 2 */ 7905d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) u8 version; /* 1 */ 7915d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) /* WMM TSPEC body (55 octets): */ 792c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) u8 ts_info[3]; 793f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu le16 nominal_msdu_size; 794f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu le16 maximum_msdu_size; 795f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu le32 minimum_service_interval; 796f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu le32 maximum_service_interval; 7975267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) le32 inactivity_interval; 7985267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) le32 suspension_interval; 7999bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 service_start_time; 8009bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 minimum_data_rate; 801bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) le32 mean_data_rate; 8029bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 peak_data_rate; 8039bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 maximum_burst_size; 8049bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 delay_bound; 8059bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le32 minimum_phy_rate; 8069bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le16 surplus_bandwidth_allowance; 8079bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) le16 medium_time; 8089bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)} STRUCT_PACKED; 8099bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 811a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)/* Access Categories / ACI to AC coding */ 8121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum { 8131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WMM_AC_BE = 0 /* Best Effort */, 8141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WMM_AC_BK = 1 /* Background */, 8159bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) WMM_AC_VI = 2 /* Video */, 8165d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) WMM_AC_VO = 3 /* Voice */ 8175d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)}; 8189bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8199bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8209bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_INDICATION_OUI_TYPE 16 8219bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_ANQP_OUI_TYPE 17 822bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define HS20_STYPE_QUERY_LIST 1 8239bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_CAPABILITY_LIST 2 8249bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_OPERATOR_FRIENDLY_NAME 3 8259bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_WAN_METRICS 4 8269bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_CONNECTION_CAPABILITY 5 8279bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_NAI_HOME_REALM_QUERY 6 8289bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define HS20_STYPE_OPERATING_CLASS 7 8299bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8309bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)/* Wi-Fi Direct (P2P) */ 8311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 832a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define P2P_OUI_TYPE 9 8331e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 8341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum p2p_attr_id { 8351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_ATTR_STATUS = 0, 8361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_ATTR_MINOR_REASON_CODE = 1, 8379bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_CAPABILITY = 2, 8381e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_ATTR_DEVICE_ID = 3, 8399bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_GROUP_OWNER_INTENT = 4, 8401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_ATTR_CONFIGURATION_TIMEOUT = 5, 8419bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_LISTEN_CHANNEL = 6, 8429bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_GROUP_BSSID = 7, 8439bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_EXT_LISTEN_TIMING = 8, 8449bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_INTENDED_INTERFACE_ADDR = 9, 845bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) P2P_ATTR_MANAGEABILITY = 10, 8469bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_CHANNEL_LIST = 11, 8479bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_NOTICE_OF_ABSENCE = 12, 8489bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_DEVICE_INFO = 13, 8499bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_GROUP_INFO = 14, 8509bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_GROUP_ID = 15, 8519bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_INTERFACE = 16, 8529bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_OPERATING_CHANNEL = 17, 8539bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_ATTR_INVITATION_FLAGS = 18, 8541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_ATTR_VENDOR_SPECIFIC = 221 855a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)}; 8561e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 8571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define P2P_MAX_GO_INTENT 15 8581e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 8591e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* P2P Capability - Device Capability bitmap */ 8609bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_DEV_CAPAB_SERVICE_DISCOVERY BIT(0) 8611e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define P2P_DEV_CAPAB_CLIENT_DISCOVERABILITY BIT(1) 8621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define P2P_DEV_CAPAB_CONCURRENT_OPER BIT(2) 8639bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_DEV_CAPAB_INFRA_MANAGED BIT(3) 8641e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define P2P_DEV_CAPAB_DEVICE_LIMIT BIT(4) 8659bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_DEV_CAPAB_INVITATION_PROCEDURE BIT(5) 8669bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8679bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)/* P2P Capability - Group Capability bitmap */ 8689bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_GROUP_OWNER BIT(0) 869bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)#define P2P_GROUP_CAPAB_PERSISTENT_GROUP BIT(1) 8709bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_GROUP_LIMIT BIT(2) 8719bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_INTRA_BSS_DIST BIT(3) 8729bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_CROSS_CONN BIT(4) 8739bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_PERSISTENT_RECONN BIT(5) 8749bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_GROUP_CAPAB_GROUP_FORMATION BIT(6) 8759bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8769bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)/* Invitation Flags */ 8779bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_INVITATION_FLAGS_TYPE BIT(0) 8789bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8799bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)/* P2P Manageability */ 8809bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_MAN_DEVICE_MANAGEMENT BIT(0) 8819bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_MAN_CROSS_CONNECTION_PERMITTED BIT(1) 8821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define P2P_MAN_COEXISTENCE_OPTIONAL BIT(2) 883a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 8841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum p2p_status_code { 8851e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_SUCCESS = 0, 8861e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE = 1, 8879bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_INCOMPATIBLE_PARAMS = 2, 8881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_FAIL_LIMIT_REACHED = 3, 8891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_FAIL_INVALID_PARAMS = 4, 8909bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_UNABLE_TO_ACCOMMODATE = 5, 8911e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_FAIL_PREV_PROTOCOL_ERROR = 6, 8921e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_SC_FAIL_NO_COMMON_CHANNELS = 7, 8939bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_UNKNOWN_GROUP = 8, 8949bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_BOTH_GO_INTENT_15 = 9, 8959bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_INCOMPATIBLE_PROV_METHOD = 10, 8969bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_SC_FAIL_REJECTED_BY_USER = 11, 897bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)}; 8989bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 8999bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_WILDCARD_SSID "DIRECT-" 9009bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)#define P2P_WILDCARD_SSID_LEN 7 9019bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 9029bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)/* P2P action frames */ 9039bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)enum p2p_act_frame_type { 9049bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) P2P_NOA = 0, 9051e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_PRESENCE_REQ = 1, 906a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) P2P_PRESENCE_RESP = 2, 907aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch P2P_GO_DISC_REQ = 3 9081e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}; 9091e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 9101e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* P2P public action frames */ 9111e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)enum p2p_action_frame_type { 9121e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_GO_NEG_REQ = 0, 9131e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_GO_NEG_RESP = 1, 9141e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_GO_NEG_CONF = 2, 9151e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_INVITATION_REQ = 3, 9161e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_INVITATION_RESP = 4, 9171e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_DEV_DISC_REQ = 5, 9181e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_DEV_DISC_RESP = 6, 9191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_PROV_DISC_REQ = 7, 9201e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) P2P_PROV_DISC_RESP = 8 9219bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles)}; 9229bbd2f5e390b01907d97ecffde80aa1b06113aacTorne (Richard Coles) 923d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)enum p2p_service_protocol_type { 924d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_ALL_SERVICES = 0, 925d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_BONJOUR = 1, 926d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_UPNP = 2, 927d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_WS_DISCOVERY = 3, 928d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_WIFI_DISPLAY = 4, 929d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SERV_VENDOR_SPECIFIC = 255 930d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}; 931d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 932d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)enum p2p_sd_status { 933d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SD_SUCCESS = 0, 934d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SD_PROTO_NOT_AVAILABLE = 1, 935d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SD_REQUESTED_INFO_NOT_AVAILABLE = 2, 936d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) P2P_SD_BAD_REQUEST = 3 937d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}; 938d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 939d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 9405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum wifi_display_subelem { 9415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_DEVICE_INFO = 0, 942bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) WFD_SUBELEM_ASSOCIATED_BSSID = 1, 9435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_AUDIO_FORMATS = 2, 9445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_VIDEO_FORMATS = 3, 9455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_3D_VIDEO_FORMATS = 4, 9465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_CONTENT_PROTECTION = 5, 9475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_COUPLED_SINK = 6, 9485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_EXT_CAPAB = 7, 949926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) WFD_SUBELEM_LOCAL_IP_ADDRESS = 8, 9505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WFD_SUBELEM_SESSION_INFO = 9 9511e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)}; 952a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 9535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9541e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define OUI_BROADCOM 0x00904c /* Broadcom (Epigram) */ 9551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 9565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define VENDOR_HT_CAPAB_OUI_TYPE 0x33 /* 00-90-4c:0x33 */ 9571e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 9585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* cipher suite selectors */ 959926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00 9601e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01 96110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#define WLAN_CIPHER_SUITE_TKIP 0x000FAC02 9621e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)/* reserved: 0x000FAC03 */ 9631e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_CIPHER_SUITE_CCMP 0x000FAC04 9645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_CIPHER_SUITE_WEP104 0x000FAC05 9655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_CIPHER_SUITE_AES_CMAC 0x000FAC06 9661e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#define WLAN_CIPHER_SUITE_NO_GROUP_ADDR 0x000FAC07 9675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_CIPHER_SUITE_GCMP 0x000FAC08 9685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 96993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)/* AKM suite selectors */ 9705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define WLAN_AKM_SUITE_8021X 0x000FAC01 9718abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WLAN_AKM_SUITE_PSK 0x000FAC02 97293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 9735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 9745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* IEEE 802.11v - WNM Action field values */ 9755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum wnm_action { 976926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) WNM_EVENT_REQ = 0, 9775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_EVENT_REPORT = 1, 9785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_DIAGNOSTIC_REQ = 2, 9795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_DIAGNOSTIC_REPORT = 3, 9805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_LOCATION_CFG_REQ = 4, 9815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_LOCATION_CFG_RESP = 5, 9821e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_BSS_TRANS_MGMT_QUERY = 6, 983a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) WNM_BSS_TRANS_MGMT_REQ = 7, 9841e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_BSS_TRANS_MGMT_RESP = 8, 9855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_FMS_REQ = 9, 9865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_FMS_RESP = 10, 9875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WNM_COLLOCATED_INTERFERENCE_REQ = 11, 9881e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_COLLOCATED_INTERFERENCE_REPORT = 12, 9891e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_TFS_REQ = 13, 99093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_TFS_RESP = 14, 99193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_TFS_NOTIFY = 15, 99293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_SLEEP_MODE_REQ = 16, 99310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch WNM_SLEEP_MODE_RESP = 17, 9941e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_TIM_BROADCAST_REQ = 18, 99593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_TIM_BROADCAST_RESP = 19, 99693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_QOS_TRAFFIC_CAPAB_UPDATE = 20, 997bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles) WNM_CHANNEL_USAGE_REQ = 21, 9981e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_CHANNEL_USAGE_RESP = 22, 9991e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_DMS_REQ = 23, 100093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_DMS_RESP = 24, 100193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WNM_TIMING_MEASUREMENT_REQ = 25, 10021e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_NOTIFICATION_REQ = 26, 10031e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) WNM_NOTIFICATION_RESP = 27 100493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)}; 100593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 100693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)/* IEEE 802.11v - BSS Transition Management Request - Request Mode */ 100793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED BIT(0) 10088abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#define WNM_BSS_TM_REQ_ABRIDGED BIT(1) 100993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WNM_BSS_TM_REQ_DISASSOC_IMMINENT BIT(2) 101093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED BIT(3) 101193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT BIT(4) 101293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 101393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)/* IEEE Std 802.11-2012, 8.4.2.62 20/40 BSS Coexistence element */ 101493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WLAN_20_40_BSS_COEX_INFO_REQ BIT(0) 101593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WLAN_20_40_BSS_COEX_40MHZ_INTOL BIT(1) 101693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WLAN_20_40_BSS_COEX_20MHZ_WIDTH_REQ BIT(2) 101793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WLAN_20_40_BSS_COEX_OBSS_EXEMPT_REQ BIT(3) 101893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WLAN_20_40_BSS_COEX_OBSS_EXEMPT_GRNT BIT(4) 10191e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 1020a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)struct ieee80211_2040_bss_coex_ie { 10211e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 element_id; 102293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) u8 length; 102393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) u8 coex_param; 102493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)} STRUCT_PACKED; 10251e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 10261e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)struct ieee80211_2040_intol_chan_report { 10275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) u8 element_id; 10285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) u8 length; 10295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) u8 op_class; 103010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch u8 variable[0]; /* Channel List */ 10311e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 10325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* IEEE 802.11v - WNM-Sleep Mode element */ 1034bfe3590b1806e3ff18f46ee3af5d4b83078f305aTorne (Richard Coles)struct wnm_sleep_element { 10351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 eid; /* WLAN_EID_WNMSLEEP */ 10361e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) u8 len; 10375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) u8 action_type; /* WLAN_WNM_SLEEP_ENTER/EXIT */ 10385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) u8 status; 10391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) le16 intval; 10401e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)} STRUCT_PACKED; 1041926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 1042926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum wnm_sleep_mode_response_status { 104351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_SLEEP_ACCEPT = 0, 104451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_SLEEP_EXIT_ACCEPT_GTK_UPDATE = 1, 104551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_DENIED_ACTION = 2, 104651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_DENIED_TMP = 3, 104751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_DENIED_KEY = 4, 104851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_STATUS_DENIED_OTHER_WNM_SERVICE = 5 104951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}; 105051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) 105151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)/* WNM-Sleep Mode subelement IDs */ 105251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)enum wnm_sleep_mode_subelement_id { 105351b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) WNM_SLEEP_SUBELEM_GTK = 0, 1054a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) WNM_SLEEP_SUBELEM_IGTK = 1 105551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)}; 105651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) 105751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#endif /* IEEE802_11_DEFS_H */ 105851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)