Define QCA vendor commands for flow stats/classification

Add nl80211 vendor commands and attributes for the collection of flow
stats and classification.

- QCA_NL80211_VENDOR_SUBCMD_FLOW_STATS
- QCA_NL80211_VENDOR_SUBCMD_FLOW_CLASSIFY_RESULT
- QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY
- QCA_NL80211_VENDOR_SUBCMD_CLASSIFIED_FLOW_REPORT

Signed-off-by: Rakesh Pillai <quic_pillair@quicinc.com>
This commit is contained in:
Rakesh Pillai 2024-03-11 03:33:42 -07:00 committed by Jouni Malinen
parent 5308029f86
commit 5929b4eb1d

View file

@ -1087,6 +1087,33 @@ enum qca_radiotap_vendor_ids {
*
* The attributes used with this command/event are defined in enum
* qca_wlan_vendor_attr_ap_suspend.
*
* @QCA_NL80211_VENDOR_SUBCMD_FLOW_STATS: Event indication from the driver to
* the userspace which contains all the statistics collected for a flow to
* be classified. This event is sent if the userspace enables the
* flow stats reporting via the command
* @QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY and when the driver has
* collected the required flow statistics, as specified by the attributes
* of this event. The attributes for this event are defined in
* enum qca_wlan_vendor_attr_flow_stats.
* @QCA_NL80211_VENDOR_SUBCMD_FLOW_CLASSIFY_RESULT: This vendor command is used
* to indicate the flow classification result based on the flow samples
* received as a part of @QCA_NL80211_VENDOR_SUBCMD_FLOW_STATS. The
* attributes for this command are defined in the
* enum qca_wlan_vendor_attr_flow_classify_result.
* @QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY: This vendor command is used to
* indicate the ASYNC statistics policy from the userspace to the driver
* and it contains the STATS type for which the command is intended. The
* attributes for this command are defined in the
* enum qca_wlan_vendor_attr_async_stats_policy.
* @QCA_NL80211_VENDOR_SUBCMD_CLASSIFIED_FLOW_REPORT: Event indication from the
* driver to the userspace containing all the samples of a classified
* flow along with its classification result. This event is sent by the
* driver to userspace when it receives classification result via the
* command @QCA_NL80211_VENDOR_SUBCMD_FLOW_CLASSIFY_RESULT and the
* collection of these statistics has been enabled by the command
* @QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY. The attributes for this
* event are defined in enum qca_wlan_vendor_attr_flow_stats.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@ -1315,6 +1342,10 @@ enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_COMPLETE = 242,
QCA_NL80211_VENDOR_SUBCMD_ASYNC_GET_STATION = 243,
QCA_NL80211_VENDOR_SUBCMD_AP_SUSPEND = 244,
QCA_NL80211_VENDOR_SUBCMD_FLOW_STATS = 245,
QCA_NL80211_VENDOR_SUBCMD_FLOW_CLASSIFY_RESULT = 246,
QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY = 247,
QCA_NL80211_VENDOR_SUBCMD_CLASSIFIED_FLOW_REPORT = 248,
};
/* Compatibility defines for previously used subcmd names.
@ -17162,4 +17193,374 @@ enum qca_wlan_vendor_attr_ap_suspend {
QCA_WLAN_VENDOR_ATTR_AP_SUSPEND_AFTER_LAST - 1,
};
/**
* enum qca_traffic_type - Traffic types into which the flows can be classified.
* @QCA_TRAFFIC_TYPE_STREAMING: Traffic type is streaming
* @QCA_TRAFFIC_TYPE_GAMING: Traffic type is gaming
* @QCA_TRAFFIC_TYPE_VOICE_CALL: Traffic type is a voice call
* @QCA_TRAFFIC_TYPE_VIDEO_CALL: Traffic type is a video call
*/
enum qca_traffic_type {
QCA_TRAFFIC_TYPE_STREAMING = 0,
QCA_TRAFFIC_TYPE_GAMING = 1,
QCA_TRAFFIC_TYPE_VOICE_CALL = 2,
QCA_TRAFFIC_TYPE_VIDEO_CALL = 3,
};
/**
* enum qca_wlan_vendor_flow_tuple_proto - Definition of the values to specify
* the flow tuple protocol in QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_PROTOCOL.
*
* @QCA_WLAN_VENDOR_FLOW_TUPLE_PROTO_UDP: UDP flow
*
* @QCA_WLAN_VENDOR_FLOW_TUPLE_PROTO_TCP: TCP flow
*/
enum qca_wlan_vendor_flow_tuple_proto {
QCA_WLAN_VENDOR_FLOW_TUPLE_PROTO_UDP = 0,
QCA_WLAN_VENDOR_FLOW_TUPLE_PROTO_TCP = 1,
};
/**
* enum qca_wlan_vendor_attr_flow_tuple - Definition of attributes to specify a
* flow tuple.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_SRC_ADDR: Optional u32 attribute
* indicates the source IPv4 address (in network byte order).
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_DST_ADDR: Optional u32 attribute
* indicates the destination IPv4 address (in network byte order).
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_SRC_ADDR: Optional NLA_BINARY
* attribute of 16 bytes length that indicates the source IPv6 address
* (in network byte order) for a flow.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_DST_ADDR: Optional NLA_BINARY
* attribute of 16 bytes length that indicates the destination IPv6 address
* (in network byte order) for a flow.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_SRC_PORT: Mandatory u16 attribute indicates
* the TCP/UDP source port.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_DST_PORT: Mandatory u16 attribute indicates
* the TCP/UDP destination port.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_PROTOCOL: Mandatory u8 attribute indicates
* the flow protocol. Uses the enum qca_wlan_vendor_flow_tuple_proto.
*
* IPv4 flows have to specify @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_SRC_ADDR
* and @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_DST_ADDR.
* IPv6 flows have to specify @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_SRC_ADDR
* and @QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_DST_ADDR.
*/
enum qca_wlan_vendor_attr_flow_tuple {
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_SRC_ADDR = 1,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV4_DST_ADDR = 2,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_SRC_ADDR = 3,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_IPV6_DST_ADDR = 4,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_SRC_PORT = 5,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_DST_PORT = 6,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_PROTOCOL = 7,
/* keep last */
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_LAST,
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_MAX =
QCA_WLAN_VENDOR_ATTR_FLOW_TUPLE_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_txrx_stats - Definition of attributes to specify
* TX/RX sample for one window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_NUM_BYTES: Mandatory u64 attribute indicates
* the total number of uplink/downlink bytes within the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_NUM_PKTS: Mandatory u32 attribute indicates
* the total number of packets (uplink/downlink) within the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_SIZE_MIN: Mandatory u32 attribute
* indicates the minimum uplink/downlink packet size (in bytes) during the
* sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_SIZE_MAX: Mandatory u32 attribute
* indicates the maximum uplink/downlink packet size (in bytes) during the
* sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_MIN: Mandatory u64 attribute
* indicates the minimum uplink/downlink packet IAT (inter-arrival time)
* in microseconds, during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_MAX: Mandatory u64 attribute
* indicates the maximum uplink/downlink packet IAT (inter-arrival time)
* in microseconds, during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_SUM: Mandatory u64 attribute
* indicates the sum of all the values of uplink/downlink packet IAT
* (inter-arrival time) in microseconds, during the sampling window.
* This attribute is used to calculate the mean packet (inter-arrival time)
* during the sampling window.
*/
enum qca_wlan_vendor_attr_txrx_stats {
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_NUM_BYTES = 1,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_NUM_PKTS = 2,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_SIZE_MIN = 3,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_SIZE_MAX = 4,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_MIN = 5,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_MAX = 6,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_PKT_IAT_SUM = 7,
/* keep last */
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_LAST,
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_MAX =
QCA_WLAN_VENDOR_ATTR_TXRX_STATS_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_txrx_samples_windows - Definition of attributes
* to specify the TX/RX statistics collected in a sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_WINDOW_SIZE: Mandatory u32
* attribute indicates window size for packet TX/RX sampling (in milliseconds).
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_UL_STATS: Mandatory nested
* attribute containing the uplink TX/RX packet statistics for a flow. Uses the
* enum qca_wlan_vendor_attr_txrx_stats.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_DL_STATS: Mandatory nested
* attribute containing the downlink TX/RX packet statistics for a flow. Uses
* the enum qca_wlan_vendor_attr_txrx_stats.
*/
enum qca_wlan_vendor_attr_txrx_samples_windows {
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_WINDOW_SIZE = 1,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_UL_STATS = 2,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_DL_STATS = 3,
/* keep last */
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_LAST,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_MAX =
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_txrx_samples - Definition of attributes to specify
* a TX/RX sample.
*
* @QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS: Mandatory array of nested
* attributes that indicates the TX/RX samples in multiple overlapping windows.
* This uses the attributes defined by
* enum qca_wlan_vendor_attr_txrx_samples_windows.
*/
enum qca_wlan_vendor_attr_txrx_samples {
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_WINDOWS = 1,
/* keep last */
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_LAST,
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_MAX =
QCA_WLAN_VENDOR_ATTR_TXRX_SAMPLES_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_burst_stats - Definition of attribute to specify
* burst statistics.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_MIN: Mandatory u32 attribute
* indicates minimum burst duration (in milliseconds) during the sampling
* window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_MAX: Mandatory u32 attribute
* indicates maximum burst duration (in milliseconds) during the sampling
* window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_SUM: Mandatory u64 attribute
* indicates the sum of all the values of burst duration (in milliseconds)
* during the sampling window. This attribute is used to calculate the mean
* burst duration (in milliseconds) during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_MIN: Mandatory u64 attribute
* indicates minimum burst size (in bytes) during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_MAX: Mandatory u64 attribute
* indicates maximum burst size (in bytes) during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_SUM: Mandatory u64 attribute
* indicates the sum of all the values of burst size (in bytes) during the
* sampling window. This attribute is used to calculate the mean burst size
* (in bytes) during the sampling window.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_COUNT: Mandatory u32 attribute
* indicates the number of bursts during the sampling window.
*/
enum qca_wlan_vendor_attr_burst_stats {
QCA_WLAN_VENDOR_ATTR_BURST_STATS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_MIN = 1,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_MAX = 2,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_DURATION_SUM = 3,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_MIN = 4,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_MAX = 5,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_SIZE_SUM = 6,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_BURST_COUNT = 7,
/* keep last */
QCA_WLAN_VENDOR_ATTR_BURST_STATS_LAST,
QCA_WLAN_VENDOR_ATTR_BURST_STATS_MAX =
QCA_WLAN_VENDOR_ATTR_BURST_STATS_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_burst_sample - Definition of attributes to specify
* a burst sample.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_TXRX_STATS: Mandatory nested attribute
* indicates the uplink and downlink packet statistics collected in a
* sampling window, containing attributes defined in
* enum qca_wlan_vendor_attr_txrx_samples_windows.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_UL_BURST_STATS: Optional nested attribute
* indicates the uplink burst stats, containing attributes defined in
* enum qca_wlan_vendor_attr_burst_stats.
*
* @QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_DL_BURST_STATS: Optional nested attribute
* indicates the downlink burst stats, containing attributes defined in
* enum qca_wlan_vendor_attr_burst_stats.
*/
enum qca_wlan_vendor_attr_burst_sample {
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_TXRX_STATS = 1,
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_UL_BURST_STATS = 2,
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_DL_BURST_STATS = 3,
/* keep last */
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_LAST,
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_MAX =
QCA_WLAN_VENDOR_ATTR_BURST_SAMPLES_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_flow_stats - Definition of attribute used by
* %QCA_NL80211_VENDOR_SUBCMD_CLASSIFIED_FLOW_REPORT and
* %QCA_NL80211_VENDOR_SUBCMD_FLOW_STATS.
*
* Presence of one of the attributes
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_TXRX_SAMPLES and
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_BURST_SAMPLES is mandatory.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_FLOW_TUPLE: Mandatory nested attribute
* containing the flow tuple of the flow for which the statistics are being
* reported.
* Uses the attributes defined by enum qca_wlan_vendor_attr_flow_tuple.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_TRAFFIC_TYPE: Optional u8 attribute
* indicates the traffic type classified for this flow tuple. Uses the
* enum qca_traffic_type values.
* This attribute is mandatory for the command
* @QCA_NL80211_VENDOR_SUBCMD_CLASSIFIED_FLOW_REPORT.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_TXRX_SAMPLES: Optional nested attribute
* containing nested array of TX/RX samples defined in
* enum qca_wlan_vendor_attr_txrx_samples.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_STATS_BURST_SAMPLES: Optional nested attribute
* indicates the packet burst statistics for a flow. Uses attributes defined by
* enum qca_wlan_vendor_attr_burst_sample.
*/
enum qca_wlan_vendor_attr_flow_stats {
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_FLOW_TUPLE = 1,
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_TRAFFIC_TYPE = 2,
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_TXRX_SAMPLES = 3,
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_BURST_SAMPLES = 4,
/* keep last */
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_LAST,
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_MAX =
QCA_WLAN_VENDOR_ATTR_FLOW_STATS_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_flow_classify_result - Definition of attributes to
* specify the flow classification result. This enum is used by
* @QCA_NL80211_VENDOR_SUBCMD_FLOW_CLASSIFY_RESULT.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_FLOW_TUPLE: Mandatory nested
* attribute containing attributes defined by
* enum qca_wlan_vendor_attr_flow_tuple.
*
* @QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_TRAFFIC_TYPE: Mandatory u8
* attribute indicates the traffic type learned for this flow tuple. Uses the
* enum qca_traffic_type values.
*/
enum qca_wlan_vendor_attr_flow_classify_result {
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_FLOW_TUPLE = 1,
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_TRAFFIC_TYPE = 2,
/* keep last */
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_LAST,
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_MAX =
QCA_WLAN_VENDOR_ATTR_FLOW_CLASSIFY_RESULT_LAST - 1,
};
/**
* enum qca_async_stats_sub_module - The statistics type used in async
* statistics policy.
* Used by @QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_STATS_TYPE.
*
* @QCA_ASYNC_STATS_TYPE_POWERSAVE: Wi-Fi powersave statistics
*
* @QCA_ASYNC_STATS_TYPE_FLOW_STATS: Flow statistics
*
* @QCA_ASYNC_STATS_TYPE_CLASSIFIED_FLOW_STATS: Classified flow statistics
*/
enum qca_async_stats_type {
QCA_ASYNC_STATS_TYPE_POWERSAVE = 0,
QCA_ASYNC_STATS_TYPE_FLOW_STATS = 1,
QCA_ASYNC_STATS_TYPE_CLASSIFIED_FLOW_STATS = 2,
};
/**
* enum qca_async_stats_action - ASYNC statistics action. Used by
* @QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_ACTION.
*
* @QCA_ASYNC_STATS_ACTION_START: Start indication for async statistics
* collection.
* @QCA_ASYNC_STATS_ACTION_STOP: Stop indication for async statistics
* collection.
*/
enum qca_async_stats_action {
QCA_ASYNC_STATS_ACTION_START = 0,
QCA_ASYNC_STATS_ACTION_STOP = 1,
};
/**
* enum qca_wlan_vendor_attr_async_stats_policy - Definition of attributes to
* specify the ASYNC statistics policy. This enum is used by
* @QCA_NL80211_VENDOR_SUBCMD_ASYNC_STATS_POLICY.
*
* @QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_STATS_TYPE: Mandatory u8
* attribute indicates the statistics type for which the async statistics policy
* needs to be applied by the driver. Uses the enum qca_async_stats_type values.
*
* @QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_ACTION: Mandatory u8 attribute
* indicates the action as part of this policy.
* Uses the enum qca_async_stats_action values.
*
* @QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_STATS_PERIODICITY: Optional u32
* attribute indicates the periodicity (in milliseconds) for the statistics to
* be reported. This attribute is mandatory for QCA_ASYNC_STATS_TYPE_POWERSAVE.
*/
enum qca_wlan_vendor_attr_async_stats_policy {
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_STATS_TYPE = 1,
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_ACTION = 2,
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_STATS_PERIODICITY = 3,
/* keep last */
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_LAST,
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_MAX =
QCA_WLAN_VENDOR_ATTR_ASYNC_STATS_POLICY_LAST - 1,
};
#endif /* QCA_VENDOR_H */