TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | IP6_LINK_RX_TOKEN |
struct | IP6_LINK_TX_TOKEN |
struct | _IP6_ADDRESS_INFO |
struct | _IP6_INTERFACE |
Macros | |
#define | IP6_LINK_RX_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'R') |
#define | IP6_LINK_TX_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'T') |
#define | IP6_INTERFACE_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'I') |
#define | IP6_ADDR_INFO_SIGNATURE SIGNATURE_32 ('I', 'P', 'A', 'I') |
Typedefs | |
typedef VOID(* | IP6_FRAME_CALLBACK) (NET_BUF *Packet, EFI_STATUS IoStatus, UINT32 LinkFlag, VOID *Context) |
typedef BOOLEAN(* | IP6_FRAME_TO_CANCEL) (IP6_LINK_TX_TOKEN *Frame, VOID *Context) |
Functions | |
IP6_INTERFACE * | Ip6CreateInterface (IN IP6_SERVICE *IpSb, IN BOOLEAN LinkLocal) |
VOID | Ip6CleanInterface (IN IP6_INTERFACE *Interface, IN IP6_PROTOCOL *IpInstance OPTIONAL) |
VOID | Ip6FreeLinkTxToken (IN IP6_LINK_TX_TOKEN *Token) |
VOID EFIAPI | Ip6OnFrameReceived (IN EFI_EVENT Event, IN VOID *Context) |
EFI_STATUS | Ip6ReceiveFrame (IN IP6_FRAME_CALLBACK CallBack, IN IP6_SERVICE *IpSb) |
EFI_STATUS | Ip6SendFrame (IN IP6_INTERFACE *Interface, IN IP6_PROTOCOL *IpInstance OPTIONAL, IN NET_BUF *Packet, IN EFI_IPv6_ADDRESS *NextHop, IN IP6_FRAME_CALLBACK CallBack, IN VOID *Context) |
VOID EFIAPI | Ip6TimerTicking (IN EFI_EVENT Event, IN VOID *Context) |
Definition for IP6 pseudo interface structure.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Ip6If.h.
#define IP6_ADDR_INFO_SIGNATURE SIGNATURE_32 ('I', 'P', 'A', 'I') |
#define IP6_INTERFACE_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'I') |
#define IP6_LINK_RX_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'R') |
#define IP6_LINK_TX_SIGNATURE SIGNATURE_32 ('I', 'P', '6', 'T') |
typedef VOID(* IP6_FRAME_CALLBACK) (NET_BUF *Packet, EFI_STATUS IoStatus, UINT32 LinkFlag, VOID *Context) |
typedef BOOLEAN(* IP6_FRAME_TO_CANCEL) (IP6_LINK_TX_TOKEN *Frame, VOID *Context) |
VOID Ip6CleanInterface | ( | IN IP6_INTERFACE * | Interface, |
IN IP6_PROTOCOL *IpInstance | OPTIONAL | ||
) |
Free the interface used by IpInstance. All the IP instance with the same Ip/prefix pair share the same interface. It is reference counted. All the frames that haven't been sent will be cancelled. Because the IpInstance is optional, the caller must remove IpInstance from the interface's instance list.
[in] | Interface | The interface used by the IpInstance. |
[in] | IpInstance | The IP instance that free the interface. NULL if the IP driver is releasing the default interface. |
IP6_INTERFACE * Ip6CreateInterface | ( | IN IP6_SERVICE * | IpSb, |
IN BOOLEAN | LinkLocal | ||
) |
VOID Ip6FreeLinkTxToken | ( | IN IP6_LINK_TX_TOKEN * | Token | ) |
Request Ip6OnFrameReceivedDpc as a DPC at TPL_CALLBACK
Event | The receive event delivered to MNP for receive. |
Context | Context for the callback. |
Request Ip6OnFrameReceivedDpc as a DPC at TPL_CALLBACK.
Event | The receive event delivered to MNP for receive. |
Context | Context for the callback. |
EFI_STATUS Ip6ReceiveFrame | ( | IN IP6_FRAME_CALLBACK | CallBack, |
IN IP6_SERVICE * | IpSb | ||
) |
Request to receive the packet from the interface.
[in] | CallBack | Function to call when the receive finished. |
[in] | IpSb | Points to the IP6 service binding instance. |
EFI_ALREADY_STARTED | There is already a pending receive request. |
EFI_OUT_OF_RESOURCES | Failed to allocate resources to receive. |
EFI_SUCCESS | The receive request has been started. |
Request to receive the packet from the interface.
[in] | CallBack | Function to call when receive finished. |
[in] | IpSb | Points to IP6 service binding instance. |
EFI_ALREADY_STARTED | There is already a pending receive request. |
EFI_OUT_OF_RESOURCES | Failed to allocate resource to receive. |
EFI_SUCCESS | The receive request has been started. |
EFI_STATUS Ip6SendFrame | ( | IN IP6_INTERFACE * | Interface, |
IN IP6_PROTOCOL *IpInstance | OPTIONAL, | ||
IN NET_BUF * | Packet, | ||
IN EFI_IPv6_ADDRESS * | NextHop, | ||
IN IP6_FRAME_CALLBACK | CallBack, | ||
IN VOID * | Context | ||
) |
Send a frame from the interface. If the next hop is multicast address, it is transmitted immediately. If the next hop is a unicast, and the NextHop's MAC is not known, it will perform address resolution. If some error happened, the CallBack won't be called. So, the caller must test the return value, and take action when there is an error.
[in] | Interface | The interface to send the frame from |
[in] | IpInstance | The IP child that request the transmission. NULL if it is the IP6 driver itself. |
[in] | Packet | The packet to transmit. |
[in] | NextHop | The immediate destination to transmit the packet to. |
[in] | CallBack | Function to call back when transmit finished. |
[in] | Context | Opaque parameter to the call back. |
EFI_OUT_OF_RESOURCES | Failed to allocate resource to send the frame. |
EFI_NO_MAPPING | Can't resolve the MAC for the nexthop. |
EFI_SUCCESS | The packet successfully transmitted. |
Send a frame from the interface. If the next hop is a multicast address, it is transmitted immediately. If the next hop is a unicast, and the NextHop's MAC is not known, it will perform address resolution. If an error occurred, the CallBack won't be called. So, the caller must test the return value, and take action when there is an error.
[in] | Interface | The interface to send the frame from |
[in] | IpInstance | The IP child that request the transmission. NULL if it is the IP6 driver itself. |
[in] | Packet | The packet to transmit. |
[in] | NextHop | The immediate destination to transmit the packet to. |
[in] | CallBack | Function to call back when transmit finished. |
[in] | Context | Opaque parameter to the callback. |
EFI_OUT_OF_RESOURCES | Failed to allocate resource to send the frame. |
EFI_NO_MAPPING | Can't resolve the MAC for the nexthop. |
EFI_SUCCESS | The packet successfully transmitted. |
The heartbeat timer of IP6 service instance. It times out all of its IP6 children's received-but-not-delivered and transmitted-but-not-recycle packets.
[in] | Event | The IP6 service instance's heart beat timer. |
[in] | Context | The IP6 service instance. |
The heartbeat timer of IP6 service instance. It times out all of its IP6 children's received-but-not-delivered and transmitted-but-not-recycle packets.
[in] | Event | The IP6 service instance's heartbeat timer. |
[in] | Context | The IP6 service instance. |