NetworkPkg/TcpDxe/TcpProto.h File Reference


Data Structures

struct  _TCP_SEG
struct  _TCP_PEER
struct  _TCP_CONTROL_BLOCK

Defines

#define TCP_CLOSED   0
#define TCP_LISTEN   1
#define TCP_SYN_SENT   2
#define TCP_SYN_RCVD   3
#define TCP_ESTABLISHED   4
#define TCP_FIN_WAIT_1   5
#define TCP_FIN_WAIT_2   6
#define TCP_CLOSING   7
#define TCP_TIME_WAIT   8
#define TCP_CLOSE_WAIT   9
#define TCP_LAST_ACK   10
#define TCP_FLG_FIN   0x01
#define TCP_FLG_SYN   0x02
#define TCP_FLG_RST   0x04
#define TCP_FLG_PSH   0x08
#define TCP_FLG_ACK   0x10
#define TCP_FLG_URG   0x20
#define TCP_FLG_FLAG   0x3F
#define TCP_CONNECT_REFUSED   (-1)
 TCP error status.
#define TCP_CONNECT_RESET   (-2)
 TCP error status.
#define TCP_CONNECT_CLOSED   (-3)
 TCP error status.
#define TCP_CONGEST_RECOVER   1
 During the NewReno fast recovery.
#define TCP_CONGEST_LOSS   2
 Retxmit because of retxmit time out.
#define TCP_CONGEST_OPEN   3
 TCP is opening its congestion window.
#define TCP_CTRL_NO_NAGLE   0x0001
 Disable Nagle algorithm.
#define TCP_CTRL_NO_KEEPALIVE   0x0002
 Disable keepalive timer.
#define TCP_CTRL_NO_WS   0x0004
 Disable window scale option.
#define TCP_CTRL_RCVD_WS   0x0008
 Received a wnd scale option in syn.
#define TCP_CTRL_NO_TS   0x0010
 Disable Timestamp option.
#define TCP_CTRL_RCVD_TS   0x0020
 Received a Timestamp option in syn.
#define TCP_CTRL_SND_TS   0x0040
 Send Timestamp option to remote.
#define TCP_CTRL_SND_URG   0x0080
 In urgent send mode.
#define TCP_CTRL_RCVD_URG   0x0100
 In urgent receive mode.
#define TCP_CTRL_SND_PSH   0x0200
 In PUSH send mode.
#define TCP_CTRL_FIN_SENT   0x0400
 FIN is sent.
#define TCP_CTRL_FIN_ACKED   0x0800
 FIN is ACKed.
#define TCP_CTRL_TIMER_ON   0x1000
 At least one of the timer is on.
#define TCP_CTRL_RTT_ON   0x2000
 The RTT measurement is on.
#define TCP_CTRL_ACK_NOW   0x4000
 Send the ACK now, don't delay.
#define TCP_TIMER_CONNECT   0
 Connection establishment timer.
#define TCP_TIMER_REXMIT   1
 Retransmit timer.
#define TCP_TIMER_PROBE   2
 Window probe timer.
#define TCP_TIMER_KEEPALIVE   3
 Keepalive timer.
#define TCP_TIMER_FINWAIT2   4
 FIN_WAIT_2 timer.
#define TCP_TIMER_2MSL   5
 TIME_WAIT timer.
#define TCP_TIMER_NUMBER   6
 The total number of the TCP timer.
#define TCP_TICK   200
 Every TCP tick is 200ms.
#define TCP_TICK_HZ   5
 The frequence of TCP tick.
#define TCP_RTT_SHIFT   3
 SRTT & RTTVAR scaled by 8.
#define TCP_RTO_MIN   TCP_TICK_HZ
 The minium value of RTO.
#define TCP_RTO_MAX   (TCP_TICK_HZ * 60)
 The maxium value of RTO.
#define TCP_FOLD_RTT   4
 Timeout threshod to fold RTT.
#define TCP_MAX_LOSS   12
 Default max times to retxmit.
#define TCP_KEEPALIVE_IDLE_MIN   (TCP_TICK_HZ * 60 * 60 * 2)
 First keepalive.
