#include <Library/DpcLib.h>\r
\r
\r
-LIST_ENTRY mActiveIpIoList = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mActiveIpIoList = {\r
&mActiveIpIoList,\r
&mActiveIpIoList\r
};\r
\r
-EFI_IP4_CONFIG_DATA mIp4IoDefaultIpConfigData = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_IP4_CONFIG_DATA mIp4IoDefaultIpConfigData = {\r
EFI_IP_PROTO_UDP,\r
FALSE,\r
TRUE,\r
0\r
};\r
\r
-EFI_IP6_CONFIG_DATA mIp6IoDefaultIpConfigData = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_IP6_CONFIG_DATA mIp6IoDefaultIpConfigData = {\r
EFI_IP_PROTO_UDP,\r
FALSE,\r
TRUE,\r
0\r
};\r
\r
-ICMP_ERROR_INFO mIcmpErrMap[10] = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED ICMP_ERROR_INFO mIcmpErrMap[10] = {\r
{FALSE, TRUE }, // ICMP_ERR_UNREACH_NET\r
{FALSE, TRUE }, // ICMP_ERR_UNREACH_HOST\r
{TRUE, TRUE }, // ICMP_ERR_UNREACH_PROTOCOL\r
{FALSE, TRUE } // ICMP_ERR_PARAMPROB\r
};\r
\r
-ICMP_ERROR_INFO mIcmp6ErrMap[10] = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED ICMP_ERROR_INFO mIcmp6ErrMap[10] = {\r
{FALSE, TRUE}, // ICMP6_ERR_UNREACH_NET\r
{FALSE, TRUE}, // ICMP6_ERR_UNREACH_HOST\r
{TRUE, TRUE}, // ICMP6_ERR_UNREACH_PROTOCOL\r
IN EFI_HANDLE ControllerHandle,\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_HANDLE *ChildHandle,\r
- IN IP_VERSION IpVersion, \r
+ IN UINT8 IpVersion,\r
OUT VOID **Interface\r
)\r
{\r
IN EFI_HANDLE ControllerHandle,\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_HANDLE ChildHandle,\r
- IN IP_VERSION IpVersion\r
+ IN UINT8 IpVersion\r
)\r
{\r
EFI_STATUS Status;\r
{\r
IP4_ICMP_ERROR_HEAD *IcmpHdr;\r
EFI_IP4_HEADER *IpHdr;\r
- ICMP_ERROR IcmpErr;\r
+ UINT8 IcmpErr;\r
UINT8 *PayLoadHdr;\r
UINT8 Type;\r
UINT8 Code;\r
case ICMP_CODE_UNREACH_PROTOCOL:\r
case ICMP_CODE_UNREACH_PORT:\r
case ICMP_CODE_UNREACH_SRCFAIL:\r
- IcmpErr = (ICMP_ERROR) (ICMP_ERR_UNREACH_NET + Code);\r
+ IcmpErr = (UINT8) (ICMP_ERR_UNREACH_NET + Code);\r
\r
break;\r
\r
return EFI_ABORTED;\r
}\r
\r
- IcmpErr = (ICMP_ERROR) (Code + ICMP_ERR_TIMXCEED_INTRANS);\r
+ IcmpErr = (UINT8) (Code + ICMP_ERR_TIMXCEED_INTRANS);\r
\r
break;\r
\r
{\r
IP6_ICMP_ERROR_HEAD *IcmpHdr;\r
EFI_IP6_HEADER *IpHdr;\r
- ICMP6_ERROR IcmpErr;\r
+ UINT8 IcmpErr;\r
UINT8 *PayLoadHdr;\r
UINT8 Type;\r
UINT8 Code;\r
return EFI_ABORTED;\r
}\r
\r
- IcmpErr = (ICMP6_ERROR) (ICMP6_ERR_TIMXCEED_HOPLIMIT + Code);\r
+ IcmpErr = (UINT8) (ICMP6_ERR_TIMXCEED_HOPLIMIT + Code);\r
\r
break;\r
\r
return EFI_ABORTED;\r
}\r
\r
- IcmpErr = (ICMP6_ERROR) (ICMP6_ERR_PARAMPROB_HEADER + Code);\r
+ IcmpErr = (UINT8) (ICMP6_ERR_PARAMPROB_HEADER + Code);\r
\r
break;\r
\r
\r
NetbufTrim (Pkt, TrimBytes, TRUE);\r
\r
- IpIo->PktRcvdNotify (EFI_ICMP_ERROR, (ICMP_ERROR) IcmpErr, Session, Pkt, IpIo->RcvdContext);\r
+ IpIo->PktRcvdNotify (EFI_ICMP_ERROR, IcmpErr, Session, Pkt, IpIo->RcvdContext);\r
\r
return EFI_SUCCESS;\r
}\r
\r
**/\r
VOID\r
+EFIAPI\r
IpIoExtFree (\r
IN VOID *Event\r
)\r
\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
if ((EFI_IP4 (RxData->Ip4RxData.Header->SourceAddress) != 0) &&\r
- !Ip4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), 0)) {\r
+ !NetIp4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), 0)) {\r
//\r
// The source address is not zero and it's not a unicast IP address, discard it.\r
//\r
Session.Source.Addr[0] = EFI_IP4 (RxData->Ip4RxData.Header->SourceAddress);\r
Session.Dest.Addr[0] = EFI_IP4 (RxData->Ip4RxData.Header->DestinationAddress);\r
Session.IpHdr.Ip4Hdr = RxData->Ip4RxData.Header;\r
+ Session.IpHdrLen = RxData->Ip4RxData.HeaderLength;\r
Session.IpVersion = IP_VERSION_4;\r
} else {\r
\r
- if (!Ip6IsValidUnicast(&RxData->Ip6RxData.Header->SourceAddress)) {\r
+ if (!NetIp6IsValidUnicast(&RxData->Ip6RxData.Header->SourceAddress)) {\r
goto CleanUp;\r
}\r
\r
sizeof(EFI_IPv6_ADDRESS)\r
);\r
Session.IpHdr.Ip6Hdr = RxData->Ip6RxData.Header;\r
+ Session.IpHdrLen = RxData->Ip6RxData.HeaderLength;\r
Session.IpVersion = IP_VERSION_6;\r
} \r
\r
if (EFI_SUCCESS == Status) {\r
\r
- IpIo->PktRcvdNotify (EFI_SUCCESS, (ICMP_ERROR) 0, &Session, Pkt, IpIo->RcvdContext);\r
+ IpIo->PktRcvdNotify (EFI_SUCCESS, 0, &Session, Pkt, IpIo->RcvdContext);\r
} else {\r
//\r
// Status is EFI_ICMP_ERROR\r
IpIoCreate (\r
IN EFI_HANDLE Image,\r
IN EFI_HANDLE Controller,\r
- IN IP_VERSION IpVersion \r
+ IN UINT8 IpVersion\r
)\r
{\r
EFI_STATUS Status;\r
{\r
EFI_STATUS Status;\r
VOID *Ip;\r
- IP_VERSION IpVersion;\r
+ UINT8 IpVersion;\r
\r
if (IpIo->IsConfigured) {\r
return EFI_ACCESS_DENIED;\r
EFI_STATUS Status;\r
VOID *Ip;\r
IP_IO_IP_INFO *IpInfo;\r
- IP_VERSION IpVersion;\r
+ UINT8 IpVersion;\r
\r
if (!IpIo->IsConfigured) {\r
return EFI_SUCCESS;\r
{\r
EFI_STATUS Status;\r
VOID *Ip;\r
- IP_VERSION IpVersion;\r
+ UINT8 IpVersion;\r
EFI_IP4_MODE_DATA Ip4ModeData;\r
EFI_IP6_MODE_DATA Ip6ModeData;\r
\r
)\r
{\r
\r
- IP_VERSION IpVersion;\r
+ UINT8 IpVersion;\r
\r
ASSERT (IpInfo->RefCnt > 0);\r
\r
EFIAPI\r
IpIoFindSender (\r
IN OUT IP_IO **IpIo,\r
- IN IP_VERSION IpVersion,\r
+ IN UINT8 IpVersion,\r
IN EFI_IP_ADDRESS *Src\r
)\r
{\r
\r
@param[in] IcmpError IcmpError Type.\r
@param[in] IpVersion The version of the IP protocol to use,\r
- either IPv4 or IPv6.\r
- \r
- @param[out] IsHard Whether it is a hard error.\r
- @param[out] Notify Whether it need to notify SockError.\r
+ either IPv4 or IPv6. \r
+ @param[out] IsHard If TRUE, indicates that it is a hard error.\r
+ @param[out] Notify If TRUE, SockError needs to be notified.\r
\r
@return ICMP Error Status, such as EFI_NETWORK_UNREACHABLE.\r
\r
EFI_STATUS\r
EFIAPI\r
IpIoGetIcmpErrStatus (\r
- IN ICMP_ERROR IcmpError,\r
- IN IP_VERSION IpVersion,\r
+ IN UINT8 IcmpError,\r
+ IN UINT8 IpVersion,\r
OUT BOOLEAN *IsHard OPTIONAL,\r
OUT BOOLEAN *Notify OPTIONAL\r
)\r
{\r
if (IpVersion == IP_VERSION_4 ) {\r
- ASSERT ((IcmpError >= ICMP_ERR_UNREACH_NET) && (IcmpError <= ICMP_ERR_PARAMPROB));\r
+ ASSERT (IcmpError <= ICMP_ERR_PARAMPROB);\r
\r
if (IsHard != NULL) {\r
*IsHard = mIcmpErrMap[IcmpError].IsHard;\r
\r
} else if (IpVersion == IP_VERSION_6) {\r
\r
- ASSERT ((IcmpError >= ICMP6_ERR_UNREACH_NET) && (IcmpError <= ICMP6_ERR_PARAMPROB_IPV6OPTION));\r
+ ASSERT (IcmpError <= ICMP6_ERR_PARAMPROB_IPV6OPTION);\r
\r
if (IsHard != NULL) {\r
*IsHard = mIcmp6ErrMap[IcmpError].IsHard;\r