|
@@ -0,0 +1,459 @@
|
|
|
+#ifndef _EFI_IP_H
|
|
|
+#define _EFI_IP_H
|
|
|
+
|
|
|
+/*++
|
|
|
+Copyright (c) 2013 Intel Corporation
|
|
|
+
|
|
|
+--*/
|
|
|
+
|
|
|
+#define EFI_IP4_SERVICE_BINDING_PROTOCOL \
|
|
|
+ {0xc51711e7,0xb4bf,0x404a,{0xbf,0xb8,0x0a,0x04, 0x8e,0xf1,0xff,0xe4}}
|
|
|
+
|
|
|
+#define EFI_IP4_PROTOCOL \
|
|
|
+ {0x41d94cd2,0x35b6,0x455a,{0x82,0x58,0xd4,0xe5,0x13,0x34,0xaa,0xdd}}
|
|
|
+
|
|
|
+#define EFI_IP6_SERVICE_BINDING_PROTOCOL \
|
|
|
+ {0xec835dd3,0xfe0f,0x617b,{0xa6,0x21,0xb3,0x50,0xc3,0xe1,0x33,0x88}}
|
|
|
+
|
|
|
+#define EFI_IP6_PROTOCOL \
|
|
|
+ {0x2c8759d5,0x5c2d,0x66ef,{0x92,0x5f,0xb6,0x6c,0x10,0x19,0x57,0xe2}}
|
|
|
+
|
|
|
+INTERFACE_DECL(_EFI_IP4);
|
|
|
+INTERFACE_DECL(_EFI_IP6);
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_HANDLE InstanceHandle;
|
|
|
+ EFI_IPv4_ADDRESS Ip4Address;
|
|
|
+ EFI_IPv4_ADDRESS SubnetMask;
|
|
|
+} EFI_IP4_ADDRESS_PAIR;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_HANDLE DriverHandle;
|
|
|
+ UINT32 AddressCount;
|
|
|
+ EFI_IP4_ADDRESS_PAIR AddressPairs[1];
|
|
|
+} EFI_IP4_VARIABLE_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT8 DefaultProtocol;
|
|
|
+ BOOLEAN AcceptAnyProtocol;
|
|
|
+ BOOLEAN AcceptIcmpErrors;
|
|
|
+ BOOLEAN AcceptBroadcast;
|
|
|
+ BOOLEAN AcceptPromiscuous;
|
|
|
+ BOOLEAN UseDefaultAddress;
|
|
|
+ EFI_IPv4_ADDRESS StationAddress;
|
|
|
+ EFI_IPv4_ADDRESS SubnetMask;
|
|
|
+ UINT8 TypeOfService;
|
|
|
+ UINT8 TimeToLive;
|
|
|
+ BOOLEAN DoNotFragment;
|
|
|
+ BOOLEAN RawData;
|
|
|
+ UINT32 ReceiveTimeout;
|
|
|
+ UINT32 TransmitTimeout;
|
|
|
+} EFI_IP4_CONFIG_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv4_ADDRESS SubnetAddress;
|
|
|
+ EFI_IPv4_ADDRESS SubnetMask;
|
|
|
+ EFI_IPv4_ADDRESS GatewayAddress;
|
|
|
+} EFI_IP4_ROUTE_TABLE;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT8 Type;
|
|
|
+ UINT8 Code;
|
|
|
+} EFI_IP4_ICMP_TYPE;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ BOOLEAN IsStarted;
|
|
|
+ UINT32 MaxPacketSize;
|
|
|
+ EFI_IP4_CONFIG_DATA ConfigData;
|
|
|
+ BOOLEAN IsConfigured;
|
|
|
+ UINT32 GroupCount;
|
|
|
+ EFI_IPv4_ADDRESS *GroupTable;
|
|
|
+ UINT32 RouteCount;
|
|
|
+ EFI_IP4_ROUTE_TABLE *RouteTable;
|
|
|
+ UINT32 IcmpTypeCount;
|
|
|
+ EFI_IP4_ICMP_TYPE *IcmpTypeList;
|
|
|
+} EFI_IP4_MODE_DATA;
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_GET_MODE_DATA) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,
|
|
|
+ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
|
|
|
+ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_CONFIGURE) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_GROUPS) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN BOOLEAN JoinFlag,
|
|
|
+ IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_ROUTES) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN BOOLEAN DeleteRoute,
|
|
|
+ IN EFI_IPv4_ADDRESS *SubnetAddress,
|
|
|
+ IN EFI_IPv4_ADDRESS *SubnetMask,
|
|
|
+ IN EFI_IPv4_ADDRESS *GatewayAddress
|
|
|
+ );
|
|
|
+
|
|
|
+#pragma pack(1)
|
|
|
+typedef struct {
|
|
|
+ UINT8 HeaderLength:4;
|
|
|
+ UINT8 Version:4;
|
|
|
+ UINT8 TypeOfService;
|
|
|
+ UINT16 TotalLength;
|
|
|
+ UINT16 Identification;
|
|
|
+ UINT16 Fragmentation;
|
|
|
+ UINT8 TimeToLive;
|
|
|
+ UINT8 Protocol;
|
|
|
+ UINT16 Checksum;
|
|
|
+ EFI_IPv4_ADDRESS SourceAddress;
|
|
|
+ EFI_IPv4_ADDRESS DestinationAddress;
|
|
|
+} EFI_IP4_HEADER;
|
|
|
+#pragma pack()
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT32 FragmentLength;
|
|
|
+ VOID *FragmentBuffer;
|
|
|
+} EFI_IP4_FRAGMENT_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_TIME TimeStamp;
|
|
|
+ EFI_EVENT RecycleSignal;
|
|
|
+ UINT32 HeaderLength;
|
|
|
+ EFI_IP4_HEADER *Header;
|
|
|
+ UINT32 OptionsLength;
|
|
|
+ VOID *Options;
|
|
|
+ UINT32 DataLength;
|
|
|
+ UINT32 FragmentCount;
|
|
|
+ EFI_IP4_FRAGMENT_DATA FragmentTable[1];
|
|
|
+} EFI_IP4_RECEIVE_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv4_ADDRESS SourceAddress;
|
|
|
+ EFI_IPv4_ADDRESS GatewayAddress;
|
|
|
+ UINT8 Protocol;
|
|
|
+ UINT8 TypeOfService;
|
|
|
+ UINT8 TimeToLive;
|
|
|
+ BOOLEAN DoNotFragment;
|
|
|
+} EFI_IP4_OVERRIDE_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv4_ADDRESS DestinationAddress;
|
|
|
+ EFI_IP4_OVERRIDE_DATA *OverrideData;
|
|
|
+ UINT32 OptionsLength;
|
|
|
+ VOID *OptionsBuffer;
|
|
|
+ UINT32 TotalDataLength;
|
|
|
+ UINT32 FragmentCount;
|
|
|
+ EFI_IP4_FRAGMENT_DATA FragmentTable[1];
|
|
|
+} EFI_IP4_TRANSMIT_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_EVENT Event;
|
|
|
+ EFI_STATUS Status;
|
|
|
+ union {
|
|
|
+ EFI_IP4_RECEIVE_DATA *RxData;
|
|
|
+ EFI_IP4_TRANSMIT_DATA *TxData;
|
|
|
+ } Packet;
|
|
|
+} EFI_IP4_COMPLETION_TOKEN;
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_TRANSMIT) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN EFI_IP4_COMPLETION_TOKEN *Token
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_RECEIVE) (
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN EFI_IP4_COMPLETION_TOKEN *Token
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_CANCEL)(
|
|
|
+ IN struct _EFI_IP4 *This,
|
|
|
+ IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP4_POLL) (
|
|
|
+ IN struct _EFI_IP4 *This
|
|
|
+ );
|
|
|
+
|
|
|
+typedef struct _EFI_IP4 {
|
|
|
+ EFI_IP4_GET_MODE_DATA GetModeData;
|
|
|
+ EFI_IP4_CONFIGURE Configure;
|
|
|
+ EFI_IP4_GROUPS Groups;
|
|
|
+ EFI_IP4_ROUTES Routes;
|
|
|
+ EFI_IP4_TRANSMIT Transmit;
|
|
|
+ EFI_IP4_RECEIVE Receive;
|
|
|
+ EFI_IP4_CANCEL Cancel;
|
|
|
+ EFI_IP4_POLL Poll;
|
|
|
+} EFI_IP4;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT8 DefaultProtocol;
|
|
|
+ BOOLEAN AcceptAnyProtocol;
|
|
|
+ BOOLEAN AcceptIcmpErrors;
|
|
|
+ BOOLEAN AcceptPromiscuous;
|
|
|
+ EFI_IPv6_ADDRESS DestinationAddress;
|
|
|
+ EFI_IPv6_ADDRESS StationAddress;
|
|
|
+ UINT8 TrafficClass;
|
|
|
+ UINT8 HopLimit;
|
|
|
+ UINT32 FlowLabel;
|
|
|
+ UINT32 ReceiveTimeout;
|
|
|
+ UINT32 TransmitTimeout;
|
|
|
+} EFI_IP6_CONFIG_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv6_ADDRESS Address;
|
|
|
+ UINT8 PrefixLength;
|
|
|
+} EFI_IP6_ADDRESS_INFO;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv6_ADDRESS Gateway;
|
|
|
+ EFI_IPv6_ADDRESS Destination;
|
|
|
+ UINT8 PrefixLength;
|
|
|
+} EFI_IP6_ROUTE_TABLE;
|
|
|
+
|
|
|
+typedef enum {
|
|
|
+ EfiNeighborInComplete,
|
|
|
+ EfiNeighborReachable,
|
|
|
+ EfiNeighborStale,
|
|
|
+ EfiNeighborDelay,
|
|
|
+ EfiNeighborProbe
|
|
|
+} EFI_IP6_NEIGHBOR_STATE;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_IPv6_ADDRESS Neighbor;
|
|
|
+ EFI_MAC_ADDRESS LinkAddress;
|
|
|
+ EFI_IP6_NEIGHBOR_STATE State;
|
|
|
+} EFI_IP6_NEIGHBOR_CACHE;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ UINT8 Type;
|
|
|
+ UINT8 Code;
|
|
|
+} EFI_IP6_ICMP_TYPE;
|
|
|
+
|
|
|
+//***********************************************************
|
|
|
+// ICMPv6 type definitions for error messages
|
|
|
+//***********************************************************
|
|
|
+#define ICMP_V6_DEST_UNREACHABLE 0x1
|
|
|
+#define ICMP_V6_PACKET_TOO_BIG 0x2
|
|
|
+#define ICMP_V6_TIME_EXCEEDED 0x3
|
|
|
+#define ICMP_V6_PARAMETER_PROBLEM 0x4
|
|
|
+
|
|
|
+//***********************************************************
|
|
|
+// ICMPv6 type definition for informational messages
|
|
|
+//***********************************************************
|
|
|
+#define ICMP_V6_ECHO_REQUEST 0x80
|
|
|
+#define ICMP_V6_ECHO_REPLY 0x81
|
|
|
+#define ICMP_V6_LISTENER_QUERY 0x82
|
|
|
+#define ICMP_V6_LISTENER_REPORT 0x83
|
|
|
+#define ICMP_V6_LISTENER_DONE 0x84
|
|
|
+#define ICMP_V6_ROUTER_SOLICIT 0x85
|
|
|
+#define ICMP_V6_ROUTER_ADVERTISE 0x86
|
|
|
+#define ICMP_V6_NEIGHBOR_SOLICIT 0x87
|
|
|
+#define ICMP_V6_NEIGHBOR_ADVERTISE 0x88
|
|
|
+#define ICMP_V6_REDIRECT 0x89
|
|
|
+#define ICMP_V6_LISTENER_REPORT_2 0x8F
|
|
|
+
|
|
|
+//***********************************************************
|
|
|
+// ICMPv6 code definitions for ICMP_V6_DEST_UNREACHABLE
|
|
|
+//***********************************************************
|
|
|
+#define ICMP_V6_NO_ROUTE_TO_DEST 0x0
|
|
|
+#define ICMP_V6_COMM_PROHIBITED 0x1
|
|
|
+#define ICMP_V6_BEYOND_SCOPE 0x2
|
|
|
+#define ICMP_V6_ADDR_UNREACHABLE 0x3
|
|
|
+#define ICMP_V6_PORT_UNREACHABLE 0x4
|
|
|
+#define ICMP_V6_SOURCE_ADDR_FAILED 0x5
|
|
|
+#define ICMP_V6_ROUTE_REJECTED 0x6
|
|
|
+
|
|
|
+//***********************************************************
|
|
|
+// ICMPv6 code definitions for ICMP_V6_TIME_EXCEEDED
|
|
|
+//***********************************************************
|
|
|
+#define ICMP_V6_TIMEOUT_HOP_LIMIT 0x0
|
|
|
+#define ICMP_V6_TIMEOUT_REASSEMBLE 0x1
|
|
|
+
|
|
|
+//***********************************************************
|
|
|
+// ICMPv6 code definitions for ICMP_V6_PARAMETER_PROBLEM
|
|
|
+//***********************************************************
|
|
|
+#define ICMP_V6_ERRONEOUS_HEADER 0x0
|
|
|
+#define ICMP_V6_UNRECOGNIZE_NEXT_HDR 0x1
|
|
|
+#define ICMP_V6_UNRECOGNIZE_OPTION 0x2
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ BOOLEAN IsStarted;
|
|
|
+ UINT32 MaxPacketSize;
|
|
|
+ EFI_IP6_CONFIG_DATA ConfigData;
|
|
|
+ BOOLEAN IsConfigured;
|
|
|
+ UINT32 AddressCount;
|
|
|
+ EFI_IP6_ADDRESS_INFO *AddressList;
|
|
|
+ UINT32 GroupCount;
|
|
|
+ EFI_IPv6_ADDRESS *GroupTable;
|
|
|
+ UINT32 RouteCount;
|
|
|
+ EFI_IP6_ROUTE_TABLE *RouteTable;
|
|
|
+ UINT32 NeighborCount;
|
|
|
+ EFI_IP6_NEIGHBOR_CACHE *NeighborCache;
|
|
|
+ UINT32 PrefixCount;
|
|
|
+ EFI_IP6_ADDRESS_INFO *PrefixTable;
|
|
|
+ UINT32 IcmpTypeCount;
|
|
|
+ EFI_IP6_ICMP_TYPE *IcmpTypeList;
|
|
|
+} EFI_IP6_MODE_DATA;
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_GET_MODE_DATA) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL,
|
|
|
+ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,
|
|
|
+ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_CONFIGURE) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN EFI_IP6_CONFIG_DATA *Ip6ConfigData OPTIONAL
|
|
|
+ );
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_GROUPS) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN BOOLEAN JoinFlag,
|
|
|
+ IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_ROUTES) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN BOOLEAN DeleteRoute,
|
|
|
+ IN EFI_IPv6_ADDRESS *Destination OPTIONAL,
|
|
|
+ IN UINT8 PrefixLength,
|
|
|
+ IN EFI_IPv6_ADDRESS *GatewayAddress OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_NEIGHBORS) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN BOOLEAN DeleteFlag,
|
|
|
+ IN EFI_IPv6_ADDRESS *TargetIp6Address,
|
|
|
+ IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL,
|
|
|
+ IN UINT32 Timeout,
|
|
|
+ IN BOOLEAN Override
|
|
|
+ );
|
|
|
+
|
|
|
+typedef struct _EFI_IP6_FRAGMENT_DATA {
|
|
|
+ UINT32 FragmentLength;
|
|
|
+ VOID *FragmentBuffer;
|
|
|
+} EFI_IP6_FRAGMENT_DATA;
|
|
|
+
|
|
|
+typedef struct _EFI_IP6_OVERRIDE_DATA {
|
|
|
+ UINT8 Protocol;
|
|
|
+ UINT8 HopLimit;
|
|
|
+ UINT32 FlowLabel;
|
|
|
+} EFI_IP6_OVERRIDE_DATA;
|
|
|
+
|
|
|
+typedef struct _EFI_IP6_TRANSMIT_DATA {
|
|
|
+ EFI_IPv6_ADDRESS DestinationAddress;
|
|
|
+ EFI_IP6_OVERRIDE_DATA *OverrideData;
|
|
|
+ UINT32 ExtHdrsLength;
|
|
|
+ VOID *ExtHdrs;
|
|
|
+ UINT8 NextHeader;
|
|
|
+ UINT32 DataLength;
|
|
|
+ UINT32 FragmentCount;
|
|
|
+ EFI_IP6_FRAGMENT_DATA FragmentTable[1];
|
|
|
+} EFI_IP6_TRANSMIT_DATA;
|
|
|
+
|
|
|
+#pragma pack(1)
|
|
|
+typedef struct _EFI_IP6_HEADER {
|
|
|
+ UINT8 TrafficClassH:4;
|
|
|
+ UINT8 Version:4;
|
|
|
+ UINT8 FlowLabelH:4;
|
|
|
+ UINT8 TrafficClassL:4;
|
|
|
+ UINT16 FlowLabelL;
|
|
|
+ UINT16 PayloadLength;
|
|
|
+ UINT8 NextHeader;
|
|
|
+ UINT8 HopLimit;
|
|
|
+ EFI_IPv6_ADDRESS SourceAddress;
|
|
|
+ EFI_IPv6_ADDRESS DestinationAddress;
|
|
|
+} EFI_IP6_HEADER;
|
|
|
+#pragma pack()
|
|
|
+
|
|
|
+typedef struct _EFI_IP6_RECEIVE_DATA {
|
|
|
+ EFI_TIME TimeStamp;
|
|
|
+ EFI_EVENT RecycleSignal;
|
|
|
+ UINT32 HeaderLength;
|
|
|
+ EFI_IP6_HEADER *Header;
|
|
|
+ UINT32 DataLength;
|
|
|
+ UINT32 FragmentCount;
|
|
|
+ EFI_IP6_FRAGMENT_DATA FragmentTable[1];
|
|
|
+} EFI_IP6_RECEIVE_DATA;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ EFI_EVENT Event;
|
|
|
+ EFI_STATUS Status;
|
|
|
+ union {
|
|
|
+ EFI_IP6_RECEIVE_DATA *RxData;
|
|
|
+ EFI_IP6_TRANSMIT_DATA *TxData;
|
|
|
+ } Packet;
|
|
|
+} EFI_IP6_COMPLETION_TOKEN;
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_TRANSMIT) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN EFI_IP6_COMPLETION_TOKEN *Token
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_RECEIVE) (
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN EFI_IP6_COMPLETION_TOKEN *Token
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_CANCEL)(
|
|
|
+ IN struct _EFI_IP6 *This,
|
|
|
+ IN EFI_IP6_COMPLETION_TOKEN *Token OPTIONAL
|
|
|
+ );
|
|
|
+
|
|
|
+typedef
|
|
|
+EFI_STATUS
|
|
|
+(EFIAPI *EFI_IP6_POLL) (
|
|
|
+ IN struct _EFI_IP6 *This
|
|
|
+ );
|
|
|
+
|
|
|
+typedef struct _EFI_IP6 {
|
|
|
+ EFI_IP6_GET_MODE_DATA GetModeData;
|
|
|
+ EFI_IP6_CONFIGURE Configure;
|
|
|
+ EFI_IP6_GROUPS Groups;
|
|
|
+ EFI_IP6_ROUTES Routes;
|
|
|
+ EFI_IP6_NEIGHBORS Neighbors;
|
|
|
+ EFI_IP6_TRANSMIT Transmit;
|
|
|
+ EFI_IP6_RECEIVE Receive;
|
|
|
+ EFI_IP6_CANCEL Cancel;
|
|
|
+ EFI_IP6_POLL Poll;
|
|
|
+} EFI_IP6;
|
|
|
+
|
|
|
+#endif /* _EFI_IP_H */
|