22#define ICMP_TYPE_UNREACH 3
23#define ICMP_TYPE_TIMXCEED 11
24#define ICMP_TYPE_PARAMPROB 12
25#define ICMP_TYPE_SOURCEQUENCH 4
27#define ICMP_CODE_UNREACH_NET 0
28#define ICMP_CODE_UNREACH_HOST 1
29#define ICMP_CODE_UNREACH_PROTOCOL 2
30#define ICMP_CODE_UNREACH_PORT 3
31#define ICMP_CODE_UNREACH_NEEDFRAG 4
32#define ICMP_CODE_UNREACH_SRCFAIL 5
33#define ICMP_CODE_UNREACH_NET_UNKNOWN 6
34#define ICMP_CODE_UNREACH_HOST_UNKNOWN 7
35#define ICMP_CODE_UNREACH_ISOLATED 8
36#define ICMP_CODE_UNREACH_NET_PROHIB 9
37#define ICMP_CODE_UNREACH_HOST_PROHIB 10
38#define ICMP_CODE_UNREACH_TOSNET 11
39#define ICMP_CODE_UNREACH_TOSHOST 12
50#define EFI_IP4_HEADER_LEN(HdrPtr) ((HdrPtr)->HeaderLength << 2)
61#define ICMP_ERRLEN(IpHdr) \
62 (sizeof(IP4_ICMP_HEAD) + EFI_IP4_HEADER_LEN(IpHdr) + 8)
72#define NET_PROTO_HDR(Buf, Type) ((Type *) ((Buf)->BlockOp[0].Head))
83#define ICMP_ERR_UNREACH_NET 0
84#define ICMP_ERR_UNREACH_HOST 1
85#define ICMP_ERR_UNREACH_PROTOCOL 2
86#define ICMP_ERR_UNREACH_PORT 3
87#define ICMP_ERR_MSGSIZE 4
88#define ICMP_ERR_UNREACH_SRCFAIL 5
89#define ICMP_ERR_TIMXCEED_INTRANS 6
90#define ICMP_ERR_TIMXCEED_REASS 7
91#define ICMP_ERR_QUENCH 8
92#define ICMP_ERR_PARAMPROB 9
94#define ICMP6_ERR_UNREACH_NET 0
95#define ICMP6_ERR_UNREACH_HOST 1
96#define ICMP6_ERR_UNREACH_PROTOCOL 2
97#define ICMP6_ERR_UNREACH_PORT 3
98#define ICMP6_ERR_PACKAGE_TOOBIG 4
99#define ICMP6_ERR_TIMXCEED_HOPLIMIT 5
100#define ICMP6_ERR_TIMXCEED_REASS 6
101#define ICMP6_ERR_PARAMPROB_HEADER 7
102#define ICMP6_ERR_PARAMPROB_NEXHEADER 8
103#define ICMP6_ERR_PARAMPROB_IPV6OPTION 9
231 BOOLEAN IsConfigured;
431 IN VOID *Context OPTIONAL,
432 IN VOID *NotifyData OPTIONAL,
498 IN OUT VOID *IpConfigData OPTIONAL
567 OUT BOOLEAN *IsHard OPTIONAL,
568 OUT BOOLEAN *Notify OPTIONAL
struct _EFI_NET_SESSION_DATA EFI_NET_SESSION_DATA
EFI_STATUS EFIAPI IpIoRefreshNeighbor(IN IP_IO *IpIo, IN EFI_IP_ADDRESS *Neighbor, IN UINT32 Timeout)
VOID(EFIAPI * PKT_RCVD_NOTIFY)(IN EFI_STATUS Status, IN UINT8 IcmpErr, IN EFI_NET_SESSION_DATA *NetSession, IN NET_BUF *Pkt, IN VOID *Context)
struct _IP_IO_SEND_ENTRY IP_IO_SEND_ENTRY
EFI_STATUS EFIAPI IpIoDestroy(IN OUT IP_IO *IpIo)
IP_IO *EFIAPI IpIoCreate(IN EFI_HANDLE Image, IN EFI_HANDLE Controller, IN UINT8 IpVersion)
VOID EFIAPI IpIoRemoveIp(IN IP_IO *IpIo, IN IP_IO_IP_INFO *IpInfo)
EFI_STATUS EFIAPI IpIoStop(IN OUT IP_IO *IpIo)
EFI_STATUS EFIAPI IpIoOpen(IN OUT IP_IO *IpIo, IN IP_IO_OPEN_DATA *OpenData)
struct _IP_IO_IP_INFO IP_IO_IP_INFO
EFI_STATUS EFIAPI IpIoSend(IN OUT IP_IO *IpIo, IN OUT NET_BUF *Pkt, IN IP_IO_IP_INFO *Sender OPTIONAL, IN VOID *Context OPTIONAL, IN VOID *NotifyData OPTIONAL, IN EFI_IP_ADDRESS *Dest OPTIONAL, IN IP_IO_OVERRIDE *OverrideData OPTIONAL)
VOID EFIAPI IpIoCancelTxToken(IN IP_IO *IpIo, IN VOID *Packet)
EFI_STATUS EFIAPI IpIoConfigIp(IN OUT IP_IO_IP_INFO *IpInfo, IN OUT VOID *IpConfigData OPTIONAL)
IP_IO_IP_INFO *EFIAPI IpIoAddIp(IN OUT IP_IO *IpIo)
VOID(EFIAPI * PKT_SENT_NOTIFY)(IN EFI_STATUS Status, IN VOID *Context, IN IP_IO_IP_PROTOCOL Sender, IN VOID *NotifyData)
IP_IO_IP_INFO *EFIAPI IpIoFindSender(IN OUT IP_IO **IpIo, IN UINT8 IpVersion, IN EFI_IP_ADDRESS *Src)
struct _IP_IO_OPEN_DATA IP_IO_OPEN_DATA
EFI_STATUS EFIAPI IpIoGetIcmpErrStatus(IN UINT8 IcmpError, IN UINT8 IpVersion, OUT BOOLEAN *IsHard OPTIONAL, OUT BOOLEAN *Notify OPTIONAL)
UINT8 IpVersion
The IP version of the received packet.
EFI_IP_ADDRESS Source
Source IP of the received packet.
EFI_IP_ADDRESS Dest
Destination IP of the received packet.
IP_IO_IP_HEADER IpHdr
IP header of the received packet.
PKT_RCVD_NOTIFY PktRcvdNotify
Receive callback.
VOID * SndContext
Context data used by send callback.
IP_IO_IP_CONFIG_DATA IpConfigData
Configuration of the IP instance.
VOID * RcvdContext
Context data used by receive callback.
PKT_SENT_NOTIFY PktSentNotify
Send callback.
PKT_RCVD_NOTIFY PktRcvdNotify
See IP_IO_OPEN_DATA::PktRcvdNotify.
VOID * RcvdContext
See IP_IO_OPEN_DATA::RcvdContext.
VOID * SndContext
See IP_IO_OPEN_DATA::SndContext.
IP_IO_IP_COMPLETION_TOKEN RcvToken
LIST_ENTRY PendingSndList
PKT_SENT_NOTIFY PktSentNotify
See IP_IO_OPEN_DATA::PktSentNotify.