/*
 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _TX_MSDU_EXTENSION_H_
#define _TX_MSDU_EXTENSION_H_
#if !defined(__ASSEMBLER__)
#endif


// ################ START SUMMARY #################
//
//	Dword	Fields
//	0	tso_enable[0], reserved_0a[6:1], tcp_flag[15:7], tcp_flag_mask[24:16], reserved_0b[31:25]
//	1	l2_length[15:0], ip_length[31:16]
//	2	tcp_seq_number[31:0]
//	3	ip_identification[15:0], udp_length[31:16]
//	4	checksum_offset[13:0], partial_checksum_en[14], reserved_4a[15], payload_start_offset[29:16], reserved_4b[31:30]
//	5	payload_end_offset[13:0], reserved_5a[15:14], wds[16], reserved_5b[31:17]
//	6	buf0_ptr_31_0[31:0]
//	7	buf0_ptr_39_32[7:0], reserved_7a[15:8], buf0_len[31:16]
//	8	buf1_ptr_31_0[31:0]
//	9	buf1_ptr_39_32[7:0], reserved_9a[15:8], buf1_len[31:16]
//	10	buf2_ptr_31_0[31:0]
//	11	buf2_ptr_39_32[7:0], reserved_11a[15:8], buf2_len[31:16]
//	12	buf3_ptr_31_0[31:0]
//	13	buf3_ptr_39_32[7:0], reserved_13a[15:8], buf3_len[31:16]
//	14	buf4_ptr_31_0[31:0]
//	15	buf4_ptr_39_32[7:0], reserved_15a[15:8], buf4_len[31:16]
//	16	buf5_ptr_31_0[31:0]
//	17	buf5_ptr_39_32[7:0], reserved_17a[15:8], buf5_len[31:16]
//
// ################ END SUMMARY #################

#define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18

struct tx_msdu_extension {
             uint32_t tso_enable                      :  1, //[0]
                      reserved_0a                     :  6, //[6:1]
                      tcp_flag                        :  9, //[15:7]
                      tcp_flag_mask                   :  9, //[24:16]
                      reserved_0b                     :  7; //[31:25]
             uint32_t l2_length                       : 16, //[15:0]
                      ip_length                       : 16; //[31:16]
             uint32_t tcp_seq_number                  : 32; //[31:0]
             uint32_t ip_identification               : 16, //[15:0]
                      udp_length                      : 16; //[31:16]
             uint32_t checksum_offset                 : 14, //[13:0]
                      partial_checksum_en             :  1, //[14]
                      reserved_4a                     :  1, //[15]
                      payload_start_offset            : 14, //[29:16]
                      reserved_4b                     :  2; //[31:30]
             uint32_t payload_end_offset              : 14, //[13:0]
                      reserved_5a                     :  2, //[15:14]
                      wds                             :  1, //[16]
                      reserved_5b                     : 15; //[31:17]
             uint32_t buf0_ptr_31_0                   : 32; //[31:0]
             uint32_t buf0_ptr_39_32                  :  8, //[7:0]
                      reserved_7a                     :  8, //[15:8]
                      buf0_len                        : 16; //[31:16]
             uint32_t buf1_ptr_31_0                   : 32; //[31:0]
             uint32_t buf1_ptr_39_32                  :  8, //[7:0]
                      reserved_9a                     :  8, //[15:8]
                      buf1_len                        : 16; //[31:16]
             uint32_t buf2_ptr_31_0                   : 32; //[31:0]
             uint32_t buf2_ptr_39_32                  :  8, //[7:0]
                      reserved_11a                    :  8, //[15:8]
                      buf2_len                        : 16; //[31:16]
             uint32_t buf3_ptr_31_0                   : 32; //[31:0]
             uint32_t buf3_ptr_39_32                  :  8, //[7:0]
                      reserved_13a                    :  8, //[15:8]
                      buf3_len                        : 16; //[31:16]
             uint32_t buf4_ptr_31_0                   : 32; //[31:0]
             uint32_t buf4_ptr_39_32                  :  8, //[7:0]
                      reserved_15a                    :  8, //[15:8]
                      buf4_len                        : 16; //[31:16]
             uint32_t buf5_ptr_31_0                   : 32; //[31:0]
             uint32_t buf5_ptr_39_32                  :  8, //[7:0]
                      reserved_17a                    :  8, //[15:8]
                      buf5_len                        : 16; //[31:16]
};

/*

tso_enable
			
			Enable transmit segmentation offload <legal all>

reserved_0a
			
			FW will set to 0, MAC will ignore.  <legal 0>

tcp_flag
			
			TCP flags
			
			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>

tcp_flag_mask
			
			TCP flag mask. Tcp_flag is inserted into the header
			based on the mask, if tso is enabled

reserved_0b
			
			FW will set to 0, MAC will ignore.  <legal 0>

l2_length
			
			L2 length for the msdu, if tso is enabled <legal all>

ip_length
			
			Ip length for the msdu, if tso is enabled <legal all>

tcp_seq_number
			
			Tcp_seq_number for the msdu, if tso is enabled <legal
			all>

ip_identification
			
			Ip_identification for the msdu, if tso is enabled <legal
			all>

udp_length
			
			TXDMA is copies this field into MSDU START TLV

checksum_offset
			
			The calculated checksum from start offset to end offset
			will be added to the checksum at the offset given by this
			field<legal all>

partial_checksum_en
			
			Partial Checksum Enable Bit.
			
			<legal 0-1>

reserved_4a
			
			<Legal 0>

payload_start_offset
			
			L4 checksum calculations will start fromt this offset
			
			<Legal all>

reserved_4b
			
			<Legal 0>

payload_end_offset
			
			L4 checksum calculations will end at this offset. 
			
			<Legal all>

reserved_5a
			
			<Legal 0>

wds
			
			If set the current packet is 4-address frame.  Required
			because an aggregate can include some frames with 3 address
			format and other frames with 4 address format.  Used by the
			OLE during encapsulation.  
			
			Note: there is also global wds tx control in the
			TX_PEER_ENTRY
			
			<legal all>

reserved_5b
			
			<Legal 0>

buf0_ptr_31_0
			
			Lower 32 bits of the first buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>

buf0_ptr_39_32
			
			Upper 8 bits of the first buffer pointer <legal all>

reserved_7a
			
			<Legal 0>

buf0_len
			
			Length of the first buffer <legal all>

buf1_ptr_31_0
			
			Lower 32 bits of the second buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>

buf1_ptr_39_32
			
			Upper 8 bits of the second buffer pointer <legal all>

reserved_9a
			
			<Legal 0>

buf1_len
			
			Length of the second buffer <legal all>

buf2_ptr_31_0
			
			Lower 32 bits of the third buffer pointer 
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>

buf2_ptr_39_32
			
			Upper 8 bits of the third buffer pointer <legal all>

reserved_11a
			
			<Legal 0>

buf2_len
			
			Length of the third buffer <legal all>

buf3_ptr_31_0
			
			Lower 32 bits of the fourth buffer pointer
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			 <legal all>

buf3_ptr_39_32
			
			Upper 8 bits of the fourth buffer pointer <legal all>

reserved_13a
			
			<Legal 0>

buf3_len
			
			Length of the fourth buffer <legal all>

buf4_ptr_31_0
			
			Lower 32 bits of the fifth buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>

buf4_ptr_39_32
			
			Upper 8 bits of the fifth buffer pointer <legal all>

reserved_15a
			
			<Legal 0>

buf4_len
			
			Length of the fifth buffer <legal all>

buf5_ptr_31_0
			
			Lower 32 bits of the sixth buffer pointer
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			 <legal all>

buf5_ptr_39_32
			
			Upper 8 bits of the sixth buffer pointer <legal all>

reserved_17a
			
			<Legal 0>

buf5_len
			
			Length of the sixth buffer <legal all>
*/


