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
1 changed files with 193 additions and 30 deletions
|
@ -7422,10 +7422,40 @@ enum qca_wlan_vendor_attr_roam_scan {
|
||||||
* enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
|
* enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
|
||||||
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
|
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
|
||||||
* command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG.
|
* 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 {
|
enum qca_wlan_vendor_cfr_method {
|
||||||
/* CFR method using QOS Null frame */
|
|
||||||
QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL = 0,
|
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
|
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG to configure peer
|
||||||
* Channel Frequency Response capture parameters and enable periodic CFR
|
* Channel Frequency Response capture parameters and enable periodic CFR
|
||||||
* capture.
|
* 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 {
|
enum qca_wlan_vendor_peer_cfr_capture_attr {
|
||||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
|
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,
|
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,
|
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,
|
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,
|
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,
|
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_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 */
|
/* Keep last */
|
||||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
|
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
|
||||||
|
|
Loading…
Reference in a new issue