I've never understood why the edk2 network code is fragmented like this.
Out of curiosity, does anyone know why? Historical reasons or something?
On Thu, Dec 18, 2014 at 2:09 AM, Laszlo Ersek <ler...@redhat.com> 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
>
> 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
>
------------------------------------------------------------------------------
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