audk/MdeModulePkg/Universal/Network/Ip4Dxe
Jiaxin Wu 5cb90e14e1 MdeModulePkg: Fix the wrong IpSb->State update
This patch is used to fix the wrong IpSb->State update issue.

Issue reproduce steps:
1 .First PXE boot, then boot to shell;
2. ifconfig -s eth0 dhcp (Success);
3. Reboot and do PXE, then boot to shell;
4. ifconfig -s eth0 dhcp (Platform failed to get IP address no matter
   how many times retried.)

Root cause:
On step3 reboot, policy is DHCP (Changed by step2). So, Ip4Dxe driver
will try to get one IP address from DHCP server automatically. Before
it get the IP address successfully, the IpSb->State will be always in
IP4_SERVICE_STARTED status until the Instance->Dhcp4Event is triggered,
then it can be changed to IP4_SERVICE_CONFIGED. But the DHCP process
will be interrupted by PXE boot, which will change the policy to static,
and the Instance->Dhcp4Event will be also closed directly. However,
current implementation doesn't update the IpSb->State to
IP4_SERVICE_UNSTARTED status in such case. So, failure happened.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
2016-06-23 15:40:31 +08:00
..
ComponentName.c 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
Ip4Common.c 1. Mark the network volatile variables as deprecated in code comments and remove related code to set/get these variable. 2014-05-07 06:17:31 +00:00
Ip4Common.h 1. Mark the network volatile variables as deprecated in code comments and remove related code to set/get these variable. 2014-05-07 06:17:31 +00:00
Ip4Config2.vfr MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Config2Impl.c MdeModulePkg: Fix the wrong IpSb->State update 2016-06-23 15:40:31 +08:00
Ip4Config2Impl.h MedmodulePkg: Refine codes related to Dhcpv4 and Dhcpv6 configuration. 2016-06-23 09:39:23 +08:00
Ip4Config2Nv.c MdeModulePkg: Code logic optimization for Ip4Dxe driver 2015-07-10 09:01:42 +00:00
Ip4Config2Nv.h MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Driver.c MdeModulePkg: Stop the timer before clean IP service. 2016-05-31 10:56:04 +08:00
Ip4Driver.h 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
Ip4Dxe.inf MdeModulePkg: Change the default IPv4 config policy 2016-03-02 15:43:50 +08:00
Ip4Dxe.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Ip4DxeExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Ip4DxeStrings.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Ip4Icmp.c MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Icmp.h MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4If.c MdeModulePkg: Add new macros and refine codes 2016-04-11 08:25:33 +08:00
Ip4If.h MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Igmp.c MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Igmp.h MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Impl.c MdeModulePkg: Fix IPv4 UseDefaultAddress failure case. 2016-06-08 15:17:31 +08:00
Ip4Impl.h MedmodulePkg: Refine codes related to Dhcpv4 and Dhcpv6 configuration. 2016-06-23 09:39:23 +08:00
Ip4Input.c MdeModulePkg/NetworkPkg: Locate IpSec on IP packet processing only if it's installed. 2015-08-31 07:44:12 +00:00
Ip4Input.h 1. Add EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() support. 2012-12-13 06:47:06 +00:00
Ip4NvData.h MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Option.c MdeModulePkg: Remove variables that are set, but not used 2011-10-31 15:58:05 +00:00
Ip4Option.h
Ip4Output.c MdeModulePkg: Update Ip4Dxe driver to support Ip4Config2 protocol, 2015-07-07 08:19:55 +00:00
Ip4Output.h
Ip4Route.c MdeModulePkg: Add new macros and refine codes 2016-04-11 08:25:33 +08:00
Ip4Route.h