FreeRTOS-Plus-TCP V2.3.2
FreeRTOS TCP/IP library
TCPWindow_t Struct Reference

#include <FreeRTOS_TCP_WIN.h>

Data Fields

union {
   struct {
      uint32_t   bHasInit: 1
  More...
 
      uint32_t   bSendFullSize: 1
  More...
 
      uint32_t   bTimeStamps: 1
  More...
 
   }   bits
  More...
 
   uint32_t   ulFlags
 
u
  More...
 
TCPWinSize_t xSize
  More...
 
struct {
   uint32_t   ulFirstSequenceNumber
  More...
 
   uint32_t   ulCurrentSequenceNumber
  More...
 
   uint32_t   ulFINSequenceNumber
  More...
 
   uint32_t   ulHighestSequenceNumber
  More...
 
rx
  More...
 
struct {
   uint32_t   ulFirstSequenceNumber
  More...
 
   uint32_t   ulCurrentSequenceNumber
  More...
 
   uint32_t   ulFINSequenceNumber
  More...
 
   uint32_t   ulHighestSequenceNumber
  More...
 
tx
  More...
 
uint32_t ulOurSequenceNumber
  More...
 
uint32_t ulUserDataLength
  More...
 
uint32_t ulNextTxSequenceNumber
  More...
 
int32_t lSRTT
  More...
 
uint8_t ucOptionLength
  More...
 
List_t xPriorityQueue
  More...
 
List_t xTxQueue
  More...
 
List_t xWaitQueue
  More...
 
TCPSegment_tpxHeadSegment
  More...
 
uint32_t ulOptionsData [ipSIZE_TCP_OPTIONS/sizeof(uint32_t)]
  More...
 
List_t xTxSegments
  More...
 
List_t xRxSegments
  More...
 
uint16_t usOurPortNumber
  More...
 
uint16_t usPeerPortNumber
  More...
 
uint16_t usMSS
  More...
 
uint16_t usMSSInit
  More...
 

Detailed Description

Every TCP connection owns a TCP window for the administration of all packets It owns two sets of segment descriptors, incoming and outgoing

Field Documentation

◆ bHasInit

uint32_t TCPWindow_t::bHasInit

The window structure has been initialised

◆ bSendFullSize

uint32_t TCPWindow_t::bSendFullSize

May only send packets with a size equal to MSS (for optimisation)

◆ bTimeStamps

uint32_t TCPWindow_t::bTimeStamps

Socket is supposed to use TCP time-stamps. This depends on the

◆ 

struct { ... } TCPWindow_t::bits

party which opens the connection

◆ 

union { ... } TCPWindow_t::u

Use a union to store the 32-bit flag field and the breakdown at the same place.

◆ xSize

TCPWinSize_t TCPWindow_t::xSize

Size of the TCP window.

◆ ulFirstSequenceNumber

uint32_t TCPWindow_t::ulFirstSequenceNumber

Logging & debug: the first segment received/sent in this connection for Tx: initial send sequence number (ISS) for Rx: initial receive sequence number (IRS)

◆ ulCurrentSequenceNumber

uint32_t TCPWindow_t::ulCurrentSequenceNumber

Tx/Rx: the oldest sequence number not yet confirmed, also SND.UNA / RCV.NXT In other words: the sequence number of the left side of the sliding window

◆ ulFINSequenceNumber

uint32_t TCPWindow_t::ulFINSequenceNumber

The sequence number which carried the FIN flag

◆ ulHighestSequenceNumber

uint32_t TCPWindow_t::ulHighestSequenceNumber

Sequence number of the right-most byte + 1

◆ 

struct { ... } TCPWindow_t::rx

Structure for the receiver for TCP.

◆ 

struct { ... } TCPWindow_t::tx

Structure for the transmitter for TCP.

◆ ulOurSequenceNumber

uint32_t TCPWindow_t::ulOurSequenceNumber

The SEQ number we're sending out

◆ ulUserDataLength

uint32_t TCPWindow_t::ulUserDataLength

Number of bytes in Rx buffer which may be passed to the user, after having received a 'missing packet'

◆ ulNextTxSequenceNumber

uint32_t TCPWindow_t::ulNextTxSequenceNumber

The sequence number given to the next byte to be added for transmission

◆ lSRTT

int32_t TCPWindow_t::lSRTT

Smoothed Round Trip Time, it may increment quickly and it decrements slower

◆ ucOptionLength

uint8_t TCPWindow_t::ucOptionLength

Number of valid bytes in ulOptionsData[]

◆ xPriorityQueue

List_t TCPWindow_t::xPriorityQueue

Priority queue: segments which must be sent immediately

◆ xTxQueue

List_t TCPWindow_t::xTxQueue

Transmit queue: segments queued for transmission

◆ xWaitQueue

List_t TCPWindow_t::xWaitQueue

Waiting queue: outstanding segments

◆ pxHeadSegment

TCPSegment_t* TCPWindow_t::pxHeadSegment

points to a segment which has not been transmitted and it's size is still growing (user data being added)

◆ ulOptionsData

uint32_t TCPWindow_t::ulOptionsData[ipSIZE_TCP_OPTIONS/sizeof(uint32_t)]

Contains the options we send out

◆ xTxSegments

List_t TCPWindow_t::xTxSegments

A linked list of all transmission segments, sorted on sequence number

◆ xRxSegments

List_t TCPWindow_t::xRxSegments

A linked list of reception segments, order depends on sequence of arrival

◆ usOurPortNumber

uint16_t TCPWindow_t::usOurPortNumber

Mostly for debugging/logging: our TCP port number

◆ usPeerPortNumber

uint16_t TCPWindow_t::usPeerPortNumber

debugging/logging: the peer's TCP port number

◆ usMSS

uint16_t TCPWindow_t::usMSS

Current accepted MSS

◆ usMSSInit

uint16_t TCPWindow_t::usMSSInit

MSS as configured by the socket owner


The documentation for this struct was generated from the following file: