15#ifndef __EFI_TCP6_PROTOCOL_H__
16#define __EFI_TCP6_PROTOCOL_H__
24#define EFI_TCP6_SERVICE_BINDING_PROTOCOL_GUID \
26 0xec20eb79, 0x6c1a, 0x4664, {0x9a, 0x0d, 0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64 } \
29#define EFI_TCP6_PROTOCOL_GUID \
31 0x46e44855, 0xbd60, 0x4ab7, {0xab, 0x0d, 0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77 } \
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
This file defines the EFI IPv6 (Internet Protocol version 6) Protocol interface.
EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.
struct _EFI_TCP6_PROTOCOL EFI_TCP6_PROTOCOL
EFI_GUID gEfiTcp6ServiceBindingProtocolGuid
EFI_STATUS(EFIAPI * EFI_TCP6_CONFIGURE)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL)
Initialize or brutally reset the operational parameters for this EFI TCPv6 instance.
EFI_STATUS(EFIAPI * EFI_TCP6_CANCEL)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_COMPLETION_TOKEN *Token OPTIONAL)
Abort an asynchronous connection, listen, transmission or receive request.
EFI_STATUS(EFIAPI * EFI_TCP6_ACCEPT)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_LISTEN_TOKEN *ListenToken)
Listen on the passive instance to accept an incoming connection request.
EFI_GUID gEfiTcp6ProtocolGuid
EFI_STATUS(EFIAPI * EFI_TCP6_CONNECT)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_CONNECTION_TOKEN *ConnectionToken)
Initiate a nonblocking TCP connection request for an active TCP instance.
EFI_STATUS(EFIAPI * EFI_TCP6_POLL)(IN EFI_TCP6_PROTOCOL *This)
Poll to receive incoming data and transmit outgoing segments.
EFI_TCP6_CONNECTION_STATE
EFI_TCP6_CONNECTION_STATE.
EFI_STATUS(EFIAPI * EFI_TCP6_TRANSMIT)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_IO_TOKEN *Token)
Queues outgoing data into the transmit queue.
EFI_STATUS(EFIAPI * EFI_TCP6_GET_MODE_DATA)(IN EFI_TCP6_PROTOCOL *This, OUT EFI_TCP6_CONNECTION_STATE *Tcp6State OPTIONAL, OUT EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL, OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL)
Get the current operational status.
EFI_STATUS(EFIAPI * EFI_TCP6_CLOSE)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_CLOSE_TOKEN *CloseToken)
Disconnecting a TCP connection gracefully or reset a TCP connection.
EFI_STATUS(EFIAPI * EFI_TCP6_RECEIVE)(IN EFI_TCP6_PROTOCOL *This, IN EFI_TCP6_IO_TOKEN *Token)
Places an asynchronous receive request into the receiving queue.
IPv6_ADDRESS EFI_IPv6_ADDRESS
16-byte buffer.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
UINT16 RemotePort
The remote port to which this EFI TCPv6 Protocol instance connects or from which connection request w...
BOOLEAN ActiveFlag
Set it to TRUE to initiate an active open.
EFI_IPv6_ADDRESS RemoteAddress
The remote IP address to which this EFI TCPv6 Protocol instance is connected.
UINT16 StationPort
The local port number to which this EFI TCPv6 Protocol instance is bound.
EFI_IPv6_ADDRESS StationAddress
The local IP address assigned to this TCP instance.
EFI_TCP6_CLOSE_TOKEN returns when close operation finishes.
EFI_TCP6_COMPLETION_TOKEN CompletionToken
When close finishes or meets any unexpected error it will be set to one of the following values: EFI_...
BOOLEAN AbortOnClose
Abort the TCP connection on close instead of the standard TCP close process when it is set to TRUE.
EFI_TCP6_COMPLETION_TOKEN is used as a common header for various asynchronous tokens.
EFI_EVENT Event
The Event to signal after request is finished and Status field is updated by the EFI TCPv6 Protocol d...
EFI_STATUS Status
The result of the completed operation.
EFI_TCP6_ACCESS_POINT AccessPoint
Used to specify TCP communication end settings for a TCP instance.
UINT8 TrafficClass
TrafficClass field in transmitted IPv6 packets.
EFI_TCP6_OPTION * ControlOption
Used to configure the advance TCP option for a connection.
UINT8 HopLimit
HopLimit field in transmitted IPv6 packets.
EFI_TCP6_CONNECTION_TOKEN will be set if the active open succeeds or an unexpected error happens.
EFI_TCP6_COMPLETION_TOKEN CompletionToken
The Status in the CompletionToken will be set to one of the following values if the active open succe...
EFI_TCP6_FRAGMENT_DATA allows multiple receive or transmit buffers to be specified.
VOID * FragmentBuffer
Pointer to the data buffer in the fragment.
UINT32 FragmentLength
Length of data buffer in the fragment.
EFI_TCP6_IO_TOKEN returns When transmission finishes or meets any unexpected error.
EFI_TCP6_RECEIVE_DATA * RxData
When this token is used for receiving, RxData is a pointer to EFI_TCP6_RECEIVE_DATA.
EFI_TCP6_TRANSMIT_DATA * TxData
When this token is used for transmitting, TxData is a pointer to EFI_TCP6_TRANSMIT_DATA.
EFI_TCP6_COMPLETION_TOKEN CompletionToken
When transmission finishes or meets any unexpected error it will be set to one of the following value...
EFI_TCP6_LISTEN_TOKEN returns when list operation finishes.
EFI_TCP6_COMPLETION_TOKEN CompletionToken
The Status in CompletionToken will be set to the following value if accept finishes: EFI_SUCCESS: A r...
EFI_HANDLE NewChildHandle
UINT32 KeepAliveTime
The number of seconds a connection needs to be idle before TCP sends out periodical keep-alive probes...
UINT32 KeepAliveInterval
The number of seconds between TCP keep-alive probes after the periodical keep-alive probe if no respo...
UINT32 KeepAliveProbes
The maximum number of TCP keep-alive probes to send before giving up and resetting the connection if ...
UINT32 SendBufferSize
The size of the TCP send buffer.
UINT32 DataRetries
The number of times TCP will attempt to retransmit a packet on an established connection.
BOOLEAN EnableWindowScaling
Set it to TRUE to enable TCP window scale option as defined in RFC7323.
UINT32 TimeWaitTimeout
How many seconds to wait in TIME_WAIT state before the TCP instance is closed.
UINT32 ReceiveBufferSize
The size of the TCP receive buffer.
UINT32 MaxSynBackLog
The length of incoming connect request queue for a passive instance.
BOOLEAN EnablePathMtuDiscovery
Set it to TRUE to enable path MTU discovery as defined in RFC 1191.
BOOLEAN EnableTimeStamp
Set it to TRUE to enable TCP timestamps option as defined in RFC7323.
BOOLEAN EnableSelectiveAck
Set it to TRUE to enable selective acknowledge mechanism described in RFC 2018.
UINT32 FinTimeout
How many seconds to wait in the FIN_WAIT_2 states for a final FIN flag before the TCP instance is clo...
UINT32 ConnectionTimeout
The maximum seconds a TCP instance will wait for before a TCP connection established.
BOOLEAN EnableNagle
Set it to TRUE to enable the Nagle algorithm as defined in RFC896.
EFI_TCP6_RECEIVE_DATA When TCPv6 driver wants to deliver received data to the application,...
UINT32 FragmentCount
Number of fragments.
UINT32 DataLength
When calling Receive() function, it is the byte counts of all Fragmentbuffer in FragmentTable allocat...
BOOLEAN UrgentFlag
Whether the data is urgent.
EFI_TCP6_FRAGMENT_DATA FragmentTable[1]
An array of fragment descriptors.
EFI_TCP6_SERVICE_POINT is deprecated in the UEFI 2.4B and should not be used any more.
UINT16 RemotePort
The remote port number in host byte order.
UINT16 LocalPort
The local port number in host byte order.
EFI_HANDLE InstanceHandle
The EFI TCPv6 Protocol instance handle that is using this address/port pair.
EFI_IPv6_ADDRESS LocalAddress
The local IPv6 address to which this TCP instance is bound.
EFI_IPv6_ADDRESS RemoteAddress
The remote IPv6 address.
EFI_TCP6_TRANSMIT_DATA The EFI TCPv6 Protocol user must fill this data structure before sending a pac...
EFI_TCP6_FRAGMENT_DATA FragmentTable[1]
An array of fragment descriptors.
UINT32 DataLength
Length of the data in the fragments.
UINT32 FragmentCount
Number of fragments.
BOOLEAN Push
Push If TRUE, data must be transmitted promptly, and the PUSH bit in the last TCP segment created wil...
BOOLEAN Urgent
The data in the fragment table are urgent and urgent point is in effect if TRUE.
EFI_TCP6_VARIABLE_DATA is deprecated in the UEFI 2.4B and should not be used any more.
UINT32 ServiceCount
The number of address/port pairs following this data structure.
EFI_HANDLE DriverHandle
The handle of the driver that creates this entry.
EFI_TCP6_SERVICE_POINT Services[1]
List of address/port pairs that are currently in use.
EFI_TCP6_PROTOCOL defines the EFI TCPv6 Protocol child to be used by any network drivers or applicati...
EFI_TCP6_TRANSMIT Transmit
EFI_TCP6_GET_MODE_DATA GetModeData
EFI_TCP6_CONFIGURE Configure