comments below On 12/18/14 08:11, Gary Ching-Pang Lin wrote: > Include the IPv6 drivers to enable the PXE6 support. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Gary Lin <g...@suse.com> > --- > OvmfPkg/OvmfPkgIa32.dsc | 12 +++++++++++- > OvmfPkg/OvmfPkgIa32.fdf | 11 ++++++++++- > OvmfPkg/OvmfPkgIa32X64.dsc | 12 +++++++++++- > OvmfPkg/OvmfPkgIa32X64.fdf | 11 ++++++++++- > OvmfPkg/OvmfPkgX64.dsc | 12 +++++++++++- > OvmfPkg/OvmfPkgX64.fdf | 11 ++++++++++- > 6 files changed, 63 insertions(+), 6 deletions(-) > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index 6598102..0d7b9e6 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -34,6 +34,7 @@ > # -D FLAG=VALUE > # > DEFINE SECURE_BOOT_ENABLE = FALSE > + DEFINE NETWORK_IP6_ENABLE = FALSE > > [BuildOptions] > GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG > @@ -518,8 +519,17 @@ > MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + NetworkPkg/TcpDxe/TcpDxe.inf > + NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > OvmfPkg/VirtioNetDxe/VirtioNet.inf
So apparently we have two kinds of IPv4 / IPv6 separation: - for some internet protocols -- "protocol" is an overloaded term here, which is why I'm saying "internet protocols" -- MdeModulePkg/Universal/Network/foo provides an IPv4-only driver, and NetworkPkg/bar provides an IPv6-only driver. - for some other internet protocols, MdeModulePkg/Universal/Network/quux provides an IPv4-only driver, and NetworkPkg/xizzy provides a driver that covers *both* IPv4 and IPv6. For the former kind, we just need to add the IPv6 service by including the NetworkPkg/bar. For the latter kind we need to *replace* MdeModulePkg/Universal/Network/quux with NetworkPkg/xizzy. Let's see: currently included related driver add or replace from MdeModulePkg in NetworkPkg from NetworkPkg patch okay? ------------------ -------------- --------------- ----------- SnpDxe n/a n/a yes DpcDxe n/a n/a yes MnpDxe n/a n/a yes VlanConfigDxe n/a n/a yes ArpDxe n/a n/a yes Dhcp4Dxe Dhcp6Dxe add yes Ip4ConfigDxe Ip6Dxe add yes Ip4Dxe Ip6Dxe add yes Mtftp4Dxe Mtftp6Dxe add yes Tcp4Dxe TcpDxe replace no Udp4Dxe Udp6Dxe add yes UefiPxeBcDxe UefiPxeBcDxe replace yes IScsiDxe IScsiDxe replace no Tcp4Dxe provides: - gEfiTcp4ServiceBindingProtocolGuid - gEfiTcp4ProtocolGuid whereas TcpDxe provides: - gEfiTcp4ProtocolGuid - gEfiTcp4ServiceBindingProtocolGuid - gEfiTcp6ProtocolGuid - gEfiTcp6ServiceBindingProtocolGuid The IScsiDxe provides the same EFI protocol (EFI_EXT_SCSI_PASS_THRU_PROTOCOL), but the one in NetworkPkg seems to be able to do it over IPv6 too. I can't find any PCDs (esp. Feature PCDs) listed in the respective NetworkPkg INF files, so I think that both TcpDxe and IScsiDxe there provide all of their protocols unconditionally (well at least not controlled by a build time flag). Finally, I wonder if it would make sense to include the one remaining NetworkPkg driver, IpSecDxe. However, that's arguably a different feature from "plain" IPv6 support. Summary: please make sure that -- similarly to UefiPxeBcDxe -- TcpDxe and IScsiDxe are replaced. TcpDxe is added now (instead of replacing Tcp4Dxe), while IScsiDxe isn't mentioned at all in the patch. (Or, if I'm wrong, tell me why. :)) Also, if you update the patch, you might want to include the above table in the commit message. Thanks Laszlo > > # > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf > index 932aefa..c4ce608 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -310,8 +310,17 @@ FILE FREEFORM = > PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { > INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + INF NetworkPkg/TcpDxe/TcpDxe.inf > + INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > > # > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 4de961f..a500f70 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -34,6 +34,7 @@ > # -D FLAG=VALUE > # > DEFINE SECURE_BOOT_ENABLE = FALSE > + DEFINE NETWORK_IP6_ENABLE = FALSE > > [BuildOptions] > GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG > @@ -525,8 +526,17 @@ > MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + NetworkPkg/TcpDxe/TcpDxe.inf > + NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > OvmfPkg/VirtioNetDxe/VirtioNet.inf > > # > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index 048d8bf..988bc77 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -310,8 +310,17 @@ FILE FREEFORM = > PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { > INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + INF NetworkPkg/TcpDxe/TcpDxe.inf > + INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > > # > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 6c38081..fa560fe 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -34,6 +34,7 @@ > # -D FLAG=VALUE > # > DEFINE SECURE_BOOT_ENABLE = FALSE > + DEFINE NETWORK_IP6_ENABLE = FALSE > > [BuildOptions] > GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG > @@ -523,8 +524,17 @@ > MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + NetworkPkg/TcpDxe/TcpDxe.inf > + NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > OvmfPkg/VirtioNetDxe/VirtioNet.inf > > # > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf > index bcf0b9d..abeae5a 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -310,8 +310,17 @@ FILE FREEFORM = > PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { > INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf > INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf > INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf > - INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf > + !if $(NETWORK_IP6_ENABLE) == TRUE > + INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf > + INF NetworkPkg/TcpDxe/TcpDxe.inf > + INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf > + INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf > + INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf > + INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !else > + INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf > + !endif > INF OvmfPkg/VirtioNetDxe/VirtioNet.inf > > # > ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel