2007-09-30 05:08:02 +02:00
|
|
|
/** @file
|
|
|
|
|
|
|
|
Copyright (c) 2005 - 2006, 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.
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
Tcp4Func.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef _TCP4_FUNC_H_
|
|
|
|
#define _TCP4_FUNC_H_
|
|
|
|
|
|
|
|
//
|
|
|
|
// Declaration of all the functions in TCP
|
|
|
|
// protocol. It is intended to keep tcp.h
|
|
|
|
// clear.
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// Functions in tcp.c
|
|
|
|
//
|
|
|
|
BOOLEAN
|
|
|
|
TcpFindTcbByPeer (
|
|
|
|
IN EFI_IPv4_ADDRESS *Addr,
|
|
|
|
IN TCP_PORTNO Port
|
|
|
|
);
|
|
|
|
|
|
|
|
TCP_CB *
|
|
|
|
TcpLocateTcb (
|
|
|
|
IN TCP_PORTNO LocalPort,
|
|
|
|
IN UINT32 LocalIp,
|
|
|
|
IN TCP_PORTNO RemotePort,
|
|
|
|
IN UINT32 RemoteIp,
|
|
|
|
IN BOOLEAN Syn
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpInsertTcb (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
TCP_CB *
|
|
|
|
TcpCloneTcb (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
TCP_SEQNO
|
|
|
|
TcpGetIss (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpInitTcbLocal (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpInitTcbPeer (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEG *Seg,
|
|
|
|
IN TCP_OPTION *Opt
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT16
|
|
|
|
TcpGetRcvMss (
|
|
|
|
IN SOCKET *Sock
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpSetState (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN UINT8 State
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Functions in Tcp4Output.c
|
|
|
|
//
|
|
|
|
INTN
|
|
|
|
TcpSendIpPacket (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN NET_BUF *Nbuf,
|
|
|
|
IN UINT32 Src,
|
|
|
|
IN UINT32 Dst
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpToSendData (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN INTN Force
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpToSendAck (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpSendAck (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpSendZeroProbe (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpDeliverData (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpSendReset (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_HEAD *Head,
|
|
|
|
IN INT32 Len,
|
|
|
|
IN UINT32 Local,
|
|
|
|
IN UINT32 Remote
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
TcpRcvWinOld (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
TcpRcvWinNow (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpRetransmit (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEQNO Seq
|
|
|
|
);
|
|
|
|
|
|
|
|
UINT32
|
|
|
|
TcpDataToSend (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN INTN Force
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpVerifySegment (
|
|
|
|
IN NET_BUF *Nbuf
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpCheckSndQue (
|
2008-02-14 10:40:22 +01:00
|
|
|
IN LIST_ENTRY *Head
|
2007-09-30 05:08:02 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
NET_BUF *
|
|
|
|
TcpGetSegmentSndQue (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEQNO Seq,
|
|
|
|
IN UINT32 Len
|
|
|
|
);
|
|
|
|
|
|
|
|
NET_BUF *
|
|
|
|
TcpGetSegmentSock (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEQNO Seq,
|
|
|
|
IN UINT32 Len
|
|
|
|
);
|
|
|
|
|
|
|
|
NET_BUF *
|
|
|
|
TcpGetSegment (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEQNO Seq,
|
|
|
|
IN UINT32 Len
|
|
|
|
);
|
|
|
|
|
|
|
|
TCP_SEQNO
|
|
|
|
TcpGetMaxSndNxt (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Functions from Tcp4Input.c
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
TcpIcmpInput (
|
|
|
|
IN NET_BUF *Nbuf,
|
|
|
|
IN ICMP_ERROR IcmpErr,
|
|
|
|
IN UINT32 Src,
|
|
|
|
IN UINT32 Dst
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpInput (
|
|
|
|
IN NET_BUF *Nbuf,
|
|
|
|
IN UINT32 Src,
|
|
|
|
IN UINT32 Dst
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpSeqAcceptable (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEG *Seg
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpFastRecover (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEG *Seg
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpFastLossRecover (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEG *Seg
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpComputeRtt (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN UINT32 Measure
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpTrimInWnd (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN NET_BUF *Buf
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpQueueData (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN NET_BUF *Nbuf
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpAdjustSndQue (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN TCP_SEQNO Ack
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Functions from Tcp4Misc.c
|
|
|
|
//
|
|
|
|
UINT16
|
|
|
|
TcpChecksum (
|
|
|
|
IN NET_BUF *Buf,
|
|
|
|
IN UINT16 HeadChecksum
|
|
|
|
);
|
|
|
|
|
|
|
|
TCP_SEG *
|
|
|
|
TcpFormatNetbuf (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN NET_BUF *Nbuf
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpOnAppConnect (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpOnAppConsume (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpOnAppClose (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
INTN
|
|
|
|
TcpOnAppSend (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpOnAppAbort (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpResetConnection (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
//
|
|
|
|
// Functions in Tcp4Timer.c
|
|
|
|
//
|
|
|
|
VOID
|
|
|
|
TcpClose (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
TcpTicking (
|
|
|
|
IN EFI_EVENT Event,
|
|
|
|
IN VOID *Context
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpSetTimer (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN UINT16 Timer,
|
|
|
|
IN UINT32 TimeOut
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpClearTimer (
|
|
|
|
IN TCP_CB *Tcb,
|
|
|
|
IN UINT16 Timer
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpClearAllTimer (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpSetProbeTimer (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpSetKeepaliveTimer (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpBackoffRto (
|
|
|
|
IN TCP_CB *Tcb
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
TcpSetVariableData (
|
|
|
|
IN TCP4_SERVICE_DATA *Tcp4Service
|
|
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
TcpClearVariableData (
|
|
|
|
IN TCP4_SERVICE_DATA *Tcp4Service
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_STATUS
|
|
|
|
TcpInstallDevicePath (
|
|
|
|
IN SOCKET *Sock
|
|
|
|
);
|
|
|
|
|
|
|
|
#endif
|