On Thu, Dec 18, 2014 at 09:09:39AM +0100, Laszlo Ersek wrote: > 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 > Ah, I thought TcpDxe was only for Tcp6. Thanks for pointing it out.
> 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. > NetworkPkg/IScsiDxe is a bit different. It requires BaseCryptLib while the one in MdeModulePkg doesn't need the library, so a few more changes are needed. > (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. > Sure, I'll update the patch with the table :) Thanks, Gary Lin > 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 > ------------------------------------------------------------------------------ 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