public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch v5 0/3] Add package level include DSC/FDF in NetworkPkg
@ 2019-05-07 14:27 Liming Gao
  2019-05-07 14:27 ` [Patch v5 1/3] NetworkPkg DSC: Add the required ARM library to pass ARM build Liming Gao
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Liming Gao @ 2019-05-07 14:27 UTC (permalink / raw)
  To: devel

v5:
Update Network.fdf.inc to include the missing IScsiDxe
Update NetworkLibs.dsc.inc to add the comments for HttpLib

v4:
Move library instance BaseStackCheckLib to ARM, AARCH64 arch in Patch 1/3
Move PLATFORMX64_ENABLE build flag to package level include DSC file
Correct typo in Patch 3/3

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293
BZ 1293 requests to move Network modules from MdeModulePkg to NetworkPkg.
To keep the backword compatiblity, Network package level include DSC/FDF
are introduced to be used in the platform DSC/FDF files. When Network 
modules are moved from MdeModulePkg to NetworkPkg, Network package level 
include DSC/FDF will be updated together. There is no impact on the platform 
DSC/FDF file. 

This patch set is to introduce network package level include DSC/FDF files.
Bases on previous discussion and the existing usage case, build flag will be
used to enable/disable the network features. PCD control feature way can be
discussed later. And, to meet with the different usages, this patch set 
introduces the separate DSC for Defines/Pcds/Libraries/Components (Patch 2)
, and also adds the package level combined DSC to include them all (Patch 3).
If platform wants to use the flexible way to enable Network feature, it can 
use the separate DSCs. If the platform wants to directly enable Network 
feature, it can use the combined package DSC file.

This patch set is to update NetworkPkg only. If there is no objection on this
proposal, the following changes to platform DSC/FDF will be made and sent for
review. By default, the platform DSC/FDF will use the combined DSC/FDF file. 
If the platform owner wants to use the flexible way to enable Network feature,
please reply this mail. 

Feedback from Laszlo, OvmfPkg and ArmVirtPkg platforms to use the
standalone include files from patch #2.


Liming Gao (3):
  NetworkPkg DSC: Add the required ARM library to pass ARM build
  NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  NetworkPkg: Add package level include DSC file

 NetworkPkg/Network.dsc.inc           |  40 ++++++++++++
 NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
 NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
 NetworkPkg/NetworkDefines.dsc.inc    | 118 +++++++++++++++++++++++++++++++++++
 NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
 NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
 NetworkPkg/NetworkPkg.dsc            |  24 +------
 7 files changed, 318 insertions(+), 21 deletions(-)
 create mode 100644 NetworkPkg/Network.dsc.inc
 create mode 100644 NetworkPkg/Network.fdf.inc
 create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
 create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
 create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
 create mode 100644 NetworkPkg/NetworkPcds.dsc.inc

-- 
2.13.0.windows.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Patch v5 1/3] NetworkPkg DSC: Add the required ARM library to pass ARM build
  2019-05-07 14:27 [Patch v5 0/3] Add package level include DSC/FDF in NetworkPkg Liming Gao
@ 2019-05-07 14:27 ` Liming Gao
  2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
  2019-05-07 14:27 ` [Patch v5 3/3] NetworkPkg: Add package level include DSC file Liming Gao
  2 siblings, 0 replies; 11+ messages in thread
From: Liming Gao @ 2019-05-07 14:27 UTC (permalink / raw)
  To: devel

Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
---
 NetworkPkg/NetworkPkg.dsc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/NetworkPkg/NetworkPkg.dsc b/NetworkPkg/NetworkPkg.dsc
index b5416b1614..be9d9248e4 100644
--- a/NetworkPkg/NetworkPkg.dsc
+++ b/NetworkPkg/NetworkPkg.dsc
@@ -72,6 +72,8 @@
   # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
   #
   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
+  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
+  ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
 
 [PcdsFeatureFlag]
   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
@@ -114,7 +116,7 @@
 
   NetworkPkg/Application/VConfig/VConfig.inf
 
-[Components.IA32, Components.X64]
+[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
   NetworkPkg/IScsiDxe/IScsiDxe.inf
   NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
   NetworkPkg/TlsDxe/TlsDxe.inf
-- 
2.13.0.windows.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-07 14:27 [Patch v5 0/3] Add package level include DSC/FDF in NetworkPkg Liming Gao
  2019-05-07 14:27 ` [Patch v5 1/3] NetworkPkg DSC: Add the required ARM library to pass ARM build Liming Gao
