diff --git a/fw/wmi_services.h b/fw/wmi_services.h index d418bd21b1ac..7279a9619c30 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -724,6 +724,7 @@ typedef enum { WMI_SERVICE_TX_POWER_LIMIT = 463, /* FW supports temporary tx power limit indication to HALPHY */ WMI_SERVICE_NPCA_SUPPORT = 464, /* Indicates FW supports NPCA (Non-Primary Channel Access) */ WMI_SERVICE_EXT_TLV_SUPPORT = 465, /* FW supports WMI_MAX_NUM_EXT_TLVS */ + WMI_SERVICE_VDEV_TRAFFIC_MONITORING = 466, /* FW supports traffic monitoring */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index e078c310b074..d05bebf83f93 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1510,6 +1510,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_get_tpc_ie_power_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_coex_stats, + WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2087,6 +2088,7 @@ typedef enum { OP(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID) \ OP(WMI_VDEV_GET_TPC_IE_POWER_CMDID) \ OP(WMI_PEER_ASSOC_V2_CMDID) \ + OP(WMI_VDEV_TRAFFIC_MONITORING_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2935,7 +2937,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); -/* Peer Assoc EXT Cmd +/* WMI_PEER_ASSOC_V2_CMD - version 2 of the PEER_ASSOC cmd, allowing more TLVs * This cmd message mirrors the WMI_PEER_ASSOC_CMDID message, but has the * capacity for extra TLVs beyond those in the WMI_PEER_ASSOC_CMDID definition. * This message can only be used if the target advertises support for @@ -5913,6 +5915,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_RATE_CUSTOM_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID); +/* vdev traffic monitoring request cmd */ +#define WMITLV_TABLE_WMI_VDEV_TRAFFIC_MONITORING_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param, wmi_vdev_traffic_monitoring_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TRAFFIC_MONITORING_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index e535a515575c..8d2781c8d5df 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -736,6 +736,9 @@ typedef enum { WMI_VDEV_GET_TPC_IE_POWER_CMDID, + /** data traffic monitoring */ + WMI_VDEV_TRAFFIC_MONITORING_CMDID, + /* peer specific commands */ /** create a peer */ @@ -39703,6 +39706,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID); WMI_RETURN_STRING(WMI_PEER_TID_RATE_CUSTOM_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_TPC_IE_POWER_CMDID); + WMI_RETURN_STRING(WMI_VDEV_TRAFFIC_MONITORING_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -51756,6 +51760,18 @@ typedef struct { */ } wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param; +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** TX RX packet count threshold value */ + A_UINT32 data_threshold; + /** duration of traffic monitoring, in unit of sec */ + A_UINT32 traffic_monitoring_time; +} wmi_vdev_traffic_monitoring_cmd_fixed_param; + diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 60ece38126f3..8ad871d44164 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1650 +#define __WMI_REVISION_ 1651 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work