Browse Source

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

Change-Id: Id8e7f5f4411d10f47d69199550833f9be2790cad
HTT: add H2T 3_TUPLE_HASH_CFG msg def
CRs-Fixed: 2262693
spuligil 5 years ago
parent
commit
9327895319
1 changed files with 95 additions and 1 deletions
  1. 95 1
      fw/htt.h

+ 95 - 1
fw/htt.h

@@ -197,9 +197,10 @@
  *      HTT_T2H_MSG_TYPE_CHAN_CALDATA and HTT_H2T_MSG_TYPE_CHAN_CALDATA
  * 3.74 Add HTT_T2H_MSG_TYPE_RX_FISA_CFG msg.
  * 3.75 Add fp_ndp and mo_ndp flags in HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG.
+ * 3.76 Add HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG msg.
  */
 #define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 75
+#define HTT_CURRENT_VERSION_MINOR 76
 
 #define HTT_NUM_TX_FRAG_DESC  1024
 
@@ -542,6 +543,7 @@ enum htt_h2t_msg_type {
     HTT_H2T_MSG_TYPE_RX_FSE_OPERATION_CFG  = 0x13,
     HTT_H2T_MSG_TYPE_CHAN_CALDATA          = 0x14,
     HTT_H2T_MSG_TYPE_RX_FISA_CFG           = 0x15,
+    HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG      = 0x16,
 
     /* keep this last */
     HTT_H2T_NUM_MSGS
@@ -6634,6 +6636,98 @@ enum htt_rx_fse_operation {
         (((word) & HTT_RX_FSE_L4_PROTO_M) >> HTT_RX_FSE_L4_PROTO_S)
 
 
+/**
+ * @brief HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG
+ * host --> target Receive to configure the RxOLE 3-tuple Hash
+ *
+ *     |31            24|23              |15             8|7          2|1|0|
+ *     |----------------+----------------+----------------+----------------|
+ *     |              reserved           |    pdev_id     |    msg_type    |
+ *     |---------------------------------+----------------+----------------|
+ *     |                        reserved                               |E|F|
+ *     |---------------------------------+----------------+----------------|
+ *     Where E = Configure the target to provide the 3-tuple hash value in
+ *                      toeplitz_hash_2_or_4 field of rx_msdu_start tlv
+ *           F = Configure the target to provide the 3-tuple hash value in
+ *                      flow_id_toeplitz field of rx_msdu_start tlv
+ *
+ * The following field definitions describe the format of the 3 tuple hash value
+ * message sent from the host to target as part of initialization sequence.
+ *
+ * Header fields:
+ *  dword0 - b'7:0   - msg_type: This will be set to
+ *                     HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG
+ *           b'15:8  - pdev_id:  0 indicates msg is for all LMAC rings, i.e. soc
+ *                     1, 2, 3 indicates pdev_id 0,1,2 and the msg is for the
+ *                     specified pdev's LMAC ring.
+ *           b'31:16 - reserved : Reserved for future use
+ *  dword1 - b'0     - flow_id_toeplitz_field_enable
+ *           b'1     - toeplitz_hash_2_or_4_field_enable
+ *           b'31:2  - reserved : Reserved for future use
+ * ---------+------+----------------------------------------------------------
+ *     bit1 | bit0 |   Functionality
+ * ---------+------+----------------------------------------------------------
+ *       0  |   1  |   Configure the target to provide the 3 tuple hash value
+ *          |      |   in flow_id_toeplitz field
+ * ---------+------+----------------------------------------------------------
+ *       1  |   0  |   Configure the target to provide the 3 tuple hash value
+ *          |      |   in toeplitz_hash_2_or_4 field
+ * ---------+------+----------------------------------------------------------
+ *       1  |   1  |   Configure the target to provide the 3 tuple hash value
+ *          |      |   in both flow_id_toeplitz & toeplitz_hash_2_or_4 field
+ * ---------+------+----------------------------------------------------------
+ *       0  |   0  |   Configure the target to provide the 5 tuple hash value
+ *          |      |   in flow_id_toeplitz field 2 or 4 tuple has value in
+ *          |      |   toeplitz_hash_2_or_4 field
+ *----------------------------------------------------------------------------
+ */
+PREPACK struct htt_h2t_msg_rx_3_tuple_hash_cfg_t {
+    A_UINT32 msg_type                          :8,
+             pdev_id                           :8,
+             reserved0                         :16;
+    A_UINT32 flow_id_toeplitz_field_enable     :1,
+             toeplitz_hash_2_or_4_field_enable :1,
+             reserved1                         :30;
+} POSTPACK;
+
+/* DWORD0 : pdev_id configuration Macros */
+#define HTT_H2T_3_TUPLE_HASH_PDEV_ID_M                  0xff00
+#define HTT_H2T_3_TUPLE_HASH_PDEV_ID_S                  8
+#define HTT_RX_3_TUPLE_HASH_PDEV_ID_GET(_var) \
+        (((_var) & HTT_H2T_3_TUPLE_HASH_PDEV_ID_M) >> \
+                HTT_H2T_3_TUPLE_HASH_PDEV_ID_S)
+#define HTT_RX_3_TUPLE_HASH_PDEV_ID_SET(_var, _val) \
+        do { \
+            HTT_CHECK_SET_VAL(HTT_H2T_3_TUPLE_HASH_PDEV_ID, _val); \
+            ((_var) |= ((_val) << HTT_H2T_3_TUPLE_HASH_PDEV_ID_S)); \
+        } while (0)
+
+/* DWORD1: rx 3 tuple hash value reception field configuration Macros */
+#define HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_M         0x1
+#define HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_S         0
+#define HTT_FLOW_ID_TOEPLITZ_FIELD_CONFIG_GET(_var)    \
+    (((_var) & HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_M) >> \
+        HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_S)
+#define HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG, _val); \
+        ((_var) |= ((_val) << HTT_H2T_FLOW_ID_TOEPLITZ_FIELD_CONFIG_S)); \
+    } while (0)
+
+#define HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_M         0x2
+#define HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_S         1
+#define HTT_TOEPLITZ_2_OR_4_FIELD_CONFIG_GET(_var)    \
+    (((_var) & HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_M) >> \
+        HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_S)
+#define HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG, _val); \
+        ((_var) |= ((_val) << HTT_H2T_TOEPLITZ_2_OR_4_FIELD_CONFIG_S)); \
+    } while (0)
+
+#define HTT_3_TUPLE_HASH_CFG_REQ_BYTES     8
+
+
 
 /*=== target -> host messages ===============================================*/