]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Output.h
synced function header
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4Output.h
index 991f10cbc0f72fe240825775339b9c0af4b0f8dd..8e644464616f63b4f7e9c6a30eab130098c45f30 100644 (file)
@@ -21,20 +21,66 @@ Abstract:
 #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
@@ -43,11 +89,21 @@ Ip4Output (
   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