qcacmn: Add support for cfr data transport mode
User sets CFR data transport mode using vendor command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG. By default CFR data transport mode is relayfs, user uses vendor command attr QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE to set transport mode QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS or QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS. If user sets QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID attr in QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG vendor command then hosts uses RECEIVER_PID to send unicast NL events for CFR data. Change-Id: I40e896fad8af24e761fcbedeba761f4a3815f0b8 CRs-Fixed: 2952095
This commit is contained in:

committed by
Madan Koyyalamudi

parent
02e119acc0
commit
7f1cabbe4d
@@ -314,7 +314,9 @@
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG: This command is used to
|
||||
* configure parameters per peer to capture Channel Frequency Response
|
||||
* (CFR) and enable Periodic CFR capture. The attributes for this command
|
||||
* are defined in enum qca_wlan_vendor_peer_cfr_capture_attr.
|
||||
* are defined in enum qca_wlan_vendor_peer_cfr_capture_attr. This command
|
||||
* can also be used to send CFR data from the driver to userspace when
|
||||
* netlink events are used to send CFR data.
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE: Sub command to get firmware state.
|
||||
* The returned firmware state is specified in the attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_FW_STATE.
|
||||
@@ -9384,6 +9386,22 @@ enum qca_wlan_vendor_attr_nan_params {
|
||||
QCA_WLAN_VENDOR_ATTR_NAN_PARAMS_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_cfr_data_transport_modes - Defines QCA vendor CFR data
|
||||
* transport modes and is used by attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE as part of vendor command
|
||||
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG.
|
||||
* @QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS: Use RELAY FS to send CFR data.
|
||||
* @QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS: Use netlink events to send CFR
|
||||
* data. The data shall be encapsulated within
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA along withe vendor sub command
|
||||
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG as an asynchronous event.
|
||||
*/
|
||||
enum qca_wlan_vendor_cfr_data_transport_modes {
|
||||
QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS = 0,
|
||||
QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
|
||||
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
|
||||
@@ -9581,6 +9599,27 @@ enum qca_wlan_vendor_cfr_capture_type {
|
||||
* 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_DATA_TRANSPORT_MODE: Optional (u8)
|
||||
* Userspace can use this attribute to specify the driver about which transport
|
||||
* mode shall be used by the driver to send CFR data to userspace. Uses values
|
||||
* from enum qca_wlan_vendor_cfr_data_transport_modes. When this attribute is
|
||||
* not present, driver shall choose the default transport mechanism which is
|
||||
* QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID: Optional (u32)
|
||||
* Userspace can use this attribute to specify the nl port id of the application
|
||||
* which receives the CFR data and processes it further so that the drivers can
|
||||
* unicast the NL events to a specific application. Optionally included when
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE is set to
|
||||
* QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS, not required otherwise. The drivers
|
||||
* shall multicast the netlink events when this attribute is not included.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA: Required (NLA_BINARY).
|
||||
* This attribute will be used by the driver to encapsulate and send CFR data
|
||||
* to userspace along with QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG as an
|
||||
* asynchronous event when the driver is configured to send CFR data using NL
|
||||
* events with %QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS
|
||||
*
|
||||
*/
|
||||
enum qca_wlan_vendor_peer_cfr_capture_attr {
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
|
||||
@@ -9609,6 +9648,9 @@ enum qca_wlan_vendor_peer_cfr_capture_attr {
|
||||
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,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE = 26,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID = 27,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA = 28,
|
||||
|
||||
/* Keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
|
||||
|
Reference in New Issue
Block a user