@ 2019-05-07 14:27 ` Liming Gao
  2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu
                     ` (2 more replies)
  2019-05-07 14:27 ` [Patch v5 3/3] NetworkPkg: Add package level include DSC file Liming Gao
  2 siblings, 3 replies; 11+ messages in thread
From: Liming Gao @ 2019-05-07 14:27 UTC (permalink / raw)
  To: devel; +Cc: Jiaxin Wu, Ting Ye, Fu Siyuan

This patch provides a set of include segment files for platform owner to
easily enable/disable network stack support on their platform.

For DSC, there are:
- a "NetworkDefines.dsc.inc" for the [Defines] section(s),
- a "NetworkLibs.dsc.inc" for the [LibraryClasses*] section(s),
- a "NetworkPcds.dsc.inc" for the [Pcds*] section(s),
- a "NetworkComponents.dsc.inc" for the [Components*] section(s).
For FDF, there is:
- a "Network.fdf.inc" for the [Fv*] section(s).

These files can be added to the platform DSC/FDF file by using
  !include NetworkPkg/xxx
where "xxx" is the *.inc file name.

A platform DSC file can diverge from the defaults in
"NetworkDefines.dsc.inc" by setting the individual DEFINEs before
including "NetworkDefines.dsc.inc".
And, build command line ("-D FLAG=VALUE") can be used to enable or
disable related feature set, please check "NetworkDefines.dsc.inc"
for a detail description of each flag.

The default value of these flags are:
  DEFINE NETWORK_ENABLE                 = TRUE
  DEFINE NETWORK_SNP_ENABLE             = TRUE
  DEFINE NETWORK_IP4_ENABLE             = TRUE
  DEFINE NETWORK_IP6_ENABLE             = TRUE
  DEFINE NETWORK_TLS_ENABLE             = TRUE
  DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
  DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
  DEFINE NETWORK_ISCSI_ENABLE           = TRUE
  DEFINE NETWORK_VLAN_ENABLE            = TRUE

Related BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293

Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
---
 NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
 NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
 NetworkPkg/NetworkDefines.dsc.inc    | 118 +++++++++++++++++++++++++++++++++++
 NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
 NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
 5 files changed, 275 insertions(+)
 create mode 100644 NetworkPkg/Network.fdf.inc
 create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
 create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
 create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
 create mode 100644 NetworkPkg/NetworkPcds.dsc.inc

diff --git a/NetworkPkg/Network.fdf.inc b/NetworkPkg/Network.fdf.inc
new file mode 100644
index 0000000000..92e2c56cb8
--- /dev/null
+++ b/NetworkPkg/Network.fdf.inc
@@ -0,0 +1,60 @@
+## @file
+# Network FDF include file for All Architectures.
+#
+# This file can be included to a platform FDF by using
+# "!include NetworkPkg/Network.fdf.inc" to add EDKII network stack drivers
+# according to the value of flags described in "NetworkPkg/Network.dsc.inc".
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+!if $(NETWORK_ENABLE) == TRUE
+  INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
+
+  !if $(NETWORK_SNP_ENABLE) == TRUE
+    INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
+  !endif
+
+  !if $(NETWORK_VLAN_ENABLE) == TRUE
+    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
+  !endif
+
+  INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
+
+  !if $(NETWORK_IP4_ENABLE) == TRUE
+    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
+    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
+    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
+    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
+    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
+  !endif
+
+  !if $(NETWORK_IP6_ENABLE) == TRUE
+    INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
+    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
+    INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
+    INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
+  !endif
+
+  INF  NetworkPkg/TcpDxe/TcpDxe.inf
+  INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
+
+  !if $(NETWORK_TLS_ENABLE) == TRUE
+    INF  NetworkPkg/TlsDxe/TlsDxe.inf
+    INF  NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
+  !endif
+
+  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
+    INF  NetworkPkg/DnsDxe/DnsDxe.inf
+    INF  NetworkPkg/HttpDxe/HttpDxe.inf
+    INF  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+    INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+  !endif
+
+  !if $(NETWORK_ISCSI_ENABLE) == TRUE
+    INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
+  !endif
+
+!endif
diff --git a/NetworkPkg/NetworkComponents.dsc.inc b/NetworkPkg/NetworkComponents.dsc.inc
new file mode 100644
index 0000000000..aede5ea8be
--- /dev/null
+++ b/NetworkPkg/NetworkComponents.dsc.inc
@@ -0,0 +1,61 @@
+## @file
+# Network DSC include file for [Components*] section of all Architectures.
+#
+# This file can be included to the [Components*] section(s) of a platform DSC file
+# by using "!include NetworkPkg/NetworkComponents.dsc.inc" to specify the INF files
+# of EDKII network drivers according to the value of flags described in
+# "NetworkDefines.dsc.inc".
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+!if $(NETWORK_ENABLE) == TRUE
+  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
+
+  !if $(NETWORK_SNP_ENABLE) == TRUE
+    MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
+  !endif
+
+  !if $(NETWORK_VLAN_ENABLE) == TRUE
+    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
+  !endif
+
+  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
+
+  !if $(NETWORK_IP4_ENABLE) == TRUE
+    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
+    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
+    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
+    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
+    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
+  !endif
+
+  !if $(NETWORK_IP6_ENABLE) == TRUE
+    NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
+    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
+    NetworkPkg/Udp6Dxe/Udp6Dxe.inf
+    NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
+  !endif
+
+  NetworkPkg/TcpDxe/TcpDxe.inf
+  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
+
+  !if $(NETWORK_TLS_ENABLE) == TRUE
+    NetworkPkg/TlsDxe/TlsDxe.inf
+    NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
+  !endif
+
+  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
+    NetworkPkg/DnsDxe/DnsDxe.inf
+    NetworkPkg/HttpDxe/HttpDxe.inf
+    NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+    NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+  !endif
+
+  !if $(NETWORK_ISCSI_ENABLE) == TRUE
+    NetworkPkg/IScsiDxe/IScsiDxe.inf
+  !endif
+!endif
diff --git a/NetworkPkg/NetworkDefines.dsc.inc b/NetworkPkg/NetworkDefines.dsc.inc
new file mode 100644
index 0000000000..a442d1b157
--- /dev/null
+++ b/NetworkPkg/NetworkDefines.dsc.inc
@@ -0,0 +1,118 @@
+## @file
+# Network DSC include file for [Defines] section of all Architectures.
+#
+# This file can be included to the [Defines] section of a platform DSC file by
+# using "!include NetworkPkg/NetworkDefines.dsc.inc" to set default value of
+# flags if they are not defined somewhere else, and also check the value to see
+# if there is any conflict.
+#
+# These flags can be defined before the !include line, or changed on the command
+# line to enable or disable related feature support.
+#   -D FLAG=VALUE
+# The default value of these flags are:
+#   DEFINE NETWORK_ENABLE                 = TRUE
+#   DEFINE NETWORK_SNP_ENABLE             = TRUE
+#   DEFINE NETWORK_IP4_ENABLE             = TRUE
+#   DEFINE NETWORK_IP6_ENABLE             = TRUE
+#   DEFINE NETWORK_TLS_ENABLE             = TRUE
+#   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
+#   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
+#   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
+#   DEFINE NETWORK_VLAN_ENABLE            = TRUE
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+!ifndef NETWORK_ENABLE
+  #
+  # This flag is to enable or disable the whole network stack.
+  #
+  DEFINE NETWORK_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_SNP_ENABLE
+  #
+  # This flag is to include the common SNP driver or not.
+  #
+  DEFINE NETWORK_SNP_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_VLAN_ENABLE
+  #
+  # This flag is to enable or disable VLAN feature.
+  #
+  DEFINE NETWORK_VLAN_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_IP4_ENABLE
+  #
+  # This flag is to enable or disable IPv4 network stack.
+  #
+  DEFINE NETWORK_IP4_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_IP6_ENABLE
+  #
+  # This flag is to enable or disable IPv6 network stack.
+  #
+  DEFINE NETWORK_IP6_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_TLS_ENABLE
+  #
+  # This flag is to enable or disable TLS feature.
+  #
+  # Note: This feature depends on the OpenSSL building. To enable this feature, please
+  #       follow the instructions found in the file "OpenSSL-HOWTO.txt" located in
+  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
+  #       The OpensslLib.inf library instance should be used since libssl is required.
+  #
+  DEFINE NETWORK_TLS_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_HTTP_BOOT_ENABLE
+  #
+  # This flag is to enable or disable HTTP(S) boot feature.
+  #
+  DEFINE NETWORK_HTTP_BOOT_ENABLE = TRUE
+!endif
+
+!ifndef NETWORK_ALLOW_HTTP_CONNECTIONS
+  #
+  # Indicates whether HTTP connections (i.e., unsecured) are permitted or not.
+  #
+  # Note: If NETWORK_ALLOW_HTTP_CONNECTIONS is TRUE, HTTP connections are allowed.
+  #       Both the "https://" and "http://" URI schemes are permitted. Otherwise, HTTP
+  #       connections are denied. Only the "https://" URI scheme is permitted.
+  #
+  DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
+!endif
+
+!ifndef NETWORK_ISCSI_ENABLE
+  #
+  # This flag is to enable or disable iSCSI feature.
+  #
+  # Note: This feature depends on the OpenSSL building. To enable this feature, please
+  #       follow the instructions found in the file "OpenSSL-HOWTO.txt" located in
+  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
+  #       Both OpensslLib.inf and OpensslLibCrypto.inf library instance can be used
+  #       since libssl is not required for iSCSI.
+  #
+  DEFINE NETWORK_ISCSI_ENABLE = TRUE
+!endif
+
+!if $(NETWORK_ENABLE) == TRUE
+  #
+  # Check the flags to see if there is any conflict.
+  #
+  !if ($(NETWORK_IP4_ENABLE) == FALSE) AND ($(NETWORK_IP6_ENABLE) == FALSE)
+    !error "Must enable at least IP4 or IP6 stack if NETWORK_ENABLE is set to TRUE!"
+  !endif
+
+  !if ($(NETWORK_HTTP_BOOT_ENABLE) == TRUE) AND ($(NETWORK_TLS_ENABLE) == FALSE) AND ($(NETWORK_ALLOW_HTTP_CONNECTIONS) == FALSE)
+    !error "Must enable TLS to support HTTPS, or allow unsecured HTTP connection, if NETWORK_HTTP_BOOT_ENABLE is set to TRUE!"
+  !endif
+!endif
diff --git a/NetworkPkg/NetworkLibs.dsc.inc b/NetworkPkg/NetworkLibs.dsc.inc
new file mode 100644
index 0000000000..a23f982381
--- /dev/null
+++ b/NetworkPkg/NetworkLibs.dsc.inc
@@ -0,0 +1,20 @@
+## @file
+# Network DSC include file for [LibraryClasses*] section of all Architectures.
+#
+# This file can be included to the [LibraryClasses*] section(s) of a platform DSC file
+# by using "!include NetworkPkg/NetworkLibs.dsc.inc" to specify the library instances
+# of EDKII network library classes.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
+  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
+  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
+  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
+  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
+  # HttpLib is used for Http Boot
+  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
diff --git a/NetworkPkg/NetworkPcds.dsc.inc b/NetworkPkg/NetworkPcds.dsc.inc
new file mode 100644
index 0000000000..f874b382ef
--- /dev/null
+++ b/NetworkPkg/NetworkPcds.dsc.inc
@@ -0,0 +1,16 @@
+## @file
+# Network DSC include file for [Pcds*] section of all Architectures.
+#
+# This file can be included to the [Pcds*] section(s) of a platform DSC file
+# by using "!include NetworkPkg/NetworkPcds.dsc.inc" to specify PCD settings
+# according to the value of flags described in "NetworkDefines.dsc.inc".
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+!if $(NETWORK_ALLOW_HTTP_CONNECTIONS) == TRUE
+  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
+!endif
-- 
2.13.0.windows.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Patch v5 3/3] NetworkPkg: Add package level include DSC file
  2019-05-07 14:27 [Patch v5 0/3] Add package level include DSC/FDF in NetworkPkg Liming Gao
  2019-05-07 14:27 ` [Patch v5 1/3] NetworkPkg DSC: Add the required ARM library to pass ARM build Liming Gao
  2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
