]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Option.h
synced function header
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4Option.h
index fa173fb0860f0a4eea596483950bc50d44a99c55..546bf8ca6d0c932ede9effcb11e931a5a40151b3 100644 (file)
@@ -34,19 +34,50 @@ typedef enum {
   IP4_OPTION_COPY_MASK = 0x80\r
 } IP4_OPTION_ENUM_TYPES;\r
 \r
+/**\r
+  Validate the IP4 option format for both the packets we received\r
+  and will transmit. It will compute the ICMP error message fields\r
+  if the option is mal-formated. But this information isn't used.\r
+\r
+  @param  Option                The first byte of the option\r
+  @param  OptionLen             The length of the whole option\r
+  @param  Rcvd                  The option is from the packet we received if TRUE,\r
+                                otherwise the option we wants to transmit.\r
+\r
+  @retval TRUE     The option is properly formatted\r
+  @retval FALSE    The option is mal-formated\r
+\r
+**/\r
 BOOLEAN\r
 Ip4OptionIsValid (\r
   IN UINT8                  *Option,\r
-  IN UINT32                 OptLen,\r
+  IN UINT32                 OptionLen,\r
   IN BOOLEAN                Rcvd\r
   );\r
 \r
+/**\r
+  Copy the option from the original option to buffer. It\r
+  handles the details such as:\r
+  1. whether copy the single IP4 option to the first/non-first\r
+     fragments.\r
+  2. Pad the options copied over to aligned to 4 bytes.\r
+\r
+  @param  Option                The original option to copy from\r
+  @param  OptionLen             The length of the original option\r
+  @param  FirstFragment         Whether it is the first fragment\r
+  @param  Buf                   The buffer to copy options to. NULL \r
+  @param  BufLen                The length of the buffer\r
+\r
+  @retval EFI_SUCCESS           The options are copied over\r
+  @retval EFI_BUFFER_TOO_SMALL  Buf is NULL or BufLen provided is too small.\r
+\r
+**/\r
 EFI_STATUS\r
 Ip4CopyOption (\r
-  IN UINT8                  *Option,\r
-  IN UINT32                 OptLen,\r
-  IN BOOLEAN                Fragment,\r
-  IN UINT8                  *Buf,     OPTIONAL\r
+  IN     UINT8              *Option,\r
+  IN     UINT32             OptionLen,\r
+  IN     BOOLEAN            FirstFragment,\r
+  IN OUT UINT8              *Buf,           OPTIONAL\r
   IN OUT UINT32             *BufLen\r
   );\r
 #endif\r