TianoCore EDK2 master
Loading...
Searching...
No Matches
Dhcp6.h
Go to the documentation of this file.
1
13#ifndef __EFI_DHCP6_PROTOCOL_H__
14#define __EFI_DHCP6_PROTOCOL_H__
15
16#define EFI_DHCP6_PROTOCOL_GUID \
17 { \
18 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b } \
19 }
20
21#define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
22 { \
23 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5 } \
24 }
25
27
28typedef enum {
33 Dhcp6Init = 0x0,
73 Dhcp6Rebinding = 0x8
75
76typedef enum {
130
134#define EFI_DHCP6_IA_TYPE_NA 3
138#define EFI_DHCP6_IA_TYPE_TA 4
139
140#pragma pack(1)
146typedef struct {
150 UINT16 OpCode;
155 UINT16 OpLen;
159 UINT8 Data[1];
161
166typedef struct {
170 UINT32 MessageType : 8;
174 UINT32 TransactionId : 24;
176
181typedef struct {
185 UINT32 Size;
190 UINT32 Length;
191 struct {
199 UINT8 Option[1];
200 } Dhcp6;
202
203#pragma pack()
204
205typedef struct {
209 UINT16 Length;
213 UINT8 Duid[1];
215
216typedef struct {
220 UINT32 Irt;
225 UINT32 Mrc;
231 UINT32 Mrt;
237 UINT32 Mrd;
239
240typedef struct {
254
255typedef struct {
256 UINT16 Type;
257 UINT32 IaId;
259
260typedef struct {
283
284typedef struct {
295
316typedef
318(EFIAPI *EFI_DHCP6_CALLBACK)(
320 IN VOID *Context,
321 IN EFI_DHCP6_STATE CurrentState,
322 IN EFI_DHCP6_EVENT Dhcp6Event,
323 IN EFI_DHCP6_PACKET *Packet,
324 OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL
325 );
326
327typedef struct {
372 BOOLEAN RapidCommit;
379
395typedef
399 IN VOID *Context,
400 IN EFI_DHCP6_PACKET *Packet
401 );
402
419typedef
423 OUT EFI_DHCP6_MODE_DATA *Dhcp6ModeData OPTIONAL,
424 OUT EFI_DHCP6_CONFIG_DATA *Dhcp6ConfigData OPTIONAL
425 );
426
463typedef
465(EFIAPI *EFI_DHCP6_CONFIGURE)(
467 IN EFI_DHCP6_CONFIG_DATA *Dhcp6CfgData OPTIONAL
468 );
469
504typedef
506(EFIAPI *EFI_DHCP6_START)(
508 );
509
567typedef
569(EFIAPI *EFI_DHCP6_INFO_REQUEST)(
571 IN BOOLEAN SendClientId,
572 IN EFI_DHCP6_PACKET_OPTION *OptionRequest,
573 IN UINT32 OptionCount,
574 IN EFI_DHCP6_PACKET_OPTION *OptionList[] OPTIONAL,
575 IN EFI_DHCP6_RETRANSMISSION *Retransmission,
576 IN EFI_EVENT TimeoutEvent OPTIONAL,
577 IN EFI_DHCP6_INFO_CALLBACK ReplyCallback,
578 IN VOID *CallbackContext OPTIONAL
579 );
580
621typedef
623(EFIAPI *EFI_DHCP6_RENEW_REBIND)(
625 IN BOOLEAN RebindRequest
626 );
627
659typedef
661(EFIAPI *EFI_DHCP6_DECLINE)(
663 IN UINT32 AddressCount,
664 IN EFI_IPv6_ADDRESS *Addresses
665 );
666
697typedef
699(EFIAPI *EFI_DHCP6_RELEASE)(
701 IN UINT32 AddressCount,
702 IN EFI_IPv6_ADDRESS *Addresses
703 );
704
722typedef
724(EFIAPI *EFI_DHCP6_STOP)(
726 );
727
752typedef
754(EFIAPI *EFI_DHCP6_PARSE)(
756 IN EFI_DHCP6_PACKET *Packet,
757 IN OUT UINT32 *OptionCount,
758 OUT EFI_DHCP6_PACKET_OPTION *PacketOptionList[] OPTIONAL
759 );
760
766 EFI_DHCP6_GET_MODE_DATA GetModeData;
767 EFI_DHCP6_CONFIGURE Configure;
768 EFI_DHCP6_START Start;
769 EFI_DHCP6_INFO_REQUEST InfoRequest;
770 EFI_DHCP6_RENEW_REBIND RenewRebind;
771 EFI_DHCP6_DECLINE Decline;
772 EFI_DHCP6_RELEASE Release;
773 EFI_DHCP6_STOP Stop;
774 EFI_DHCP6_PARSE Parse;
775};
776
777extern EFI_GUID gEfiDhcp6ProtocolGuid;
778extern EFI_GUID gEfiDhcp6ServiceBindingProtocolGuid;
779
780#endif
EFI_STATUS(EFIAPI * EFI_DHCP6_CALLBACK)(IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_STATE CurrentState, IN EFI_DHCP6_EVENT Dhcp6Event, IN EFI_DHCP6_PACKET *Packet, OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL)
Definition: Dhcp6.h:318
EFI_STATUS(EFIAPI * EFI_DHCP6_CONFIGURE)(IN EFI_DHCP6_PROTOCOL *This, IN EFI_DHCP6_CONFIG_DATA *Dhcp6CfgData OPTIONAL)
Definition: Dhcp6.h:465
EFI_STATUS(EFIAPI * EFI_DHCP6_RENEW_REBIND)(IN EFI_DHCP6_PROTOCOL *This, IN BOOLEAN RebindRequest)
Definition: Dhcp6.h:623
EFI_STATUS(EFIAPI * EFI_DHCP6_DECLINE)(IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses)
Definition: Dhcp6.h:661
EFI_STATUS(EFIAPI * EFI_DHCP6_RELEASE)(IN EFI_DHCP6_PROTOCOL *This, IN UINT32 AddressCount, IN EFI_IPv6_ADDRESS *Addresses)
Definition: Dhcp6.h:699
EFI_STATUS(EFIAPI * EFI_DHCP6_INFO_REQUEST)(IN EFI_DHCP6_PROTOCOL *This, IN BOOLEAN SendClientId, IN EFI_DHCP6_PACKET_OPTION *OptionRequest, IN UINT32 OptionCount, IN EFI_DHCP6_PACKET_OPTION *OptionList[] OPTIONAL, IN EFI_DHCP6_RETRANSMISSION *Retransmission, IN EFI_EVENT TimeoutEvent OPTIONAL, IN EFI_DHCP6_INFO_CALLBACK ReplyCallback, IN VOID *CallbackContext OPTIONAL)
Definition: Dhcp6.h:569
EFI_DHCP6_EVENT
Definition: Dhcp6.h:76
@ Dhcp6SendDecline
Definition: Dhcp6.h:108
@ Dhcp6RcvdReply
Definition: Dhcp6.h:99
@ Dhcp6RcvdAdvertise
Definition: Dhcp6.h:85
@ Dhcp6SendRequest
Definition: Dhcp6.h:95
@ Dhcp6EnterRenewing
Definition: Dhcp6.h:123
@ Dhcp6SendRelease
Definition: Dhcp6.h:118
@ Dhcp6SendConfirm
Definition: Dhcp6.h:113
@ Dhcp6SendSolicit
Definition: Dhcp6.h:81
@ Dhcp6EnterRebinding
Definition: Dhcp6.h:128
@ Dhcp6SelectAdvertise
Definition: Dhcp6.h:90
@ Dhcp6RcvdReconfigure
Definition: Dhcp6.h:103
EFI_STATUS(EFIAPI * EFI_DHCP6_GET_MODE_DATA)(IN EFI_DHCP6_PROTOCOL *This, OUT EFI_DHCP6_MODE_DATA *Dhcp6ModeData OPTIONAL, OUT EFI_DHCP6_CONFIG_DATA *Dhcp6ConfigData OPTIONAL)
Definition: Dhcp6.h:421
EFI_STATUS(EFIAPI * EFI_DHCP6_INFO_CALLBACK)(IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_PACKET *Packet)
Definition: Dhcp6.h:397
EFI_DHCP6_STATE
Definition: Dhcp6.h:28
@ Dhcp6Declining
Definition: Dhcp6.h:49
@ Dhcp6Requesting
Definition: Dhcp6.h:43
@ Dhcp6Releasing
Definition: Dhcp6.h:59
@ Dhcp6Bound
Definition: Dhcp6.h:63
@ Dhcp6Selecting
Definition: Dhcp6.h:38
@ Dhcp6Rebinding
Definition: Dhcp6.h:73
@ Dhcp6Renewing
Definition: Dhcp6.h:68
@ Dhcp6Init
Definition: Dhcp6.h:33
@ Dhcp6Confirming
Definition: Dhcp6.h:54
EFI_STATUS(EFIAPI * EFI_DHCP6_STOP)(IN EFI_DHCP6_PROTOCOL *This)
Definition: Dhcp6.h:724
EFI_STATUS(EFIAPI * EFI_DHCP6_PARSE)(IN EFI_DHCP6_PROTOCOL *This, IN EFI_DHCP6_PACKET *Packet, IN OUT UINT32 *OptionCount, OUT EFI_DHCP6_PACKET_OPTION *PacketOptionList[] OPTIONAL)
Definition: Dhcp6.h:754
EFI_STATUS(EFIAPI * EFI_DHCP6_START)(IN EFI_DHCP6_PROTOCOL *This)
Definition: Dhcp6.h:506
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
BOOLEAN ReconfigureAccept
Definition: Dhcp6.h:366
EFI_DHCP6_IA_DESCRIPTOR IaDescriptor
Definition: Dhcp6.h:352
BOOLEAN RapidCommit
Definition: Dhcp6.h:372
UINT32 OptionCount
Definition: Dhcp6.h:340
EFI_DHCP6_RETRANSMISSION * SolicitRetransmission
Definition: Dhcp6.h:377
VOID * CallbackContext
Definition: Dhcp6.h:336
EFI_EVENT IaInfoEvent
Definition: Dhcp6.h:360
EFI_DHCP6_CALLBACK Dhcp6Callback
Definition: Dhcp6.h:332
EFI_DHCP6_PACKET_OPTION ** OptionList
Definition: Dhcp6.h:348
UINT16 Length
Definition: Dhcp6.h:209
UINT32 TransactionId
Definition: Dhcp6.h:174
UINT32 MessageType
Definition: Dhcp6.h:170
EFI_IPv6_ADDRESS IpAddress
Definition: Dhcp6.h:244
UINT32 ValidLifetime
Definition: Dhcp6.h:252
UINT32 PreferredLifetime
Definition: Dhcp6.h:248
UINT16 Type
Type for an IA.
Definition: Dhcp6.h:256
UINT32 IaId
The identifier for an IA.
Definition: Dhcp6.h:257
EFI_DHCP6_PACKET * ReplyPacket
Definition: Dhcp6.h:272
EFI_DHCP6_IA_DESCRIPTOR Descriptor
Definition: Dhcp6.h:264
EFI_DHCP6_STATE State
Definition: Dhcp6.h:268
UINT32 IaAddressCount
Definition: Dhcp6.h:276
EFI_DHCP6_DUID * ClientId
Definition: Dhcp6.h:288
EFI_DHCP6_IA * Ia
Definition: Dhcp6.h:293
EFI_DHCP6_HEADER Header
Definition: Dhcp6.h:195
UINT32 Size
Definition: Dhcp6.h:185
UINT32 Length
Definition: Dhcp6.h:190
Definition: Base.h:213