#define TCP_KEEPALIVE_PERIOD   (TCP_TICK_HZ * 60)
#define TCP_MAX_KEEPALIVE   8
#define TCP_FIN_WAIT2_TIME   (2 * TCP_TICK_HZ)
#define TCP_TIME_WAIT_TIME   (2 * TCP_TICK_HZ)
#define TCP_PAWS_24DAY   (24 * 24 * 60 * 60 * TCP_TICK_HZ)
#define TCP_CONNECT_TIME   (75 * TCP_TICK_HZ)
#define TCP_MAX_HEAD   192
#define TCP_RCV_BUF_SIZE   (2 * 1024 * 1024)
#define TCP_RCV_BUF_SIZE_MIN   (8 * 1024)
#define TCP_SND_BUF_SIZE   (2 * 1024 * 1024)
#define TCP_SND_BUF_SIZE_MIN   (8 * 1024)
#define TCP_BACKLOG   10
#define TCP_BACKLOG_MIN   5
#define TCP_MAX_LOSS_MIN   6
#define TCP_CONNECT_TIME_MIN   (60 * TCP_TICK_HZ)
#define TCP_MAX_KEEPALIVE_MIN   4
#define TCP_KEEPALIVE_IDLE_MAX   (TCP_TICK_HZ * 60 * 60 * 4)
#define TCP_KEEPALIVE_PERIOD_MIN   (TCP_TICK_HZ * 30)
#define TCP_FIN_WAIT2_TIME_MAX   (4 * TCP_TICK_HZ)
#define TCP_TIME_WAIT_TIME_MAX   (60 * TCP_TICK_HZ)
#define TCP_CONNECTED(state)   ((state) > TCP_SYN_RCVD)
#define TCP_FIN_RCVD(State)
#define TCP_LOCAL_CLOSED(State)
#define TCPSEG_NETBUF(NBuf)   ((TCP_SEG *) ((NBuf)->ProtoData))
#define TCP_SEQ_LT(SeqA, SeqB)   ((INT32) ((SeqA) - (SeqB)) < 0)
#define TCP_SEQ_LEQ(SeqA, SeqB)   ((INT32) ((SeqA) - (SeqB)) <= 0)
#define TCP_SEQ_GT(SeqA, SeqB)   ((INT32) ((SeqB) - (SeqA)) < 0)
#define TCP_SEQ_GEQ(SeqA, SeqB)   ((INT32) ((SeqB) - (SeqA)) <= 0)
#define TCP_SEQ_BETWEEN(b, m, e)   ((e) - (b) >= (m) - (b))
#define TCP_SUB_SEQ(Seq1, Seq2)   ((UINT32) ((Seq1) - (Seq2)))
#define TCP_FLG_ON(Value, Flag)   ((BOOLEAN) (((Value) & (Flag)) != 0))
#define TCP_SET_FLG(Value, Flag)   ((Value) |= (Flag))
#define TCP_CLEAR_FLG(Value, Flag)   ((Value) &= ~(Flag))
#define TCP_PEER_EQUAL(Pa, Pb, Ver)   (((Pa)->Port == (Pb)->Port) && TcpIsIpEqual(&((Pa)->Ip), &((Pb)->Ip), Ver))
#define TCP_PEER_MATCH(Pa, Pb, Ver)
#define TCP_TIMER_ON(Flag, Timer)   ((Flag) & (1 << (Timer)))
#define TCP_SET_TIMER(Flag, Timer)   ((Flag) = (UINT16) ((Flag) | (1 << (Timer))))
#define TCP_CLEAR_TIMER(Flag, Timer)   ((Flag) = (UINT16) ((Flag) & (~(1 << (Timer)))))
#define TCP_TIME_LT(Ta, Tb)   ((INT32) ((Ta) - (Tb)) < 0)
#define TCP_TIME_LEQ(Ta, Tb)   ((INT32) ((Ta) - (Tb)) <= 0)
#define TCP_SUB_TIME(Ta, Tb)   ((UINT32) ((Ta) - (Tb)))
#define TCP_MAX_WIN   0xFFFFU

Typedefs

typedef struct _TCP_SEG TCP_SEG
typedef struct _TCP_PEER TCP_PEER
typedef struct _TCP_CONTROL_BLOCK TCP_CB

Detailed Description

TCP protocol header file.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Define Documentation

#define TCP_BACKLOG   10

Referenced by TcpConfigurePcb().

#define TCP_BACKLOG_MIN   5

