diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 2beca5aef1d6..dc248d93be39 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -967,6 +967,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_key_material_ext, WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_fixed_param, WMITLV_TAG_STRUC_wmi_cold_boot_cal_data_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_on_sta_ps_tlv_param, + WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1360,6 +1363,7 @@ typedef enum { OP(WMI_ROAM_BSS_LOAD_CONFIG_CMDID) \ OP(WMI_VDEV_GET_MWS_COEX_INFO_CMDID) \ OP(WMI_REQUEST_WLM_STATS_CMDID) \ + OP(WMI_PDEV_SET_RAP_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1584,6 +1588,7 @@ typedef enum { OP(WMI_WLM_STATS_EVENTID) \ OP(WMI_PEER_CFR_CAPTURE_EVENTID) \ OP(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID) \ + OP(WMI_PDEV_RAP_INFO_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -3917,6 +3922,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HPCS_PULSE_START_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_PKTLOG_FILTER_CMDID); +/* PDev Set Rogue AP Config cmd */ +#define WMITLV_TABLE_WMI_PDEV_SET_RAP_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param, wmi_pdev_set_rap_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_rap_config_on_sta_ps_tlv_param, rap_param, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_RAP_CONFIG_CMDID); + + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ @@ -5294,6 +5306,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID); +/* rogue ap info event */ +#define WMITLV_TABLE_WMI_PDEV_RAP_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, wmi_pdev_rap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RAP_INFO_EVENTID); + #ifdef __cplusplus } #endif diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index fd45de08d8c7..b752cdf8ebba 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -405,6 +405,8 @@ typedef enum { WMI_PDEV_HE_TB_ACTION_FRM_CMDID, /** filter packet log based on MAC address */ WMI_PDEV_PKTLOG_FILTER_CMDID, + /** wmi command for setting rogue ap configuration */ + WMI_PDEV_SET_RAP_CONFIG_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -1307,6 +1309,9 @@ typedef enum { /* Event to send cold boot calibration data */ WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID, + /* Event to report a rogue ap info that is detected in fw */ + WMI_PDEV_RAP_INFO_EVENTID, + /* VDEV specific events */ /** VDEV started event in response to VDEV_START request */ @@ -6097,8 +6102,34 @@ typedef struct { */ } wmi_pdev_pktlog_filter_cmd_fixed_param; +typedef enum { + WMI_ROGUE_AP_ON_STA_PS = 1, /* rogue ap on sta ps module */ +} WMI_ROGUE_AP_TYPE; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param */ + /** pdev_id for identifying the MAC, the default value is WMI_PDEV_ID_SOC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** rogue ap type, see WMI_ROGUE_AP_TYPE */ + A_UINT32 type; + /** Enable detection of rogue ap in the ps module + * + * 0 -> disabled + * 1 -> enabled (default) + */ + A_UINT32 sta_ps_detection_enabled; +/* This TLV is followed by rap_param for each rogue ap: + * wmi_pdev_set_rap_config_on_sta_ps_tlv_param rap_param[]; + */ +} wmi_pdev_set_rap_config_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_on_sta_ps_tlv_param */ + /** bssid of rogue ap */ + wmi_mac_addr bssid; +} wmi_pdev_set_rap_config_on_sta_ps_tlv_param; typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param */ @@ -11178,8 +11209,11 @@ typedef struct { A_UINT32 vdev_id; } wmi_peer_add_wds_entry_cmd_fixed_param; -#define WMI_CHAN_InFO_START_RESP 0 -#define WMI_CHAN_InFO_END_RESP 1 +#define WMI_CHAN_INFO_START_RESP 0 +#define WMI_CHAN_INFO_END_RESP 1 +/* deprecated but maintained as aliases: old names containing typo */ +#define WMI_CHAN_InFO_START_RESP WMI_CHAN_INFO_START_RESP +#define WMI_CHAN_InFO_END_RESP WMI_CHAN_INFO_END_RESP typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */ @@ -23558,6 +23592,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ROAM_BSS_LOAD_CONFIG_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_MWS_COEX_INFO_CMDID); WMI_RETURN_STRING(WMI_REQUEST_WLM_STATS_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_RAP_CONFIG_CMDID); } return "Invalid WMI cmd"; @@ -26046,6 +26081,17 @@ typedef struct { */ } wmi_cold_boot_cal_data_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param */ + /** pdev_id for identifying the MAC, the default value is WMI_PDEV_ID_SOC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + A_UINT32 type; /** type of the rogue ap, see WMI_ROGUE_AP_TYPE */ + wmi_mac_addr bssid; /** bssid of the rogue ap */ +} wmi_pdev_rap_info_event_fixed_param; + + /* ADD NEW DEFS HERE */