diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index b04a4d2f1f..974358c4f2 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1387,6 +1387,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_status, WMITLV_TAG_STRUC_wmi_atf_group_info_v2, WMITLV_TAG_STRUC_wmi_atf_peer_info_v2, + WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param, + WMITLV_TAG_STRUC_wmi_mlo_peer_recommended_links, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1917,6 +1919,7 @@ typedef enum { OP(WMI_VENDOR_VDEV_CMDID) \ OP(WMI_VENDOR_PEER_CMDID) \ OP(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID) \ + OP(WMI_MLO_LINK_RECOMMENDATION_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5170,6 +5173,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_ap_vdev_tid_to_link_map_ie_info, mlo_vdev_tid_to_link_map_ie_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID); +/** WMI cmd used to set up Tid to Link Mapping for a vdev */ +#define WMITLV_TABLE_WMI_MLO_LINK_RECOMMENDATION_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param, wmi_mlo_link_recommendation_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_peer_recommended_links, mlo_peer_recommended_links, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_RECOMMENDATION_CMDID); + /* Mcast ipv4 address filter list cmd */ #define WMITLV_TABLE_WMI_VDEV_IGMP_OFFLOAD_CMDID(id,op,buf,len) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param, wmi_igmp_offload_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 0e5ac8fa8f..f572f33e3d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1561,6 +1561,8 @@ typedef enum { WMI_MLO_LINK_SWITCH_CONF_CMDID, /** WMI cmd to migrate the primary link peer */ WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID, + /** WMI cmd to recommand preferred link */ + WMI_MLO_LINK_RECOMMENDATION_CMDID, /** WMI commands specific to Service Aware WiFi (SAWF) */ /** configure or reconfigure the parameters for a service class */ @@ -36647,6 +36649,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_PAUSE_CMDID); WMI_RETURN_STRING(WMI_GPIO_STATE_REQ_CMDID); WMI_RETURN_STRING(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID); + WMI_RETURN_STRING(WMI_MLO_LINK_RECOMMENDATION_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -44097,6 +44100,27 @@ typedef struct { A_UINT32 status; } wmi_mlo_teardown_complete_fixed_param; +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_peer_recommended_links; */ + A_UINT32 tlv_header; + /** AID (association id) of this station */ + A_UINT32 assoc_id; + /** Request link id set to disable */ + A_UINT32 linkid_bitmap; +} wmi_mlo_peer_recommended_links; + +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param */ + A_UINT32 tlv_header; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* DTIM specified in units of num beacon intervals */ + A_UINT32 dtim_period; + /* The TLVs follows this structure: + * wmi_mlo_peer_recommended_links recommended_links[]; + */ +} wmi_mlo_link_recommendation_fixed_param; + #define WMI_TID_TO_LINK_MAP_TID_NUM_GET(_var) WMI_GET_BITS(_var, 0, 5) #define WMI_TID_TO_LINK_MAP_TID_NUM_SET(_var, _val) WMI_SET_BITS(_var, 0, 5, _val) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 2f433311dc..a10f180fbc 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_ 1349 +#define __WMI_REVISION_ 1350 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work