TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip6.h
Go to the documentation of this file.
1
21#ifndef __EFI_IP6_PROTOCOL_H__
22#define __EFI_IP6_PROTOCOL_H__
23
25
26#define EFI_IP6_SERVICE_BINDING_PROTOCOL_GUID \
27 { \
28 0xec835dd3, 0xfe0f, 0x617b, {0xa6, 0x21, 0xb3, 0x50, 0xc3, 0xe1, 0x33, 0x88 } \
29 }
30
31#define EFI_IP6_PROTOCOL_GUID \
32 { \
33 0x2c8759d5, 0x5c2d, 0x66ef, {0x92, 0x5f, 0xb6, 0x6c, 0x10, 0x19, 0x57, 0xe2 } \
34 }
35
37
42typedef struct {
56
61typedef struct {
73 EFI_IP6_ADDRESS_PAIR AddressPairs[1];
75
80#define ICMP_V6_DEST_UNREACHABLE 0x1
81#define ICMP_V6_PACKET_TOO_BIG 0x2
82#define ICMP_V6_TIME_EXCEEDED 0x3
83#define ICMP_V6_PARAMETER_PROBLEM 0x4
85
90#define ICMP_V6_ECHO_REQUEST 0x80
91#define ICMP_V6_ECHO_REPLY 0x81
92#define ICMP_V6_LISTENER_QUERY 0x82
93#define ICMP_V6_LISTENER_REPORT 0x83
94#define ICMP_V6_LISTENER_DONE 0x84
95#define ICMP_V6_ROUTER_SOLICIT 0x85
96#define ICMP_V6_ROUTER_ADVERTISE 0x86
97#define ICMP_V6_NEIGHBOR_SOLICIT 0x87
98#define ICMP_V6_NEIGHBOR_ADVERTISE 0x88
99#define ICMP_V6_REDIRECT 0x89
100#define ICMP_V6_LISTENER_REPORT_2 0x8F
102
107#define ICMP_V6_NO_ROUTE_TO_DEST 0x0
108#define ICMP_V6_COMM_PROHIBITED 0x1
109#define ICMP_V6_BEYOND_SCOPE 0x2
110#define ICMP_V6_ADDR_UNREACHABLE 0x3
111#define ICMP_V6_PORT_UNREACHABLE 0x4
112#define ICMP_V6_SOURCE_ADDR_FAILED 0x5
113#define ICMP_V6_ROUTE_REJECTED 0x6
115
120#define ICMP_V6_TIMEOUT_HOP_LIMIT 0x0
121#define ICMP_V6_TIMEOUT_REASSEMBLE 0x1
123
128#define ICMP_V6_ERRONEOUS_HEADER 0x0
129#define ICMP_V6_UNRECOGNIZE_NEXT_HDR 0x1
130#define ICMP_V6_UNRECOGNIZE_OPTION 0x2
132
137typedef struct {
197 UINT8 HopLimit;
202 UINT32 FlowLabel;
216
220typedef struct {
224
229typedef struct {
245
249typedef enum {
280
286typedef struct {
291
297typedef struct {
298 UINT8 Type;
299 UINT8 Code;
301
305typedef struct {
311 BOOLEAN IsStarted;
388
394#pragma pack(1)
395typedef struct _EFI_IP6_HEADER {
396 UINT8 TrafficClassH : 4;
397 UINT8 Version : 4;
398 UINT8 FlowLabelH : 4;
399 UINT8 TrafficClassL : 4;
400 UINT16 FlowLabelL;
401 UINT16 PayloadLength;
402 UINT8 NextHeader;
403 UINT8 HopLimit;
404 EFI_IPv6_ADDRESS SourceAddress;
405 EFI_IPv6_ADDRESS DestinationAddress;
407#pragma pack()
408
418
422typedef struct _EFI_IP6_RECEIVE_DATA {
458
465 UINT8 Protocol;
466 UINT8 HopLimit;
467 UINT32 FlowLabel;
469
493 VOID *ExtHdrs;
512
517typedef struct {
537 union {
546 } Packet;
548
566typedef
568(EFIAPI *EFI_IP6_GET_MODE_DATA)(
569 IN EFI_IP6_PROTOCOL *This,
570 OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
573 );
574
621typedef
623(EFIAPI *EFI_IP6_CONFIGURE)(
624 IN EFI_IP6_PROTOCOL *This,
625 IN EFI_IP6_CONFIG_DATA *Ip6ConfigData OPTIONAL
626 );
627
658typedef
660(EFIAPI *EFI_IP6_GROUPS)(
661 IN EFI_IP6_PROTOCOL *This,
662 IN BOOLEAN JoinFlag,
663 IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL
664 );
665
707typedef
709(EFIAPI *EFI_IP6_ROUTES)(
710 IN EFI_IP6_PROTOCOL *This,
711 IN BOOLEAN DeleteRoute,
712 IN EFI_IPv6_ADDRESS *Destination OPTIONAL,
713 IN UINT8 PrefixLength,
714 IN EFI_IPv6_ADDRESS *GatewayAddress OPTIONAL
715 );
716
763typedef
765(EFIAPI *EFI_IP6_NEIGHBORS)(
766 IN EFI_IP6_PROTOCOL *This,
767 IN BOOLEAN DeleteFlag,
768 IN EFI_IPv6_ADDRESS *TargetIp6Address,
769 IN EFI_MAC_ADDRESS *TargetLinkAddress,
770 IN UINT32 Timeout,
771 IN BOOLEAN Override
772 );
773
816typedef
818(EFIAPI *EFI_IP6_TRANSMIT)(
819 IN EFI_IP6_PROTOCOL *This,
821 );
822
854typedef
856(EFIAPI *EFI_IP6_RECEIVE)(
857 IN EFI_IP6_PROTOCOL *This,
859 );
860
889typedef
891(EFIAPI *EFI_IP6_CANCEL)(
892 IN EFI_IP6_PROTOCOL *This,
894 );
895
921typedef
923(EFIAPI *EFI_IP6_POLL)(
924 IN EFI_IP6_PROTOCOL *This
925 );
926
932 EFI_IP6_GET_MODE_DATA GetModeData;
933 EFI_IP6_CONFIGURE Configure;
934 EFI_IP6_GROUPS Groups;
935 EFI_IP6_ROUTES Routes;
936 EFI_IP6_NEIGHBORS Neighbors;
937 EFI_IP6_TRANSMIT Transmit;
938 EFI_IP6_RECEIVE Receive;
939 EFI_IP6_CANCEL Cancel;
940 EFI_IP6_POLL Poll;
941};
942
943extern EFI_GUID gEfiIp6ServiceBindingProtocolGuid;
944extern EFI_GUID gEfiIp6ProtocolGuid;
945
946#endif
struct _EFI_IP6_TRANSMIT_DATA EFI_IP6_TRANSMIT_DATA
struct _EFI_IP6_FRAGMENT_DATA EFI_IP6_FRAGMENT_DATA
EFI_STATUS(EFIAPI * EFI_IP6_CANCEL)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token OPTIONAL)
Definition: Ip6.h:891
EFI_STATUS(EFIAPI * EFI_IP6_GROUPS)(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN JoinFlag, IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL)
Definition: Ip6.h:660
struct _EFI_IP6_OVERRIDE_DATA EFI_IP6_OVERRIDE_DATA
EFI_STATUS(EFIAPI * EFI_IP6_ROUTES)(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN DeleteRoute, IN EFI_IPv6_ADDRESS *Destination OPTIONAL, IN UINT8 PrefixLength, IN EFI_IPv6_ADDRESS *GatewayAddress OPTIONAL)
Definition: Ip6.h:709
EFI_STATUS(EFIAPI * EFI_IP6_GET_MODE_DATA)(IN EFI_IP6_PROTOCOL *This, OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL)
Definition: Ip6.h:568
EFI_IP6_NEIGHBOR_STATE
Definition: Ip6.h:249
@ EfiNeighborDelay
Definition: Ip6.h:272
@ EfiNeighborInComplete
Definition: Ip6.h:256
@ EfiNeighborProbe
Definition: Ip6.h:278
@ EfiNeighborReachable
Definition: Ip6.h:261
@ EfiNeighborStale
Definition: Ip6.h:267
EFI_STATUS(EFIAPI * EFI_IP6_POLL)(IN EFI_IP6_PROTOCOL *This)
Definition: Ip6.h:923
EFI_STATUS(EFIAPI * EFI_IP6_CONFIGURE)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_CONFIG_DATA *Ip6ConfigData OPTIONAL)
Definition: Ip6.h:623
EFI_STATUS(EFIAPI * EFI_IP6_TRANSMIT)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
Definition: Ip6.h:818
struct _EFI_IP6_HEADER EFI_IP6_HEADER
struct _EFI_IP6_RECEIVE_DATA EFI_IP6_RECEIVE_DATA
EFI_STATUS(EFIAPI * EFI_IP6_RECEIVE)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
Definition: Ip6.h:856
EFI_STATUS(EFIAPI * EFI_IP6_NEIGHBORS)(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN DeleteFlag, IN EFI_IPv6_ADDRESS *TargetIp6Address, IN EFI_MAC_ADDRESS *TargetLinkAddress, IN UINT32 Timeout, IN BOOLEAN Override)
Definition: Ip6.h:765
#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
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
VOID * FragmentBuffer
Pointer to fragment data. This field may not be set to NULL.
Definition: Ip6.h:416
UINT32 FragmentLength
Length of fragment data. This field may not be set to zero.
Definition: Ip6.h:415
UINT8 HopLimit
Hop-Limit override.
Definition: Ip6.h:466
UINT32 FlowLabel
Flow-Label override.
Definition: Ip6.h:467
UINT8 Protocol
Protocol type override.
Definition: Ip6.h:465
EFI_TIME TimeStamp
Definition: Ip6.h:427
UINT32 HeaderLength
Definition: Ip6.h:437
UINT32 FragmentCount
Definition: Ip6.h:452
EFI_IP6_HEADER * Header
Definition: Ip6.h:443
UINT32 DataLength
Definition: Ip6.h:448
EFI_EVENT RecycleSignal
Definition: Ip6.h:432
EFI_IP6_FRAGMENT_DATA FragmentTable[1]
Definition: Ip6.h:456
UINT32 DataLength
Definition: Ip6.h:502
UINT32 ExtHdrsLength
Definition: Ip6.h:487
EFI_IP6_FRAGMENT_DATA FragmentTable[1]
Definition: Ip6.h:510
EFI_IP6_OVERRIDE_DATA * OverrideData
Definition: Ip6.h:482
UINT32 FragmentCount
Definition: Ip6.h:506
EFI_IPv6_ADDRESS DestinationAddress
Definition: Ip6.h:478
UINT8 PrefixLength
The length of the prefix associated with the Address.
Definition: Ip6.h:222
EFI_IPv6_ADDRESS Address
The IPv6 address.
Definition: Ip6.h:221
UINT8 PrefixLength
Definition: Ip6.h:54
EFI_HANDLE InstanceHandle
Definition: Ip6.h:46
EFI_IPv6_ADDRESS Ip6Address
Definition: Ip6.h:50
EFI_STATUS Status
Definition: Ip6.h:536
EFI_EVENT Event
Definition: Ip6.h:522
EFI_IP6_RECEIVE_DATA * RxData
Definition: Ip6.h:541
EFI_IP6_TRANSMIT_DATA * TxData
Definition: Ip6.h:545
BOOLEAN AcceptIcmpErrors
Definition: Ip6.h:157
UINT8 TrafficClass
Definition: Ip6.h:193
UINT32 FlowLabel
Definition: Ip6.h:202
UINT32 ReceiveTimeout
Definition: Ip6.h:208
UINT8 DefaultProtocol
Definition: Ip6.h:144
UINT8 HopLimit
Definition: Ip6.h:197
BOOLEAN AcceptAnyProtocol
Definition: Ip6.h:152
EFI_IPv6_ADDRESS DestinationAddress
Definition: Ip6.h:168
EFI_IPv6_ADDRESS StationAddress
Definition: Ip6.h:188
UINT32 TransmitTimeout
Definition: Ip6.h:214
BOOLEAN AcceptPromiscuous
Definition: Ip6.h:163
UINT8 Type
The type of ICMP message.
Definition: Ip6.h:298
UINT8 Code
The code of the ICMP message.
Definition: Ip6.h:299
UINT32 MaxPacketSize
Definition: Ip6.h:315
EFI_IP6_NEIGHBOR_CACHE * NeighborCache
Definition: Ip6.h:366
UINT32 IcmpTypeCount
Definition: Ip6.h:380
EFI_IP6_ICMP_TYPE * IcmpTypeList
Definition: Ip6.h:386
UINT32 RouteCount
Definition: Ip6.h:352
EFI_IP6_ADDRESS_INFO * AddressList
Definition: Ip6.h:336
EFI_IP6_ROUTE_TABLE * RouteTable
Definition: Ip6.h:356
UINT32 NeighborCount
Definition: Ip6.h:361
UINT32 PrefixCount
Definition: Ip6.h:371
BOOLEAN IsStarted
Definition: Ip6.h:311
EFI_IPv6_ADDRESS * GroupTable
Definition: Ip6.h:347
EFI_IP6_CONFIG_DATA ConfigData
Definition: Ip6.h:319
EFI_IP6_ADDRESS_INFO * PrefixTable
Definition: Ip6.h:376
UINT32 GroupCount
Definition: Ip6.h:341
UINT32 AddressCount
Definition: Ip6.h:330
BOOLEAN IsConfigured
Definition: Ip6.h:326
EFI_IP6_NEIGHBOR_STATE State
State of this neighbor cache entry.
Definition: Ip6.h:289
EFI_MAC_ADDRESS LinkAddress
Link-layer address of the neighbor.
Definition: Ip6.h:288
EFI_IPv6_ADDRESS Neighbor
The on-link unicast/anycast IP address of the neighbor.
Definition: Ip6.h:287
UINT8 PrefixLength
Definition: Ip6.h:243
EFI_IPv6_ADDRESS Gateway
Definition: Ip6.h:235
EFI_IPv6_ADDRESS Destination
Definition: Ip6.h:239
EFI_HANDLE DriverHandle
Definition: Ip6.h:65
UINT32 AddressCount
Definition: Ip6.h:69
Definition: Base.h:213