Hi Laszlo,
Thanks for your comments first.
Ip4Dxe driver update patch has been sent out and reviewed, we have submitted to 
edk2 already.  So, that means the packages I listed will consume Ip4Config2 
protocol integrated in Ip4Dxe driver directly.
For patch series, those patches used to update related pkgs and remove 
Ip4ConfigDxe driver. I will submit related pkgs  to edk2 first, and then remove 
Ip4ConfigDxe driver.  I don't think the patch series has any issue.

Thanks.
Jiaxin

-----Original Message-----
From: Laszlo Ersek [mailto:ler...@redhat.com] 
Sent: Tuesday, July 7, 2015 8:56 PM
To: Wu, Jiaxin
Cc: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [Patch 3/7] OvmfPkg: Remove Ip4ConfigDxe module from 
OvmfPkg.

On 07/07/15 03:27, jiaxinwu wrote:
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: jiaxinwu <jiaxin...@intel.com>
> ---
>  OvmfPkg/OvmfPkgIa32.dsc    | 1 -
>  OvmfPkg/OvmfPkgIa32.fdf    | 1 -
>  OvmfPkg/OvmfPkgIa32X64.dsc | 1 -
>  OvmfPkg/OvmfPkgIa32X64.fdf | 1 -
>  OvmfPkg/OvmfPkgX64.dsc     | 1 -
>  OvmfPkg/OvmfPkgX64.fdf     | 1 -
>  6 files changed, 6 deletions(-)
> 
> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index 
> bb008f6..c3508e6 100644
> --- a/OvmfPkg/OvmfPkgIa32.dsc
> +++ b/OvmfPkg/OvmfPkgIa32.dsc
> @@ -524,11 +524,10 @@
>    MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 
> 24ad0bf..aadb099 100644
> --- a/OvmfPkg/OvmfPkgIa32.fdf
> +++ b/OvmfPkg/OvmfPkgIa32.fdf
> @@ -302,11 +302,10 @@ FILE FREEFORM = 
> PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
>    INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  INF  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc 
> index fed584f..40a1cf1 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
> @@ -531,11 +531,10 @@
>    MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf 
> index 5f98be8..bc42a2b 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
> @@ -302,11 +302,10 @@ FILE FREEFORM = 
> PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
>    INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  INF  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 
> 92af10f..ac4e731 100644
> --- a/OvmfPkg/OvmfPkgX64.dsc
> +++ b/OvmfPkg/OvmfPkgX64.dsc
> @@ -529,11 +529,10 @@
>    MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf index 
> 11e74e7..b6992bd 100644
> --- a/OvmfPkg/OvmfPkgX64.fdf
> +++ b/OvmfPkg/OvmfPkgX64.fdf
> @@ -302,11 +302,10 @@ FILE FREEFORM = 
> PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
>    INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
>    INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
>    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
>    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> -  INF  MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
>    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
>    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> 

I don't see any driver in the edk2 tree that installs 
gEfiIp4Config2ProtocolGuid, at the moment.

In your other email you wrote:

> Ip4ConfigDxe driver is deprecated in UEFI 2.5, so we will not support 
> original Ip4Config Protocol, which is replace by Ip4Config2 Protocol 
> integrated in Ip4Dxe driver.

> Related pkgs(MdeModulePkg, Nt32Pkg,  ArmPlatformPkg, ArmVirtPkg, 
> EmulatorPkg, OvmfPkg, Vlv2TbltDevicePkg) need to remove Ip4ConfigDxe 
> module and related guid definitions, otherwise they will meet build 
> failure issue after we update Ip4Dxe driver and deprecate Ip4ConfigDxe 
> driver.

However, if these patches were committed first, then the packages you listed 
would have no Ip4Config protocol *at all*, either version 1 or version 2. 
Because, as you said, Ip4Config2 will only be implemented in the future (in 
Ip4Dxe).

That would break IPv4 networking for all of these packages: Ip4Dxe.inf lists 
"gEfiIp4ConfigProtocolGuid" (that is, version 1) as TO_START.

The right way to implement such changes is the following:
- First implement the new (version 2) protocol in the edk2 tree. This
  can be a separate, initial patch set, or else the first segment of a
  larger patch series.
- Then flip client packages over to the new protocol version. This is
  where the old driver INF can be removed from the DSC and FDF files.
- Finally, you can delete Ip4ConfigDxe from the tree completely.

In other words, the tree must build, and preferably even work, at *any* stage 
within your patch series. The patches must preserve bisectability.

Therefore, I don't think this patch series is good, in its current form.
Please consider the pattern I described above.

Thanks
Laszlo

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to