Hi, Larry
Thanks for your patch, I will commit it after we finish the code review process.
Best Regards
Siyuan
From: Larry Cleeton [mailto:[email protected]]
Sent: Friday, April 25, 2014 5:17 AM
To: [email protected]; Fu, Siyuan
Subject: RE: [PATCH] NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h: Fix default
VENDOR_CLASS in DHCP discover
Siyuan,
Will you be reviewing and commiting this patch?
--Larry
From: Larry Cleeton
Sent: Thursday, April 10, 2014 5:49 PM
To: [email protected]<mailto:[email protected]>
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 doesn't 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
<[email protected]<mailto:[email protected]>> 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 it's ok to use
the default value in PXE option 94. For the question mark in vendor class
option, I think it's 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
<[email protected]<mailto:[email protected]>>
---
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
#define DEFAULT_UNDI_MAJOR 3
#define DEFAULT_UNDI_MINOR 0
--
1.9.0.msysgit.0
------------------------------------------------------------------------------
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
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel