All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sir_memlist_defs.h
Go to the documentation of this file.
1 /*
2  * sir_memlist_defs.h
3  *
4  * Created on: Feb 12, 2015
5  * Author: root
6  */
7  // Needed by doxygen
9 
10 #ifndef SIR_MEMLIST_DEFS_H_
11 #define SIR_MEMLIST_DEFS_H_
12 
13 #ifndef __cplusplus
14 #ifndef bool
15  typedef int bool;
16 #endif
17 #endif
18 
19 #ifndef sir_timer_t
20  typedef uint64_t sir_timer_t;
21 #endif
22 
24 typedef enum
25 {
32 
33 // Structures for creating memory list. If you are wise, keep it's size below one PAGE size
34 typedef struct
35 {
36  cvmx_buf_ptr_t tBuffPtr; // Cavium buffer pointer to memory
37  uint64_t ui64StartOfItem; // Physical address of this item.
38  uint64_t ui64NextItem; // Physical address of next item.
39  uint64_t ui64PrevItem; // Physical address of previous item.
40  uint64_t ui64AuxiliaryPointer; // physical pointer to something...
41  sir_timer_t tACKTimeOut; // Time out timer for delayed ACK processing
42  sir_timer_t tSendRecTimeOut; // Time out timer for send and receive time out
43  sir_timer_t tOrgTime; // Time packet was placed in RTX Queue
44 
45  uint32_t ui32SEQStart; // Segment start number of this packet when it was received via IP
46  uint32_t ui32SEQEnd; // Segment end number of this packet when it was received via IP
47  uint32_t ui32Sequence; // Sequence number that was used when sending this member out as a TCP packet
48  uint32_t ui32Acknowledge; // Acknowledge number that was used when sending this member out as a TCP packet
49  uint32_t ui32NeededACK; // ACK value needed to ACK this segment
50 
51  int iNrOfPayloadBytes; // Nr of valid bytes in buffer
52  int iPayloadOffset; // Space between start of buffer and start of payload
53  int iStartByte; // First byte number of this buffer in datagram
54  int iEndByte; // Last byte number of this buffer in datagram
55  int iCummEndByte; // Cumulative end byte, length of contiguous area from the start of datagram
56  int iSequenceNr; // For list debugging purposes
57  int iAuxiliaryMemoryPool; // PoolNr of auxiliary memory
58  int iFlags; // Flags that were used when this member was sent out as a TCP packet
59  bool bIsFragmented; // Fragmented IP or not
60  bool bEndPacket; // When receiving IP fragmented packet, this one is the last in the datagram list
61  bool bReadyForSend; // Segment is ready for sending when transmitting from TX Queue
62  bool bRetransmit; // Segment should be placed in RTX Queue after it has been send out
63  bool bSACKed; // Segment has been acked by a SACK
65 
66 
67 #endif /* SIR_MEMLIST_DEFS_H_ */
uint32_t ui32Acknowledge
EPayload_Indicator
Payload indicator.
uint32_t ui32NeededACK
sir_timer_t tSendRecTimeOut
sir_timer_t tOrgTime
sir_timer_t tACKTimeOut
Get payload size from first packet in the list (packet may be fragmented)
cvmx_buf_ptr_t tBuffPtr
Get payload size of current member.
Get payload size from complete list.
uint64_t ui64AuxiliaryPointer
uint64_t sir_timer_t
Get payload of last member in the list.
uint64_t ui64StartOfItem
Get payload size from first member in the list.