diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index bb3b885fd..a72feebb2 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -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 */