diff --git a/fw/wmi_services.h b/fw/wmi_services.h index b4a41c41941a..47c0e92342e5 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -396,6 +396,7 @@ typedef enum { WMI_SERVICE_DSM_ROAM_FILTER = 211, /* FW supports data stall AP mitigation while roaming */ WMI_SERVICE_PACKET_CAPTURE_SUPPORT = 212, /* target supports packet capture Mode (SMART MU) */ WMI_SERVICE_PER_PEER_HTT_STATS_RESET = 213, /* FW supports HTT per peer stats reset facility */ + WMI_SERVICE_DELETE_ALL_PEER_SUPPORT = 214, /* target supports cmd to delete all peers within a vdev */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index f81c4dad31b6..e315c7b47911 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -989,6 +989,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_twt_btwt_remove_sta_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_twt_btwt_invite_sta_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_twt_btwt_remove_sta_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_delete_all_peer_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_delete_all_peer_resp_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1390,6 +1392,7 @@ typedef enum { OP(WMI_PDEV_DSM_FILTER_CMDID) \ OP(WMI_TWT_BTWT_INVITE_STA_CMDID) \ OP(WMI_TWT_BTWT_REMOVE_STA_CMDID) \ + OP(WMI_VDEV_DELETE_ALL_PEER_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1620,6 +1623,7 @@ typedef enum { OP(WMI_MUEDCA_PARAMS_CONFIG_EVENTID) \ OP(WMI_TWT_BTWT_INVITE_STA_COMPLETE_EVENTID) \ OP(WMI_TWT_BTWT_REMOVE_STA_COMPLETE_EVENTID) \ + OP(WMI_VDEV_DELETE_ALL_PEER_RESP_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -1647,6 +1651,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CREATE_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_CMDID); +/* Delete all peer Cmd */ +#define WMITLV_TABLE_WMI_VDEV_DELETE_ALL_PEER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_delete_all_peer_cmd_fixed_param, wmi_vdev_delete_all_peer_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_ALL_PEER_CMDID); + /* Peer unmap response Cmd */ #define WMITLV_TABLE_WMI_PEER_UNMAP_RESPONSE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_unmap_response_cmd_fixed_param, wmi_peer_unmap_response_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ @@ -4841,6 +4851,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, wmi_peer_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_RESP_EVENTID); +/* delete all peer response Event */ +#define WMITLV_TABLE_WMI_VDEV_DELETE_ALL_PEER_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_delete_all_peer_resp_event_fixed_param, wmi_vdev_delete_all_peer_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_ALL_PEER_RESP_EVENTID); + /* peer assoc conf Event */ #define WMITLV_TABLE_WMI_PEER_ASSOC_CONF_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, wmi_peer_assoc_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index c36c286910ae..a567988b2ea0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -480,6 +480,8 @@ typedef enum { WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID, /* request LTE-Coex info */ WMI_VDEV_GET_MWS_COEX_INFO_CMDID, + /** delete all peer (excluding bss peer) */ + WMI_VDEV_DELETE_ALL_PEER_CMDID, /* peer specific commands */ @@ -1388,6 +1390,9 @@ typedef enum { /* Event to handle FW offloaded mgmt packets */ WMI_VDEV_MGMT_OFFLOAD_EVENTID, + /* FW response to Host for delete all peer cmdid */ + WMI_VDEV_DELETE_ALL_PEER_RESP_EVENTID, + /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ @@ -10981,6 +10986,12 @@ typedef struct { wmi_mac_addr peer_macaddr; } wmi_peer_delete_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_delete_all_peer_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_delete_all_peer_cmd_fixed_param; + typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_unmap_response_cmd_fixed_param */ A_UINT32 tlv_header; @@ -18397,6 +18408,20 @@ typedef struct { wmi_mac_addr peer_macaddr; } wmi_peer_delete_resp_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_all_peer_resp_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* Status of peer delete all command */ + /* + * Values for Status: + * 0 - OK; command successful + * 1 - EINVAL; Requested invalid vdev_id + * 2 - EFAILED; Delete all peer failed + */ + A_UINT32 status; +} wmi_vdev_delete_all_peer_resp_event_fixed_param; + typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_state_event_fixed_param */ A_UINT32 tlv_header; @@ -23520,6 +23545,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_CREATE_CMDID); /** delete a peer */ WMI_RETURN_STRING(WMI_PEER_DELETE_CMDID); + /** delete all peer (excluding bss peer) */ + WMI_RETURN_STRING(WMI_VDEV_DELETE_ALL_PEER_CMDID); /** flush specific tid queues of a peer */ WMI_RETURN_STRING(WMI_PEER_FLUSH_TIDS_CMDID); /** set a parameter of a peer */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 1e834bb6538c..e387c4760a39 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,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_ 683 +#define __WMI_REVISION_ 684 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work