/* Description		TX_MSDU_EXTENSION_0_TSO_ENABLE
			
			Enable transmit segmentation offload <legal all>
*/
#define TX_MSDU_EXTENSION_0_TSO_ENABLE_OFFSET                        0x00000000
#define TX_MSDU_EXTENSION_0_TSO_ENABLE_LSB                           0
#define TX_MSDU_EXTENSION_0_TSO_ENABLE_MASK                          0x00000001

/* Description		TX_MSDU_EXTENSION_0_RESERVED_0A
			
			FW will set to 0, MAC will ignore.  <legal 0>
*/
#define TX_MSDU_EXTENSION_0_RESERVED_0A_OFFSET                       0x00000000
#define TX_MSDU_EXTENSION_0_RESERVED_0A_LSB                          1
#define TX_MSDU_EXTENSION_0_RESERVED_0A_MASK                         0x0000007e

/* Description		TX_MSDU_EXTENSION_0_TCP_FLAG
			
			TCP flags
			
			{NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
*/
#define TX_MSDU_EXTENSION_0_TCP_FLAG_OFFSET                          0x00000000
#define TX_MSDU_EXTENSION_0_TCP_FLAG_LSB                             7
#define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK                            0x0000ff80

/* Description		TX_MSDU_EXTENSION_0_TCP_FLAG_MASK
			
			TCP flag mask. Tcp_flag is inserted into the header
			based on the mask, if tso is enabled
*/
#define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_OFFSET                     0x00000000
#define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_LSB                        16
#define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_MASK                       0x01ff0000

