#ifndef __EFI_IP4_OUTPUT_H__\r
#define __EFI_IP4_OUTPUT_H__\r
\r
+/**\r
+ The default callback function for system generated packet.\r
+ It will free the packet.\r
+\r
+ @param Ip4Instance The IP4 child that issued the transmission. It most\r
+ like is NULL.\r
+ @param Packet The packet that transmitted.\r
+ @param IoStatus The result of the transmission, succeeded or failed.\r
+ @param LinkFlag Not used when transmission. check IP4_FRAME_CALLBACK\r
+ for reference.\r
+ @param Context The context provided by us\r
+\r
+ @return None\r
+\r
+**/\r
VOID\r
Ip4SysPacketSent (\r
IP4_PROTOCOL *Ip4Instance,\r
NET_BUF *Packet,\r
EFI_STATUS IoStatus,\r
- UINT32 Flag,\r
+ UINT32 LinkFlag,\r
VOID *Context\r
);\r
\r
+/**\r
+ Transmit an IP4 packet. The packet comes either from the IP4\r
+ child's consumer (IpInstance != NULL) or the IP4 driver itself\r
+ (IpInstance == NULL). It will route the packet, fragment it,\r
+ then transmit all the fragments through some interface.\r
+\r
+ @param IpSb The IP4 service instance to transmit the packet\r
+ @param IpInstance The IP4 child that issues the transmission. It is\r
+ NULL if the packet is from the system.\r
+ @param Packet The user data to send, excluding the IP header.\r
+ @param Head The caller supplied header. The caller should set\r
+ the following header fields: Tos, TotalLen, Id, tl,\r
+ Fragment, Protocol, Src and Dst. All the fields are\r
+ in host byte order. This function will fill in the\r
+ Ver, HeadLen, Fragment, and checksum. The Fragment\r
+ only need to include the DF flag. Ip4Output will\r
+ compute the MF and offset for you.\r
+ @param Option The original option to append to the IP headers\r
+ @param OptLen The length of the option\r
+ @param GateWay The next hop address to transmit packet to.\r
+ 255.255.255.255 means broadcast.\r
+ @param Callback The callback function to issue when transmission\r
+ completed.\r
+ @param Context The opaque context for the callback\r
+\r
+ @retval EFI_NO_MAPPING There is no interface to the destination.\r
+ @retval EFI_NOT_FOUND There is no route to the destination\r
+ @retval EFI_SUCCESS The packet is successfully transmitted.\r
+ @retval Others Failed to transmit the packet.\r
+\r
+**/\r
EFI_STATUS\r
Ip4Output (\r
IN IP4_SERVICE *IpSb,\r
- IN IP4_PROTOCOL *IpInstance, OPTIONAL\r
- IN NET_BUF *Data,\r
+ IN IP4_PROTOCOL *IpInstance, OPTIONAL\r
+ IN NET_BUF *Packet,\r
IN IP4_HEAD *Head,\r
IN UINT8 *Option,\r
IN UINT32 OptLen,\r
IN VOID *Context\r
);\r
\r
+/**\r
+ Cancel the Packet and all its fragments.\r
+\r
+ @param IpIf The interface from which the Packet is sent\r
+ @param Packet The Packet to cancel\r
+ @param IoStatus The status returns to the sender.\r
+\r
+ @return None\r
+\r
+**/\r
VOID\r
Ip4CancelPacket (\r
- IN IP4_INTERFACE *IpIf,\r
- IN NET_BUF *Packet,\r
- IN EFI_STATUS IoStatus\r
+ IN IP4_INTERFACE *IpIf,\r
+ IN NET_BUF *Packet,\r
+ IN EFI_STATUS IoStatus\r
);\r
\r
extern UINT16 mIp4Id;\r