diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 0abda37720..9f84c672d0 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1274,6 +1274,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_roam_get_vendor_control_param_event_fixed_param, WMITLV_TAG_STRUC_wmi_request_halphy_ctrl_path_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_halphy_ctrl_path_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1771,6 +1772,7 @@ typedef enum { OP(WMI_ROAM_ENABLE_VENDOR_CONTROL_CMDID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID) \ OP(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID) \ + OP(WMI_PEER_FLUSH_POLICY_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5049,6 +5051,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PASN_DEAUTH_CMD); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pmm_scratch_reg_info, scratch_reg_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID); +/* Peer flush Policy Cmd */ +#define WMITLV_TABLE_WMI_PEER_FLUSH_POLICY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, wmi_peer_flush_policy_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_POLICY_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 15041db0cd..590aeafac9 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -706,6 +706,10 @@ typedef enum { /* Mac addr based filtering*/ WMI_PEER_TX_FILTER_CMDID, + /** flush specific tid queues of a peer */ + WMI_PEER_FLUSH_POLICY_CMDID, + + /* beacon/management specific commands */ /** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */ @@ -31490,6 +31494,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ROAM_ENABLE_VENDOR_CONTROL_CMDID); WMI_RETURN_STRING(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID); WMI_RETURN_STRING(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID); + WMI_RETURN_STRING(WMI_PEER_FLUSH_POLICY_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -38647,6 +38652,30 @@ typedef struct { A_UINT32 is_allocated; } wmi_pmm_scratch_reg_allocation_complete_event_fixed_param; +typedef enum { + WMI_NO_FLUSH, + WMI_TWT_FLUSH, + + /* Add new flush policies above */ + WMI_MAX_FLUSH_POLICY +} wmi_peer_flush_policy; + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** The tids to flush */ + A_UINT32 peer_tid_bitmap; + /* wmi_peer_flush_policy */ + A_UINT32 flush_policy; + /* n_TWT_SPs_to_expire: + * Expire / drop packets whose age is greater than this specified number + * of TWT service periods. + */ + A_UINT32 n_TWT_SPs_to_expire; +} wmi_peer_flush_policy_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 5507281587..e9c3fdf198 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_ 1152 +#define __WMI_REVISION_ 1153 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work