/* Description		TX_MSDU_EXTENSION_0_RESERVED_0B
			
			FW will set to 0, MAC will ignore.  <legal 0>
*/
#define TX_MSDU_EXTENSION_0_RESERVED_0B_OFFSET                       0x00000000
#define TX_MSDU_EXTENSION_0_RESERVED_0B_LSB                          25
#define TX_MSDU_EXTENSION_0_RESERVED_0B_MASK                         0xfe000000

/* Description		TX_MSDU_EXTENSION_1_L2_LENGTH
			
			L2 length for the msdu, if tso is enabled <legal all>
*/
#define TX_MSDU_EXTENSION_1_L2_LENGTH_OFFSET                         0x00000004
#define TX_MSDU_EXTENSION_1_L2_LENGTH_LSB                            0
#define TX_MSDU_EXTENSION_1_L2_LENGTH_MASK                           0x0000ffff

/* Description		TX_MSDU_EXTENSION_1_IP_LENGTH
			
			Ip length for the msdu, if tso is enabled <legal all>
*/
#define TX_MSDU_EXTENSION_1_IP_LENGTH_OFFSET                         0x00000004
#define TX_MSDU_EXTENSION_1_IP_LENGTH_LSB                            16
#define TX_MSDU_EXTENSION_1_IP_LENGTH_MASK                           0xffff0000

/* Description		TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER
			
			Tcp_seq_number for the msdu, if tso is enabled <legal
			all>
*/
#define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_OFFSET                    0x00000008
#define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_LSB                       0
#define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_MASK                      0xffffffff

/* Description		TX_MSDU_EXTENSION_3_IP_IDENTIFICATION
			
			Ip_identification for the msdu, if tso is enabled <legal
			all>
*/
#define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_OFFSET                 0x0000000c
#define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_LSB                    0
#define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_MASK                   0x0000ffff

/* Description		TX_MSDU_EXTENSION_3_UDP_LENGTH
			
			TXDMA is copies this field into MSDU START TLV
*/
#define TX_MSDU_EXTENSION_3_UDP_LENGTH_OFFSET                        0x0000000c
#define TX_MSDU_EXTENSION_3_UDP_LENGTH_LSB                           16
#define TX_MSDU_EXTENSION_3_UDP_LENGTH_MASK                          0xffff0000

/* Description		TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET
			
			The calculated checksum from start offset to end offset
			will be added to the checksum at the offset given by this
			field<legal all>
*/
#define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_OFFSET                   0x00000010
#define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_LSB                      0
#define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_MASK                     0x00003fff

/* Description		TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN
			
			Partial Checksum Enable Bit.
			
			<legal 0-1>
*/
#define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_OFFSET               0x00000010
#define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_LSB                  14
#define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_MASK                 0x00004000

/* Description		TX_MSDU_EXTENSION_4_RESERVED_4A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_4_RESERVED_4A_OFFSET                       0x00000010
#define TX_MSDU_EXTENSION_4_RESERVED_4A_LSB                          15
#define TX_MSDU_EXTENSION_4_RESERVED_4A_MASK                         0x00008000

/* Description		TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET
			
			L4 checksum calculations will start fromt this offset
			
			<Legal all>
*/
#define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_OFFSET              0x00000010
#define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_LSB                 16
#define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_MASK                0x3fff0000

/* Description		TX_MSDU_EXTENSION_4_RESERVED_4B
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_4_RESERVED_4B_OFFSET                       0x00000010
#define TX_MSDU_EXTENSION_4_RESERVED_4B_LSB                          30
#define TX_MSDU_EXTENSION_4_RESERVED_4B_MASK                         0xc0000000

/* Description		TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET
			
			L4 checksum calculations will end at this offset. 
			
			<Legal all>
*/
#define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_OFFSET                0x00000014
#define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_LSB                   0
#define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_MASK                  0x00003fff

