21 #ifndef __EFI_IP6_PROTOCOL_H__ 22 #define __EFI_IP6_PROTOCOL_H__ 28 #define EFI_IP6_SERVICE_BINDING_PROTOCOL_GUID \ 30 0xec835dd3, 0xfe0f, 0x617b, {0xa6, 0x21, 0xb3, 0x50, 0xc3, 0xe1, 0x33, 0x88 } \ 33 #define EFI_IP6_PROTOCOL_GUID \ 35 0x2c8759d5, 0x5c2d, 0x66ef, {0x92, 0x5f, 0xb6, 0x6c, 0x10, 0x19, 0x57, 0xe2 } \ 82 #define ICMP_V6_DEST_UNREACHABLE 0x1 83 #define ICMP_V6_PACKET_TOO_BIG 0x2 84 #define ICMP_V6_TIME_EXCEEDED 0x3 85 #define ICMP_V6_PARAMETER_PROBLEM 0x4 92 #define ICMP_V6_ECHO_REQUEST 0x80 93 #define ICMP_V6_ECHO_REPLY 0x81 94 #define ICMP_V6_LISTENER_QUERY 0x82 95 #define ICMP_V6_LISTENER_REPORT 0x83 96 #define ICMP_V6_LISTENER_DONE 0x84 97 #define ICMP_V6_ROUTER_SOLICIT 0x85 98 #define ICMP_V6_ROUTER_ADVERTISE 0x86 99 #define ICMP_V6_NEIGHBOR_SOLICIT 0x87 100 #define ICMP_V6_NEIGHBOR_ADVERTISE 0x88 101 #define ICMP_V6_REDIRECT 0x89 102 #define ICMP_V6_LISTENER_REPORT_2 0x8F 109 #define ICMP_V6_NO_ROUTE_TO_DEST 0x0 110 #define ICMP_V6_COMM_PROHIBITED 0x1 111 #define ICMP_V6_BEYOND_SCOPE 0x2 112 #define ICMP_V6_ADDR_UNREACHABLE 0x3 113 #define ICMP_V6_PORT_UNREACHABLE 0x4 114 #define ICMP_V6_SOURCE_ADDR_FAILED 0x5 115 #define ICMP_V6_ROUTE_REJECTED 0x6 122 #define ICMP_V6_TIMEOUT_HOP_LIMIT 0x0 123 #define ICMP_V6_TIMEOUT_REASSEMBLE 0x1 130 #define ICMP_V6_ERRONEOUS_HEADER 0x0 131 #define ICMP_V6_UNRECOGNIZE_NEXT_HDR 0x1 132 #define ICMP_V6_UNRECOGNIZE_OPTION 0x2
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
UINT32 PrefixCount
Number of entries in the prefix table.
EFI_IP6_NEIGHBOR_STATE
EFI_IP6_NEIGHBOR_STATE.
EFI_IP6_NEIGHBOR_CACHE * NeighborCache
Neighbor cache entries.
UINT32 AddressCount
The number of IPv6 address pairs that follow this data structure.
UINT32 FlowLabel
Flow-Label override.
EFI_IP6_ADDRESS_PAIR is deprecated in the UEFI 2.4B and should not be used any more.
EFI_IP6_NEIGHBOR_CACHE is the entry structure that is used in neighbor cache.
UINT32 IcmpTypeCount
Number of entries in the supported ICMP types list.
UINT8 PrefixLength
The length of the prefix associated with the Ip6Address.
EFI_IP6_COMPLETION_TOKEN structures are used for both transmit and receive operations.
UINT8 NextHeader
The protocol of first extension header in ExtHdrs.
128 bit buffer containing a unique identifier value.
EFI_IP6_TRANSMIT_DATA * TxData
When the Token is used for transmitting, TxData is a pointer to the EFI_IP6_TRANSMIT_DATA.
EFI_EVENT RecycleSignal
After this event is signaled, the receive data structure is released and must not be referenced.
EFI_STATUS(EFIAPI * EFI_IP6_TRANSMIT)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
Places outgoing data packets into the transmit queue.
Reachable Time has elapsed since the last positive confirmation was received.
32-byte buffer containing a network Media Access Control address.
VOID * EFI_EVENT
Handle to an event structure.
Positive confirmation was received that the forward path to the neighbor was functioning properly.
UINT8 Protocol
Protocol type override.
UINT32 ExtHdrsLength
Total length in byte of the IPv6 extension headers specified in ExtHdrs.
EFI_IP6_ICMP_TYPE is used to describe those ICMP messages that are supported by this EFI IPv6 Protoco...
EFI_IP6_CONFIG_DATA is used to report and change IPv6 session parameters.
EFI_GUID gEfiIp6ProtocolGuid
EFI_IP6_OVERRIDE_DATA The information and flags in the override data structure will override default ...
struct _EFI_IP6_HEADER EFI_IP6_HEADER
EFI_IP6_HEADER The fields in the IPv6 header structure are defined in the Internet Protocol version6 ...
A reachability confirmation is actively sought by retransmitting Neighbor Solicitations every Retrans...
UINT8 HopLimit
Hop-Limit override.
struct _EFI_IP6_OVERRIDE_DATA EFI_IP6_OVERRIDE_DATA
EFI_IP6_OVERRIDE_DATA The information and flags in the override data structure will override default ...
EFI_STATUS(EFIAPI * EFI_IP6_GROUPS)(IN EFI_IP6_PROTOCOL *This, IN BOOLEAN JoinFlag, IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL)
Joins and leaves multicast groups.
BOOLEAN AcceptAnyProtocol
Set to TRUE to receive all IPv6 packets that get through the receive filters.
EFI_TIME TimeStamp
Time when the EFI IPv6 Protocol driver accepted the packet.
EFI_IP6_CONFIGURE Configure
struct _EFI_IP6_FRAGMENT_DATA EFI_IP6_FRAGMENT_DATA
EFI_IP6_FRAGMENT_DATA describes the location and length of the IPv6 packet fragment to transmit or th...
UINT32 NeighborCount
Number of entries in the neighbor cache.
UINT32 DataLength
Total length in bytes of the FragmentTable data to transmit.
EFI_IPv6_ADDRESS Ip6Address
IPv6 address in network byte order.
EFI_STATUS(EFIAPI * EFI_IP6_POLL)(IN EFI_IP6_PROTOCOL *This)
Polls for incoming data packets and processes outgoing data packets.
EFI_IP6_ICMP_TYPE * IcmpTypeList
Array of ICMP types and codes that are supported by this EFI IPv6 Protocol driver.
EFI_IPv6_ADDRESS Destination
The destination prefix to be routed.
UINT32 HeaderLength
Length of the IPv6 packet headers, including both the IPv6 header and any extension headers.
EFI_IP6_ROUTE_TABLE is the entry structure that is used in routing tables.
UINT32 RouteCount
Number of entries in the routing table.
BOOLEAN AcceptIcmpErrors
Set to TRUE to receive ICMP error report packets.
EFI_IP6_ADDRESS_INFO * AddressList
List of currently configured IPv6 addresses and corresponding prefix lengths assigned to this interfa...
UINT8 PrefixLength
The length of the prefix associated with the Destination.
struct _EFI_IP6_TRANSMIT_DATA EFI_IP6_TRANSMIT_DATA
EFI_IP6_TRANSMIT_DATA.
UINT8 TrafficClass
TrafficClass field in transmitted IPv6 packets.
UINT32 TransmitTimeout
The timer timeout value (number of microseconds) for the transmit timeout event to be associated with...
UINT8 Type
The type of ICMP message.
EFI_IP6_FRAGMENT_DATA FragmentTable[1]
Start of the fragment data table.
UINT32 DataLength
Sum of the lengths of IPv6 packet buffers in FragmentTable.
EFI_IP6_FRAGMENT_DATA describes the location and length of the IPv6 packet fragment to transmit or th...
EFI_IP6_HEADER * Header
Pointer to the IPv6 packet header.
EFI_IPv6_ADDRESS Neighbor
The on-link unicast/anycast IP address of the neighbor.
VOID * FragmentBuffer
Pointer to fragment data. This field may not be set to NULL.
UINT8 HopLimit
HopLimit field in transmitted IPv6 packets.
EFI_IP6_FRAGMENT_DATA FragmentTable[1]
Array of payload fragment lengths and buffer pointers.
UINT8 PrefixLength
The length of the prefix associated with the Address.
This state is an optimization that gives upper-layer protocols additional time to provide reachabilit...
UINT32 FragmentLength
Length of fragment data. This field may not be set to zero.
UINT32 MaxPacketSize
The maximum packet size, in bytes, of the packet which the upper layer driver could feed.
BOOLEAN AcceptPromiscuous
Set to TRUE to receive all IPv6 packets that are sent to any hardware address or any protocol address...
EFI_STATUS(EFIAPI * EFI_IP6_RECEIVE)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token)
Places a receiving request into the receiving queue.
EFI_IP6_NEIGHBORS Neighbors
EFI_IP6_ROUTE_TABLE * RouteTable
Routing table entries.
EFI_STATUS(EFIAPI * EFI_IP6_CONFIGURE)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_CONFIG_DATA *Ip6ConfigData OPTIONAL)
Assigns an IPv6 address and subnet mask to this EFI IPv6 Protocol driver instance.
EFI_IP6_NEIGHBOR_STATE State
State of this neighbor cache entry.
UINT32 AddressCount
Number of configured IPv6 addresses on this interface.
EFI_IP6_CONFIG_DATA ConfigData
Current configuration settings.
UINT32 FragmentCount
Number of entries in the fragment data table.
EFI_MAC_ADDRESS LinkAddress
Link-layer address of the neighbor.
EFI_IPv6_ADDRESS Address
The IPv6 address.
EFI_STATUS(EFIAPI * EFI_IP6_CANCEL)(IN EFI_IP6_PROTOCOL *This, IN EFI_IP6_COMPLETION_TOKEN *Token OPTIONAL)
Abort an asynchronous transmit or receive request.
EFI_IP6_ADDRESS_INFO * PrefixTable
On-link Prefix table entries.
UINT8 Code
The code of the ICMP message.
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)
Gets the current operational settings for this instance of the EFI IPv6 Protocol driver.
#define VOID
Undeclared type.
The EFI IPv6 Protocol implements a simple packet-oriented interface that can be used by drivers,...
EFI_IP6_TRANSMIT Transmit
EFI_IP6_RECEIVE_DATA * RxData
When the Token is used for receiving, RxData is a pointer to the EFI_IP6_RECEIVE_DATA.
EFI Time Abstraction: Year: 1900 - 9999 Month: 1 - 12 Day: 1 - 31 Hour: 0 - 23 Minute: 0 - 59 Second:...
struct _EFI_IP6_RECEIVE_DATA EFI_IP6_RECEIVE_DATA
EFI_IP6_RECEIVE_DATA.
EFI_STATUS Status
Will be set to one of the following values:
VOID * ExtHdrs
Pointer to the IPv6 extension headers.
EFI_IPv6_ADDRESS DestinationAddress
The destination address of the packets that will be transmitted.
EFI_IP6_OVERRIDE_DATA * OverrideData
If not NULL, the IPv6 transmission control override data.
EFI_GUID gEfiIp6ServiceBindingProtocolGuid
EFI_HANDLE DriverHandle
The handle of the driver that creates this entry.
EFI_HANDLE InstanceHandle
The EFI IPv6 Protocol instance handle that is using this address/prefix pair.
EFI_IPv6_ADDRESS * GroupTable
List of joined multicast group addresses.
EFI_IP6_GET_MODE_DATA GetModeData
Address resolution is being performed on this entry.
EFI_IP6_VARIABLE_DATA is deprecated in the UEFI 2.4B and should not be used any more.
EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
BOOLEAN IsStarted
Set to TRUE after this EFI IPv6 Protocol instance is started.
EFI_IPv6_ADDRESS Gateway
The IPv6 address of the gateway to be used as the next hop for packets to this prefix.
UINT8 DefaultProtocol
For the IPv6 packet to send and receive, this is the default value of the 'Next Header' field in the ...
UINT32 ReceiveTimeout
The timer timeout value (number of microseconds) for the receive timeout event to be associated with ...
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)
Add or delete Neighbor cache entries.
BOOLEAN IsConfigured
Set to TRUE when the EFI IPv6 Protocol instance is configured.
UINT32 GroupCount
Number of joined multicast groups.
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)
Adds and deletes routing table entries.
UINT32 FlowLabel
FlowLabel field in transmitted IPv6 packets.
FILE_LICENCE(BSD2_PATENT)
EFI_EVENT Event
This Event will be signaled after the Status field is updated by the EFI IPv6 Protocol driver.
UINT32 FragmentCount
Number of IPv6 payload fragments.
EFI_IPv6_ADDRESS DestinationAddress
The destination IPv6 address.
EFI_IPv6_ADDRESS StationAddress
The station IPv6 address that will be assigned to this EFI IPv6 Protocol instance.