6 Copyright (c) 2013 Intel Corporation
10 #define EFI_UDP4_SERVICE_BINDING_PROTOCOL \
11 { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} }
13 #define EFI_UDP4_PROTOCOL \
14 { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} }
16 #define EFI_UDP6_SERVICE_BINDING_PROTOCOL \
17 { 0x66ed4721, 0x3c98, 0x4d3e, {0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54} }
19 #define EFI_UDP6_PROTOCOL \
20 { 0x4f948815, 0xb4b9, 0x43cb, {0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3,0x49, 0x55} }
22 INTERFACE_DECL(_EFI_UDP4
);
23 INTERFACE_DECL(_EFI_UDP6
);
26 BOOLEAN AcceptBroadcast
;
27 BOOLEAN AcceptPromiscuous
;
28 BOOLEAN AcceptAnyPort
;
29 BOOLEAN AllowDuplicatePort
;
32 BOOLEAN DoNotFragment
;
33 UINT32 ReceiveTimeout
;
34 UINT32 TransmitTimeout
;
35 BOOLEAN UseDefaultAddress
;
36 EFI_IPv4_ADDRESS StationAddress
;
37 EFI_IPv4_ADDRESS SubnetMask
;
39 EFI_IPv4_ADDRESS RemoteAddress
;
41 } EFI_UDP4_CONFIG_DATA
;
45 (EFIAPI
*EFI_UDP4_GET_MODE_DATA
) (
46 IN
struct _EFI_UDP4
*This
,
47 OUT EFI_UDP4_CONFIG_DATA
*Udp4ConfigData OPTIONAL
,
48 OUT EFI_IP4_MODE_DATA
*Ip4ModeData OPTIONAL
,
49 OUT EFI_MANAGED_NETWORK_CONFIG_DATA
*MnpConfigData OPTIONAL
,
50 OUT EFI_SIMPLE_NETWORK_MODE
*SnpModeData OPTIONAL
55 (EFIAPI
*EFI_UDP4_CONFIGURE
) (
56 IN
struct _EFI_UDP4
*This
,
57 IN EFI_UDP4_CONFIG_DATA
*UdpConfigData OPTIONAL
62 (EFIAPI
*EFI_UDP4_GROUPS
) (
63 IN
struct _EFI_UDP4
*This
,
65 IN EFI_IPv4_ADDRESS
*MulticastAddress OPTIONAL
70 (EFIAPI
*EFI_UDP4_ROUTES
) (
71 IN
struct _EFI_UDP4
*This
,
72 IN BOOLEAN DeleteRoute
,
73 IN EFI_IPv4_ADDRESS
*SubnetAddress
,
74 IN EFI_IPv4_ADDRESS
*SubnetMask
,
75 IN EFI_IPv4_ADDRESS
*GatewayAddress
78 #define EFI_NETWORK_UNREACHABLE EFIERR(100)
79 #define EFI_HOST_UNREACHABLE EFIERR(101)
80 #define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
81 #define EFI_PORT_UNREACHABLE EFIERR(103)
84 EFI_IPv4_ADDRESS SourceAddress
;
86 EFI_IPv4_ADDRESS DestinationAddress
;
87 UINT16 DestinationPort
;
88 } EFI_UDP4_SESSION_DATA
;
91 UINT32 FragmentLength
;
93 } EFI_UDP4_FRAGMENT_DATA
;
97 EFI_EVENT RecycleSignal
;
98 EFI_UDP4_SESSION_DATA UdpSession
;
100 UINT32 FragmentCount
;
101 EFI_UDP4_FRAGMENT_DATA FragmentTable
[1];
102 } EFI_UDP4_RECEIVE_DATA
;
105 EFI_UDP4_SESSION_DATA
*UdpSessionData
;
106 EFI_IPv4_ADDRESS
*GatewayAddress
;
108 UINT32 FragmentCount
;
109 EFI_UDP4_FRAGMENT_DATA FragmentTable
[1];
110 } EFI_UDP4_TRANSMIT_DATA
;
116 EFI_UDP4_RECEIVE_DATA
*RxData
;
117 EFI_UDP4_TRANSMIT_DATA
*TxData
;
119 } EFI_UDP4_COMPLETION_TOKEN
;
123 (EFIAPI
*EFI_UDP4_TRANSMIT
) (
124 IN
struct _EFI_UDP4
*This
,
125 IN EFI_UDP4_COMPLETION_TOKEN
*Token
130 (EFIAPI
*EFI_UDP4_RECEIVE
) (
131 IN
struct _EFI_UDP4
*This
,
132 IN EFI_UDP4_COMPLETION_TOKEN
*Token
137 (EFIAPI
*EFI_UDP4_CANCEL
)(
138 IN
struct _EFI_UDP4
*This
,
139 IN EFI_UDP4_COMPLETION_TOKEN
*Token OPTIONAL
144 (EFIAPI
*EFI_UDP4_POLL
) (
145 IN
struct _EFI_UDP4
*This
148 typedef struct _EFI_UDP4
{
149 EFI_UDP4_GET_MODE_DATA GetModeData
;
150 EFI_UDP4_CONFIGURE Configure
;
151 EFI_UDP4_GROUPS Groups
;
152 EFI_UDP4_ROUTES Routes
;
153 EFI_UDP4_TRANSMIT Transmit
;
154 EFI_UDP4_RECEIVE Receive
;
155 EFI_UDP4_CANCEL Cancel
;
160 BOOLEAN AcceptPromiscuous
;
161 BOOLEAN AcceptAnyPort
;
162 BOOLEAN AllowDuplicatePort
;
165 UINT32 ReceiveTimeout
;
166 UINT32 TransmitTimeout
;
167 EFI_IPv6_ADDRESS StationAddress
;
169 EFI_IPv6_ADDRESS RemoteAddress
;
171 } EFI_UDP6_CONFIG_DATA
;
175 (EFIAPI
*EFI_UDP6_GET_MODE_DATA
) (
176 IN
struct _EFI_UDP6
*This
,
177 OUT EFI_UDP6_CONFIG_DATA
*Udp6ConfigData OPTIONAL
,
178 OUT EFI_IP6_MODE_DATA
*Ip6ModeData OPTIONAL
,
179 OUT EFI_MANAGED_NETWORK_CONFIG_DATA
*MnpConfigData OPTIONAL
,
180 OUT EFI_SIMPLE_NETWORK_MODE
*SnpModeData OPTIONAL
185 (EFIAPI
*EFI_UDP6_CONFIGURE
) (
186 IN
struct _EFI_UDP6
*This
,
187 IN EFI_UDP6_CONFIG_DATA
*UdpConfigData OPTIONAL
192 (EFIAPI
*EFI_UDP6_GROUPS
) (
193 IN
struct _EFI_UDP6
*This
,
195 IN EFI_IPv6_ADDRESS
*MulticastAddress OPTIONAL
199 EFI_IPv6_ADDRESS SourceAddress
;
201 EFI_IPv6_ADDRESS DestinationAddress
;
202 UINT16 DestinationPort
;
203 } EFI_UDP6_SESSION_DATA
;
206 UINT32 FragmentLength
;
207 VOID
*FragmentBuffer
;
208 } EFI_UDP6_FRAGMENT_DATA
;
212 EFI_EVENT RecycleSignal
;
213 EFI_UDP6_SESSION_DATA UdpSession
;
215 UINT32 FragmentCount
;
216 EFI_UDP6_FRAGMENT_DATA FragmentTable
[1];
217 } EFI_UDP6_RECEIVE_DATA
;
220 EFI_UDP6_SESSION_DATA
*UdpSessionData
;
222 UINT32 FragmentCount
;
223 EFI_UDP6_FRAGMENT_DATA FragmentTable
[1];
224 } EFI_UDP6_TRANSMIT_DATA
;
230 EFI_UDP6_RECEIVE_DATA
*RxData
;
231 EFI_UDP6_TRANSMIT_DATA
*TxData
;
233 } EFI_UDP6_COMPLETION_TOKEN
;
237 (EFIAPI
*EFI_UDP6_TRANSMIT
) (
238 IN
struct _EFI_UDP6
*This
,
239 IN EFI_UDP6_COMPLETION_TOKEN
*Token
244 (EFIAPI
*EFI_UDP6_RECEIVE
) (
245 IN
struct _EFI_UDP6
*This
,
246 IN EFI_UDP6_COMPLETION_TOKEN
*Token
251 (EFIAPI
*EFI_UDP6_CANCEL
)(
252 IN
struct _EFI_UDP6
*This
,
253 IN EFI_UDP6_COMPLETION_TOKEN
*Token OPTIONAL
258 (EFIAPI
*EFI_UDP6_POLL
) (
259 IN
struct _EFI_UDP6
*This
262 typedef struct _EFI_UDP6
{
263 EFI_UDP6_GET_MODE_DATA GetModeData
;
264 EFI_UDP6_CONFIGURE Configure
;
265 EFI_UDP6_GROUPS Groups
;
266 EFI_UDP6_TRANSMIT Transmit
;
267 EFI_UDP6_RECEIVE Receive
;
268 EFI_UDP6_CANCEL Cancel
;
272 #endif /* _EFI_UDP_H */