audk/MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Func.h

359 lines
4.2 KiB
C

/** @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 (
IN NET_LIST_ENTRY *Head
);
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