Re: [edk2] [PATCH] NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h: Fix default VENDOR_CLASS in DHCP discover

Subject: Re: [edk2] [PATCH] NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h: Fix default VENDOR_CLASS in DHCP discover

From: Daniel Porto <>

To: "" <>

Date: 2014-04-25 06:51:10

Hello, I have a problem in asus tablet t600 vivotab with the following:

the tablet received an update and crashed, I tried to fix it but could not and acabeu erasing the system that was in it windows 8 rt ..

how can I install it again?

I would be very grateful for your help

thank you

Daniel Porto

Date: Thu, 24 Apr 2014 21:17:01 +0000
Subject: Re: [edk2] [PATCH] NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h: Fix default VENDOR_CLASS in DHCP discover



Will you be reviewing and commiting this patch?




From: Larry Cleeton
Sent: Thursday, April 10, 2014 5:49 PM
Subject: [PATCH] NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h: Fix default VENDOR_CLASS in DHCP discover


I found that the NetworkPkg code will send out an incorrect PXE option 94 in DHCP discover packets during PXE boot.  The option will contain question marks in the portion defining the UNDI version. It doesnt seem to be a problem with most PXE servers but it was a problem for an obscure, custom DHCP proxy.  The code only modifies the default string if an NII protocol exists and an NII protocol exists only if a UNDI driver is present.  My implementation only has an SNP network driver.  Changing the default string to the only reasonable defaults fixes the issue. This is now consistent with the original PXE DHCP code in MdeModulePkg.


I exchanged email with Siyuan Fu <> who is apparently the current NetworkPkg maintainer.  I quote his suggested fix among various that I had proposed to him:

The default value of UNDI device (MajorVer = 0x03, MinorVer = 0x00) was defined in Table 177 of UEFI spec 2.4, we can consider it as the must support version of UNDI device and the upper layer drivers (like your SNP) need to provide compatibility if UNDI driver is not present. So I think its ok to use the default value in PXE option 94. For the question mark in vendor class option, I think its better to use UNDI:003000 to keep consistent with option 94 if UNDI is absent.


Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Larry Cleeton <>


NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)


diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h

index ee519d9..7396719 100644

--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h

+++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h

@@ -127,7 +127,7 @@ typedef enum {


#define BIT(x)                (1 << x)

#define CTRL(x)               (0x1F & (x))

-#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:?????:????:??????"

+#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"

#define DEFAULT_UNDI_TYPE     1





------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform
_______________________________________________ edk2-devel mailing list