@ 2019-05-07 14:27 ` Liming Gao
  2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu
  2 siblings, 1 reply; 11+ messages in thread
From: Liming Gao @ 2019-05-07 14:27 UTC (permalink / raw)
  To: devel

Platform DSC can include Network.dsc.inc to enable network features.

Signed-off-by: Liming Gao <liming.gao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
---
 NetworkPkg/Network.dsc.inc | 40 ++++++++++++++++++++++++++++++++++++++++
 NetworkPkg/NetworkPkg.dsc  | 22 +---------------------
 2 files changed, 41 insertions(+), 21 deletions(-)
 create mode 100644 NetworkPkg/Network.dsc.inc

diff --git a/NetworkPkg/Network.dsc.inc b/NetworkPkg/Network.dsc.inc
new file mode 100644
index 0000000000..c7f43282e4
--- /dev/null
+++ b/NetworkPkg/Network.dsc.inc
@@ -0,0 +1,40 @@
+## @file
+# Network DSC include file for Platform DSC
+#
+# This file includes all required information to enable Network features.
+# It can be included to a platform DSC file by using "!include NetworkPkg/Network.dsc.inc".
+#
+# This file defines one build flag PLATFORMX64_ENABLE to support
+# IA32 PEI and X64 DXE platform. Its default value is FALSE.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+#    SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+!include NetworkPkg/NetworkDefines.dsc.inc
+
+!ifndef PLATFORMX64_ENABLE
+  #
+  # PLATFORMX64_ENABLE is set to TRUE when PEI is IA32 and DXE is X64 platform
+  #
+  DEFINE PLATFORMX64_ENABLE = FALSE
+!endif
+
+[PcdsFixedAtBuild]
+!include NetworkPkg/NetworkPcds.dsc.inc
+
+[LibraryClasses]
+!include NetworkPkg/NetworkLibs.dsc.inc
+
+!if $(PLATFORMX64_ENABLE) == TRUE
+[Components.X64]
+!include NetworkPkg/NetworkComponents.dsc.inc
+
+!else
+[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
+!include NetworkPkg/NetworkComponents.dsc.inc
+
+!endif
diff --git a/NetworkPkg/NetworkPkg.dsc b/NetworkPkg/NetworkPkg.dsc
index be9d9248e4..fe2fcf7b3c 100644
--- a/NetworkPkg/NetworkPkg.dsc
+++ b/NetworkPkg/NetworkPkg.dsc
@@ -41,12 +41,6 @@
   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
   SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
 
-  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
-  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
-  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
-  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
-  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
-  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
@@ -103,24 +97,10 @@
 ###################################################################################################
 
 [Components]
-  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
-  NetworkPkg/TcpDxe/TcpDxe.inf
-  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
-  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
-  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
-  NetworkPkg/DnsDxe/DnsDxe.inf
-  NetworkPkg/HttpDxe/HttpDxe.inf
-  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
-  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
   NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.inf
-
   NetworkPkg/Application/VConfig/VConfig.inf
 
-[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
-  NetworkPkg/IScsiDxe/IScsiDxe.inf
-  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
-  NetworkPkg/TlsDxe/TlsDxe.inf
-  NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
+  !include NetworkPkg/Network.dsc.inc
 
 [BuildOptions]
   *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
-- 
2.13.0.windows.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 3/3] NetworkPkg: Add package level include DSC file
  2019-05-07 14:27 ` [Patch v5 3/3] NetworkPkg: Add package level include DSC file Liming Gao
@ 2019-05-07 14:53   ` Siyuan, Fu
  0 siblings, 0 replies; 11+ messages in thread
From: Siyuan, Fu @ 2019-05-07 14:53 UTC (permalink / raw)
  To: devel@edk2.groups.io, Gao, Liming

Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Liming
> Gao
> Sent: Tuesday, May 7, 2019 10:27 PM
> To: devel@edk2.groups.io
> Subject: [edk2-devel] [Patch v5 3/3] NetworkPkg: Add package level include DSC
> file
> 
> Platform DSC can include Network.dsc.inc to enable network features.
> 
> Signed-off-by: Liming Gao <liming.gao@intel.com>
> Acked-by: Laszlo Ersek <lersek@redhat.com>
> ---
>  NetworkPkg/Network.dsc.inc | 40 ++++++++++++++++++++++++++++++++++++++++
>  NetworkPkg/NetworkPkg.dsc  | 22 +---------------------
>  2 files changed, 41 insertions(+), 21 deletions(-)
>  create mode 100644 NetworkPkg/Network.dsc.inc
> 
> diff --git a/NetworkPkg/Network.dsc.inc b/NetworkPkg/Network.dsc.inc
> new file mode 100644
> index 0000000000..c7f43282e4
> --- /dev/null
> +++ b/NetworkPkg/Network.dsc.inc
> @@ -0,0 +1,40 @@
> +## @file
> +# Network DSC include file for Platform DSC
> +#
> +# This file includes all required information to enable Network features.
> +# It can be included to a platform DSC file by using "!include
> NetworkPkg/Network.dsc.inc".
> +#
> +# This file defines one build flag PLATFORMX64_ENABLE to support
> +# IA32 PEI and X64 DXE platform. Its default value is FALSE.
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +[Defines]
> +!include NetworkPkg/NetworkDefines.dsc.inc
> +
> +!ifndef PLATFORMX64_ENABLE
> +  #
> +  # PLATFORMX64_ENABLE is set to TRUE when PEI is IA32 and DXE is X64
> platform
> +  #
> +  DEFINE PLATFORMX64_ENABLE = FALSE
> +!endif
> +
> +[PcdsFixedAtBuild]
> +!include NetworkPkg/NetworkPcds.dsc.inc
> +
> +[LibraryClasses]
> +!include NetworkPkg/NetworkLibs.dsc.inc
> +
> +!if $(PLATFORMX64_ENABLE) == TRUE
> +[Components.X64]
> +!include NetworkPkg/NetworkComponents.dsc.inc
> +
> +!else
> +[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
> +!include NetworkPkg/NetworkComponents.dsc.inc
> +
> +!endif
> diff --git a/NetworkPkg/NetworkPkg.dsc b/NetworkPkg/NetworkPkg.dsc
> index be9d9248e4..fe2fcf7b3c 100644
> --- a/NetworkPkg/NetworkPkg.dsc
> +++ b/NetworkPkg/NetworkPkg.dsc
> @@ -41,12 +41,6 @@
> 
> DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
>    SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
> 
> -  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
> -  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
> -  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
> -  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
> -  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
> -  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
>    BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
>    OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
>    IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
> @@ -103,24 +97,10 @@
> 
> ##############################################################################
> #####################
> 
>  [Components]
> -  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> -  NetworkPkg/TcpDxe/TcpDxe.inf
> -  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
> -  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
> -  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
> -  NetworkPkg/DnsDxe/DnsDxe.inf
> -  NetworkPkg/HttpDxe/HttpDxe.inf
> -  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
> -  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
>    NetworkPkg/WifiConnectionManagerDxe/WifiConnectionManagerDxe.inf
> -
>    NetworkPkg/Application/VConfig/VConfig.inf
> 
> -[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
> -  NetworkPkg/IScsiDxe/IScsiDxe.inf
> -  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
> -  NetworkPkg/TlsDxe/TlsDxe.inf
> -  NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
> +  !include NetworkPkg/Network.dsc.inc
> 
>  [BuildOptions]
>    *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
> --
> 2.13.0.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
@ 2019-05-07 14:53   ` Siyuan, Fu
  2019-05-07 18:27   ` Laszlo Ersek
  2019-05-07 18:37   ` Laszlo Ersek
  2 siblings, 0 replies; 11+ messages in thread
