From 129b8b096fa2f87a4b24f31c004dea7bfe7872dd Mon Sep 17 00:00:00 2001 From: hhuan13 Date: Fri, 12 Aug 2011 06:18:29 +0000 Subject: 1. Fix bugs for PXE-IPv6 to accommodate the situation: 1.1 Proxy DHCP6 service and DHCP6 service on different servers. 1.2 Proxy DHCP6 server with Response Delay setting. 2. Update to support percent-encoding in NBP file name in netboot6 BootFileURL. Signed-off-by: hhuan13 Reviewed-by: xdu2, tye git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12122 6f19259b-4bc3-4df7-8a09-765794883524 --- NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h | 1 + NetworkPkg/Dhcp6Dxe/Dhcp6Io.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'NetworkPkg/Dhcp6Dxe') diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h b/NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h index 84d50ad244..dda0cf37d5 100644 --- a/NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h +++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h @@ -212,6 +212,7 @@ struct _DHCP6_TX_CB { UINT32 RetryLos; UINT32 TickTime; UINT16 *Elapsed; + BOOLEAN SolicitRetry; }; // diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Io.c b/NetworkPkg/Dhcp6Dxe/Dhcp6Io.c index cca1468683..7320642edd 100644 --- a/NetworkPkg/Dhcp6Dxe/Dhcp6Io.c +++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Io.c @@ -2817,7 +2817,7 @@ Dhcp6OnTimerTick ( // // Handle the first rt in the transmission of solicit specially. // - if (TxCb->RetryCnt == 0 && TxCb->TxPacket->Dhcp6.Header.MessageType == Dhcp6MsgSolicit) { + if ((TxCb->RetryCnt == 0 || TxCb->SolicitRetry) && TxCb->TxPacket->Dhcp6.Header.MessageType == Dhcp6MsgSolicit) { if (Instance->AdSelect == NULL) { // // Set adpref as 0xff here to indicate select any advertisement @@ -2893,6 +2893,10 @@ Dhcp6OnTimerTick ( // Retransmit the last sent packet again. // Dhcp6TransmitPacket (Instance, TxCb->TxPacket, TxCb->Elapsed); + TxCb->SolicitRetry = FALSE; + if (TxCb->TxPacket->Dhcp6.Header.MessageType == Dhcp6MsgSolicit) { + TxCb->SolicitRetry = TRUE; + } } } -- cgit v1.2.3