/** @file\r
IP4 option support functions.\r
\r
-Copyright (c) 2005 - 2006, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.<BR>\r
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
\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[in] Option The first byte of the option\r
@param[in] OptionLen The length of the whole option\r
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
// 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
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
Len = Option[Cur + 1];\r
\r
if ((OptionLen - Cur < Len) || (Len < 2)) {\r
- IcmpPoint = Cur + 1;\r
return FALSE;\r
}\r
\r