summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/HttpDxe
diff options
context:
space:
mode:
authorBaraneedharan Anbazhagan <anbazhagan@hp.com>2025-04-25 11:43:59 -0500
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-04-29 04:57:14 +0000
commit98351bb0d902b0750466f971734d0cbc9a98deba (patch)
tree0617b525fe68628990cd094c8e6a384f6d3bc888 /NetworkPkg/HttpDxe
parentd985bd4b973327a3a79dfd258c17b256d7fa1e7d (diff)
downloadedk2-master.tar.gz
edk2-master.tar.bz2
edk2-master.zip
NetworkPkg: Add PCD for HTTP transfer buffer sizeHEADmaster
Current HTTP transfer size have a default value of 2M. This PCD change allows the platform code to change the transfer buffer size. Based on the network bandwidth, the buffer size can be adjusted to improve performance. Large buffer size provides better performance in high-bandwidth connections. However, small buffer size helps to reduce packet loss in low-bandwidth scenarios. Signed-off-by: Anbazhagan Baraneedharan <anbazhagan@hp.com>
Diffstat (limited to 'NetworkPkg/HttpDxe')
-rw-r--r--NetworkPkg/HttpDxe/HttpDriver.h2
-rw-r--r--NetworkPkg/HttpDxe/HttpDxe.inf3
-rw-r--r--NetworkPkg/HttpDxe/HttpProto.c9
-rw-r--r--NetworkPkg/HttpDxe/HttpProto.h2
4 files changed, 11 insertions, 5 deletions
diff --git a/NetworkPkg/HttpDxe/HttpDriver.h b/NetworkPkg/HttpDxe/HttpDriver.h
index e0917f431e..ddee0b7e0c 100644
--- a/NetworkPkg/HttpDxe/HttpDriver.h
+++ b/NetworkPkg/HttpDxe/HttpDriver.h
@@ -3,6 +3,7 @@
Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
+ (c) Copyright 2025 HP Development Company, L.P.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -27,6 +28,7 @@
#include <Library/HttpLib.h>
#include <Library/DpcLib.h>
#include <Library/PrintLib.h>
+#include <Library/PcdLib.h>
//
// UEFI Driver Model Protocols
diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf b/NetworkPkg/HttpDxe/HttpDxe.inf
index 30b7de1951..865f11b252 100644
--- a/NetworkPkg/HttpDxe/HttpDxe.inf
+++ b/NetworkPkg/HttpDxe/HttpDxe.inf
@@ -2,6 +2,7 @@
# Implementation of EFI HTTP protocol interfaces.
#
# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
+# (c) Copyright 2025 HP Development Company, L.P.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -48,6 +49,7 @@
HttpLib
DpcLib
PrintLib
+ PcdLib
[Protocols]
gEfiHttpServiceBindingProtocolGuid ## BY_START
@@ -78,6 +80,7 @@
gEfiNetworkPkgTokenSpaceGuid.PcdHttpIoTimeout ## CONSUMES
gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryInterval ## CONSUMES
gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryCount ## CONSUMES
+ gEfiNetworkPkgTokenSpaceGuid.PcdHttpTransferBufferSize ## CONSUMES
[UserExtensions.TianoCore."ExtraFiles"]
HttpDxeExtra.uni
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c
index 1e53811ca7..312ba21789 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -4,6 +4,7 @@
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.<BR>
+(c) Copyright 2025 HP Development Company, L.P.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -1090,8 +1091,8 @@ HttpConfigureTcp4 (
IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
Tcp4Option = Tcp4CfgData->ControlOption;
- Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
- Tcp4Option->SendBufferSize = HTTP_BUFFER_SIZE_DEAULT;
+ Tcp4Option->ReceiveBufferSize = PcdGet32 (PcdHttpTransferBufferSize);
+ Tcp4Option->SendBufferSize = PcdGet32 (PcdHttpTransferBufferSize);
Tcp4Option->MaxSynBackLog = HTTP_MAX_SYN_BACK_LOG;
Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
Tcp4Option->DataRetries = HTTP_DATA_RETRIES;
@@ -1174,8 +1175,8 @@ HttpConfigureTcp6 (
IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
Tcp6Option = Tcp6CfgData->ControlOption;
- Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
- Tcp6Option->SendBufferSize = HTTP_BUFFER_SIZE_DEAULT;
+ Tcp6Option->ReceiveBufferSize = PcdGet32 (PcdHttpTransferBufferSize);
+ Tcp6Option->SendBufferSize = PcdGet32 (PcdHttpTransferBufferSize);
Tcp6Option->MaxSynBackLog = HTTP_MAX_SYN_BACK_LOG;
Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
Tcp6Option->DataRetries = HTTP_DATA_RETRIES;
diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h
index 953c464fe9..29828ac448 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -4,6 +4,7 @@
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.<BR>
+(c) Copyright 2025 HP Development Company, L.P.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -38,7 +39,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
#define HTTP_TOS_DEAULT 8
#define HTTP_TTL_DEAULT 255
-#define HTTP_BUFFER_SIZE_DEAULT 0x200000
#define HTTP_MAX_SYN_BACK_LOG 5
#define HTTP_CONNECTION_TIMEOUT 60
#define HTTP_DATA_RETRIES 12