/* Description		TX_MSDU_EXTENSION_5_RESERVED_5A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_5_RESERVED_5A_OFFSET                       0x00000014
#define TX_MSDU_EXTENSION_5_RESERVED_5A_LSB                          14
#define TX_MSDU_EXTENSION_5_RESERVED_5A_MASK                         0x0000c000

/* Description		TX_MSDU_EXTENSION_5_WDS
			
			If set the current packet is 4-address frame.  Required
			because an aggregate can include some frames with 3 address
			format and other frames with 4 address format.  Used by the
			OLE during encapsulation.  
			
			Note: there is also global wds tx control in the
			TX_PEER_ENTRY
			
			<legal all>
*/
#define TX_MSDU_EXTENSION_5_WDS_OFFSET                               0x00000014
#define TX_MSDU_EXTENSION_5_WDS_LSB                                  16
#define TX_MSDU_EXTENSION_5_WDS_MASK                                 0x00010000

/* Description		TX_MSDU_EXTENSION_5_RESERVED_5B
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_5_RESERVED_5B_OFFSET                       0x00000014
#define TX_MSDU_EXTENSION_5_RESERVED_5B_LSB                          17
#define TX_MSDU_EXTENSION_5_RESERVED_5B_MASK                         0xfffe0000

/* Description		TX_MSDU_EXTENSION_6_BUF0_PTR_31_0
			
			Lower 32 bits of the first buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>
*/
#define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_OFFSET                     0x00000018
#define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_LSB                        0
#define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_MASK                       0xffffffff

/* Description		TX_MSDU_EXTENSION_7_BUF0_PTR_39_32
			
			Upper 8 bits of the first buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_OFFSET                    0x0000001c
#define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_LSB                       0
#define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_MASK                      0x000000ff

/* Description		TX_MSDU_EXTENSION_7_RESERVED_7A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_7_RESERVED_7A_OFFSET                       0x0000001c
#define TX_MSDU_EXTENSION_7_RESERVED_7A_LSB                          8
#define TX_MSDU_EXTENSION_7_RESERVED_7A_MASK                         0x0000ff00

/* Description		TX_MSDU_EXTENSION_7_BUF0_LEN
			
			Length of the first buffer <legal all>
*/
#define TX_MSDU_EXTENSION_7_BUF0_LEN_OFFSET                          0x0000001c
#define TX_MSDU_EXTENSION_7_BUF0_LEN_LSB                             16
#define TX_MSDU_EXTENSION_7_BUF0_LEN_MASK                            0xffff0000

/* Description		TX_MSDU_EXTENSION_8_BUF1_PTR_31_0
			
			Lower 32 bits of the second buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>
*/
#define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_OFFSET                     0x00000020
#define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_LSB                        0
#define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_MASK                       0xffffffff

/* Description		TX_MSDU_EXTENSION_9_BUF1_PTR_39_32
			
			Upper 8 bits of the second buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_OFFSET                    0x00000024
#define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_LSB                       0
#define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_MASK                      0x000000ff

/* Description		TX_MSDU_EXTENSION_9_RESERVED_9A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_9_RESERVED_9A_OFFSET                       0x00000024
#define TX_MSDU_EXTENSION_9_RESERVED_9A_LSB                          8
#define TX_MSDU_EXTENSION_9_RESERVED_9A_MASK                         0x0000ff00

/* Description		TX_MSDU_EXTENSION_9_BUF1_LEN
			
			Length of the second buffer <legal all>
*/
#define TX_MSDU_EXTENSION_9_BUF1_LEN_OFFSET                          0x00000024
#define TX_MSDU_EXTENSION_9_BUF1_LEN_LSB                             16
#define TX_MSDU_EXTENSION_9_BUF1_LEN_MASK                            0xffff0000

/* Description		TX_MSDU_EXTENSION_10_BUF2_PTR_31_0
			
			Lower 32 bits of the third buffer pointer 
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>
*/
#define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_OFFSET                    0x00000028
#define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_LSB                       0
#define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_MASK                      0xffffffff

/* Description		TX_MSDU_EXTENSION_11_BUF2_PTR_39_32
			
			Upper 8 bits of the third buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_OFFSET                   0x0000002c
#define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_LSB                      0
#define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_MASK                     0x000000ff

/* Description		TX_MSDU_EXTENSION_11_RESERVED_11A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_11_RESERVED_11A_OFFSET                     0x0000002c
#define TX_MSDU_EXTENSION_11_RESERVED_11A_LSB                        8
#define TX_MSDU_EXTENSION_11_RESERVED_11A_MASK                       0x0000ff00

/* Description		TX_MSDU_EXTENSION_11_BUF2_LEN
			
			Length of the third buffer <legal all>
*/
#define TX_MSDU_EXTENSION_11_BUF2_LEN_OFFSET                         0x0000002c
#define TX_MSDU_EXTENSION_11_BUF2_LEN_LSB                            16
#define TX_MSDU_EXTENSION_11_BUF2_LEN_MASK                           0xffff0000

