\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
if ((EFI_IP4 (RxData->Ip4RxData.Header->SourceAddress) != 0) &&\r
- !NetIp4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), 0)) {\r
+ (IpIo->SubnetMask != 0) &&\r
+ IP4_NET_EQUAL (IpIo->StationIp, EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), IpIo->SubnetMask) &&\r
+ !NetIp4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), IpIo->SubnetMask)) {\r
//\r
// The source address is not zero and it's not a unicast IP address, discard it.\r
//\r
if (OpenData->IpConfigData.Ip4CfgData.RawData) {\r
return EFI_UNSUPPORTED;\r
}\r
+\r
+ if (!OpenData->IpConfigData.Ip4CfgData.UseDefaultAddress) {\r
+ IpIo->StationIp = EFI_NTOHL (OpenData->IpConfigData.Ip4CfgData.StationAddress);\r
+ IpIo->SubnetMask = EFI_NTOHL (OpenData->IpConfigData.Ip4CfgData.SubnetMask);\r
+ }\r
\r
Status = IpIo->Ip.Ip4->Configure (\r
IpIo->Ip.Ip4,\r
}\r
\r
//\r
- // All pending send tokens should be flushed by reseting the IP instances.\r
+ // All pending send tokens should be flushed by resetting the IP instances.\r
//\r
ASSERT (IsListEmpty (&IpIo->PendingSndList));\r
\r