Pārlūkot izejas kodu

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

HTT: link default MSDU queues to a service class
Define HTT messages for associating a peer-TIDs default MSDU queues with a service class.HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ: link the specified peer-TIDs default MSDU queues with the specified service class HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ: remove any link between the specified peer-TIDs default MSDU queues and any service classes HTT_[H2T,T2H]_SAWF_DEF_QUEUES_MAP_REPORT_[REQ,CONF]: show what service class (if any) the specified peer-TIDs default MSDU queues are linked to

Change-Id: I88ad609da1ea7296ec7c7ed13768c2c94b4ac2da
CRs-Fixed: 2262693
spuligil 3 gadi atpakaļ
vecāks
revīzija
5c792a7869
1 mainītis faili ar 269 papildinājumiem un 1 dzēšanām
  1. 269 1
      fw/htt.h

+ 269 - 1
fw/htt.h

@@ -221,9 +221,11 @@
  * 3.96 Modify HTT_H2T_MSG_TYPE_TX_MONITOR_CFG def.
  * 3.97 Add tx MSDU drop byte count fields in vdev_txrx_stats_hw_stats TLV.
  * 3.98 Add htt_tx_tcl_metadata_v2 def.
+ * 3.99 Add HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ, _UNMAP_REQ, _MAP_REPORT_REQ and
+ *      HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF defs.
  */
 #define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 98
+#define HTT_CURRENT_VERSION_MINOR 99
 
 #define HTT_NUM_TX_FRAG_DESC  1024
 
@@ -776,6 +778,9 @@ enum htt_h2t_msg_type {
     HTT_H2T_MSG_TYPE_RXDMA_RXOLE_PPE_CFG   = 0x19,
     HTT_H2T_MSG_TYPE_VDEVS_TXRX_STATS_CFG  = 0x1a,
     HTT_H2T_MSG_TYPE_TX_MONITOR_CFG        = 0x1b,
+    HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ        = 0x1c,
+    HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ      = 0x1d,
+    HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
 
     /* keep this last */
     HTT_H2T_NUM_MSGS
@@ -8730,6 +8735,164 @@ PREPACK struct htt_h2t_vdevs_txrx_stats_cfg {
         } while (0)
 
 
+/*
+ * MSG_TYPE => HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ
+ *
+ * @details
+ * The SAWF_DEF_QUEUES_MAP_REQ message is sent by the host to link
+ * the default MSDU queues for one of the TIDs within the specified peer
+ * to the specified service class.
+ * The TID is indirectly specified - each service class is associated
+ * with a TID.  All default MSDU queues for this peer-TID will be
+ * linked to the service class in question.
+ *
+ * |31                          16|15           8|7            0|
+ * |------------------------------+--------------+--------------|
+ * |             peer ID          | svc class ID |   msg type   |
+ * |------------------------------------------------------------|
+ * Header fields:
+ * dword0 - b'7:0       - msg_type: This will be set to
+ *                        0x1c (HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ)
+ *          b'15:8      - service class ID
+ *          b'31:16     - peer ID
+ */
+
+PREPACK struct htt_h2t_sawf_def_queues_map_req {
+    A_UINT32 msg_type          :8,
+             svc_class_id      :8,
+             peer_id           :16;
+} POSTPACK;
+
+#define HTT_SAWF_DEF_QUEUES_MAP_REQ_BYTES 4
+
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_M               0x0000FF00
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_S               8
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_SVC_CLASS_ID_S));\
+    } while (0)
+
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_M                    0xFFFF0000
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_S                    16
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ_PEER_ID_S)); \
+    } while (0)
+
+
+/*
+ * MSG_TYPE => HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ
+ *
+ * @details
+ * The SAWF_DEF_QUEUES_UNMAP_REQ message is sent by the host to
+ * remove the linkage of the specified peer-TID's MSDU queues to
+ * service classes.
+ *
+ * |31                          16|15  12|11    8|7            0|
+ * |------------------------------+------+-------+--------------|
+ * |             peer ID          | rsvd |  TID  |   msg type   |
+ * |------------------------------------------------------------|
+ * Header fields:
+ * dword0 - b'7:0       - msg_type: This will be set to
+ *                        0x1d (HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ)
+ *          b'11:8      - TID
+ * dword1 - b'31:16     - peer ID
+ */
+
+PREPACK struct htt_h2t_sawf_def_queues_unmap_req {
+    A_UINT32 msg_type          :8,
+             tid               :4,
+             reserved          :4,
+             peer_id           :16;
+} POSTPACK;
+
+#define HTT_SAWF_DEF_QUEUES_UNMAP_REQ_BYTES 4
+
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_M                      0x00000F00
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_S                      8
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_TID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_TID_S));\
+    } while (0)
+
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M                  0xFFFF0000
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S                  16
+#define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)); \
+    } while (0)
+
+
+/*
+ * MSG_TYPE => HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ
+ *
+ * @details
+ * The SAWF_DEF_QUEUES_MAP_REPORT_REQ message is sent by the host to
+ * request the target to report what service class the default MSDU queues
+ * of the specified peer-TID are linked to.
+ * The target will respond with a SAWF_DEF_QUEUES_MAP_REPORT_CONF message
+ * to report what service class (if any) the peer-TID's default MSDU queues
+ * are linked to.
+ *
+ * |31                          16|15  12|11    8|7            0|
+ * |------------------------------+------+-------+--------------|
+ * |             peer ID          | rsvd |  TID  |   msg type   |
+ * |------------------------------------------------------------|
+ * Header fields:
+ * dword0 - b'7:0       - msg_type: This will be set to
+ *                        0x1e (HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ)
+ *          b'11:8      - TID
+ * dword1 - b'31:16     - peer ID
+ */
+
+PREPACK struct htt_h2t_sawf_def_queues_map_report_req {
+    A_UINT32 msg_type          :8,
+             tid               :4,
+             reserved          :4,
+             peer_id           :16;
+} POSTPACK;
+
+#define HTT_SAWF_DEF_QUEUES_MAP_REPORT_REQ_BYTES 4
+
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_M                 0x00000F00
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_S                 8
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_S));\
+    } while (0)
+
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M             0xFFFF0000
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S             16
+#define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_GET(_var) \
+    (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M) >> \
+     HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID, _val); \
+        ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)); \
+    } while (0)
+
+
 
 /*=== target -> host messages ===============================================*/
 
@@ -8785,6 +8948,7 @@ enum htt_t2h_msg_type {
     HTT_T2H_MSG_TYPE_MLO_RX_PEER_UNMAP             = 0x2a,
     HTT_T2H_MSG_TYPE_PEER_MAP_V3                   = 0x2b,
     HTT_T2H_MSG_TYPE_VDEVS_TXRX_STATS_PERIODIC_IND = 0x2c,
+    HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF        = 0x2d,
 
 
     HTT_T2H_MSG_TYPE_TEST,
@@ -17207,4 +17371,108 @@ typedef struct {
     A_UINT32 tx_msdu_ttl_expire_drop_byte_cnt_hi;
 } htt_t2h_vdev_txrx_stats_hw_stats_tlv;
 
+/*
+ * MSG_TYPE => HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF
+ *
+ * @details
+ * The SAWF_DEF_QUEUES_MAP_REPORT_CONF message is sent by the target in
+ * response to a SAWF_DEF_QUEUES_MAP_REPORT_REQ from the host.
+ * The SAWF_DEF_QUEUES_MAP_REPORT_CONF will show which service class
+ * the default MSDU queues of the peer-TID specified in the
+ * SAWF_DEF_QUEUES_MAP_REPORT_REQ message are linked to.
+ * If the default MSDU queues of the specified peer-TID are not linked to
+ * a service class, the status field of the SAWF_DEF_QUEUES_MAP_REPORT_CONF
+ * will specify that no such mapping exists of the default MSDU queues to a
+ * service class.
+ *
+ * |31                          16|15  12|11    8|7            0|
+ * |------------------------------+------+-------+--------------|
+ * |             peer ID          | rsvd |  TID  |   msg type   |
+ * |------------------------------+--------------+--------------|
+ * |             reserved         | svc class ID |    status    |
+ * |------------------------------------------------------------|
+ * Header fields:
+ * dword0 - b'7:0       - msg_type: This will be set to
+ *                        0x2d (HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF)
+ *          b'11:8      - TID
+ *          b'31:16     - peer ID
+ * dword1 - b'7:0       - status (htt_t2h_sawf_def_queues_map_report_status)
+ *          b'15:8      - svc class ID (only valid if status == MAPPED)
+ */
+
+enum htt_t2h_sawf_def_queues_map_report_status {
+    /* MAPPED:
+     * The default MSDU queues for the peer-TID are linked to a service class.
+     * The svc_class_id field shows which service class the default MSDU queues
+     * are associated with.
+     */
+    HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_STATUS_MAPPED = 0,
+    /* UNMAPPED:
+     * The default MSDU queues for the peer-TID are not linked to any
+     * service class.
+     */
+    HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_STATUS_UNMAPPED = 1,
+    /* INVALID_IDS:
+     * One or more of pdev_id, vdev_id, peer_id, and TID were invalid.
+     */
+    HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_INVALID_IDS = 2,
+};
+
+PREPACK struct htt_t2h_sawf_def_queues_map_report_conf {
+    A_UINT32 msg_type          :8,
+             tid               :4,
+             reserved0         :4,
+             peer_id           :16;
+    A_UINT32 status            :8,
+             svc_class_id      :8,
+             reserved1         :16;
+} POSTPACK;
+
+#define HTT_SAWF_DEF_QUEUES_MAP_REPORT_CONF_BYTES 8
+
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_M                0x00000F00
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_S                8
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_M) >> \
+     HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_TID_S));\
+    } while (0)
+
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_M            0xFFFF0000
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_S            16
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_M) >> \
+     HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_PEER_ID_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_M             0x000000FF
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_S             0
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_M) >> \
+     HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_STATUS_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_M       0x0000FF00
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_S       8
+#define HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_M) >> \
+     HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_S)
+#define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF_SVC_CLASS_ID_S)); \
+    } while (0)
+
+
 #endif