]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Option.c
BaseTools:Change the path of the file that Binary Cache
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4Option.c
index 334bb41112aa7dd0699e8b309da291dcef78d46d..f1c10014e85c35f35e65e00849eff4eb1635fef3 100644 (file)
@@ -1,22 +1,8 @@
 /** @file\r
+  IP4 option support functions.\r
 \r
-Copyright (c) 2005 - 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
-  Ip4Option.c\r
-\r
-Abstract:\r
-\r
-  IP4 option support functions\r
-\r
+Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -25,12 +11,11 @@ Abstract:
 \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
+  and will transmit.\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
+  @param[in]  Option            The first byte of the option\r
+  @param[in]  OptionLen         The length of the whole option\r
+  @param[in]  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
@@ -47,13 +32,6 @@ Ip4OptionIsValid (
   UINT32                    Cur;\r
   UINT32                    Len;\r
   UINT32                    Point;\r
-  volatile UINT8            IcmpType;\r
-  volatile UINT8            IcmpCode;\r
-  volatile UINT32           IcmpPoint;\r
-\r
-  IcmpType  = ICMP_PARAMETER_PROBLEM;\r
-  IcmpCode  = 0;\r
-  IcmpPoint = 0;\r
 \r
   Cur       = 0;\r
 \r
@@ -77,12 +55,10 @@ Ip4OptionIsValid (
       // SRR/RR options are formatted as |Type|Len|Point|Ip1|Ip2|...\r
       //\r
       if ((OptionLen - Cur < Len) || (Len < 3) || ((Len - 3) % 4 != 0)) {\r
-        IcmpPoint = Cur + 1;\r
         return FALSE;\r
       }\r
 \r
       if ((Point > Len + 1) || (Point % 4 != 0)) {\r
-        IcmpPoint = Cur + 2;\r
         return FALSE;\r
       }\r
 \r
@@ -94,8 +70,6 @@ Ip4OptionIsValid (
       if ((Option[Cur] != IP4_OPTION_RR) &&\r
           ((Rcvd && (Point != Len + 1)) || (!Rcvd && (Point != 4)))) {\r
 \r
-        IcmpType  = ICMP_DEST_UNREACHABLE;\r
-        IcmpCode  = ICMP_SOURCEROUTE_FAILED;\r
         return FALSE;\r
       }\r
 \r
@@ -106,7 +80,6 @@ Ip4OptionIsValid (
       Len = Option[Cur + 1];\r
 \r
       if ((OptionLen - Cur < Len) || (Len < 2)) {\r
-        IcmpPoint = Cur + 1;\r
         return FALSE;\r
       }\r
 \r
@@ -127,11 +100,11 @@ Ip4OptionIsValid (
      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
+  @param[in]       Option            The original option to copy from\r
+  @param[in]       OptionLen         The length of the original option\r
+  @param[in]       FirstFragment     Whether it is the first fragment\r
+  @param[in, out]  Buf               The buffer to copy options to. NULL\r
+  @param[in, out]  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