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

Reply via email to