diff --git a/fw/wmi_services.h b/fw/wmi_services.h index b82c7bd1fc45..7411d6aa6c0b 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -695,6 +695,7 @@ typedef enum { WMI_SERVICE_UMAC_MIGRATION_SUPPORT = 436, /* Indicates that FW supports UMAC migration */ WMI_SERVICE_STA_TWT_STATS_EXT = 437, /* FW supports additional info in TWT stats and ADD COMPLETION Event */ WMI_SERVICE_OPT_DP_DIAG_SUPPORT = 438, /* FW supports diag QDATA feature */ + WMI_SERVICE_MLO_ROAM_PARTNER_BRINGUP_FROM_HOST = 439, /* Indicates FW supports new design in which FW expects the host to bringup the partner link during roaming */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index c25cf1912694..a5028647b8f1 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1477,6 +1477,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_vbss_config_event_fixed_param, WMITLV_TAG_STRUC_wmi_stats_ext_event_vdev_ext2_t, WMITLV_TAG_STRUC_wmi_ndp_set_latency_tput_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_partner_link_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -6099,7 +6100,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AGGR_STATE_TRIG_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, deauth_disassoc_frame, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_hw_mode_transition_event_fixed_param, hw_mode_transition_fixed_param, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_bss_info_param, bss_info_param, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_bss_info_param, bss_info_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_partner_link_param, partner_link_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); /* Roam Synch Event */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 8414aac5124a..88c169364fb7 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -23500,6 +23500,7 @@ typedef struct { A_UINT32 no_ack_timeout; /* In msec. duration to wait before another SW retry made if no ack seen for previous frame */ A_UINT32 roam_candidate_validity_time; /* In msec. validity duration of each entry in roam cache. If the value is 0x0, this field should be disregarded. */ A_UINT32 roam_to_current_bss_disable; /* Disable roaming to current bss */ + A_UINT32 mlo_roam_partner_bringup_by_host; } wmi_roam_offload_tlv_param; @@ -23728,6 +23729,21 @@ typedef struct { wmi_mac_addr mac_addr; } wmi_roam_bss_info_param; +typedef struct { + A_UINT32 tlv_header; + /* These params are filled in the new design done for MLO roam + * optimization; only in roam abort cases Fw deletes partner links + * at the start of roam handoff itself. + * Host needs to take care of bringing up the partner link if + * roam fails based on deleted_ieee_link_id_bmap; + * deleted_ieee_link_id_bmap represents the ieee_link_id of the + * links which were deleted at the start of roam handoff. + * This is filled only for MLO and deleted_ieee_link_id_bmap = 0 + * means no link was deleted. + */ + A_UINT32 deleted_link_bmap; +} wmi_roam_partner_link_param; + /* roam_reason: bits 0-3 */ #define WMI_ROAM_REASON_INVALID 0x0 /** invalid reason. Do not interpret reason field */ #define WMI_ROAM_REASON_BETTER_AP 0x1 /** found a better AP */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index e12e4eedfb54..d44554f6f2d7 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_ 1584 +#define __WMI_REVISION_ 1585 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work