7 Copyright (c) 2013 Intel Corporation
11 #define EFI_UDP4_SERVICE_BINDING_PROTOCOL \
12 { 0x83f01464, 0x99bd, 0x45e5, {0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6} }
14 #define EFI_UDP4_PROTOCOL \
15 { 0x3ad9df29, 0x4501, 0x478d, {0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3} }
17 #define EFI_UDP6_SERVICE_BINDING_PROTOCOL \
18 { 0x66ed4721, 0x3c98, 0x4d3e, {0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54} }
20 #define EFI_UDP6_PROTOCOL \
21 { 0x4f948815, 0xb4b9, 0x43cb, {0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3,0x49, 0x55} }
23 INTERFACE_DECL(_EFI_UDP4);
24 INTERFACE_DECL(_EFI_UDP6);
27 BOOLEAN AcceptBroadcast;
28 BOOLEAN AcceptPromiscuous;
29 BOOLEAN AcceptAnyPort;
30 BOOLEAN AllowDuplicatePort;
33 BOOLEAN DoNotFragment;
34 UINT32 ReceiveTimeout;
35 UINT32 TransmitTimeout;
36 BOOLEAN UseDefaultAddress;
37 EFI_IPv4_ADDRESS StationAddress;
38 EFI_IPv4_ADDRESS SubnetMask;
40 EFI_IPv4_ADDRESS RemoteAddress;
42 } EFI_UDP4_CONFIG_DATA;
46 (EFIAPI *EFI_UDP4_GET_MODE_DATA) (
47 IN struct _EFI_UDP4 *This,
48 OUT EFI_UDP4_CONFIG_DATA *Udp4ConfigData OPTIONAL,
49 OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
50 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
51 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
56 (EFIAPI *EFI_UDP4_CONFIGURE) (
57 IN struct _EFI_UDP4 *This,
58 IN EFI_UDP4_CONFIG_DATA *UdpConfigData OPTIONAL
63 (EFIAPI *EFI_UDP4_GROUPS) (
64 IN struct _EFI_UDP4 *This,
66 IN EFI_IPv4_ADDRESS *MulticastAddress OPTIONAL
71 (EFIAPI *EFI_UDP4_ROUTES) (
72 IN struct _EFI_UDP4 *This,
73 IN BOOLEAN DeleteRoute,
74 IN EFI_IPv4_ADDRESS *SubnetAddress,
75 IN EFI_IPv4_ADDRESS *SubnetMask,
76 IN EFI_IPv4_ADDRESS *GatewayAddress
79 #define EFI_NETWORK_UNREACHABLE EFIERR(100)
80 #define EFI_HOST_UNREACHABLE EFIERR(101)
81 #define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
82 #define EFI_PORT_UNREACHABLE EFIERR(103)
85 EFI_IPv4_ADDRESS SourceAddress;
87 EFI_IPv4_ADDRESS DestinationAddress;
88 UINT16 DestinationPort;
89 } EFI_UDP4_SESSION_DATA;
92 UINT32 FragmentLength;
94 } EFI_UDP4_FRAGMENT_DATA;
98 EFI_EVENT RecycleSignal;
99 EFI_UDP4_SESSION_DATA UdpSession;
101 UINT32 FragmentCount;
102 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
103 } EFI_UDP4_RECEIVE_DATA;
106 EFI_UDP4_SESSION_DATA *UdpSessionData;
107 EFI_IPv4_ADDRESS *GatewayAddress;
109 UINT32 FragmentCount;
110 EFI_UDP4_FRAGMENT_DATA FragmentTable[1];
111 } EFI_UDP4_TRANSMIT_DATA;
117 EFI_UDP4_RECEIVE_DATA *RxData;
118 EFI_UDP4_TRANSMIT_DATA *TxData;
120 } EFI_UDP4_COMPLETION_TOKEN;
124 (EFIAPI *EFI_UDP4_TRANSMIT) (
125 IN struct _EFI_UDP4 *This,
126 IN EFI_UDP4_COMPLETION_TOKEN *Token
131 (EFIAPI *EFI_UDP4_RECEIVE) (
132 IN struct _EFI_UDP4 *This,
133 IN EFI_UDP4_COMPLETION_TOKEN *Token
138 (EFIAPI *EFI_UDP4_CANCEL)(
139 IN struct _EFI_UDP4 *This,
140 IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL
145 (EFIAPI *EFI_UDP4_POLL) (
146 IN struct _EFI_UDP4 *This
149 typedef struct _EFI_UDP4 {
150 EFI_UDP4_GET_MODE_DATA GetModeData;
151 EFI_UDP4_CONFIGURE Configure;
152 EFI_UDP4_GROUPS Groups;
153 EFI_UDP4_ROUTES Routes;
154 EFI_UDP4_TRANSMIT Transmit;
155 EFI_UDP4_RECEIVE Receive;
156 EFI_UDP4_CANCEL Cancel;
161 BOOLEAN AcceptPromiscuous;
162 BOOLEAN AcceptAnyPort;
163 BOOLEAN AllowDuplicatePort;
166 UINT32 ReceiveTimeout;
167 UINT32 TransmitTimeout;
168 EFI_IPv6_ADDRESS StationAddress;
170 EFI_IPv6_ADDRESS RemoteAddress;
172 } EFI_UDP6_CONFIG_DATA;
176 (EFIAPI *EFI_UDP6_GET_MODE_DATA) (
177 IN struct _EFI_UDP6 *This,
178 OUT EFI_UDP6_CONFIG_DATA *Udp6ConfigData OPTIONAL,
179 OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
180 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
181 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
186 (EFIAPI *EFI_UDP6_CONFIGURE) (
187 IN struct _EFI_UDP6 *This,
188 IN EFI_UDP6_CONFIG_DATA *UdpConfigData OPTIONAL
193 (EFIAPI *EFI_UDP6_GROUPS) (
194 IN struct _EFI_UDP6 *This,
196 IN EFI_IPv6_ADDRESS *MulticastAddress OPTIONAL
200 EFI_IPv6_ADDRESS SourceAddress;
202 EFI_IPv6_ADDRESS DestinationAddress;
203 UINT16 DestinationPort;
204 } EFI_UDP6_SESSION_DATA;
207 UINT32 FragmentLength;
208 VOID *FragmentBuffer;
209 } EFI_UDP6_FRAGMENT_DATA;
213 EFI_EVENT RecycleSignal;
214 EFI_UDP6_SESSION_DATA UdpSession;
216 UINT32 FragmentCount;
217 EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
218 } EFI_UDP6_RECEIVE_DATA;
221 EFI_UDP6_SESSION_DATA *UdpSessionData;
223 UINT32 FragmentCount;
224 EFI_UDP6_FRAGMENT_DATA FragmentTable[1];
225 } EFI_UDP6_TRANSMIT_DATA;
231 EFI_UDP6_RECEIVE_DATA *RxData;
232 EFI_UDP6_TRANSMIT_DATA *TxData;
234 } EFI_UDP6_COMPLETION_TOKEN;
238 (EFIAPI *EFI_UDP6_TRANSMIT) (
239 IN struct _EFI_UDP6 *This,
240 IN EFI_UDP6_COMPLETION_TOKEN *Token
245 (EFIAPI *EFI_UDP6_RECEIVE) (
246 IN struct _EFI_UDP6 *This,
247 IN EFI_UDP6_COMPLETION_TOKEN *Token
252 (EFIAPI *EFI_UDP6_CANCEL)(
253 IN struct _EFI_UDP6 *This,
254 IN EFI_UDP6_COMPLETION_TOKEN *Token OPTIONAL
259 (EFIAPI *EFI_UDP6_POLL) (
260 IN struct _EFI_UDP6 *This
263 typedef struct _EFI_UDP6 {
264 EFI_UDP6_GET_MODE_DATA GetModeData;
265 EFI_UDP6_CONFIGURE Configure;
266 EFI_UDP6_GROUPS Groups;
267 EFI_UDP6_TRANSMIT Transmit;
268 EFI_UDP6_RECEIVE Receive;
269 EFI_UDP6_CANCEL Cancel;
273 #endif /* _EFI_UDP_H */