3 Copyright (c) 2005 - 2006, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 UEFI TCPv4 Protocol Definition
25 #include EFI_PROTOCOL_DEFINITION (ServiceBinding)
26 #include EFI_PROTOCOL_DEFINITION (Ip4)
28 #define EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID \
30 0x00720665, 0x67EB, 0x4a99, {0xBA, 0xF7, 0xD3, 0xC3, 0x3A, 0x1C, 0x7C, 0xC9} \
33 extern EFI_GUID gEfiTcp4ServiceBindingProtocolGuid
;
35 #define EFI_TCP4_PROTOCOL_GUID \
37 0x65530BC7, 0xA359, 0x410f, {0xB0, 0x10, 0x5A, 0xAD, 0xC7, 0xEC, 0x2B, 0x62} \
40 extern EFI_GUID gEfiTcp4ProtocolGuid
;
42 EFI_FORWARD_DECLARATION (EFI_TCP4_PROTOCOL
);
45 EFI_HANDLE InstanceHandle
;
46 EFI_IPv4_ADDRESS LocalAddress
;
48 EFI_IPv4_ADDRESS RemoteAddress
;
50 } EFI_TCP4_SERVICE_POINT
;
53 EFI_HANDLE DriverHandle
;
55 EFI_TCP4_SERVICE_POINT Services
[1];
56 } EFI_TCP4_VARIABLE_DATA
;
59 BOOLEAN UseDefaultAddress
;
60 EFI_IPv4_ADDRESS StationAddress
;
61 EFI_IPv4_ADDRESS SubnetMask
;
63 EFI_IPv4_ADDRESS RemoteAddress
;
66 } EFI_TCP4_ACCESS_POINT
;
69 UINT32 ReceiveBufferSize
;
70 UINT32 SendBufferSize
;
72 UINT32 ConnectionTimeout
;
75 UINT32 TimeWaitTimeout
;
76 UINT32 KeepAliveProbes
;
78 UINT32 KeepAliveInterval
;
80 BOOLEAN EnableTimeStamp
;
81 BOOLEAN EnableWindowScaling
;
82 BOOLEAN EnableSelectiveAck
;
83 BOOLEAN EnablePathMtuDiscovery
;
89 EFI_TCP4_ACCESS_POINT AccessPoint
;
90 EFI_TCP4_OPTION
*ControlOption
;
91 } EFI_TCP4_CONFIG_DATA
;
97 Tcp4StateSynReceived
= 3,
98 Tcp4StateEstablished
= 4,
99 Tcp4StateFinWait1
= 5,
100 Tcp4StateFinWait2
= 6,
101 Tcp4StateClosing
= 7,
102 Tcp4StateTimeWait
= 8,
103 Tcp4StateCloseWait
= 9,
104 Tcp4StateLastAck
= 10
105 } EFI_TCP4_CONNECTION_STATE
;
110 } EFI_TCP4_COMPLETION_TOKEN
;
113 EFI_TCP4_COMPLETION_TOKEN CompletionToken
;
114 } EFI_TCP4_CONNECTION_TOKEN
;
117 EFI_TCP4_COMPLETION_TOKEN CompletionToken
;
118 EFI_HANDLE NewChildHandle
;
119 } EFI_TCP4_LISTEN_TOKEN
;
122 UINT32 FragmentLength
;
123 VOID
*FragmentBuffer
;
124 } EFI_TCP4_FRAGMENT_DATA
;
129 UINT32 FragmentCount
;
130 EFI_TCP4_FRAGMENT_DATA FragmentTable
[1];
131 } EFI_TCP4_RECEIVE_DATA
;
137 UINT32 FragmentCount
;
138 EFI_TCP4_FRAGMENT_DATA FragmentTable
[1];
139 } EFI_TCP4_TRANSMIT_DATA
;
142 EFI_TCP4_COMPLETION_TOKEN CompletionToken
;
144 EFI_TCP4_RECEIVE_DATA
*RxData
;
145 EFI_TCP4_TRANSMIT_DATA
*TxData
;
150 EFI_TCP4_COMPLETION_TOKEN CompletionToken
;
151 BOOLEAN AbortOnClose
;
152 } EFI_TCP4_CLOSE_TOKEN
;
156 (EFIAPI
*EFI_TCP4_GET_MODE_DATA
) (
157 IN EFI_TCP4_PROTOCOL
*This
,
158 OUT EFI_TCP4_CONNECTION_STATE
*Tcp4State OPTIONAL
,
159 OUT EFI_TCP4_CONFIG_DATA
*Tcp4ConfigData OPTIONAL
,
160 OUT EFI_IP4_MODE_DATA
*Ip4ModeData OPTIONAL
,
161 OUT EFI_MANAGED_NETWORK_CONFIG_DATA
*MnpConfigData OPTIONAL
,
162 OUT EFI_SIMPLE_NETWORK_MODE
*SnpModeData OPTIONAL
167 (EFIAPI
*EFI_TCP4_CONFIGURE
) (
168 IN EFI_TCP4_PROTOCOL
*This
,
169 IN EFI_TCP4_CONFIG_DATA
*TcpConfigData OPTIONAL
174 (EFIAPI
*EFI_TCP4_ROUTES
) (
175 IN EFI_TCP4_PROTOCOL
*This
,
176 IN BOOLEAN DeleteRoute
,
177 IN EFI_IPv4_ADDRESS
*SubnetAddress
,
178 IN EFI_IPv4_ADDRESS
*SubnetMask
,
179 IN EFI_IPv4_ADDRESS
*GatewayAddress
184 (EFIAPI
*EFI_TCP4_CONNECT
) (
185 IN EFI_TCP4_PROTOCOL
*This
,
186 IN EFI_TCP4_CONNECTION_TOKEN
*ConnectionToken
191 (EFIAPI
*EFI_TCP4_ACCEPT
) (
192 IN EFI_TCP4_PROTOCOL
*This
,
193 IN EFI_TCP4_LISTEN_TOKEN
*ListenToken
198 (EFIAPI
*EFI_TCP4_TRANSMIT
) (
199 IN EFI_TCP4_PROTOCOL
*This
,
200 IN EFI_TCP4_IO_TOKEN
*Token
205 (EFIAPI
*EFI_TCP4_RECEIVE
) (
206 IN EFI_TCP4_PROTOCOL
*This
,
207 IN EFI_TCP4_IO_TOKEN
*Token
212 (EFIAPI
*EFI_TCP4_CLOSE
) (
213 IN EFI_TCP4_PROTOCOL
*This
,
214 IN EFI_TCP4_CLOSE_TOKEN
*CloseToken
219 (EFIAPI
*EFI_TCP4_CANCEL
) (
220 IN EFI_TCP4_PROTOCOL
*This
,
221 IN EFI_TCP4_COMPLETION_TOKEN
*Token OPTIONAL
226 (EFIAPI
*EFI_TCP4_POLL
) (
227 IN EFI_TCP4_PROTOCOL
*This
230 struct _EFI_TCP4_PROTOCOL
{
231 EFI_TCP4_GET_MODE_DATA GetModeData
;
232 EFI_TCP4_CONFIGURE Configure
;
233 EFI_TCP4_ROUTES Routes
;
234 EFI_TCP4_CONNECT Connect
;
235 EFI_TCP4_ACCEPT Accept
;
236 EFI_TCP4_TRANSMIT Transmit
;
237 EFI_TCP4_RECEIVE Receive
;
238 EFI_TCP4_CLOSE Close
;
239 EFI_TCP4_CANCEL Cancel
;
243 #define EFI_CONNECTION_FIN EFIERR (104)
244 #define EFI_CONNECTION_RESET EFIERR (105)
245 #define EFI_CONNECTION_REFUSED EFIERR (106)