Eugene, I can reproduce the issue now. And root cause as below:
#1. Set policy to DHCP. #2. If DHCP process is not complete yet, then run one App to invoke the UDP4 Configure with "UseDefaultAddress = TRUE" (loop to keep calling Udp4->Configure until Ip4Mode.IsConfigured changes to TRUE) #3. Even DHCP succeed but Ip4Mode.IsConfigured flag never set to TRUE ---- failure here!!! In step1, the policy will be set to DHCP, and then Ip4Config2OnPolicyChanged() will be called. In this function, "IpSb->Reconfig" flag will be set to TRUE before Ip4StartAutoConfig() called. That means the original "IpSb->DefaultInterface" will be abandoned/freed once this DHCP process finished. Detailed see Ip4Config2SetDefaultAddr() function. In step2, UDP4 Configure with "UseDefaultAddress = TRUE" is called, that means the default interface (IpSb->DefaultInterface) will be selected as current instance's interface. Detailed see Ip4ConfigProtocol() function. In step3, When DHCP process finished, as I said in step1, the original "IpSb->DefaultInterface" will be abandoned/freed because "IpSb->Reconfig" flag is true. Meanwhile, one new interface is assigned to "IpSb->DefaultInterface". This "IpSb->DefaultInterface" is different to the original one assigned to the UDP4 Configured instance. So, even DHCP process succeed, the up caller will never have the chance to get it's truly status. I will send one patch to fix this issue later. Thanks your reporting. Best Regards! Jiaxin > -----Original Message----- > From: Wu, Jiaxin > Sent: Friday, August 12, 2016 8:20 AM > To: Cohen, Eugene <[email protected]>; [email protected] > Subject: RE: IP4 Config Troubles with DHCP > > Thanks Eugene, I will try to reproduce the issue and dig it out. Any process > will > inform you. > > Best Regards! > Jiaxin > > > -----Original Message----- > > From: Cohen, Eugene [mailto:[email protected]] > > Sent: Thursday, August 11, 2016 10:31 PM > > To: Wu, Jiaxin <[email protected]>; [email protected] > > Subject: RE: IP4 Config Troubles with DHCP > > > > Jianxin, > > > > > I want to confirm with you the steps to reproduce the issue: > > > > > > 1. Set policy to DHCP. > > > 2. If DHCP process is not complete yet, then run one App to invoke > > > the > > > UDP4 Configure with "UseDefaultAddress = TRUE" (loop to keep calling > > > Udp4->Configure until Ip4Mode.IsConfigured changes to TRUE) > > > 3. Even DHCP succeed but Ip4Mode.IsConfigured flag never set to > > > TRUE ---- failure here!!! > > > > > > Above steps right? > > > > Yes, that summarizes it well. > > > > > Actually, you don't need to retry the UDP configuration loop > > > according the Ip4Mode.IsConfigured flag. You are only recommended to > > > set a timer to check the mapping status after the configuration: > > > > This is exactly what we used to do. Recently it stopped working which > > is why we now have to re-do service binding creation and configuration. > > > > > If DHCP process succeed, Ip4Mode.IsConfigured should be updated. If > > > not, any bug may be existed. > > > > From the traces I've looked at I can clearly see that the DHCP process > > as finished (lease acquired) and that Ip4Mode.IsConfigured is still > > FALSE. I'll send you a detailed trace of this separately. > > > > So yes, I think there is a bug that crept in. > > > > Eugene _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

