PXEBC_PRIVATE_DATA *Private;\r
UINTN Index;\r
EFI_STATUS Status;\r
+ EFI_IP4_MODE_DATA Ip4ModeData;\r
\r
Private = AllocateZeroPool (sizeof (PXEBC_PRIVATE_DATA));\r
if (Private == NULL) {\r
if (EFI_ERROR (Status)) {\r
goto ON_ERROR;\r
}\r
+
+ //
+ // Get max packet size from Ip4 to calculate block size for Tftp later.\r
+ //
+ Status = Private->Ip4->GetModeData (Private->Ip4, &Ip4ModeData, NULL, NULL);
+ if (EFI_ERROR (Status)) {
+ goto ON_ERROR;
+ }
+
+ Private->Ip4MaxPacketSize = Ip4ModeData.MaxPacketSize;\r
\r
Status = NetLibCreateServiceChild (\r
ControllerHandle,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+ \r
+ //\r
+ // Stop functionality of PXE Base Code protocol\r
+ //\r
+ Status = PxeBc->Stop (PxeBc);\r
+ if (Status != EFI_SUCCESS && Status != EFI_NOT_STARTED) {\r
+ return Status;\r
+ }\r
\r
Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (PxeBc);\r
\r