>>>And I stand corrected Patrick.? Apparently some clients are stuffing bad values into packets and moving the code to save the MAC resolves the deafness I observed. Commit 8a00e49 is the change. -- -Gene <<< OK; I was about to ask you a few wiershark captures... I looked at the last commit and I think if (mode->PxeReplyReceived) pkt_v4 = &mode->PxeReply.Dhcpv4; else if (mode->ProxyOfferReceived) pkt_v4 = &mode->ProxyOffer.Dhcpv4; should be replaced by if (mode->PxeReplyReceived) pkt_v4 = &mode->PxeReply.Dhcpv4; else if (mode->ProxyOfferReceived) pkt_v4 = &mode->ProxyOffer.Dhcpv4; else pkt_v4 = &mode->DhcpAck.Dhcpv4; this code is used in C:\UDK2014.SP1.P1.Complete\MyWorkSpace\NetworkPkg\UefiPxeBcDxe\PxeBcBoot.c / PxeBcDhcp4BootInfo() when looking for boot info. I agree it is not 100% clear but it could be necessary on non proxyDHCP situations. i.e when the PXE info is contained within the DHCP OFFER/ACK I do not know if in that particular case some FWs probably do not populate the ProxyOffer pkt. In those cases the last "else" would be necessary. Best, Patrick
On Tue, Jun 9, 2015 at 9:05 AM, Patrick Masotta <masottaus at yahoo.com> wrote:>>>> > And I stand corrected Patrick. Apparently some clients are > stuffing bad values into packets and moving the code to save the MAC resolves > the deafness I observed. > Commit 8a00e49 is the change. > -- > -Gene > <<< > > OK; I was about to ask you a few wiershark captures... > > > I looked at the last commit and I think > > if (mode->PxeReplyReceived) > pkt_v4 = &mode->PxeReply.Dhcpv4; > else if (mode->ProxyOfferReceived) > pkt_v4 = &mode->ProxyOffer.Dhcpv4; > > should be replaced by > > if (mode->PxeReplyReceived) > pkt_v4 = &mode->PxeReply.Dhcpv4; > else if (mode->ProxyOfferReceived) > pkt_v4 = &mode->ProxyOffer.Dhcpv4; > else > pkt_v4 = &mode->DhcpAck.Dhcpv4; > > this code is used in > C:\UDK2014.SP1.P1.Complete\MyWorkSpace\NetworkPkg\UefiPxeBcDxe\PxeBcBoot.c / PxeBcDhcp4BootInfo() > when looking for boot info. > I agree it is not 100% clear but it could be necessary on non proxyDHCP situations. > i.e when the PXE info is contained within the DHCP OFFER/ACK I do not know if in that > particular case some FWs probably do not populate the ProxyOffer pkt. > In those cases the last "else" would be necessary.Such a change makes 0 sense. 1) We already parsed that packet just before the if() statement. 2) pkt_v4 is not used after the parsing in the current code. -- -Gene
>>>Such a change makes 0 sense. 1) We already parsed that packet just before the if() statement. 2) pkt_v4 is not used after the parsing in the current code. -- -Gene <<< you're right, my code base is a little bit different but I just see you parsed DhcpAck right before the "if" structure; my mistake. Best, Patrick