Loading fw/htt.h +154 −1 Original line number Diff line number Diff line Loading @@ -233,9 +233,10 @@ * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 108 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -9904,6 +9905,8 @@ enum htt_t2h_msg_type { HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31, HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32, HTT_T2H_MSG_TYPE_TEST, Loading Loading @@ -13401,6 +13404,156 @@ typedef enum { #define HTT_RX_DELBA_BYTES 4 /** * @brief target -> host rx ADDBA / DELBA message definitions * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN * * @details * The following diagram shows the format of the rx ADDBA extn message sent * from the target to the host: * * |31 20|19 16|15 13|12 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_DELBA_EXTN * * The following diagram shows the format of the rx DELBA message sent * from the target to the host: * * |31 20|19 16|15 13|12 10|9 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | IR| msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * The following field definitions describe the format of the rx ADDBA * and DELBA messages sent from the target to the host. * - MSG_TYPE * Bits 7:0 * Purpose: identifies this as an rx ADDBA or DELBA message * Value: ADDBA -> 0x31 (HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN), * DELBA -> 0x32 (HTT_T2H_MSG_TYPE_RX_DELBA_EXTN) * - IR (initiator / recipient) * Bits 9:8 (DELBA only) * Purpose: specify whether the DELBA handshake was initiated by the * local STA/AP, or by the peer STA/AP * Value: * 0 - unspecified * 1 - initiator (a.k.a. originator) * 2 - recipient (a.k.a. responder) * 3 - unused / reserved * Value: * block ack window length specified by the received ADDBA/DELBA * management message. * - TID * Bits 19:16 * Purpose: Specifies which traffic identifier the ADDBA / DELBA is for. * Value: * TID specified by the received ADDBA or DELBA management message. * - PEER_ID * Bits 31:20 * Purpose: Identifies which peer sent the ADDBA / DELBA. * Value: * ID (hash value) used by the host for fast, direct lookup of * host SW peer info, including rx reorder states. * == DWORD 1 * - WIN_SIZE * Bits 12:0 for ADDBA, bits 12:0 for DELBA * Purpose: Specifies the length of the block ack window (max = 8191). */ #define HTT_RX_ADDBA_EXTN_TID_M 0xf0000 #define HTT_RX_ADDBA_EXTN_TID_S 16 #define HTT_RX_ADDBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_ADDBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_ADDBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_TID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_TID_M) >> HTT_RX_ADDBA_EXTN_TID_S) #define HTT_RX_ADDBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_PEER_ID_M) >> HTT_RX_ADDBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_ADDBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_ADDBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_ADDBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S) #define HTT_RX_ADDBA_EXTN_BYTES 8 #define HTT_RX_DELBA_EXTN_INITIATOR_M 0x00000300 #define HTT_RX_DELBA_EXTN_INITIATOR_S 8 #define HTT_RX_DELBA_EXTN_TID_M 0xf0000 #define HTT_RX_DELBA_EXTN_TID_S 16 #define HTT_RX_DELBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_DELBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_DELBA_INITIATOR_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \ (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \ } while (0) #define HTT_RX_DELBA_INITIATOR_GET(word) \ (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S) #define HTT_RX_DELBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_TID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_TID_M) >> HTT_RX_DELBA_EXTN_TID_S) #define HTT_RX_DELBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_PEER_ID_M) >> HTT_RX_DELBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_DELBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_DELBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_DELBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_DELBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_WIN_SIZE_M) >> HTT_RX_DELBA_EXTN_WIN_SIZE_S) #define HTT_RX_DELBA_EXTN_BYTES 8 /** * @brief tx queue group information element definition * Loading
fw/htt.h +154 −1 Original line number Diff line number Diff line Loading @@ -233,9 +233,10 @@ * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 108 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -9904,6 +9905,8 @@ enum htt_t2h_msg_type { HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31, HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32, HTT_T2H_MSG_TYPE_TEST, Loading Loading @@ -13401,6 +13404,156 @@ typedef enum { #define HTT_RX_DELBA_BYTES 4 /** * @brief target -> host rx ADDBA / DELBA message definitions * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN * * @details * The following diagram shows the format of the rx ADDBA extn message sent * from the target to the host: * * |31 20|19 16|15 13|12 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_DELBA_EXTN * * The following diagram shows the format of the rx DELBA message sent * from the target to the host: * * |31 20|19 16|15 13|12 10|9 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | IR| msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * The following field definitions describe the format of the rx ADDBA * and DELBA messages sent from the target to the host. * - MSG_TYPE * Bits 7:0 * Purpose: identifies this as an rx ADDBA or DELBA message * Value: ADDBA -> 0x31 (HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN), * DELBA -> 0x32 (HTT_T2H_MSG_TYPE_RX_DELBA_EXTN) * - IR (initiator / recipient) * Bits 9:8 (DELBA only) * Purpose: specify whether the DELBA handshake was initiated by the * local STA/AP, or by the peer STA/AP * Value: * 0 - unspecified * 1 - initiator (a.k.a. originator) * 2 - recipient (a.k.a. responder) * 3 - unused / reserved * Value: * block ack window length specified by the received ADDBA/DELBA * management message. * - TID * Bits 19:16 * Purpose: Specifies which traffic identifier the ADDBA / DELBA is for. * Value: * TID specified by the received ADDBA or DELBA management message. * - PEER_ID * Bits 31:20 * Purpose: Identifies which peer sent the ADDBA / DELBA. * Value: * ID (hash value) used by the host for fast, direct lookup of * host SW peer info, including rx reorder states. * == DWORD 1 * - WIN_SIZE * Bits 12:0 for ADDBA, bits 12:0 for DELBA * Purpose: Specifies the length of the block ack window (max = 8191). */ #define HTT_RX_ADDBA_EXTN_TID_M 0xf0000 #define HTT_RX_ADDBA_EXTN_TID_S 16 #define HTT_RX_ADDBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_ADDBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_ADDBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_TID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_TID_M) >> HTT_RX_ADDBA_EXTN_TID_S) #define HTT_RX_ADDBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_PEER_ID_M) >> HTT_RX_ADDBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_ADDBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_ADDBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_ADDBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S) #define HTT_RX_ADDBA_EXTN_BYTES 8 #define HTT_RX_DELBA_EXTN_INITIATOR_M 0x00000300 #define HTT_RX_DELBA_EXTN_INITIATOR_S 8 #define HTT_RX_DELBA_EXTN_TID_M 0xf0000 #define HTT_RX_DELBA_EXTN_TID_S 16 #define HTT_RX_DELBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_DELBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_DELBA_INITIATOR_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \ (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \ } while (0) #define HTT_RX_DELBA_INITIATOR_GET(word) \ (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S) #define HTT_RX_DELBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_TID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_TID_M) >> HTT_RX_DELBA_EXTN_TID_S) #define HTT_RX_DELBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_PEER_ID_M) >> HTT_RX_DELBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_DELBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_DELBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_DELBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_DELBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_WIN_SIZE_M) >> HTT_RX_DELBA_EXTN_WIN_SIZE_S) #define HTT_RX_DELBA_EXTN_BYTES 8 /** * @brief tx queue group information element definition *