From: Siyuan, Fu @ 2019-05-07 14:53 UTC (permalink / raw)
  To: devel@edk2.groups.io, Gao, Liming; +Cc: Wu, Jiaxin, Ye, Ting

Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Liming
> Gao
> Sent: Tuesday, May 7, 2019 10:27 PM
> To: devel@edk2.groups.io
> Cc: Wu, Jiaxin <jiaxin.wu@intel.com>; Ye, Ting <ting.ye@intel.com>; Fu, Siyuan
> <siyuan.fu@intel.com>
> Subject: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment
> files to NetworkPkg.
> 
> This patch provides a set of include segment files for platform owner to
> easily enable/disable network stack support on their platform.
> 
> For DSC, there are:
> - a "NetworkDefines.dsc.inc" for the [Defines] section(s),
> - a "NetworkLibs.dsc.inc" for the [LibraryClasses*] section(s),
> - a "NetworkPcds.dsc.inc" for the [Pcds*] section(s),
> - a "NetworkComponents.dsc.inc" for the [Components*] section(s).
> For FDF, there is:
> - a "Network.fdf.inc" for the [Fv*] section(s).
> 
> These files can be added to the platform DSC/FDF file by using
>   !include NetworkPkg/xxx
> where "xxx" is the *.inc file name.
> 
> A platform DSC file can diverge from the defaults in
> "NetworkDefines.dsc.inc" by setting the individual DEFINEs before
> including "NetworkDefines.dsc.inc".
> And, build command line ("-D FLAG=VALUE") can be used to enable or
> disable related feature set, please check "NetworkDefines.dsc.inc"
> for a detail description of each flag.
> 
> The default value of these flags are:
>   DEFINE NETWORK_ENABLE                 = TRUE
>   DEFINE NETWORK_SNP_ENABLE             = TRUE
>   DEFINE NETWORK_IP4_ENABLE             = TRUE
>   DEFINE NETWORK_IP6_ENABLE             = TRUE
>   DEFINE NETWORK_TLS_ENABLE             = TRUE
>   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
>   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
>   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
>   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> 
> Related BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293
> 
> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
> Cc: Ting Ye <ting.ye@intel.com>
> Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
> ---
>  NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
>  NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
>  NetworkPkg/NetworkDefines.dsc.inc    | 118
> +++++++++++++++++++++++++++++++++++
>  NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
>  NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
>  5 files changed, 275 insertions(+)
>  create mode 100644 NetworkPkg/Network.fdf.inc
>  create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
>  create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
>  create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
>  create mode 100644 NetworkPkg/NetworkPcds.dsc.inc
> 
> diff --git a/NetworkPkg/Network.fdf.inc b/NetworkPkg/Network.fdf.inc
> new file mode 100644
> index 0000000000..92e2c56cb8
> --- /dev/null
> +++ b/NetworkPkg/Network.fdf.inc
> @@ -0,0 +1,60 @@
> +## @file
> +# Network FDF include file for All Architectures.
> +#
> +# This file can be included to a platform FDF by using
> +# "!include NetworkPkg/Network.fdf.inc" to add EDKII network stack drivers
> +# according to the value of flags described in "NetworkPkg/Network.dsc.inc".
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
> +
> +  !if $(NETWORK_SNP_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_VLAN_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
> +  !endif
> +
> +  INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
> +
> +  !if $(NETWORK_IP4_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
> +    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
> +  !endif
> +
> +  !if $(NETWORK_IP6_ENABLE) == TRUE
> +    INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
> +    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> +    INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
> +    INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
> +  !endif
> +
> +  INF  NetworkPkg/TcpDxe/TcpDxe.inf
> +  INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
> +
> +  !if $(NETWORK_TLS_ENABLE) == TRUE
> +    INF  NetworkPkg/TlsDxe/TlsDxe.inf
> +    INF  NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
> +    INF  NetworkPkg/DnsDxe/DnsDxe.inf
> +    INF  NetworkPkg/HttpDxe/HttpDxe.inf
> +    INF  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
> +    INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_ISCSI_ENABLE) == TRUE
> +    INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
> +  !endif
> +
> +!endif
> diff --git a/NetworkPkg/NetworkComponents.dsc.inc
> b/NetworkPkg/NetworkComponents.dsc.inc
> new file mode 100644
> index 0000000000..aede5ea8be
> --- /dev/null
> +++ b/NetworkPkg/NetworkComponents.dsc.inc
> @@ -0,0 +1,61 @@
> +## @file
> +# Network DSC include file for [Components*] section of all Architectures.
> +#
> +# This file can be included to the [Components*] section(s) of a platform DSC
> file
> +# by using "!include NetworkPkg/NetworkComponents.dsc.inc" to specify the INF
> files
> +# of EDKII network drivers according to the value of flags described in
> +# "NetworkDefines.dsc.inc".
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
> +
> +  !if $(NETWORK_SNP_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_VLAN_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
> +  !endif
> +
> +  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
> +
> +  !if $(NETWORK_IP4_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
> +    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> +    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
> +    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
> +    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
> +  !endif
> +
> +  !if $(NETWORK_IP6_ENABLE) == TRUE
> +    NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
> +    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> +    NetworkPkg/Udp6Dxe/Udp6Dxe.inf
> +    NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
> +  !endif
> +
> +  NetworkPkg/TcpDxe/TcpDxe.inf
> +  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
> +
> +  !if $(NETWORK_TLS_ENABLE) == TRUE
> +    NetworkPkg/TlsDxe/TlsDxe.inf
> +    NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
> +    NetworkPkg/DnsDxe/DnsDxe.inf
> +    NetworkPkg/HttpDxe/HttpDxe.inf
> +    NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
> +    NetworkPkg/HttpBootDxe/HttpBootDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_ISCSI_ENABLE) == TRUE
> +    NetworkPkg/IScsiDxe/IScsiDxe.inf
> +  !endif
> +!endif
> diff --git a/NetworkPkg/NetworkDefines.dsc.inc
> b/NetworkPkg/NetworkDefines.dsc.inc
> new file mode 100644
> index 0000000000..a442d1b157
> --- /dev/null
> +++ b/NetworkPkg/NetworkDefines.dsc.inc
> @@ -0,0 +1,118 @@
> +## @file
> +# Network DSC include file for [Defines] section of all Architectures.
> +#
> +# This file can be included to the [Defines] section of a platform DSC file
> by
> +# using "!include NetworkPkg/NetworkDefines.dsc.inc" to set default value of
> +# flags if they are not defined somewhere else, and also check the value to
> see
> +# if there is any conflict.
> +#
> +# These flags can be defined before the !include line, or changed on the
> command
> +# line to enable or disable related feature support.
> +#   -D FLAG=VALUE
> +# The default value of these flags are:
> +#   DEFINE NETWORK_ENABLE                 = TRUE
> +#   DEFINE NETWORK_SNP_ENABLE             = TRUE
> +#   DEFINE NETWORK_IP4_ENABLE             = TRUE
> +#   DEFINE NETWORK_IP6_ENABLE             = TRUE
> +#   DEFINE NETWORK_TLS_ENABLE             = TRUE
> +#   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
> +#   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
> +#   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
> +#   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!ifndef NETWORK_ENABLE
> +  #
> +  # This flag is to enable or disable the whole network stack.
> +  #
> +  DEFINE NETWORK_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_SNP_ENABLE
> +  #
> +  # This flag is to include the common SNP driver or not.
> +  #
> +  DEFINE NETWORK_SNP_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_VLAN_ENABLE
> +  #
> +  # This flag is to enable or disable VLAN feature.
> +  #
> +  DEFINE NETWORK_VLAN_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_IP4_ENABLE
> +  #
> +  # This flag is to enable or disable IPv4 network stack.
> +  #
> +  DEFINE NETWORK_IP4_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_IP6_ENABLE
> +  #
> +  # This flag is to enable or disable IPv6 network stack.
> +  #
> +  DEFINE NETWORK_IP6_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_TLS_ENABLE
> +  #
> +  # This flag is to enable or disable TLS feature.
> +  #
> +  # Note: This feature depends on the OpenSSL building. To enable this
> feature, please
> +  #       follow the instructions found in the file "OpenSSL-HOWTO.txt"
> located in
> +  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
> +  #       The OpensslLib.inf library instance should be used since libssl is
> required.
> +  #
> +  DEFINE NETWORK_TLS_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_HTTP_BOOT_ENABLE
> +  #
> +  # This flag is to enable or disable HTTP(S) boot feature.
> +  #
> +  DEFINE NETWORK_HTTP_BOOT_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_ALLOW_HTTP_CONNECTIONS
> +  #
> +  # Indicates whether HTTP connections (i.e., unsecured) are permitted or not.
> +  #
> +  # Note: If NETWORK_ALLOW_HTTP_CONNECTIONS is TRUE, HTTP connections are
> allowed.
> +  #       Both the "https://" and "http://" URI schemes are permitted.
> Otherwise, HTTP
> +  #       connections are denied. Only the "https://" URI scheme is permitted.
> +  #
> +  DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
> +!endif
> +
> +!ifndef NETWORK_ISCSI_ENABLE
> +  #
> +  # This flag is to enable or disable iSCSI feature.
> +  #
> +  # Note: This feature depends on the OpenSSL building. To enable this
> feature, please
> +  #       follow the instructions found in the file "OpenSSL-HOWTO.txt"
> located in
> +  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
> +  #       Both OpensslLib.inf and OpensslLibCrypto.inf library instance can
> be used
> +  #       since libssl is not required for iSCSI.
> +  #
> +  DEFINE NETWORK_ISCSI_ENABLE = TRUE
> +!endif
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  #
> +  # Check the flags to see if there is any conflict.
> +  #
> +  !if ($(NETWORK_IP4_ENABLE) == FALSE) AND ($(NETWORK_IP6_ENABLE) == FALSE)
> +    !error "Must enable at least IP4 or IP6 stack if NETWORK_ENABLE is set to
> TRUE!"
> +  !endif
> +
> +  !if ($(NETWORK_HTTP_BOOT_ENABLE) == TRUE) AND ($(NETWORK_TLS_ENABLE) ==
> FALSE) AND ($(NETWORK_ALLOW_HTTP_CONNECTIONS) == FALSE)
> +    !error "Must enable TLS to support HTTPS, or allow unsecured HTTP
> connection, if NETWORK_HTTP_BOOT_ENABLE is set to TRUE!"
> +  !endif
> +!endif
> diff --git a/NetworkPkg/NetworkLibs.dsc.inc b/NetworkPkg/NetworkLibs.dsc.inc
> new file mode 100644
> index 0000000000..a23f982381
> --- /dev/null
> +++ b/NetworkPkg/NetworkLibs.dsc.inc
> @@ -0,0 +1,20 @@
> +## @file
> +# Network DSC include file for [LibraryClasses*] section of all Architectures.
> +#
> +# This file can be included to the [LibraryClasses*] section(s) of a platform
> DSC file
> +# by using "!include NetworkPkg/NetworkLibs.dsc.inc" to specify the library
> instances
> +# of EDKII network library classes.
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
> +  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
> +  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
> +  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
> +  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
> +  # HttpLib is used for Http Boot
> +  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
> diff --git a/NetworkPkg/NetworkPcds.dsc.inc b/NetworkPkg/NetworkPcds.dsc.inc
> new file mode 100644
> index 0000000000..f874b382ef
> --- /dev/null
> +++ b/NetworkPkg/NetworkPcds.dsc.inc
> @@ -0,0 +1,16 @@
> +## @file
> +# Network DSC include file for [Pcds*] section of all Architectures.
> +#
> +# This file can be included to the [Pcds*] section(s) of a platform DSC file
> +# by using "!include NetworkPkg/NetworkPcds.dsc.inc" to specify PCD settings
> +# according to the value of flags described in "NetworkDefines.dsc.inc".
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!if $(NETWORK_ALLOW_HTTP_CONNECTIONS) == TRUE
> +  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
> +!endif
> --
> 2.13.0.windows.1
> 
> 
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
  2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu
@ 2019-05-07 18:27   ` Laszlo Ersek
  2019-05-07 18:37   ` Laszlo Ersek
  2 siblings, 0 replies; 11+ messages in thread
From: Laszlo Ersek @ 2019-05-07 18:27 UTC (permalink / raw)
  To: devel, liming.gao; +Cc: Jiaxin Wu, Ting Ye, Fu Siyuan

On 05/07/19 16:27, Liming Gao wrote:
> This patch provides a set of include segment files for platform owner to
> easily enable/disable network stack support on their platform.
> 
> For DSC, there are:
> - a "NetworkDefines.dsc.inc" for the [Defines] section(s),
> - a "NetworkLibs.dsc.inc" for the [LibraryClasses*] section(s),
> - a "NetworkPcds.dsc.inc" for the [Pcds*] section(s),
> - a "NetworkComponents.dsc.inc" for the [Components*] section(s).
> For FDF, there is:
> - a "Network.fdf.inc" for the [Fv*] section(s).
> 
> These files can be added to the platform DSC/FDF file by using
>   !include NetworkPkg/xxx
> where "xxx" is the *.inc file name.
> 
> A platform DSC file can diverge from the defaults in
> "NetworkDefines.dsc.inc" by setting the individual DEFINEs before
> including "NetworkDefines.dsc.inc".
> And, build command line ("-D FLAG=VALUE") can be used to enable or
> disable related feature set, please check "NetworkDefines.dsc.inc"
> for a detail description of each flag.
> 
> The default value of these flags are:
>   DEFINE NETWORK_ENABLE                 = TRUE
>   DEFINE NETWORK_SNP_ENABLE             = TRUE
>   DEFINE NETWORK_IP4_ENABLE             = TRUE
>   DEFINE NETWORK_IP6_ENABLE             = TRUE
>   DEFINE NETWORK_TLS_ENABLE             = TRUE
>   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
>   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
>   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
>   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> 
> Related BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293
> 
> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
> Cc: Ting Ye <ting.ye@intel.com>
> Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
> ---
>  NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
>  NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
>  NetworkPkg/NetworkDefines.dsc.inc    | 118 +++++++++++++++++++++++++++++++++++
>  NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
>  NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
>  5 files changed, 275 insertions(+)
>  create mode 100644 NetworkPkg/Network.fdf.inc
>  create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
>  create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
>  create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
>  create mode 100644 NetworkPkg/NetworkPcds.dsc.inc
> 
> diff --git a/NetworkPkg/Network.fdf.inc b/NetworkPkg/Network.fdf.inc
> new file mode 100644
> index 0000000000..92e2c56cb8
> --- /dev/null
> +++ b/NetworkPkg/Network.fdf.inc
> @@ -0,0 +1,60 @@
> +## @file
> +# Network FDF include file for All Architectures.
> +#
> +# This file can be included to a platform FDF by using
> +# "!include NetworkPkg/Network.fdf.inc" to add EDKII network stack drivers
> +# according to the value of flags described in "NetworkPkg/Network.dsc.inc".

This addresses my comment (4) from the v3 review, thanks.

> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>

Copyright year updated (5), thanks.

> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
> +
> +  !if $(NETWORK_SNP_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_VLAN_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
> +  !endif
> +
> +  INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
> +
> +  !if $(NETWORK_IP4_ENABLE) == TRUE
> +    INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf

I now understand that ArpDxe is IPv4 only. Answers my question (7).

> +    INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
> +    INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
> +  !endif
> +
> +  !if $(NETWORK_IP6_ENABLE) == TRUE
> +    INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
> +    INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> +    INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
> +    INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
> +  !endif
> +
> +  INF  NetworkPkg/TcpDxe/TcpDxe.inf
> +  INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
> +
> +  !if $(NETWORK_TLS_ENABLE) == TRUE
> +    INF  NetworkPkg/TlsDxe/TlsDxe.inf
> +    INF  NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
> +  !endif

This will be good for OVMF too, based on
<https://bugzilla.tianocore.org/show_bug.cgi?id=1449>.

> +
> +  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
> +    INF  NetworkPkg/DnsDxe/DnsDxe.inf
> +    INF  NetworkPkg/HttpDxe/HttpDxe.inf
> +    INF  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
> +    INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_ISCSI_ENABLE) == TRUE
> +    INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
> +  !endif

Addresses my request (6).

> +
> +!endif
> diff --git a/NetworkPkg/NetworkComponents.dsc.inc b/NetworkPkg/NetworkComponents.dsc.inc
> new file mode 100644
> index 0000000000..aede5ea8be
> --- /dev/null
> +++ b/NetworkPkg/NetworkComponents.dsc.inc
> @@ -0,0 +1,61 @@
> +## @file
> +# Network DSC include file for [Components*] section of all Architectures.
> +#
> +# This file can be included to the [Components*] section(s) of a platform DSC file
> +# by using "!include NetworkPkg/NetworkComponents.dsc.inc" to specify the INF files
> +# of EDKII network drivers according to the value of flags described in
> +# "NetworkDefines.dsc.inc".
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
> +
> +  !if $(NETWORK_SNP_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_VLAN_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
> +  !endif
> +
> +  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
> +
> +  !if $(NETWORK_IP4_ENABLE) == TRUE
> +    MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
> +    MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
> +    MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
> +    MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
> +    MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
> +  !endif
> +
> +  !if $(NETWORK_IP6_ENABLE) == TRUE
> +    NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
> +    NetworkPkg/Ip6Dxe/Ip6Dxe.inf
> +    NetworkPkg/Udp6Dxe/Udp6Dxe.inf
> +    NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
> +  !endif
> +
> +  NetworkPkg/TcpDxe/TcpDxe.inf
> +  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
> +
> +  !if $(NETWORK_TLS_ENABLE) == TRUE
> +    NetworkPkg/TlsDxe/TlsDxe.inf
> +    NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_HTTP_BOOT_ENABLE) == TRUE
> +    NetworkPkg/DnsDxe/DnsDxe.inf
> +    NetworkPkg/HttpDxe/HttpDxe.inf
> +    NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
> +    NetworkPkg/HttpBootDxe/HttpBootDxe.inf
> +  !endif
> +
> +  !if $(NETWORK_ISCSI_ENABLE) == TRUE
> +    NetworkPkg/IScsiDxe/IScsiDxe.inf
> +  !endif
> +!endif
> diff --git a/NetworkPkg/NetworkDefines.dsc.inc b/NetworkPkg/NetworkDefines.dsc.inc
> new file mode 100644
> index 0000000000..a442d1b157
> --- /dev/null
> +++ b/NetworkPkg/NetworkDefines.dsc.inc
> @@ -0,0 +1,118 @@
> +## @file
> +# Network DSC include file for [Defines] section of all Architectures.
> +#
> +# This file can be included to the [Defines] section of a platform DSC file by
> +# using "!include NetworkPkg/NetworkDefines.dsc.inc" to set default value of
> +# flags if they are not defined somewhere else, and also check the value to see
> +# if there is any conflict.
> +#
> +# These flags can be defined before the !include line, or changed on the command
> +# line to enable or disable related feature support.
> +#   -D FLAG=VALUE
> +# The default value of these flags are:
> +#   DEFINE NETWORK_ENABLE                 = TRUE
> +#   DEFINE NETWORK_SNP_ENABLE             = TRUE
> +#   DEFINE NETWORK_IP4_ENABLE             = TRUE
> +#   DEFINE NETWORK_IP6_ENABLE             = TRUE
> +#   DEFINE NETWORK_TLS_ENABLE             = TRUE
> +#   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
> +#   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
> +#   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
> +#   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!ifndef NETWORK_ENABLE
> +  #
> +  # This flag is to enable or disable the whole network stack.
> +  #
> +  DEFINE NETWORK_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_SNP_ENABLE
> +  #
> +  # This flag is to include the common SNP driver or not.
> +  #
> +  DEFINE NETWORK_SNP_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_VLAN_ENABLE
> +  #
> +  # This flag is to enable or disable VLAN feature.
> +  #
> +  DEFINE NETWORK_VLAN_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_IP4_ENABLE
> +  #
> +  # This flag is to enable or disable IPv4 network stack.
> +  #
> +  DEFINE NETWORK_IP4_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_IP6_ENABLE
> +  #
> +  # This flag is to enable or disable IPv6 network stack.
> +  #
> +  DEFINE NETWORK_IP6_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_TLS_ENABLE
> +  #
> +  # This flag is to enable or disable TLS feature.
> +  #
> +  # Note: This feature depends on the OpenSSL building. To enable this feature, please
> +  #       follow the instructions found in the file "OpenSSL-HOWTO.txt" located in
> +  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
> +  #       The OpensslLib.inf library instance should be used since libssl is required.
> +  #
> +  DEFINE NETWORK_TLS_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_HTTP_BOOT_ENABLE
> +  #
> +  # This flag is to enable or disable HTTP(S) boot feature.
> +  #
> +  DEFINE NETWORK_HTTP_BOOT_ENABLE = TRUE
> +!endif
> +
> +!ifndef NETWORK_ALLOW_HTTP_CONNECTIONS
> +  #
> +  # Indicates whether HTTP connections (i.e., unsecured) are permitted or not.
> +  #
> +  # Note: If NETWORK_ALLOW_HTTP_CONNECTIONS is TRUE, HTTP connections are allowed.
> +  #       Both the "https://" and "http://" URI schemes are permitted. Otherwise, HTTP
> +  #       connections are denied. Only the "https://" URI scheme is permitted.
> +  #
> +  DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
> +!endif
> +
> +!ifndef NETWORK_ISCSI_ENABLE
> +  #
> +  # This flag is to enable or disable iSCSI feature.
> +  #
> +  # Note: This feature depends on the OpenSSL building. To enable this feature, please
> +  #       follow the instructions found in the file "OpenSSL-HOWTO.txt" located in
> +  #       CryptoPkg\Library\OpensslLib to enable the OpenSSL building first.
> +  #       Both OpensslLib.inf and OpensslLibCrypto.inf library instance can be used
> +  #       since libssl is not required for iSCSI.
> +  #
> +  DEFINE NETWORK_ISCSI_ENABLE = TRUE
> +!endif
> +
> +!if $(NETWORK_ENABLE) == TRUE
> +  #
> +  # Check the flags to see if there is any conflict.
> +  #
> +  !if ($(NETWORK_IP4_ENABLE) == FALSE) AND ($(NETWORK_IP6_ENABLE) == FALSE)
> +    !error "Must enable at least IP4 or IP6 stack if NETWORK_ENABLE is set to TRUE!"
> +  !endif
> +
> +  !if ($(NETWORK_HTTP_BOOT_ENABLE) == TRUE) AND ($(NETWORK_TLS_ENABLE) == FALSE) AND ($(NETWORK_ALLOW_HTTP_CONNECTIONS) == FALSE)
> +    !error "Must enable TLS to support HTTPS, or allow unsecured HTTP connection, if NETWORK_HTTP_BOOT_ENABLE is set to TRUE!"
> +  !endif

My question (8) concerned this sanity check.

Given that <https://bugzilla.tianocore.org/show_bug.cgi?id=1449> allows
platforms to set NETWORK_TLS_ENABLE=TRUE *even if* they need to hook
special overrides into the TLS drivers, I now see that this sanity check
is correct. So my question (8) does not apply any longer.


Regarding my question (9), PLATFORMX64_ENABLE has been moved to patch
3/3, and I now understand why it is required. OK.

> +!endif
> diff --git a/NetworkPkg/NetworkLibs.dsc.inc b/NetworkPkg/NetworkLibs.dsc.inc
> new file mode 100644
> index 0000000000..a23f982381
> --- /dev/null
> +++ b/NetworkPkg/NetworkLibs.dsc.inc
> @@ -0,0 +1,20 @@
> +## @file
> +# Network DSC include file for [LibraryClasses*] section of all Architectures.
> +#
> +# This file can be included to the [LibraryClasses*] section(s) of a platform DSC file
> +# by using "!include NetworkPkg/NetworkLibs.dsc.inc" to specify the library instances
> +# of EDKII network library classes.
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
> +  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
> +  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
> +  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
> +  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
> +  # HttpLib is used for Http Boot
> +  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf

Thanks for the comment, addresses (10).

I've also read Siyuan's comment about "TlsLib", and I understand the
platform will have to spell out the resolution for that, going forward
too. That answers my question (11).

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks!
Laszlo

> diff --git a/NetworkPkg/NetworkPcds.dsc.inc b/NetworkPkg/NetworkPcds.dsc.inc
> new file mode 100644
> index 0000000000..f874b382ef
> --- /dev/null
> +++ b/NetworkPkg/NetworkPcds.dsc.inc
> @@ -0,0 +1,16 @@
> +## @file
> +# Network DSC include file for [Pcds*] section of all Architectures.
> +#
> +# This file can be included to the [Pcds*] section(s) of a platform DSC file
> +# by using "!include NetworkPkg/NetworkPcds.dsc.inc" to specify PCD settings
> +# according to the value of flags described in "NetworkDefines.dsc.inc".
> +#
> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
> +#
> +#    SPDX-License-Identifier: BSD-2-Clause-Patent
> +#
> +##
> +
> +!if $(NETWORK_ALLOW_HTTP_CONNECTIONS) == TRUE
> +  gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE
> +!endif
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
  2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu
  2019-05-07 18:27   ` Laszlo Ersek
@ 2019-05-07 18:37   ` Laszlo Ersek
  2019-05-08  0:14     ` Liming Gao
  2 siblings, 1 reply; 11+ messages in thread
From: Laszlo Ersek @ 2019-05-07 18:37 UTC (permalink / raw)
  To: devel, liming.gao; +Cc: Jiaxin Wu, Ting Ye, Fu Siyuan

Hi Liming,

On 05/07/19 16:27, Liming Gao wrote:
> This patch provides a set of include segment files for platform owner to
> easily enable/disable network stack support on their platform.
> 
> For DSC, there are:
> - a "NetworkDefines.dsc.inc" for the [Defines] section(s),
> - a "NetworkLibs.dsc.inc" for the [LibraryClasses*] section(s),
> - a "NetworkPcds.dsc.inc" for the [Pcds*] section(s),
> - a "NetworkComponents.dsc.inc" for the [Components*] section(s).
> For FDF, there is:
> - a "Network.fdf.inc" for the [Fv*] section(s).
> 
> These files can be added to the platform DSC/FDF file by using
>   !include NetworkPkg/xxx
> where "xxx" is the *.inc file name.
> 
> A platform DSC file can diverge from the defaults in
> "NetworkDefines.dsc.inc" by setting the individual DEFINEs before
> including "NetworkDefines.dsc.inc".
> And, build command line ("-D FLAG=VALUE") can be used to enable or
> disable related feature set, please check "NetworkDefines.dsc.inc"
> for a detail description of each flag.
> 
> The default value of these flags are:
>   DEFINE NETWORK_ENABLE                 = TRUE
>   DEFINE NETWORK_SNP_ENABLE             = TRUE
>   DEFINE NETWORK_IP4_ENABLE             = TRUE
>   DEFINE NETWORK_IP6_ENABLE             = TRUE
>   DEFINE NETWORK_TLS_ENABLE             = TRUE
>   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
>   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
>   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
>   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> 
> Related BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293
> 
> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
> Cc: Ting Ye <ting.ye@intel.com>
> Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
> ---
>  NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
>  NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
>  NetworkPkg/NetworkDefines.dsc.inc    | 118 +++++++++++++++++++++++++++++++++++
>  NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
>  NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
>  5 files changed, 275 insertions(+)
>  create mode 100644 NetworkPkg/Network.fdf.inc
>  create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
>  create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
>  create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
>  create mode 100644 NetworkPkg/NetworkPcds.dsc.inc

Before you push this patch, please also add your own "Signed-off-by" tag
at the bottom of the commit message. In the end, the patch should carry
both Siyuan's and your S-o-b.

Thanks
Laszlo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-07 18:37   ` Laszlo Ersek
@ 2019-05-08  0:14     ` Liming Gao
  2019-05-14 14:33       ` Laszlo Ersek
  0 siblings, 1 reply; 11+ messages in thread
From: Liming Gao @ 2019-05-08  0:14 UTC (permalink / raw)
  To: devel@edk2.groups.io, lersek@redhat.com; +Cc: Wu, Jiaxin, Ye, Ting, Fu, Siyuan

Sure. Thanks for your detail review. 

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Laszlo Ersek
> Sent: Wednesday, May 8, 2019 2:38 AM
> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>
> Cc: Wu, Jiaxin <jiaxin.wu@intel.com>; Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>
> Subject: Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
> 
> Hi Liming,
> 
> On 05/07/19 16:27, Liming Gao wrote:
> > This patch provides a set of include segment files for platform owner to
> > easily enable/disable network stack support on their platform.
> >
> > For DSC, there are:
> > - a "NetworkDefines.dsc.inc" for the [Defines] section(s),
> > - a "NetworkLibs.dsc.inc" for the [LibraryClasses*] section(s),
> > - a "NetworkPcds.dsc.inc" for the [Pcds*] section(s),
> > - a "NetworkComponents.dsc.inc" for the [Components*] section(s).
> > For FDF, there is:
> > - a "Network.fdf.inc" for the [Fv*] section(s).
> >
> > These files can be added to the platform DSC/FDF file by using
> >   !include NetworkPkg/xxx
> > where "xxx" is the *.inc file name.
> >
> > A platform DSC file can diverge from the defaults in
> > "NetworkDefines.dsc.inc" by setting the individual DEFINEs before
> > including "NetworkDefines.dsc.inc".
> > And, build command line ("-D FLAG=VALUE") can be used to enable or
> > disable related feature set, please check "NetworkDefines.dsc.inc"
> > for a detail description of each flag.
> >
> > The default value of these flags are:
> >   DEFINE NETWORK_ENABLE                 = TRUE
> >   DEFINE NETWORK_SNP_ENABLE             = TRUE
> >   DEFINE NETWORK_IP4_ENABLE             = TRUE
> >   DEFINE NETWORK_IP6_ENABLE             = TRUE
> >   DEFINE NETWORK_TLS_ENABLE             = TRUE
> >   DEFINE NETWORK_HTTP_BOOT_ENABLE       = TRUE
> >   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = FALSE
> >   DEFINE NETWORK_ISCSI_ENABLE           = TRUE
> >   DEFINE NETWORK_VLAN_ENABLE            = TRUE
> >
> > Related BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1293
> >
> > Cc: Jiaxin Wu <jiaxin.wu@intel.com>
> > Cc: Ting Ye <ting.ye@intel.com>
> > Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
> > ---
> >  NetworkPkg/Network.fdf.inc           |  60 ++++++++++++++++++
> >  NetworkPkg/NetworkComponents.dsc.inc |  61 ++++++++++++++++++
> >  NetworkPkg/NetworkDefines.dsc.inc    | 118 +++++++++++++++++++++++++++++++++++
> >  NetworkPkg/NetworkLibs.dsc.inc       |  20 ++++++
> >  NetworkPkg/NetworkPcds.dsc.inc       |  16 +++++
> >  5 files changed, 275 insertions(+)
> >  create mode 100644 NetworkPkg/Network.fdf.inc
> >  create mode 100644 NetworkPkg/NetworkComponents.dsc.inc
> >  create mode 100644 NetworkPkg/NetworkDefines.dsc.inc
> >  create mode 100644 NetworkPkg/NetworkLibs.dsc.inc
> >  create mode 100644 NetworkPkg/NetworkPcds.dsc.inc
> 
> Before you push this patch, please also add your own "Signed-off-by" tag
> at the bottom of the commit message. In the end, the patch should carry
> both Siyuan's and your S-o-b.
> 
> Thanks
> Laszlo
> 
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-08  0:14     ` Liming Gao
@ 2019-05-14 14:33       ` Laszlo Ersek
  2019-05-14 15:03         ` Liming Gao
  0 siblings, 1 reply; 11+ messages in thread
From: Laszlo Ersek @ 2019-05-14 14:33 UTC (permalink / raw)
  To: devel, liming.gao; +Cc: Wu, Jiaxin, Ye, Ting, Fu, Siyuan

Hi Liming,

On 05/08/19 02:14, Liming Gao wrote:
> Sure. Thanks for your detail review.

I've just noticed that commit 1e948802e755 ("NetworkPkg: Add DSC/FDF
include segment files to NetworkPkg.", 2019-05-08) does not carry my
Reviewed-by tag.

But I worked with you across five iterations of this patch series,
spending a lot of energy on the review. I gave my R-b here:

  http://mid.mail-archive.com/5cc12fc5-451a-2924-5179-73c1f192681a@redhat.com
  https://edk2.groups.io/g/devel/message/40131

Honestly, this makes me feel like I should just abandon the edk2 project
for good. I mean if you wanted to intentionally humiliate a reviewer,
you couldn't do much better than this.

Laszlo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  2019-05-14 14:33       ` Laszlo Ersek
@ 2019-05-14 15:03         ` Liming Gao
  0 siblings, 0 replies; 11+ messages in thread
From: Liming Gao @ 2019-05-14 15:03 UTC (permalink / raw)
  To: devel@edk2.groups.io, lersek@redhat.com; +Cc: Wu, Jiaxin, Ye, Ting, Fu, Siyuan

Laszlo:
  Please allow me clarify it. This is really my mistake, not my intention. I apologize for the missing of your RB. I very appreciate for lots of your review effort and comments. They are helpful to improve the code quality. In fact, this patch set includes three patches. I record your RB and Ack for 1 and 3. But, I miss this one. I admit this my mistake. I think I need to figure out one tool to extract RB or Ack from the mail. It can avoid the manual mistake happen again. 

Thanks
Liming
> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Laszlo Ersek
> Sent: Tuesday, May 14, 2019 10:33 PM
> To: devel@edk2.groups.io; Gao, Liming <liming.gao@intel.com>
> Cc: Wu, Jiaxin <jiaxin.wu@intel.com>; Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>
> Subject: Re: [edk2-devel] [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
> 
> Hi Liming,
> 
> On 05/08/19 02:14, Liming Gao wrote:
> > Sure. Thanks for your detail review.
> 
> I've just noticed that commit 1e948802e755 ("NetworkPkg: Add DSC/FDF
> include segment files to NetworkPkg.", 2019-05-08) does not carry my
> Reviewed-by tag.
> 
> But I worked with you across five iterations of this patch series,
> spending a lot of energy on the review. I gave my R-b here:
> 
>   http://mid.mail-archive.com/5cc12fc5-451a-2924-5179-73c1f192681a@redhat.com
>   https://edk2.groups.io/g/devel/message/40131
> 
> Honestly, this makes me feel like I should just abandon the edk2 project
> for good. I mean if you wanted to intentionally humiliate a reviewer,
> you couldn't do much better than this.
> 
> Laszlo
> 
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-05-14 15:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-07 14:27 [Patch v5 0/3] Add package level include DSC/FDF in NetworkPkg Liming Gao
2019-05-07 14:27 ` [Patch v5 1/3] NetworkPkg DSC: Add the required ARM library to pass ARM build Liming Gao
2019-05-07 14:27 ` [Patch v5 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg Liming Gao
2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu
2019-05-07 18:27   ` Laszlo Ersek
2019-05-07 18:37   ` Laszlo Ersek
2019-05-08  0:14     ` Liming Gao
2019-05-14 14:33       ` Laszlo Ersek
2019-05-14 15:03         ` Liming Gao
2019-05-07 14:27 ` [Patch v5 3/3] NetworkPkg: Add package level include DSC file Liming Gao
2019-05-07 14:53   ` [edk2-devel] " Siyuan, Fu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox