mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
Extend vendor attributes to support enhanced CFR capture
Enhanced channel frequency response supports capturing of channel status information based on RX. Define previous CFR as version 1 and enhanced CFR as version 2. If target supports both versions, two versions can't be enabled at same time. Extend attributes for enhanced CFR capture in enum qca_wlan_vendor_peer_cfr_capture_attr. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
30ac8ddaf6
commit
bb08be757f
@ -7422,10 +7422,40 @@ enum qca_wlan_vendor_attr_roam_scan {
|
||||
* enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
|
||||
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
|
||||
* command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG.
|
||||
* @QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL: CFR method using QoS Null frame
|
||||
* @QCA_WLAN_VENDOR_CFR_QOS_NULL_WITH_PHASE: CFR method using QoS Null frame
|
||||
* with phase
|
||||
* @QCA_WLAN_VENDOR_CFR_PROBE_RESPONSE: CFR method using Probe Response frame
|
||||
*/
|
||||
enum qca_wlan_vendor_cfr_method {
|
||||
/* CFR method using QOS Null frame */
|
||||
QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL = 0,
|
||||
QCA_WLAN_VENDOR_CFR_QOS_NULL_WITH_PHASE = 1,
|
||||
QCA_WLAN_VENDOR_CFR_PROBE_RESPONSE = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_cfr_capture_type - QCA vendor CFR capture type used by
|
||||
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_TYPE.
|
||||
* @QCA_WLAN_VENDOR_CFR_DIRECT_FTM: Filter directed FTM ACK frames.
|
||||
* @QCA_WLAN_VENDOR_CFR_ALL_FTM_ACK: Filter all FTM ACK frames.
|
||||
* @QCA_WLAN_VENDOR_CFR_DIRECT_NDPA_NDP: Filter NDPA NDP directed frames.
|
||||
* @QCA_WLAN_VENDOR_CFR_TA_RA: Filter frames based on TA/RA/Subtype which
|
||||
* is provided by one or more of below attributes:
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA_MASK
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA_MASK
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_CTRL_FILTER
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_DATA_FILTER
|
||||
* @QCA_WLAN_CFR_ALL_PACKET: Filter all packets.
|
||||
*/
|
||||
enum qca_wlan_vendor_cfr_capture_type {
|
||||
QCA_WLAN_VENDOR_CFR_DIRECT_FTM = 0,
|
||||
QCA_WLAN_VENDOR_CFR_ALL_FTM_ACK = 1,
|
||||
QCA_WLAN_VENDOR_CFR_DIRECT_NDPA_NDP = 2,
|
||||
QCA_WLAN_VENDOR_CFR_TA_RA = 3,
|
||||
QCA_WLAN_VENDOR_CFR_ALL_PACKET = 4,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -7433,44 +7463,177 @@ enum qca_wlan_vendor_cfr_method {
|
||||
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG to configure peer
|
||||
* Channel Frequency Response capture parameters and enable periodic CFR
|
||||
* capture.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR: Required (6-byte MAC address)
|
||||
* MAC address of peer. This is for CFR version 1 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE: Required (flag)
|
||||
* Enable peer CFR capture. This attribute is mandatory to enable peer CFR
|
||||
* capture. If this attribute is not present, peer CFR capture is disabled.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH: Required (u8)
|
||||
* BW of measurement, attribute uses the values in enum nl80211_chan_width
|
||||
* Supported values: 20, 40, 80, 80+80, 160.
|
||||
* Note that all targets may not support all bandwidths.
|
||||
* This attribute is mandatory for version 1 if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY: Required (u32)
|
||||
* Periodicity of CFR measurement in milliseconds.
|
||||
* Periodicity should be a multiple of Base timer.
|
||||
* Current Base timer value supported is 10 milliseconds (default).
|
||||
* 0 for one shot capture.
|
||||
* This attribute is mandatory for version 1 if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD: Required (u8)
|
||||
* Method used to capture Channel Frequency Response.
|
||||
* Attribute uses the values defined in enum qca_wlan_vendor_cfr_method.
|
||||
* This attribute is mandatory for version 1 if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE: Required (flag)
|
||||
* Enable periodic CFR capture.
|
||||
* This attribute is mandatory for version 1 to enable Periodic CFR capture.
|
||||
* If this attribute is not present, periodic CFR capture is disabled.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_VERSION: Required (u8)
|
||||
* Value is 1 or 2 since there are two versions of CFR capture. Two versions
|
||||
* can't be enabled at same time. This attribute is mandatory if target
|
||||
* support both versions and use one of them.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP: Required (u32)
|
||||
* This attribute is mandatory for version 2 if
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_ENTRY is used.
|
||||
* Bits 15:0 bitfield indicates which group is to be enabled.
|
||||
* Bits 31:16 Reserved for future use.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_DURATION: Optional (u32)
|
||||
* CFR capture duration in microsecond. This attribute is mandatory for
|
||||
* version 2 if attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_INTERVAL is used.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_INTERVAL: Optional (u32)
|
||||
* CFR capture interval in microsecond. This attribute is mandatory for
|
||||
* version 2 if attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_DURATION is used.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_TYPE: Required (u32)
|
||||
* CFR capture type is defined in enum qca_wlan_vendor_cfr_capture_type.
|
||||
* This attribute is mandatory for version 2.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_UL_MU_MASK: Optional (u64)
|
||||
* Bitfield indicating which user in the current UL MU transmissions are
|
||||
* enabled for CFR capture. Bits 36 to 0 indicate user indexes for 37 users in
|
||||
* a UL MU transmission. If bit 0 is set, the CFR capture will happen for user
|
||||
* index 0 in the current UL MU transmission. If bits 0 and 2 are set, CFR
|
||||
* capture for UL MU TX corresponds to user indices 0 and 2. Bits 63:37 are
|
||||
* reserved for future use. This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_FREEZE_TLV_DELAY_COUNT: Optional (u32)
|
||||
* Indicates the number of consecutive RX frames to be skipped before CFR
|
||||
* capture is enabled again. This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TABLE: Nested attribute containing
|
||||
* one or more %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_ENTRY attributes.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_ENTRY: Nested attribute containing
|
||||
* the following group attributes:
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NUMBER,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA_MASK,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA_MASK,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_BW,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_CTRL_FILTER,
|
||||
* %QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_DATA_FILTER
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NUMBER: Required (u32)
|
||||
* Target supports multiple groups for some configurations. The group number
|
||||
* can be any value between 0 and 15. This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA: Optional (6-byte MAC address)
|
||||
* Transmitter address which is used to filter frames. This MAC address takes
|
||||
* effect with QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA_MASK. This is for CFR
|
||||
* version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA: Optional (6-byte MAC address)
|
||||
* Receiver address which is used to filter frames. This MAC address takes
|
||||
* effect with QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA_MASK. This is for CFR
|
||||
* version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA_MASK: Optional (6-byte MAC address)
|
||||
* Mask of transmitter address which is used to filter frames. This is for CFR
|
||||
* version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA_MASK: Optional (6-byte MAC address)
|
||||
* Mask of receiver address which is used to filter frames. This is for CFR
|
||||
* version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS: Optional (u32)
|
||||
* Indicates frames with a specific NSS will be filtered for CFR capture.
|
||||
* This is for CFR version 2 only. This is a bitmask. Bits 7:0 request CFR
|
||||
* capture to be done for frames matching the NSS specified within this bitmask.
|
||||
* Bits 31:8 are reserved for future use. Bits 7:0 map to NSS:
|
||||
* bit 0 : NSS 1
|
||||
* bit 1 : NSS 2
|
||||
* ...
|
||||
* bit 7 : NSS 8
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_BW: Optional (u32)
|
||||
* Indicates frames with a specific bandwidth will be filtered for CFR capture.
|
||||
* This is for CFR version 2 only. This is a bitmask. Bits 4:0 request CFR
|
||||
* capture to be done for frames matching the bandwidths specified within this
|
||||
* bitmask. Bits 31:5 are reserved for future use. Bits 4:0 map to bandwidth
|
||||
* numerated in enum nl80211_band (although not all bands may be supported
|
||||
* by a given device).
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER: Optional (u32)
|
||||
* Management frames matching the subtype filter categories will be filtered in
|
||||
* by MAC for CFR capture. This is a bitmask in which each bit represents the
|
||||
* corresponding Management frame subtype value per IEEE Std 802.11-2016,
|
||||
* 9.2.4.1.3 Type and Subtype subfields. For example, Beacon frame control type
|
||||
* is 8 and its value is 1 << 8 = 0x100. This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_CTRL_FILTER: Optional (u32)
|
||||
* Control frames matching the subtype filter categories will be filtered in by
|
||||
* MAC for CFR capture. This is a bitmask in which each bit represents the
|
||||
* corresponding Control frame subtype value per IEEE Std 802.11-2016,
|
||||
* 9.2.4.1.3 Type and Subtype subfields. This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_DATA_FILTER: Optional (u32)
|
||||
* Data frames matching the subtype filter categories will be filtered in by
|
||||
* MAC for CFR capture. This is a bitmask in which each bit represents the
|
||||
* corresponding Data frame subtype value per IEEE Std 802.11-2016,
|
||||
* 9.2.4.1.3 Type and Subtype subfields. This is for CFR version 2 only.
|
||||
*/
|
||||
enum qca_wlan_vendor_peer_cfr_capture_attr {
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
|
||||
/* 6-byte MAC address of the peer.
|
||||
* This attribute is mandatory.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR = 1,
|
||||
/* Enable peer CFR Capture, flag attribute.
|
||||
* This attribute is mandatory to enable peer CFR capture.
|
||||
* If this attribute is not present, peer CFR capture is disabled.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE = 2,
|
||||
/* BW of measurement, attribute uses the values in enum nl80211_chan_width
|
||||
* Supported values: 20, 40, 80, 80+80, 160.
|
||||
* Note that all targets may not support all bandwidths.
|
||||
* u8 attribute. This attribute is mandatory if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH = 3,
|
||||
/* Periodicity of CFR measurement in msec.
|
||||
* Periodicity should be a multiple of Base timer.
|
||||
* Current Base timer value supported is 10 msecs (default).
|
||||
* 0 for one shot capture. u32 attribute.
|
||||
* This attribute is mandatory if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY = 4,
|
||||
/* Method used to capture Channel Frequency Response.
|
||||
* Attribute uses the values defined in enum qca_wlan_vendor_cfr_method.
|
||||
* u8 attribute. This attribute is mandatory if attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD = 5,
|
||||
/* Enable periodic CFR capture, flag attribute.
|
||||
* This attribute is mandatory to enable Periodic CFR capture.
|
||||
* If this attribute is not present, periodic CFR capture is disabled.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE = 6,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_VERSION = 7,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP = 8,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_DURATION = 9,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_INTERVAL = 10,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_TYPE = 11,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_UL_MU_MASK = 12,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_FREEZE_TLV_DELAY_COUNT = 13,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TABLE = 14,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_ENTRY = 15,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NUMBER = 16,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA = 17,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA = 18,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_TA_MASK = 19,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_RA_MASK = 20,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS = 21,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_BW = 22,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER = 23,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_CTRL_FILTER = 24,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_DATA_FILTER = 25,
|
||||
|
||||
/* Keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
|
||||
|
Loading…
Reference in New Issue
Block a user