Referenced by TcpConfigurePcb().

#define TCP_CLEAR_FLG ( Value,
Flag   )     ((Value) &= ~(Flag))

#define TCP_CLEAR_TIMER ( Flag,
Timer   )     ((Flag) = (UINT16) ((Flag) & (~(1 << (Timer)))))

Referenced by TcpClearTimer(), and TcpTickingDpc().

#define TCP_CLOSE_WAIT   9

#define TCP_CLOSED   0

Tcp states don't change their order. It is used as an index to mTcpOutFlag and other macros.

Referenced by TcpAttachPcb(), TcpClose(), TcpConfigurePcb(), TcpFlushPcb(), TcpIcmpInput(), TcpInput(), TcpInsertTcb(), TcpOnAppAbort(), TcpOnAppClose(), TcpOnAppSend(), TcpSetState(), TcpTickingDpc(), and TcpToSendData().

#define TCP_CLOSING   7

#define TCP_CONGEST_LOSS   2

Retxmit because of retxmit time out.

Referenced by TcpInput(), and TcpRexmitTimeout().

#define TCP_CONGEST_OPEN   3

TCP is opening its congestion window.

Referenced by TcpConfigurePcb(), TcpFastLossRecover(), TcpFastRecover(), TcpInput(), and TcpToSendData().

#define TCP_CONGEST_RECOVER   1

During the NewReno fast recovery.

Referenced by TcpFastRecover(), and TcpInput().

#define TCP_CONNECT_CLOSED   (-3)

TCP error status.

#define TCP_CONNECT_REFUSED   (-1)

TCP error status.

#define TCP_CONNECT_RESET   (-2)

TCP error status.

#define TCP_CONNECT_TIME   (75 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_CONNECT_TIME_MIN   (60 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_CONNECTED ( state   )     ((state) > TCP_SYN_RCVD)

TCP_CONNECTED: both ends have synchronized their ISN.

Referenced by TcpConnectTimeout(), and TcpDeliverData().

#define TCP_CTRL_ACK_NOW   0x4000

Send the ACK now, don't delay.

Referenced by TcpDeliverData(), TcpInput(), TcpQueueData(), TcpSendAck(), and TcpToSendAck().

#define TCP_CTRL_FIN_ACKED   0x0800

FIN is ACKed.

Referenced by TcpDeliverData(), and TcpInput().

#define TCP_CTRL_FIN_SENT   0x0400

FIN is sent.

Referenced by TcpInput(), and TcpToSendData().

#define TCP_CTRL_NO_KEEPALIVE   0x0002

Disable keepalive timer.

Referenced by TcpConfigurePcb(), and TcpSetKeepaliveTimer().

#define TCP_CTRL_NO_NAGLE   0x0001

Disable Nagle algorithm.

Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpConfigurePcb(), and TcpDataToSend().

#define TCP_CTRL_NO_TS   0x0010

Disable Timestamp option.

Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpConfigurePcb(), TcpInitTcbPeer(), and TcpSynBuildOption().

#define TCP_CTRL_NO_WS   0x0004

Disable window scale option.

Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpConfigurePcb(), TcpInitTcbPeer(), and TcpSynBuildOption().

#define TCP_CTRL_RCVD_TS   0x0020

Received a Timestamp option in syn.

Referenced by TcpInitTcbPeer(), and TcpSynBuildOption().

#define TCP_CTRL_RCVD_URG   0x0100

In urgent receive mode.

Referenced by TcpDeliverData(), and TcpInput().

#define TCP_CTRL_RCVD_WS   0x0008

Received a wnd scale option in syn.

Referenced by TcpInitTcbPeer(), and TcpSynBuildOption().

#define TCP_CTRL_RTT_ON   0x2000

The RTT measurement is on.

Referenced by TcpFastRecover(), TcpInput(), TcpRexmitTimeout(), TcpTickingDpc(), and TcpToSendData().

#define TCP_CTRL_SND_PSH   0x0200

In PUSH send mode.

Referenced by TcpDispatcher(), and TcpTransmitSegment().

#define TCP_CTRL_SND_TS   0x0040

Send Timestamp option to remote.

Referenced by TcpBuildOption(), and TcpInitTcbPeer().

#define TCP_CTRL_SND_URG   0x0080

In urgent send mode.

Referenced by TcpDispatcher(), TcpInput(), and TcpTransmitSegment().

#define TCP_CTRL_TIMER_ON   0x1000

At least one of the timer is on.

Referenced by TcpTickingDpc(), and TcpUpdateTimer().

#define TCP_ESTABLISHED   4

#define TCP_FIN_RCVD ( State   ) 

Value:

( \
    ((State) == TCP_CLOSE_WAIT) || \
    ((State) == TCP_LAST_ACK) || \
    ((State) == TCP_CLOSING) || \
    ((State) == TCP_TIME_WAIT) \
  )

Referenced by TcpDeliverData(), and TcpInput().

#define TCP_FIN_WAIT2_TIME   (2 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_FIN_WAIT2_TIME_MAX   (4 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_FIN_WAIT_1   5

#define TCP_FIN_WAIT_2   6

#define TCP_FLG_ACK   0x10

#define TCP_FLG_FIN   0x01

#define TCP_FLG_FLAG   0x3F

#define TCP_FLG_ON ( Value,
Flag   )     ((BOOLEAN) (((Value) & (Flag)) != 0))

#define TCP_FLG_PSH   0x08

#define TCP_FLG_RST   0x04

#define TCP_FLG_SYN   0x02

#define TCP_FLG_URG   0x20

#define TCP_FOLD_RTT   4

Timeout threshod to fold RTT.

Referenced by TcpBackoffRto().

#define TCP_KEEPALIVE_IDLE_MAX   (TCP_TICK_HZ * 60 * 60 * 4)

Referenced by TcpConfigurePcb().

#define TCP_KEEPALIVE_IDLE_MIN   (TCP_TICK_HZ * 60 * 60 * 2)

First keepalive.

Referenced by TcpConfigurePcb().

#define TCP_KEEPALIVE_PERIOD   (TCP_TICK_HZ * 60)

Referenced by TcpConfigurePcb().

#define TCP_KEEPALIVE_PERIOD_MIN   (TCP_TICK_HZ * 30)

Referenced by TcpConfigurePcb().

#define TCP_LAST_ACK   10

#define TCP_LISTEN   1

#define TCP_LOCAL_CLOSED ( State   ) 

Value:

( \
    ((State) == TCP_FIN_WAIT_1) || \
    ((State) == TCP_FIN_WAIT_2) || \
    ((State) == TCP_CLOSING) || \
    ((State) == TCP_TIME_WAIT) || \
    ((State) == TCP_LAST_ACK) \
  )

Referenced by TcpInput().

#define TCP_MAX_HEAD   192

#define TCP_MAX_KEEPALIVE   8

Referenced by TcpConfigurePcb().

#define TCP_MAX_KEEPALIVE_MIN   4

Referenced by TcpConfigurePcb().

#define TCP_MAX_LOSS   12

Default max times to retxmit.

Referenced by TcpConfigurePcb().

#define TCP_MAX_LOSS_MIN   6

Referenced by TcpConfigurePcb().

#define TCP_MAX_WIN   0xFFFFU

Referenced by TcpInput().

#define TCP_PAWS_24DAY   (24 * 24 * 60 * 60 * TCP_TICK_HZ)

Referenced by TcpPawsOK().

#define TCP_PEER_EQUAL ( Pa,
Pb,
Ver   )     (((Pa)->Port == (Pb)->Port) && TcpIsIpEqual(&((Pa)->Ip), &((Pb)->Ip), Ver))

Referenced by TcpInsertTcb(), and TcpLocateTcb().

#define TCP_PEER_MATCH ( Pa,
Pb,
Ver   ) 

Value:

( \
    (((Pb)->Port == 0) || ((Pb)->Port == (Pa)->Port)) && \
    (TcpIsIpZero (&((Pb)->Ip), Ver) || TcpIsIpEqual (&((Pb)->Ip), &((Pa)->Ip), Ver)) \
  )

Referenced by TcpLocateListenTcb().

#define TCP_RCV_BUF_SIZE   (2 * 1024 * 1024)

Referenced by TcpConfigurePcb().

#define TCP_RCV_BUF_SIZE_MIN   (8 * 1024)

Referenced by TcpConfigurePcb().

#define TCP_RTO_MAX   (TCP_TICK_HZ * 60)

The maxium value of RTO.

Referenced by TcpBackoffRto(), TcpComputeRtt(), and TcpSetProbeTimer().

#define TCP_RTO_MIN   TCP_TICK_HZ

The minium value of RTO.

Referenced by TcpBackoffRto(), TcpComputeRtt(), and TcpSetProbeTimer().

#define TCP_RTT_SHIFT   3

SRTT & RTTVAR scaled by 8.

Referenced by TcpComputeRtt().

#define TCP_SEQ_BETWEEN ( b,
m,
 )     ((e) - (b) >= (m) - (b))

Referenced by TcpTransmitSegment().

#define TCP_SEQ_GEQ ( SeqA,
SeqB   )     ((INT32) ((SeqB) - (SeqA)) <= 0)

#define TCP_SEQ_GT ( SeqA,
SeqB   )     ((INT32) ((SeqB) - (SeqA)) < 0)

#define TCP_SEQ_LEQ ( SeqA,
SeqB   )     ((INT32) ((SeqA) - (SeqB)) <= 0)

#define TCP_SEQ_LT ( SeqA,
SeqB   )     ((INT32) ((SeqA) - (SeqB)) < 0)

#define TCP_SET_FLG ( Value,
Flag   )     ((Value) |= (Flag))

#define TCP_SET_TIMER ( Flag,
Timer   )     ((Flag) = (UINT16) ((Flag) | (1 << (Timer))))

Referenced by TcpSetTimer().

#define TCP_SND_BUF_SIZE   (2 * 1024 * 1024)

Referenced by TcpConfigurePcb().

#define TCP_SND_BUF_SIZE_MIN   (8 * 1024)

Referenced by TcpConfigurePcb().

#define TCP_SUB_SEQ ( Seq1,
Seq2   )     ((UINT32) ((Seq1) - (Seq2)))

#define TCP_SUB_TIME ( Ta,
Tb   )     ((UINT32) ((Ta) - (Tb)))

Referenced by TcpInput(), and TcpUpdateTimer().

#define TCP_SYN_RCVD   3

#define TCP_SYN_SENT   2

#define TCP_TICK   200

Every TCP tick is 200ms.

#define TCP_TICK_HZ   5

The frequence of TCP tick.

Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpConfigurePcb(), and TcpCreateTimer().

#define TCP_TIME_LEQ ( Ta,
Tb   )     ((INT32) ((Ta) - (Tb)) <= 0)

Referenced by TcpTickingDpc().

#define TCP_TIME_LT ( Ta,
Tb   )     ((INT32) ((Ta) - (Tb)) < 0)

Referenced by TcpPawsOK(), and TcpUpdateTimer().

#define TCP_TIME_WAIT   8

#define TCP_TIME_WAIT_TIME   (2 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_TIME_WAIT_TIME_MAX   (60 * TCP_TICK_HZ)

Referenced by TcpConfigurePcb().

#define TCP_TIMER_2MSL   5

TIME_WAIT timer.

Referenced by TcpDeliverData(), and TcpInput().

#define TCP_TIMER_CONNECT   0

Connection establishment timer.

Referenced by TcpInput(), TcpOnAppConnect(), and TcpRexmitTimeout().

#define TCP_TIMER_FINWAIT2   4

FIN_WAIT_2 timer.

Referenced by TcpInput().

#define TCP_TIMER_KEEPALIVE   3

Keepalive timer.

Referenced by TcpSetKeepaliveTimer().

#define TCP_TIMER_NUMBER   6

The total number of the TCP timer.

Referenced by TcpTickingDpc(), and TcpUpdateTimer().

#define TCP_TIMER_ON ( Flag,
Timer   )     ((Flag) & (1 << (Timer)))

#define TCP_TIMER_PROBE   2

Window probe timer.

Referenced by TcpInput(), and TcpSetProbeTimer().

#define TCP_TIMER_REXMIT   1

#define TCPSEG_NETBUF ( NBuf   )     ((TCP_SEG *) ((NBuf)->ProtoData))


Typedef Documentation

typedef struct _TCP_CONTROL_BLOCK TCP_CB

typedef struct _TCP_PEER TCP_PEER

Network endpoint, IP plus Port structure.

typedef struct _TCP_SEG TCP_SEG

TCP segmentation data.


Generated on Mon Sep 28 08:49:06 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1