/* Description		TX_MSDU_EXTENSION_12_BUF3_PTR_31_0
			
			Lower 32 bits of the fourth buffer pointer
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			 <legal all>
*/
#define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_OFFSET                    0x00000030
#define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_LSB                       0
#define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_MASK                      0xffffffff

/* Description		TX_MSDU_EXTENSION_13_BUF3_PTR_39_32
			
			Upper 8 bits of the fourth buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_OFFSET                   0x00000034
#define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_LSB                      0
#define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_MASK                     0x000000ff

/* Description		TX_MSDU_EXTENSION_13_RESERVED_13A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_13_RESERVED_13A_OFFSET                     0x00000034
#define TX_MSDU_EXTENSION_13_RESERVED_13A_LSB                        8
#define TX_MSDU_EXTENSION_13_RESERVED_13A_MASK                       0x0000ff00

/* Description		TX_MSDU_EXTENSION_13_BUF3_LEN
			
			Length of the fourth buffer <legal all>
*/
#define TX_MSDU_EXTENSION_13_BUF3_LEN_OFFSET                         0x00000034
#define TX_MSDU_EXTENSION_13_BUF3_LEN_LSB                            16
#define TX_MSDU_EXTENSION_13_BUF3_LEN_MASK                           0xffff0000

/* Description		TX_MSDU_EXTENSION_14_BUF4_PTR_31_0
			
			Lower 32 bits of the fifth buffer pointer 
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			<legal all>
*/
#define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_OFFSET                    0x00000038
#define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_LSB                       0
#define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_MASK                      0xffffffff

/* Description		TX_MSDU_EXTENSION_15_BUF4_PTR_39_32
			
			Upper 8 bits of the fifth buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_OFFSET                   0x0000003c
#define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_LSB                      0
#define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_MASK                     0x000000ff

/* Description		TX_MSDU_EXTENSION_15_RESERVED_15A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_15_RESERVED_15A_OFFSET                     0x0000003c
#define TX_MSDU_EXTENSION_15_RESERVED_15A_LSB                        8
#define TX_MSDU_EXTENSION_15_RESERVED_15A_MASK                       0x0000ff00

/* Description		TX_MSDU_EXTENSION_15_BUF4_LEN
			
			Length of the fifth buffer <legal all>
*/
#define TX_MSDU_EXTENSION_15_BUF4_LEN_OFFSET                         0x0000003c
#define TX_MSDU_EXTENSION_15_BUF4_LEN_LSB                            16
#define TX_MSDU_EXTENSION_15_BUF4_LEN_MASK                           0xffff0000

/* Description		TX_MSDU_EXTENSION_16_BUF5_PTR_31_0
			
			Lower 32 bits of the sixth buffer pointer
			
			
			
			NOTE: SW/FW manages the 'cookie' info related to this
			buffer together with the 'cookie' info for this
			MSDU_EXTENSION descriptor
			
			 <legal all>
*/
#define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_OFFSET                    0x00000040
#define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_LSB                       0
#define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_MASK                      0xffffffff

/* Description		TX_MSDU_EXTENSION_17_BUF5_PTR_39_32
			
			Upper 8 bits of the sixth buffer pointer <legal all>
*/
#define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_OFFSET                   0x00000044
#define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_LSB                      0
#define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_MASK                     0x000000ff

/* Description		TX_MSDU_EXTENSION_17_RESERVED_17A
			
			<Legal 0>
*/
#define TX_MSDU_EXTENSION_17_RESERVED_17A_OFFSET                     0x00000044
#define TX_MSDU_EXTENSION_17_RESERVED_17A_LSB                        8
#define TX_MSDU_EXTENSION_17_RESERVED_17A_MASK                       0x0000ff00

/* Description		TX_MSDU_EXTENSION_17_BUF5_LEN
			
			Length of the sixth buffer <legal all>
*/
#define TX_MSDU_EXTENSION_17_BUF5_LEN_OFFSET                         0x00000044
#define TX_MSDU_EXTENSION_17_BUF5_LEN_LSB                            16
#define TX_MSDU_EXTENSION_17_BUF5_LEN_MASK                           0xffff0000


#endif // _TX_MSDU_EXTENSION_H_