/** @file
- This library provides IpIo layer upon EFI IP4 Protocol.\r
+ This library provides IpIo layer upon EFI IP4 Protocol.
Copyright (c) 2005 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
#ifndef _IP_IO_H_
#define _IP_IO_H_
-#include <PiDxe.h>
-#include <Protocol/Ip4.h>\r
-#include <Library/IpIoLib.h>\r
+#include <Protocol/Ip4.h>
+#include <Library/IpIoLib.h>
#include <Library/NetLib.h>
-//\r
-// type and code define for ICMP protocol error got\r
-// from IP\r
-//\r
-#define ICMP_TYPE_UNREACH 3\r
-#define ICMP_TYPE_TIMXCEED 11\r
-#define ICMP_TYPE_PARAMPROB 12\r
-#define ICMP_TYPE_SOURCEQUENCH 4\r
-\r
-#define ICMP_CODE_UNREACH_NET 0\r
-#define ICMP_CODE_UNREACH_HOST 1\r
-#define ICMP_CODE_UNREACH_PROTOCOL 2\r
-#define ICMP_CODE_UNREACH_PORT 3\r
-#define ICMP_CODE_UNREACH_NEEDFRAG 4\r
-#define ICMP_CODE_UNREACH_SRCFAIL 5\r
-#define ICMP_CODE_UNREACH_NET_UNKNOWN 6\r
-#define ICMP_CODE_UNREACH_HOST_UNKNOWN 7\r
-#define ICMP_CODE_UNREACH_ISOLATED 8\r
-#define ICMP_CODE_UNREACH_NET_PROHIB 9\r
-#define ICMP_CODE_UNREACH_HOST_PROHIB 10\r
-#define ICMP_CODE_UNREACH_TOSNET 11\r
-#define ICMP_CODE_UNREACH_TOSHOST 12\r
-\r
-//\r
-// this error will be delivered to the\r
-// listening transportation layer protocol\r
-// consuming IpIO\r
-//\r
-typedef enum {\r
- ICMP_ERR_UNREACH_NET = 0,\r
- ICMP_ERR_UNREACH_HOST,\r
- ICMP_ERR_UNREACH_PROTOCOL,\r
- ICMP_ERR_UNREACH_PORT,\r
- ICMP_ERR_MSGSIZE,\r
- ICMP_ERR_UNREACH_SRCFAIL,\r
- ICMP_ERR_TIMXCEED_INTRANS,\r
- ICMP_ERR_TIMXCEED_REASS,\r
- ICMP_ERR_QUENCH,\r
- ICMP_ERR_PARAMPROB\r
-} ICMP_ERROR;\r
-\r
-typedef struct _ICMP_ERROR_INFO {\r
- BOOLEAN IsHard;\r
- BOOLEAN Notify;\r
-} ICMP_ERROR_INFO;\r
+//
+// type and code define for ICMP protocol error got
+// from IP
+//
+#define ICMP_TYPE_UNREACH 3
+#define ICMP_TYPE_TIMXCEED 11
+#define ICMP_TYPE_PARAMPROB 12
+#define ICMP_TYPE_SOURCEQUENCH 4
+
+#define ICMP_CODE_UNREACH_NET 0
+#define ICMP_CODE_UNREACH_HOST 1
+#define ICMP_CODE_UNREACH_PROTOCOL 2
+#define ICMP_CODE_UNREACH_PORT 3
+#define ICMP_CODE_UNREACH_NEEDFRAG 4
+#define ICMP_CODE_UNREACH_SRCFAIL 5
+#define ICMP_CODE_UNREACH_NET_UNKNOWN 6
+#define ICMP_CODE_UNREACH_HOST_UNKNOWN 7
+#define ICMP_CODE_UNREACH_ISOLATED 8
+#define ICMP_CODE_UNREACH_NET_PROHIB 9
+#define ICMP_CODE_UNREACH_HOST_PROHIB 10
+#define ICMP_CODE_UNREACH_TOSNET 11
+#define ICMP_CODE_UNREACH_TOSHOST 12
+
+//
+// this error will be delivered to the
+// listening transportation layer protocol
+// consuming IpIO
+//
+typedef enum {
+ ICMP_ERR_UNREACH_NET = 0,
+ ICMP_ERR_UNREACH_HOST,
+ ICMP_ERR_UNREACH_PROTOCOL,
+ ICMP_ERR_UNREACH_PORT,
+ ICMP_ERR_MSGSIZE,
+ ICMP_ERR_UNREACH_SRCFAIL,
+ ICMP_ERR_TIMXCEED_INTRANS,
+ ICMP_ERR_TIMXCEED_REASS,
+ ICMP_ERR_QUENCH,
+ ICMP_ERR_PARAMPROB
+} ICMP_ERROR;
+
+typedef struct _ICMP_ERROR_INFO {
+ BOOLEAN IsHard;
+ BOOLEAN Notify;
+} ICMP_ERROR_INFO;
#define EFI_IP4_HEADER_LEN(HdrPtr) ((HdrPtr)->HeaderLength << 2)
INTN RefCnt;
} IP_IO_IP_INFO;
-/**\r
- Create a new IP_IO instance.\r
-\r
- @param Image The image handle of an IP_IO consumer protocol.\r
- @param Controller The controller handle of an IP_IO consumer protocol\r
- installed on.\r
-\r
- @return Pointer to a newly created IP_IO instance.\r
-\r
+/**
+ Create a new IP_IO instance.
+
+ @param Image The image handle of an IP_IO consumer protocol.
+ @param Controller The controller handle of an IP_IO consumer protocol
+ installed on.
+
+ @return Pointer to a newly created IP_IO instance.
+
**/
IP_IO *
EFIAPI
IN EFI_HANDLE Controller
);
-/**\r
- Destroy an IP_IO instance.\r
-\r
- @param IpIo Pointer to the IP_IO instance that needs to\r
- destroy.\r
-\r
- @retval EFI_SUCCESS The IP_IO instance destroyed successfully.\r
- @retval other Error condition occurred.\r
-\r
+/**
+ Destroy an IP_IO instance.
+
+ @param IpIo Pointer to the IP_IO instance that needs to
+ destroy.
+
+ @retval EFI_SUCCESS The IP_IO instance destroyed successfully.
+ @retval other Error condition occurred.
+
**/
EFI_STATUS
EFIAPI
IN IP_IO *IpIo
);
-/**\r
- Stop an IP_IO instance.\r
-\r
- @param IpIo Pointer to the IP_IO instance that needs to stop.\r
-\r
- @retval EFI_SUCCESS The IP_IO instance stopped successfully.\r
- @retval other Error condition occurred.\r
-\r
+/**
+ Stop an IP_IO instance.
+
+ @param IpIo Pointer to the IP_IO instance that needs to stop.
+
+ @retval EFI_SUCCESS The IP_IO instance stopped successfully.
+ @retval other Error condition occurred.
+
**/
EFI_STATUS
EFIAPI
IN IP_IO *IpIo
);
-/**\r
- Open an IP_IO instance for use.\r
-\r
- @param IpIo Pointer to an IP_IO instance that needs to open.\r
- @param OpenData The configuration data for the IP_IO instance.\r
-\r
- @retval EFI_SUCCESS The IP_IO instance opened with OpenData\r
- successfully.\r
- @retval other Error condition occurred.\r
-\r
+/**
+ Open an IP_IO instance for use.
+
+ @param IpIo Pointer to an IP_IO instance that needs to open.
+ @param OpenData The configuration data for the IP_IO instance.
+
+ @retval EFI_SUCCESS The IP_IO instance opened with OpenData
+ successfully.
+ @retval other Error condition occurred.
+
**/
EFI_STATUS
IpIoOpen (
IN IP_IO_OPEN_DATA *OpenData
);
-/**\r
- Send out an IP packet.\r
-\r
- @param IpIo Pointer to an IP_IO instance used for sending IP\r
- packet.\r
- @param Pkt Pointer to the IP packet to be sent.\r
- @param Sender The IP protocol instance used for sending.\r
+/**
+ Send out an IP packet.
+
+ @param IpIo Pointer to an IP_IO instance used for sending IP
+ packet.
+ @param Pkt Pointer to the IP packet to be sent.
+ @param Sender The IP protocol instance used for sending.
@param Context
- @param NotifyData \r
- @param Dest The destination IP address to send this packet to.\r
- @param OverrideData The data to override some configuration of the IP\r
- instance used for sending.\r
-\r
- @retval EFI_SUCCESS The operation is completed successfully.\r
- @retval EFI_NOT_STARTED The IpIo is not configured.\r
- @retval EFI_OUT_OF_RESOURCES Failed due to resource limit.\r
-\r
+ @param NotifyData
+ @param Dest The destination IP address to send this packet to.
+ @param OverrideData The data to override some configuration of the IP
+ instance used for sending.
+
+ @retval EFI_SUCCESS The operation is completed successfully.
+ @retval EFI_NOT_STARTED The IpIo is not configured.
+ @retval EFI_OUT_OF_RESOURCES Failed due to resource limit.
+
**/
EFI_STATUS
EFIAPI
IN IP_IO_OVERRIDE *OverrideData
);
-/**\r
- Cancel the IP transmit token which wraps this Packet.\r
-\r
- @param IpIo Pointer to the IP_IO instance.\r
- @param Packet Pointer to the packet to cancel.\r
+/**
+ Cancel the IP transmit token which wraps this Packet.
+
+ @param IpIo Pointer to the IP_IO instance.
+ @param Packet Pointer to the packet to cancel.
**/
VOID
IN VOID *Packet
);
-/**\r
- Add a new IP instance for sending data.\r
-\r
- @param IpIo Pointer to a IP_IO instance to add a new IP\r
- instance for sending purpose.\r
-\r
- @return Pointer to the created IP_IO_IP_INFO structure, NULL is failed.\r
-\r
+/**
+ Add a new IP instance for sending data.
+
+ @param IpIo Pointer to a IP_IO instance to add a new IP
+ instance for sending purpose.
+
+ @return Pointer to the created IP_IO_IP_INFO structure, NULL is failed.
+
**/
IP_IO_IP_INFO *
EFIAPI
IN IP_IO *IpIo
);
-/**\r
- Configure the IP instance of this IpInfo and start the receiving if Ip4ConfigData\r
- is not NULL.\r
-\r
- @param IpInfo Pointer to the IP_IO_IP_INFO instance.\r
- @param Ip4ConfigData The IP4 configure data used to configure the ip\r
- instance, if NULL the ip instance is reseted. If\r
- UseDefaultAddress is set to TRUE, and the configure\r
- operation succeeds, the default address information\r
- is written back in this Ip4ConfigData.\r
-\r
- @retval EFI_STATUS The status returned by IP4->Configure or\r
- IP4->Receive.\r
-\r
+/**
+ Configure the IP instance of this IpInfo and start the receiving if Ip4ConfigData
+ is not NULL.
+
+ @param IpInfo Pointer to the IP_IO_IP_INFO instance.
+ @param Ip4ConfigData The IP4 configure data used to configure the ip
+ instance, if NULL the ip instance is reseted. If
+ UseDefaultAddress is set to TRUE, and the configure
+ operation succeeds, the default address information
+ is written back in this Ip4ConfigData.
+
+ @retval EFI_STATUS The status returned by IP4->Configure or
+ IP4->Receive.
+
**/
EFI_STATUS
EFIAPI
IN OUT EFI_IP4_CONFIG_DATA *Ip4ConfigData OPTIONAL
);
-/**\r
- Destroy an IP instance maintained in IpIo->IpList for\r
- sending purpose.\r
-\r
- @param IpIo Pointer to the IP_IO instance.\r
- @param IpInfo Pointer to the IpInfo to be removed.\r
-\r
- @return None.\r
-\r
+/**
+ Destroy an IP instance maintained in IpIo->IpList for
+ sending purpose.
+
+ @param IpIo Pointer to the IP_IO instance.
+ @param IpInfo Pointer to the IpInfo to be removed.
+
+ @return None.
+
**/
VOID
EFIAPI
IN IP_IO_IP_INFO *IpInfo
);
-/**\r
- Find the first IP protocol maintained in IpIo whose local\r
- address is the same with Src.\r
-\r
- @param IpIo Pointer to the pointer of the IP_IO instance.\r
- @param Src The local IP address.\r
-\r
- @return Pointer to the IP protocol can be used for sending purpose and its local\r
- @return address is the same with Src.\r
-\r
+/**
+ Find the first IP protocol maintained in IpIo whose local
+ address is the same with Src.
+
+ @param IpIo Pointer to the pointer of the IP_IO instance.
+ @param Src The local IP address.
+
+ @return Pointer to the IP protocol can be used for sending purpose and its local
+ @return address is the same with Src.
+
**/
IP_IO_IP_INFO *
EFIAPI
IN IP4_ADDR Src
);
-/**\r
- Get the ICMP error map information, the ErrorStatus will be returned.\r
- The IsHard and Notify are optional. If they are not NULL, this rouine will\r
- fill them.\r
- We move IcmpErrMap[] to local variable to enable EBC build.\r
-\r
- @param IcmpError IcmpError Type\r
- @param IsHard Whether it is a hard error\r
- @param Notify Whether it need to notify SockError\r
-\r
- @return ICMP Error Status\r
-\r
-**/\r
+/**
+ Get the ICMP error map information, the ErrorStatus will be returned.
+ The IsHard and Notify are optional. If they are not NULL, this rouine will
+ fill them.
+ We move IcmpErrMap[] to local variable to enable EBC build.
+
+ @param IcmpError IcmpError Type
+ @param IsHard Whether it is a hard error
+ @param Notify Whether it need to notify SockError
+
+ @return ICMP Error Status
+
+**/
EFI_STATUS
EFIAPI
IpIoGetIcmpErrStatus (