qcacmn: Extend attributes to support enhanced CFR capture

Enhanced channel frequency response supports to capture 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.

Change-Id: If9a5e387f03981eb75f98138fe555f4489ccb377
CRs-Fixed: 2641774
This commit is contained in:
Wu Gao
2016-08-28 10:56:33 +08:00
committed by nshrivas
parent 2b64dc198a
commit 7c9caaf417

View File

@@ -7889,10 +7889,40 @@ enum qca_wlan_vendor_attr_nan_params {
* 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,
};
/**
@@ -7900,45 +7930,184 @@ 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 msec.
* Periodicity should be a multiple of Base timer.
* Current Base timer value supported is 10 msecs (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_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_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 Bit fields indicating which group 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)
* Bit fields indicating which user in the current UL MU
* transmissions are enabled for CFR capture. Bits 36 to 0 indicating
* user indexes for 37 users in a UL MU transmission. If bit 0 is set,
* then the CFR capture will happen for user index 0 in the current
* UL MU transmission. If bits 0,2 are set, then CFR capture for UL MU
* TX corresponds to user indices 0 and 2. Bits 63:37 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 packets 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 support multiple groups for some configurations. Group number could 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 packets, 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 packets, 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 packets.
* 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 packets.
* This is for CFR version 2 only.
*
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS: Optional (u32)
* Indicates packets with a specific NSS will be filtered for CFR capture.
* This is for CFR version 2 only. This is a bitmask. Bits 7:0, CFR capture will
* be done for packets matching the NSS specified within this bitmask.
* Bits 31:8 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 packets with a specific BW will be filtered for CFR capture.
* This is for CFR version 2 only. This is a bitmask. Bits 4:0, CFR capture
* will be done for packets matching the bandwidths specified within this
* bitmask. Bits 31:5 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 packets 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 mgmt subtype value as per
* IEEE 802.11(2016) 9.2.4.1.3 Type and Subtype subfields.
* For example, beacon frame control type is 8, 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 packets 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 subtype value as per
* IEEE 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 packets 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 subtype value as per
* IEEE 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,