瀏覽代碼

fw-api: CL 20406907 - update fw common interface files

Change-Id: I143b780da943e4fcad6b5f208dbf71d16ea4d5c2
WMI: add MLO_VDEV_TID_TO_LINK_MAP CMD,EVENT msg defs
CRs-Fixed: 2262693
spuligil 2 年之前
父節點
當前提交
e25af2625d
共有 3 個文件被更改,包括 390 次插入2 次删除
  1. 18 1
      fw/wmi_tlv_defs.h
  2. 371 0
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 18 - 1
fw/wmi_tlv_defs.h

@@ -1319,6 +1319,10 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_roam_trigger_per_tlv_param,
     WMITLV_TAG_STRUC_wmi_roam_trigger_periodic_tlv_param,
     WMITLV_TAG_STRUC_wmi_roam_trigger_hi_rssi_tlv_param,
+    WMITLV_TAG_STRUC_wmi_mlo_bcast_t2lm_info,
+    WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_evt_fixed_param,
+    WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_ie_info,
 } WMITLV_TAG_ID;
 
 /*
@@ -1830,6 +1834,7 @@ typedef enum {
     OP(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID) \
     OP(WMI_ODD_LIVEDUMP_REQUEST_CMDID) \
     OP(WMI_MLO_LINK_REMOVAL_CMDID) \
+    OP(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID) \
     /* add new CMD_LIST elements above this line */
 
 
@@ -2126,6 +2131,7 @@ typedef enum {
     OP(WMI_XGAP_ENABLE_COMPLETE_EVENTID) \
     OP(WMI_ODD_LIVEDUMP_RESPONSE_EVENTID) \
     OP(WMI_MLO_LINK_REMOVAL_EVENTID) \
+    OP(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID) \
     /* add new EVT_LIST elements above this line */
 
 
@@ -5029,6 +5035,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tid_to_link_map, tid_to_link_map, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID);
 
+/** WMI cmd used to setup Tid to Link Mapping for a vdev */
+#define WMITLV_TABLE_WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_cmd_fixed_param, wmi_mlo_ap_vdev_tid_to_link_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    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);
+
 /* 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) \
@@ -5473,7 +5485,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mgmt_ml_info, ml_info, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bpcc_bufp, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_is_my_mgmt_frame, my_frame, WMITLV_SIZE_VAR) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_removal_tbtt_count, link_removal_tbtt_count, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_removal_tbtt_count, link_removal_tbtt_count, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_bcast_t2lm_info, mlo_bcast_t2lm_info, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID);
 
 /* Management Rx FW Consumed Event */
@@ -7063,6 +7076,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_REMOVAL_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_removal_tbtt_update, wmi_mlo_link_removal_tbtt_update, tbtt_update, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_REMOVAL_EVENTID);
 
+/* WMI MLO T2LM Vdev event */
+#define WMITLV_TABLE_WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_evt_fixed_param, wmi_mlo_ap_vdev_tid_to_link_map_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID);
 
 
 

+ 371 - 0
fw/wmi_unified.h

@@ -1533,6 +1533,8 @@ typedef enum {
     WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID,
     /** WMI cmd for dynamically deleting a link from a MLD VAP */
     WMI_MLO_LINK_REMOVAL_CMDID,
+    /** WMI cmd used to setup Tid to Link Mapping for a MLO VAP */
+    WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID,
 
     /** WMI commands specific to Service Aware WiFi (SAWF) */
     /** configure or reconfigure the parameters for a service class */
@@ -2335,6 +2337,8 @@ typedef enum {
     WMI_MLO_TEARDOWN_COMPLETE_EVENTID,
     /* Response event for Link Removal Cmd */
     WMI_MLO_LINK_REMOVAL_EVENTID,
+    /* Response event for WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID */
+    WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_EVENTID,
 
     /* WMI event specific to Quiet handling */
     WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL),
@@ -6360,6 +6364,28 @@ typedef struct {
      */
 } wmi_mgmt_ml_info;
 
+#define WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_GET(_var)       WMI_GET_BITS(_var, 0, 8)
+#define WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_SET(_var, _val) WMI_SET_BITS(_var, 0, 8, _val)
+
+#define WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_EXP_DUR_GET(_var)       WMI_GET_BITS(_var, 8, 24)
+#define WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_EXP_DUR_SET(_var, _val) WMI_SET_BITS(_var, 8, 24, _val)
+
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_bcast_t2lm_info */
+    /*
+     * Vdev_id for MLO vap
+     * WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_GET /
+     * WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_SET
+     * vdev_id :8
+     *
+     * Duration time for MLO Vap
+     * WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_GET /
+     * WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_SET
+     * expected_duration :24
+     */
+    A_UINT32 vdev_id_expec_dur;
+} wmi_mlo_bcast_t2lm_info;
+
 typedef enum {
     PKT_CAPTURE_MODE_DISABLE = 0,
     PKT_CAPTURE_MODE_MGMT_ONLY,
@@ -32743,6 +32769,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
         WMI_RETURN_STRING(WMI_XGAP_ENABLE_CMDID);
         WMI_RETURN_STRING(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
         WMI_RETURN_STRING(WMI_MLO_LINK_REMOVAL_CMDID);
+        WMI_RETURN_STRING(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID);
     }
 
     return (A_UINT8 *) "Invalid WMI cmd";
@@ -39917,6 +39944,350 @@ typedef struct {
      */
 } wmi_peer_tid_to_link_map_fixed_param;
 
+typedef struct{
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_cmd_fixed_param */
+    A_UINT32 tlv_header;
+    /** pdev_id for identifying the MAC, See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /** vdev_id for identifying the MLO Vap */
+    A_UINT32 vdev_id;
+    /** disabled link bits */
+    A_UINT32 disabled_link_bitmap;
+    /**
+     * Following this structure is the TLV:
+     * struct wmi_mlo_ap_vdev_tid_to_link_map_ie_info[];
+     */
+} wmi_mlo_ap_vdev_tid_to_link_map_cmd_fixed_param;
+
+typedef enum {
+    /* Mapping Switch TSF */
+    WMI_MAP_SWITCH_TIMER_TSF,
+    /* Mapping Switch Timer Expired */
+    WMI_MAP_SWITCH_TIMER_EXPIRED,
+    /* Expected Duration Expired */
+    WMI_EXPECTED_DUR_EXPIRED,
+} WMI_MLO_TID_TO_LINK_MAP_STATUS;
+
+typedef struct{
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_ap_vdev_tid_to_link_map_evt_fixed_param */
+    A_UINT32 tlv_header;
+    /* vdev_id of AP MLO vap */
+    A_UINT32 vdev_id;
+    /* containts mapping status of WMI_MLO_TID_TO_LINK_MAP_STATUS */
+    A_UINT32 status_type;
+    /* Mapping switch time of current TSF value */
+    A_UINT32 mapping_switch_tsf;
+} wmi_mlo_ap_vdev_tid_to_link_map_evt_fixed_param;
+
+/* CTRL Field  bit-5-7 reserved */
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DIR_GET(_var)                WMI_GET_BITS(_var, 0, 2)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DIR_SET(_var, _val)          WMI_SET_BITS(_var, 0, 2, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DEF_LINK_GET(_var)           WMI_GET_BITS(_var, 2, 1)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DEF_LINK_SET(_var, _val)     WMI_SET_BITS(_var, 2, 1, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_SWT_TIME_GET(_var)           WMI_GET_BITS(_var, 3, 1)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_SWT_TIME_SET(_var, _val)     WMI_SET_BITS(_var, 3, 1, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DUR_TIME_GET(_var)           WMI_GET_BITS(_var, 4, 1)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DUR_TIME_SET(_var, _val)     WMI_SET_BITS(_var, 4, 1, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_LINK_MAP_PRE_GET(_var)       WMI_GET_BITS(_var, 8, 8)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_LINK_MAP_PRE_SET(_var, _val) WMI_SET_BITS(_var, 8, 8, _val)
+
+/* IEEE Link ID 15 bits on each link id 1 bit is reserved */
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_0_GET(_var)          WMI_GET_BITS(_var, 0, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_0_SET(_var, _val)    WMI_SET_BITS(_var, 0, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_1_GET(_var)          WMI_GET_BITS(_var, 16, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_1_SET(_var, _val)    WMI_SET_BITS(_var, 16, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_2_GET(_var)          WMI_GET_BITS(_var, 0, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_2_SET(_var, _val)    WMI_SET_BITS(_var, 0, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_3_GET(_var)          WMI_GET_BITS(_var, 16, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_3_SET(_var, _val)    WMI_SET_BITS(_var, 16, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_4_GET(_var)          WMI_GET_BITS(_var, 0, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_4_SET(_var, _val)    WMI_SET_BITS(_var, 0, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_5_GET(_var)          WMI_GET_BITS(_var, 16, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_5_SET(_var, _val)    WMI_SET_BITS(_var, 16, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_6_GET(_var)          WMI_GET_BITS(_var, 0, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_6_SET(_var, _val)    WMI_SET_BITS(_var, 0, 15, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_7_GET(_var)          WMI_GET_BITS(_var, 16, 15)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_7_SET(_var, _val)    WMI_SET_BITS(_var, 16, 15, _val)
+
+/* HW Link ID each hw link with 16-bit */
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_0_GET(_var)            WMI_GET_BITS(_var, 0, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_0_SET(_var, _val)      WMI_SET_BITS(_var, 0, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_1_GET(_var)            WMI_GET_BITS(_var, 16, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_1_SET(_var, _val)      WMI_SET_BITS(_var, 16, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_2_GET(_var)            WMI_GET_BITS(_var, 0, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_2_SET(_var, _val)      WMI_SET_BITS(_var, 0, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_3_GET(_var)            WMI_GET_BITS(_var, 16, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_3_SET(_var, _val)      WMI_SET_BITS(_var, 16, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_4_GET(_var)            WMI_GET_BITS(_var, 0, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_4_SET(_var, _val)      WMI_SET_BITS(_var, 0, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_5_GET(_var)            WMI_GET_BITS(_var, 16, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_5_SET(_var, _val)      WMI_SET_BITS(_var, 16, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_6_GET(_var)            WMI_GET_BITS(_var, 0, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_6_SET(_var, _val)      WMI_SET_BITS(_var, 0, 16, _val)
+
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_7_GET(_var)            WMI_GET_BITS(_var, 16, 16)
+#define WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_7_SET(_var, _val)      WMI_SET_BITS(_var, 16, 16, _val)
+
+typedef struct {
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tid_to_link_map */
+    A_UINT32 tlv_header;
+    /*
+     * A_UINT32
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DIR_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DIR_SET
+     *      direction: 2       // 0 - DL, 1 - UL, 2 - BiDi
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DEF_LINK_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DEF_LINK_SET
+     *      default_link_mapping:1 // 1 - Default Link Mapping Present
+     *                             // 0 - Default Link Mapping not present
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_SWT_TIME_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_SWT_TIME_SET
+     *      mapping_switch_time_present:1 // 1 - Mapping Switch Time
+     *                                    //     Field Present
+     *                                    // 0 - Mapping Switch Time
+     *                                    //     Field not Present
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DUR_TIME_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_DUR_TIME_SET
+     *      expected_duration_present:1  // 1 - Expected Duration Field Present
+     *                                   // 0 - Expected Duration Field
+     *                                   //     not Present
+     *
+     *      reserved:3
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_LINK_MAP_PRE_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_CTRL_LINK_MAP_PRE_SET
+     *      link_mapping_presence_indicator:8 // Link mapping presence indicator
+     *
+     *      reserved2:16 // upper 16 bits are unused
+     */
+    A_UINT32 tid_to_link_map_ctrl;
+
+    /*
+     * Mapping Switch time represents TSF time for the New TID_TO_LINK Mapping
+     * will be established
+     * 16 bit of TSF time ( from bits 10 to 25)
+     *
+     * Default to Non-Default: One TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Mapping switch time present for New Non-Default Mapping
+     *
+     * Non-Default to Non-Default: Two TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Mapping switch time not present for 1st TID_TO_LINK Mapping
+     * (Current Non-Default Mapping) value would be zero
+     * Mapping switch time present for 2nd TID_TO_LINK Mapping
+     * (New Non-Default Mapping)
+     *
+     * Non_Default to Default: One TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Mapping switch time not present value would be zero
+     */
+    A_UINT32 map_switch_time;
+    /*
+     * Expected duration would be either duration/remaining duration of Mapping
+     *
+     * Default to Non-Default: One TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Expected duration represents duration of New Non-Default Mapping
+     * will be effective
+     *
+     * Non-Default to Non-Default: Two TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Expected duration represents remaing duration of 1st TID_TO_LINK
+     * Mapping (Current Non-Default Mapping)
+     * Expected duration represents duration of the 2nd TID_TO_LINK
+     * Mapping (New Non-Default Mapping ) will be effective
+     *
+     * Non_Default to Default: One TID_TO_LINK Mapping IE
+     * (wmi_mlo_ap_vdev_tid_to_link_map_ie_info)
+     * Expected duration represents remaing duration of Current Non-Default
+     * Mapping
+     */
+    A_UINT32 expected_duration;
+
+    /*
+     * for default_link_mapping ieee_tid_0_1_link_map value would be zero
+     * which means IE should not include this param
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_0_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_0_SET
+     *      tid_0_link_id:15 // TID_0 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_1_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_1_SET
+     *      tid_1_link_id:15 // TID_1 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     */
+    A_UINT32 ieee_tid_0_1_link_map;
+    /*
+     *  for default_link_mapping ieee_tid_2_3_link_map value would be zero
+     *  which means IE should not include this param
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_2_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_2_SET
+     *      tid_2_link_id:15 // TID_2 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_3_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_3_SET
+     *      tid_3_link_id:15 // TID_3 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     */
+    A_UINT32 ieee_tid_2_3_link_map;
+    /*
+     * for default_link_mapping ieee_tid_4_5_link_map value would be zero
+     * which means IE should not include this param
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_4_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_4_SET
+     *      tid_4_link_id:15 // TID_4 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_5_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_5_SET
+     *      tid_5_link_id:15 // TID_5 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     */
+    A_UINT32 ieee_tid_4_5_link_map;
+    /*
+     * for default_link_mapping ieee_tid_6_7_link_map value would be zero
+     * which means IE should not include this param
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_6_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_6_SET
+     *      tid_6_link_id:15 // TID_6 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_7_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_IEEE_LINK_ID_7_SET
+     *      tid_7_link_id:15 // TID_7 Link IDs (0 to 14)
+     *                       // Non-Zero value represents links mapped
+     *                       // to this TID.
+     *                       // Zero value represents links are not mapped
+     *                       // to this TID.
+     *
+     *      reserved:1
+     */
+    A_UINT32 ieee_tid_6_7_link_map;
+
+    /*
+     * hw_link_map will be used by the FW to pause or unpause the TIDs
+     * in all the associated MLD STAs in the corresponsing MLD VAP
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_0_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_0_SET
+     *      hw_tid_0_link_map:16
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_1_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_1_SET
+     *      hw_tid_1_link_map:16
+     */
+    A_UINT32 hw_tid_0_1_link_map;
+    /*
+     * hw_link_map will be used by the FW to pause or unpause the TIDs
+     * in all the associated MLD STAs in the corresponsing MLD VAP
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_2_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_2_SET
+     *      hw_tid_2_link_map:16
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_3_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_3_SET
+     *      hw_tid_3_link_map:16
+     */
+    A_UINT32 hw_tid_2_3_link_map;
+    /*
+     * hw_link_map will be used by the FW to pause or unpause the TIDs
+     * in all the associated MLD STAs in the corresponsing MLD VAP
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_4_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_4_SET
+     *      hw_tid_4_link_map:16
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_5_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_5_SET
+     *      hw_tid_5_link_map:16
+     */
+    A_UINT32 hw_tid_4_5_link_map;
+    /*
+     * hw_link_map will be used by the FW to pause or unpause the TIDs
+     * in all the associated MLD STAs in the corresponsing MLD VAP
+     * A_UINT32
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_6_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_6_SET
+     *      hw_tid_6_link_map:16
+     *
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_7_GET /
+     *      WMI_MLO_VDEV_TID_TO_LINK_MAP_HW_LINK_ID_7_SET
+     *      hw_tid_7_link_map:16
+     */
+    A_UINT32 hw_tid_6_7_link_map;
+} wmi_mlo_ap_vdev_tid_to_link_map_ie_info;
+
 #define WMI_IGMP_OFFLOAD_SUPPORT_DISABLE_BITMASK    0x0
 #define WMI_IGMP_V1_OFFLOAD_SUPPORT_BITMASK         0x1
 #define WMI_IGMP_V2_OFFLOAD_SUPPORT_BITMASK         0x2

+ 1 - 1
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_ 1232
+#define __WMI_REVISION_ 1233
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work