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 |
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 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 |
Referenced by TcpDeliverData(), TcpInput(), TcpOnAppAbort(), TcpOnAppClose(), and TcpOnAppSend().
#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 |
Referenced by TcpDeliverData(), TcpInput(), and TcpOnAppSend().
#define TCP_CONGEST_LOSS 2 |
#define TCP_CONGEST_OPEN 3 |
TCP is opening its congestion window.
Referenced by TcpConfigurePcb(), TcpFastLossRecover(), TcpFastRecover(), TcpInput(), and TcpToSendData().
#define TCP_CONGEST_RECOVER 1 |
#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 |
#define TCP_CTRL_FIN_SENT 0x0400 |
#define TCP_CTRL_NO_KEEPALIVE 0x0002 |
#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 |
#define TCP_CTRL_RCVD_URG 0x0100 |
#define TCP_CTRL_RCVD_WS 0x0008 |
#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 |
#define TCP_CTRL_SND_TS 0x0040 |
#define TCP_CTRL_SND_URG 0x0080 |
#define TCP_CTRL_TIMER_ON 0x1000 |
#define TCP_ESTABLISHED 4 |
Referenced by TcpDeliverData(), TcpInput(), TcpOnAppAbort(), TcpOnAppClose(), TcpOnAppConsume(), TcpOnAppSend(), and TcpSetState().
#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 |
Referenced by TcpDeliverData(), TcpInput(), TcpOnAppAbort(), TcpOnAppClose(), and TcpOnAppSend().
#define TCP_FIN_WAIT_2 6 |
Referenced by TcpDeliverData(), TcpInput(), TcpOnAppAbort(), and TcpOnAppSend().
#define TCP_FLG_ACK 0x10 |
Referenced by TcpInitTcbPeer(), TcpInput(), TcpSendAck(), TcpSendReset(), TcpSendZeroProbe(), and TcpSynBuildOption().
#define TCP_FLG_FIN 0x01 |
Flags in the TCP header
Referenced by TcpDeliverData(), TcpFormatNetbuf(), TcpGetSegmentSndQue(), TcpInput(), TcpToSendData(), TcpTrimSegment(), and TcpVerifySegment().
#define TCP_FLG_FLAG 0x3F |
#define TCP_FLG_ON | ( | Value, | |||
Flag | ) | ((BOOLEAN) (((Value) & (Flag)) != 0)) |
Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpBuildOption(), TcpDataToSend(), TcpDeliverData(), TcpFormatNetbuf(), TcpGetSegmentSndQue(), TcpInitTcbPeer(), TcpInput(), TcpSendReset(), TcpSetKeepaliveTimer(), TcpSynBuildOption(), TcpTickingDpc(), TcpToSendAck(), TcpToSendData(), TcpTransmitSegment(), TcpTrimSegment(), and TcpVerifySegment().
#define TCP_FLG_PSH 0x08 |
Referenced by TcpDeliverData(), and TcpTransmitSegment().
#define TCP_FLG_RST 0x04 |
Referenced by TcpBuildOption(), TcpInput(), TcpResetConnection(), and TcpSendReset().
#define TCP_FLG_SYN 0x02 |
#define TCP_FLG_URG 0x20 |
Referenced by TcpInput(), TcpTransmitSegment(), and TcpTrimSegment().
#define TCP_FOLD_RTT 4 |
#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) |
#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 |
Referenced by TcpDeliverData(), TcpInput(), TcpOnAppClose(), and TcpOnAppSend().
#define TCP_LISTEN 1 |
Referenced by Tcp4GetMode(), Tcp6GetMode(), TcpConfigurePcb(), TcpInput(), TcpInsertTcb(), TcpOnAppClose(), TcpOnAppSend(), and TcpToSendData().
#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 |
Referenced by TcpGetSegmentSndQue(), TcpGetSegmentSock(), TcpResetConnection(), TcpSendAck(), TcpSendReset(), and TcpSendZeroProbe().
#define TCP_MAX_KEEPALIVE 8 |
Referenced by TcpConfigurePcb().
#define TCP_MAX_KEEPALIVE_MIN 4 |
Referenced by TcpConfigurePcb().
#define TCP_MAX_LOSS 12 |
#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) |
#define TCP_RTO_MIN TCP_TICK_HZ |
#define TCP_RTT_SHIFT 3 |
#define TCP_SEQ_BETWEEN | ( | b, | |||
m, | |||||
e | ) | ((e) - (b) >= (m) - (b)) |
Referenced by TcpTransmitSegment().
#define TCP_SEQ_GEQ | ( | SeqA, | |||
SeqB | ) | ((INT32) ((SeqB) - (SeqA)) <= 0) |
Referenced by TcpAdjustSndQue(), TcpFastLossRecover(), TcpFastRecover(), and TcpGetMaxSndNxt().
#define TCP_SEQ_GT | ( | SeqA, | |||
SeqB | ) | ((INT32) ((SeqB) - (SeqA)) < 0) |
Referenced by TcpDataToSend(), TcpDeliverData(), TcpFastLossRecover(), TcpInput(), TcpRcvWinOld(), TcpToSendData(), and TcpTrimSegment().
#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 |
Referenced by TcpConnectTimeout(), TcpDeliverData(), TcpInput(), TcpInsertTcb(), TcpOnAppAbort(), TcpOnAppClose(), and TcpOnAppSend().
#define TCP_SYN_SENT 2 |
Referenced by TcpInput(), TcpInsertTcb(), TcpOnAppClose(), TcpOnAppConnect(), and TcpOnAppSend().
#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 |
Referenced by TcpDeliverData(), TcpInput(), and TcpOnAppSend().
#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 |
#define TCP_TIMER_CONNECT 0 |
Connection establishment timer.
Referenced by TcpInput(), TcpOnAppConnect(), and TcpRexmitTimeout().
#define TCP_TIMER_FINWAIT2 4 |
#define TCP_TIMER_KEEPALIVE 3 |
#define TCP_TIMER_NUMBER 6 |
#define TCP_TIMER_ON | ( | Flag, | |||
Timer | ) | ((Flag) & (1 << (Timer))) |
Referenced by TcpDataToSend(), TcpProbeTimeout(), TcpRexmitTimeout(), TcpSetKeepaliveTimer(), TcpTickingDpc(), TcpToSendData(), and TcpUpdateTimer().
#define TCP_TIMER_PROBE 2 |
#define TCP_TIMER_REXMIT 1 |
Retransmit timer.
Referenced by TcpDataToSend(), TcpInput(), TcpProbeTimeout(), TcpRexmitTimeout(), and TcpToSendData().
#define TCPSEG_NETBUF | ( | NBuf | ) | ((TCP_SEG *) ((NBuf)->ProtoData)) |
Referenced by TcpAdjustSndQue(), TcpBuildOption(), TcpCheckSndQue(), TcpDeliverData(), TcpFormatNetbuf(), TcpGetMaxSndNxt(), TcpGetSegmentSndQue(), TcpGetSegmentSock(), TcpQueueData(), TcpSendAck(), TcpSendZeroProbe(), TcpSynBuildOption(), TcpToSendData(), TcpTransmitSegment(), TcpTrimSegment(), and TcpVerifySegment().
typedef struct _TCP_CONTROL_BLOCK TCP_CB |