public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
@ 2023-07-21  5:17 Li, Yi
  2023-07-25  4:17 ` Saloni Kasbekar
  0 siblings, 1 reply; 8+ messages in thread
From: Li, Yi @ 2023-07-21  5:17 UTC (permalink / raw)
  To: devel; +Cc: Yi Li, Andrei Otcheretianski, Saloni Kasbekar,
	Zachary Clark-williams

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
This gives something like ~3 fold throughput boost.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
---
 NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
 NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
 NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
 3 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h b/NetworkPkg/HttpBootDxe/HttpBootClient.h
index 2fba713679..86a28bc91a 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #ifndef __EFI_HTTP_BOOT_HTTP_H__
 #define __EFI_HTTP_BOOT_HTTP_H__
 
-#define HTTP_BOOT_BLOCK_SIZE                   1500
+#define HTTP_BOOT_BLOCK_SIZE                   32000
 #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
 #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
 
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c
index 33ae622c3f..7dfb82dd2e 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
   Tcp4AP->ActiveFlag  = TRUE;
   IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
 
-  Tcp4Option                    = Tcp4CfgData->ControlOption;
-  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp4Option->EnableNagle       = TRUE;
-  Tcp4CfgData->ControlOption    = Tcp4Option;
+  Tcp4Option                      = Tcp4CfgData->ControlOption;
+  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp4Option->EnableNagle         = TRUE;
+  Tcp4Option->EnableWindowScaling = TRUE;
+  Tcp4CfgData->ControlOption      = Tcp4Option;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED))
@@ -1156,17 +1157,18 @@ HttpConfigureTcp6 (
   IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance->Ipv6Node.LocalAddress);
   IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
 
-  Tcp6Option                    = Tcp6CfgData->ControlOption;
-  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp6Option->EnableNagle       = TRUE;
+  Tcp6Option                      = Tcp6CfgData->ControlOption;
+  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp6Option->EnableNagle         = TRUE;
+  Tcp6Option->EnableWindowScaling = TRUE;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED))
diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h
index 620eb39158..012f1f4b46 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 //
 #define HTTP_TOS_DEAULT           8
 #define HTTP_TTL_DEAULT           255
-#define HTTP_BUFFER_SIZE_DEAULT   65535
+#define HTTP_BUFFER_SIZE_DEAULT   0x200000
 #define HTTP_MAX_SYN_BACK_LOG     5
 #define HTTP_CONNECTION_TIMEOUT   60
 #define HTTP_DATA_RETRIES         12
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107122): https://edk2.groups.io/g/devel/message/107122
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-07-21  5:17 [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling Li, Yi
@ 2023-07-25  4:17 ` Saloni Kasbekar
  2023-09-06  8:51   ` Li, Yi
  0 siblings, 1 reply; 8+ messages in thread
From: Saloni Kasbekar @ 2023-07-25  4:17 UTC (permalink / raw)
  To: Li, Yi1, devel@edk2.groups.io
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary

Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>

-----Original Message-----
From: Li, Yi1 <yi1.li@intel.com> 
Sent: Thursday, July 20, 2023 10:18 PM
To: devel@edk2.groups.io
Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Kasbekar, Saloni <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>
Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
This gives something like ~3 fold throughput boost.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
---
 NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
 NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
 NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
 3 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h b/NetworkPkg/HttpBootDxe/HttpBootClient.h
index 2fba713679..86a28bc91a 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
 
-#define HTTP_BOOT_BLOCK_SIZE                   1500
+#define HTTP_BOOT_BLOCK_SIZE                   32000
 #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
 #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
 
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 33ae622c3f..7dfb82dd2e 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
   Tcp4AP->ActiveFlag  = TRUE;
   IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
 
-  Tcp4Option                    = Tcp4CfgData->ControlOption;
-  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp4Option->EnableNagle       = TRUE;
-  Tcp4CfgData->ControlOption    = Tcp4Option;
+  Tcp4Option                      = Tcp4CfgData->ControlOption;
+  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp4Option->EnableNagle         = TRUE;
+  Tcp4Option->EnableWindowScaling = TRUE;
+  Tcp4CfgData->ControlOption      = Tcp4Option;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17 +1157,18 @@ HttpConfigureTcp6 (
   IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance->Ipv6Node.LocalAddress);
   IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
 
-  Tcp6Option                    = Tcp6CfgData->ControlOption;
-  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp6Option->EnableNagle       = TRUE;
+  Tcp6Option                      = Tcp6CfgData->ControlOption;
+  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp6Option->EnableNagle         = TRUE;
+  Tcp6Option->EnableWindowScaling = TRUE;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index 620eb39158..012f1f4b46 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
 #define HTTP_TOS_DEAULT           8
 #define HTTP_TTL_DEAULT           255
-#define HTTP_BUFFER_SIZE_DEAULT   65535
+#define HTTP_BUFFER_SIZE_DEAULT   0x200000
 #define HTTP_MAX_SYN_BACK_LOG     5
 #define HTTP_CONNECTION_TIMEOUT   60
 #define HTTP_DATA_RETRIES         12
--
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107217): https://edk2.groups.io/g/devel/message/107217
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-07-25  4:17 ` Saloni Kasbekar
@ 2023-09-06  8:51   ` Li, Yi
  2023-09-06 22:41     ` Saloni Kasbekar
  0 siblings, 1 reply; 8+ messages in thread
From: Li, Yi @ 2023-09-06  8:51 UTC (permalink / raw)
  To: Kasbekar, Saloni, devel@edk2.groups.io
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng

Hi Saloni and Zachary, can you help to merge this patch?  It got reviewed-by but not check-in, Thanks!

-----Original Message-----
From: Kasbekar, Saloni <saloni.kasbekar@intel.com> 
Sent: Tuesday, July 25, 2023 12:18 PM
To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>
Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>

-----Original Message-----
From: Li, Yi1 <yi1.li@intel.com> 
Sent: Thursday, July 20, 2023 10:18 PM
To: devel@edk2.groups.io
Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Kasbekar, Saloni <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>
Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
This gives something like ~3 fold throughput boost.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
---
 NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
 NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
 NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
 3 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h b/NetworkPkg/HttpBootDxe/HttpBootClient.h
index 2fba713679..86a28bc91a 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
 
-#define HTTP_BOOT_BLOCK_SIZE                   1500
+#define HTTP_BOOT_BLOCK_SIZE                   32000
 #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
 #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
 
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 33ae622c3f..7dfb82dd2e 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
   Tcp4AP->ActiveFlag  = TRUE;
   IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
 
-  Tcp4Option                    = Tcp4CfgData->ControlOption;
-  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp4Option->EnableNagle       = TRUE;
-  Tcp4CfgData->ControlOption    = Tcp4Option;
+  Tcp4Option                      = Tcp4CfgData->ControlOption;
+  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp4Option->EnableNagle         = TRUE;
+  Tcp4Option->EnableWindowScaling = TRUE;
+  Tcp4CfgData->ControlOption      = Tcp4Option;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17 +1157,18 @@ HttpConfigureTcp6 (
   IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance->Ipv6Node.LocalAddress);
   IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
 
-  Tcp6Option                    = Tcp6CfgData->ControlOption;
-  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp6Option->EnableNagle       = TRUE;
+  Tcp6Option                      = Tcp6CfgData->ControlOption;
+  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp6Option->EnableNagle         = TRUE;
+  Tcp6Option->EnableWindowScaling = TRUE;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index 620eb39158..012f1f4b46 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
 #define HTTP_TOS_DEAULT           8
 #define HTTP_TTL_DEAULT           255
-#define HTTP_BUFFER_SIZE_DEAULT   65535
+#define HTTP_BUFFER_SIZE_DEAULT   0x200000
 #define HTTP_MAX_SYN_BACK_LOG     5
 #define HTTP_CONNECTION_TIMEOUT   60
 #define HTTP_DATA_RETRIES         12
--
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108316): https://edk2.groups.io/g/devel/message/108316
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-09-06  8:51   ` Li, Yi
@ 2023-09-06 22:41     ` Saloni Kasbekar
  2023-09-08 17:07       ` Michael D Kinney
  0 siblings, 1 reply; 8+ messages in thread
From: Saloni Kasbekar @ 2023-09-06 22:41 UTC (permalink / raw)
  To: Li, Yi1, devel@edk2.groups.io, Kinney, Michael D
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng

Mike,

Could you help us merge the patch?

Thanks,
Saloni

-----Original Message-----
From: Li, Yi1 <yi1.li@intel.com> 
Sent: Wednesday, September 6, 2023 1:52 AM
To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; devel@edk2.groups.io
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>; Luo, Heng <heng.luo@intel.com>
Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

Hi Saloni and Zachary, can you help to merge this patch?  It got reviewed-by but not check-in, Thanks!

-----Original Message-----
From: Kasbekar, Saloni <saloni.kasbekar@intel.com> 
Sent: Tuesday, July 25, 2023 12:18 PM
To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>
Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>

-----Original Message-----
From: Li, Yi1 <yi1.li@intel.com> 
Sent: Thursday, July 20, 2023 10:18 PM
To: devel@edk2.groups.io
Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Kasbekar, Saloni <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>
Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
This gives something like ~3 fold throughput boost.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
---
 NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
 NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
 NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
 3 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h b/NetworkPkg/HttpBootDxe/HttpBootClient.h
index 2fba713679..86a28bc91a 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
 
-#define HTTP_BOOT_BLOCK_SIZE                   1500
+#define HTTP_BOOT_BLOCK_SIZE                   32000
 #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
 #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
 
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 33ae622c3f..7dfb82dd2e 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
   Tcp4AP->ActiveFlag  = TRUE;
   IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
 
-  Tcp4Option                    = Tcp4CfgData->ControlOption;
-  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp4Option->EnableNagle       = TRUE;
-  Tcp4CfgData->ControlOption    = Tcp4Option;
+  Tcp4Option                      = Tcp4CfgData->ControlOption;
+  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp4Option->EnableNagle         = TRUE;
+  Tcp4Option->EnableWindowScaling = TRUE;
+  Tcp4CfgData->ControlOption      = Tcp4Option;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17 +1157,18 @@ HttpConfigureTcp6 (
   IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance->Ipv6Node.LocalAddress);
   IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
 
-  Tcp6Option                    = Tcp6CfgData->ControlOption;
-  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
-  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
-  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
-  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
-  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
-  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
-  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
-  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
-  Tcp6Option->EnableNagle       = TRUE;
+  Tcp6Option                      = Tcp6CfgData->ControlOption;
+  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
+  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
+  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
+  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
+  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
+  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
+  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
+  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
+  Tcp6Option->EnableNagle         = TRUE;
+  Tcp6Option->EnableWindowScaling = TRUE;
 
   if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
       (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index 620eb39158..012f1f4b46 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
 #define HTTP_TOS_DEAULT           8
 #define HTTP_TTL_DEAULT           255
-#define HTTP_BUFFER_SIZE_DEAULT   65535
+#define HTTP_BUFFER_SIZE_DEAULT   0x200000
 #define HTTP_MAX_SYN_BACK_LOG     5
 #define HTTP_CONNECTION_TIMEOUT   60
 #define HTTP_DATA_RETRIES         12
--
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108344): https://edk2.groups.io/g/devel/message/108344
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-09-06 22:41     ` Saloni Kasbekar
@ 2023-09-08 17:07       ` Michael D Kinney
  2023-09-08 20:55         ` Michael D Kinney
  0 siblings, 1 reply; 8+ messages in thread
From: Michael D Kinney @ 2023-09-08 17:07 UTC (permalink / raw)
  To: Kasbekar, Saloni, Li, Yi1, devel@edk2.groups.io
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng,
	Kinney, Michael D

Acked-by: Michael D Kinney <michael.d.kinney@intel.com>

> -----Original Message-----
> From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> Sent: Wednesday, September 6, 2023 3:41 PM
> To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams,
> Zachary <zachary.clark-williams@intel.com>; Luo, Heng <heng.luo@intel.com>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
> 
> Mike,
> 
> Could you help us merge the patch?
> 
> Thanks,
> Saloni
> 
> -----Original Message-----
> From: Li, Yi1 <yi1.li@intel.com>
> Sent: Wednesday, September 6, 2023 1:52 AM
> To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; devel@edk2.groups.io
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams,
> Zachary <zachary.clark-williams@intel.com>; Luo, Heng <heng.luo@intel.com>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
> 
> Hi Saloni and Zachary, can you help to merge this patch?  It got reviewed-by
> but not check-in, Thanks!
> 
> -----Original Message-----
> From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> Sent: Tuesday, July 25, 2023 12:18 PM
> To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams,
> Zachary <zachary.clark-williams@intel.com>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
> 
> Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>
> 
> -----Original Message-----
> From: Li, Yi1 <yi1.li@intel.com>
> Sent: Thursday, July 20, 2023 10:18 PM
> To: devel@edk2.groups.io
> Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei
> <andrei.otcheretianski@intel.com>; Kasbekar, Saloni
> <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-
> williams@intel.com>
> Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window
> scaling
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
> This gives something like ~3 fold throughput boost.
> 
> Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
> Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
> Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
> ---
>  NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
>  NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
>  NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
>  3 files changed, 27 insertions(+), 25 deletions(-)
> 
> diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> index 2fba713679..86a28bc91a 100644
> --- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> +++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> @@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef
> __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
> 
> -#define HTTP_BOOT_BLOCK_SIZE                   1500
> +#define HTTP_BOOT_BLOCK_SIZE                   32000
>  #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
>  #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
> 
> diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c
> index 33ae622c3f..7dfb82dd2e 100644
> --- a/NetworkPkg/HttpDxe/HttpProto.c
> +++ b/NetworkPkg/HttpDxe/HttpProto.c
> @@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
>    Tcp4AP->ActiveFlag  = TRUE;
>    IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
> 
> -  Tcp4Option                    = Tcp4CfgData->ControlOption;
> -  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> -  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> -  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> -  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> -  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
> -  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> -  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> -  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> -  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> -  Tcp4Option->EnableNagle       = TRUE;
> -  Tcp4CfgData->ControlOption    = Tcp4Option;
> +  Tcp4Option                      = Tcp4CfgData->ControlOption;
> +  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> +  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> +  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> +  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> +  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
> +  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> +  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> +  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> +  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> +  Tcp4Option->EnableNagle         = TRUE;
> +  Tcp4Option->EnableWindowScaling = TRUE;
> +  Tcp4CfgData->ControlOption      = Tcp4Option;
> 
>    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
>        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17 +1157,18
> @@ HttpConfigureTcp6 (
>    IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance-
> >Ipv6Node.LocalAddress);
>    IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance->RemoteIpv6Addr);
> 
> -  Tcp6Option                    = Tcp6CfgData->ControlOption;
> -  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> -  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> -  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> -  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> -  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
> -  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> -  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> -  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> -  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> -  Tcp6Option->EnableNagle       = TRUE;
> +  Tcp6Option                      = Tcp6CfgData->ControlOption;
> +  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> +  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> +  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> +  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> +  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
> +  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> +  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> +  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> +  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> +  Tcp6Option->EnableNagle         = TRUE;
> +  Tcp6Option->EnableWindowScaling = TRUE;
> 
>    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
>        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git
> a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index
> 620eb39158..012f1f4b46 100644
> --- a/NetworkPkg/HttpDxe/HttpProto.h
> +++ b/NetworkPkg/HttpDxe/HttpProto.h
> @@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
>  #define HTTP_TOS_DEAULT           8
>  #define HTTP_TTL_DEAULT           255
> -#define HTTP_BUFFER_SIZE_DEAULT   65535
> +#define HTTP_BUFFER_SIZE_DEAULT   0x200000
>  #define HTTP_MAX_SYN_BACK_LOG     5
>  #define HTTP_CONNECTION_TIMEOUT   60
>  #define HTTP_DATA_RETRIES         12
> --
> 2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108459): https://edk2.groups.io/g/devel/message/108459
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-09-08 17:07       ` Michael D Kinney
@ 2023-09-08 20:55         ` Michael D Kinney
  2024-11-25 10:03           ` Santhosh Kumar V via groups.io
  0 siblings, 1 reply; 8+ messages in thread
From: Michael D Kinney @ 2023-09-08 20:55 UTC (permalink / raw)
  To: Kasbekar, Saloni, Li, Yi1, devel@edk2.groups.io
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng,
	Kinney, Michael D

Merged: https://github.com/tianocore/edk2/commit/b240eab03530f063ef5438497d70a731b19a201e


> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Friday, September 8, 2023 10:07 AM
> To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; Li, Yi1
> <yi1.li@intel.com>; devel@edk2.groups.io
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams, Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
> 
> Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
> 
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> > Sent: Wednesday, September 6, 2023 3:41 PM
> > To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io; Kinney, Michael D
> > <michael.d.kinney@intel.com>
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Mike,
> >
> > Could you help us merge the patch?
> >
> > Thanks,
> > Saloni
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com>
> > Sent: Wednesday, September 6, 2023 1:52 AM
> > To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; devel@edk2.groups.io
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Hi Saloni and Zachary, can you help to merge this patch?  It got
> reviewed-by
> > but not check-in, Thanks!
> >
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> > Sent: Tuesday, July 25, 2023 12:18 PM
> > To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com>
> > Sent: Thursday, July 20, 2023 10:18 PM
> > To: devel@edk2.groups.io
> > Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei
> > <andrei.otcheretianski@intel.com>; Kasbekar, Saloni
> > <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-
> > williams@intel.com>
> > Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window
> > scaling
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4505
> > This gives something like ~3 fold throughput boost.
> >
> > Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
> > Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
> > Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
> > ---
> >  NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
> >  NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
> >  NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
> >  3 files changed, 27 insertions(+), 25 deletions(-)
> >
> > diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > index 2fba713679..86a28bc91a 100644
> > --- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > +++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > @@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef
> > __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
> >
> > -#define HTTP_BOOT_BLOCK_SIZE                   1500
> > +#define HTTP_BOOT_BLOCK_SIZE                   32000
> >  #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
> >  #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
> >
> > diff --git a/NetworkPkg/HttpDxe/HttpProto.c
> b/NetworkPkg/HttpDxe/HttpProto.c
> > index 33ae622c3f..7dfb82dd2e 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.c
> > +++ b/NetworkPkg/HttpDxe/HttpProto.c
> > @@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
> >    Tcp4AP->ActiveFlag  = TRUE;
> >    IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
> >
> > -  Tcp4Option                    = Tcp4CfgData->ControlOption;
> > -  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp4Option->EnableNagle       = TRUE;
> > -  Tcp4CfgData->ControlOption    = Tcp4Option;
> > +  Tcp4Option                      = Tcp4CfgData->ControlOption;
> > +  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp4Option->EnableNagle         = TRUE;
> > +  Tcp4Option->EnableWindowScaling = TRUE;
> > +  Tcp4CfgData->ControlOption      = Tcp4Option;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17
> +1157,18
> > @@ HttpConfigureTcp6 (
> >    IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance-
> > >Ipv6Node.LocalAddress);
> >    IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance-
> >RemoteIpv6Addr);
> >
> > -  Tcp6Option                    = Tcp6CfgData->ControlOption;
> > -  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp6Option->EnableNagle       = TRUE;
> > +  Tcp6Option                      = Tcp6CfgData->ControlOption;
> > +  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp6Option->EnableNagle         = TRUE;
> > +  Tcp6Option->EnableWindowScaling = TRUE;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git
> > a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index
> > 620eb39158..012f1f4b46 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.h
> > +++ b/NetworkPkg/HttpDxe/HttpProto.h
> > @@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> >  #define HTTP_TOS_DEAULT           8
> >  #define HTTP_TTL_DEAULT           255
> > -#define HTTP_BUFFER_SIZE_DEAULT   65535
> > +#define HTTP_BUFFER_SIZE_DEAULT   0x200000
> >  #define HTTP_MAX_SYN_BACK_LOG     5
> >  #define HTTP_CONNECTION_TIMEOUT   60
> >  #define HTTP_DATA_RETRIES         12
> > --
> > 2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108462): https://edk2.groups.io/g/devel/message/108462
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2023-09-08 20:55         ` Michael D Kinney
@ 2024-11-25 10:03           ` Santhosh Kumar V via groups.io
  2024-11-25 17:15             ` Michael D Kinney via groups.io
  0 siblings, 1 reply; 8+ messages in thread
From: Santhosh Kumar V via groups.io @ 2024-11-25 10:03 UTC (permalink / raw)
  To: Kasbekar, Saloni, Li, Yi1, devel@edk2.groups.io,
	michael.d.kinney@intel.com
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng

[-- Attachment #1: Type: text/plain, Size: 12783 bytes --]

HI All,

We are  facing issue of httpboot takes more time during large iso file downloading.



The issue is reported on the customer side. The HTTP/HTTPs takes long time to download the RHEL ISO image from HTTP/HTTPs servers.
Tried with different cards – Intel x810/x710/MLOM, Mellanox and Broad com adapters. But this issue is always reproducible with all the adapters.
The issue is caused due to the changes made in HttpProto.h, HttpProto.c , HttpBootClient.c file.  The changes are given below,

HttpBootClient.h

             -#define HTTP_BOOT_BLOCK_SIZE                   1500
             +#define HTTP_BOOT_BLOCK_SIZE                   32000

HttpProto.c

          +  Tcp4Option->EnableWindowScaling = TRUE;
          + Tcp6Option->EnableWindowScaling = TRUE;

HttpProto.h

           -#define HTTP_BUFFER_SIZE_DEAULT   65535
           +#define HTTP_BUFFER_SIZE_DEAULT   0x200000

After reverting the changes, the issue is not reproduced.

Note: Above changes are from EDK2 TianoCore Bugzilla – Bug 4505
Link:  4505 – NetworkPkg: HTTP protocol throughput too small

From our side we tried to reproduce the issue. With change HTTP_BOOT_BLOCK_SIZE as 32000 and HTTP_BUFFER_SIZE_DEAULT as 0x200000. It took 23minutes 40seconds to download the RHEL ISO (11.5 GB) through private network from local HTTP server. With reverted changes HTTP_BOOT_BLOCK_SIZE as1500 and HTTP_BUFFER_SIZE_DEAULT as 65535. It took 17 minutes 15 seconds to download the RHEL ISO (11.5 GB) through private network from local HTTP server.

Can you please provide your suggestions on this behaviour?

Thanks,
santhosh

________________________________
From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Michael D Kinney via groups.io <michael.d.kinney=intel.com@groups.io>
Sent: Saturday, September 9, 2023 02:25
To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>; Luo, Heng <heng.luo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: [EXTERNAL] Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling


**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**

Merged: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fcommit%2Fb240eab03530f063ef5438497d70a731b19a201e&data=05%7C01%7Csanthoshkumarv%40ami.com%7Cc6667944c43c41e3132b08dbb0ade19d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C638298033105005252%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bMifbtnsYEA6xpgZVDenmtSoa7%2F5%2BC4wETTwnGvxJFk%3D&reserved=0<https://github.com/tianocore/edk2/commit/b240eab03530f063ef5438497d70a731b19a201e>


> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Friday, September 8, 2023 10:07 AM
> To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; Li, Yi1
> <yi1.li@intel.com>; devel@edk2.groups.io
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams, Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
>
> Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
>
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> > Sent: Wednesday, September 6, 2023 3:41 PM
> > To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io; Kinney, Michael D
> > <michael.d.kinney@intel.com>
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Mike,
> >
> > Could you help us merge the patch?
> >
> > Thanks,
> > Saloni
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com>
> > Sent: Wednesday, September 6, 2023 1:52 AM
> > To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; devel@edk2.groups.io
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>; Luo, Heng
> <heng.luo@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Hi Saloni and Zachary, can you help to merge this patch?  It got
> reviewed-by
> > but not check-in, Thanks!
> >
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com>
> > Sent: Tuesday, July 25, 2023 12:18 PM
> > To: Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com>
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com>
> > Sent: Thursday, July 20, 2023 10:18 PM
> > To: devel@edk2.groups.io
> > Cc: Li, Yi1 <yi1.li@intel.com>; Otcheretianski, Andrei
> > <andrei.otcheretianski@intel.com>; Kasbekar, Saloni
> > <saloni.kasbekar@intel.com>; Clark-williams, Zachary <zachary.clark-
> > williams@intel.com>
> > Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window
> > scaling
> >
> > REF: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D4505&data=05%7C01%7Csanthoshkumarv%40ami.com%7Cc6667944c43c41e3132b08dbb0ade19d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C638298033105005252%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xMzBMuvcaWmfXYMR3YrTDvGo6x1aCC%2F9WMDUHbeGvW4%3D&reserved=0<https://bugzilla.tianocore.org/show_bug.cgi?id=4505>
> > This gives something like ~3 fold throughput boost.
> >
> > Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
> > Cc: Saloni Kasbekar <saloni.kasbekar@intel.com>
> > Cc: Zachary Clark-williams <zachary.clark-williams@intel.com>
> > ---
> >  NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
> >  NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
> >  NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
> >  3 files changed, 27 insertions(+), 25 deletions(-)
> >
> > diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > index 2fba713679..86a28bc91a 100644
> > --- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > +++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > @@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef
> > __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
> >
> > -#define HTTP_BOOT_BLOCK_SIZE                   1500
> > +#define HTTP_BOOT_BLOCK_SIZE                   32000
> >  #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
> >  #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
> >
> > diff --git a/NetworkPkg/HttpDxe/HttpProto.c
> b/NetworkPkg/HttpDxe/HttpProto.c
> > index 33ae622c3f..7dfb82dd2e 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.c
> > +++ b/NetworkPkg/HttpDxe/HttpProto.c
> > @@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
> >    Tcp4AP->ActiveFlag  = TRUE;
> >    IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
> >
> > -  Tcp4Option                    = Tcp4CfgData->ControlOption;
> > -  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp4Option->EnableNagle       = TRUE;
> > -  Tcp4CfgData->ControlOption    = Tcp4Option;
> > +  Tcp4Option                      = Tcp4CfgData->ControlOption;
> > +  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp4Option->EnableNagle         = TRUE;
> > +  Tcp4Option->EnableWindowScaling = TRUE;
> > +  Tcp4CfgData->ControlOption      = Tcp4Option;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17
> +1157,18
> > @@ HttpConfigureTcp6 (
> >    IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance-
> > >Ipv6Node.LocalAddress);
> >    IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance-
> >RemoteIpv6Addr);
> >
> > -  Tcp6Option                    = Tcp6CfgData->ControlOption;
> > -  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp6Option->EnableNagle       = TRUE;
> > +  Tcp6Option                      = Tcp6CfgData->ControlOption;
> > +  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp6Option->EnableNagle         = TRUE;
> > +  Tcp6Option->EnableWindowScaling = TRUE;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git
> > a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index
> > 620eb39158..012f1f4b46 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.h
> > +++ b/NetworkPkg/HttpDxe/HttpProto.h
> > @@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> >  #define HTTP_TOS_DEAULT           8
> >  #define HTTP_TTL_DEAULT           255
> > -#define HTTP_BUFFER_SIZE_DEAULT   65535
> > +#define HTTP_BUFFER_SIZE_DEAULT   0x200000
> >  #define HTTP_MAX_SYN_BACK_LOG     5
> >  #define HTTP_CONNECTION_TIMEOUT   60
> >  #define HTTP_DATA_RETRIES         12
> > --
> > 2.31.1.windows.1






-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120829): https://edk2.groups.io/g/devel/message/120829
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 24751 bytes --]

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

* Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling
  2024-11-25 10:03           ` Santhosh Kumar V via groups.io
@ 2024-11-25 17:15             ` Michael D Kinney via groups.io
  0 siblings, 0 replies; 8+ messages in thread
From: Michael D Kinney via groups.io @ 2024-11-25 17:15 UTC (permalink / raw)
  To: Santhosh Kumar V, Kasbekar, Saloni, Li, Yi1, devel@edk2.groups.io
  Cc: Otcheretianski, Andrei, Clark-williams, Zachary, Luo, Heng,
	Kinney, Michael D

[-- Attachment #1: Type: text/plain, Size: 15396 bytes --]

This is an interesting observation.

Optimizing the performance of various protocols and block sizes and windows can be complex.

You might try using tools like WireShark to compare the behavior of different configurations which values make the performance better and worse and if events like timeout or retries are being introduced.

If there are settings that need to be tuned for different network environments, then moving some of these from #defines to PCDs or setup options may be valuable.

Mike

From: Santhosh Kumar V <santhoshkumarv@ami.com>
Sent: Monday, November 25, 2024 2:04 AM
To: Kasbekar, Saloni <saloni.kasbekar@intel.com>; Li, Yi1 <yi1.li@intel.com>; devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com>; Clark-williams, Zachary <zachary.clark-williams@intel.com>; Luo, Heng <heng.luo@intel.com>
Subject: Re: [EXTERNAL] Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling

HI All,

We are  facing issue of httpboot takes more time during large iso file downloading.



The issue is reported on the customer side. The HTTP/HTTPs takes long time to download the RHEL ISO image from HTTP/HTTPs servers.
Tried with different cards - Intel x810/x710/MLOM, Mellanox and Broad com adapters. But this issue is always reproducible with all the adapters.
The issue is caused due to the changes made in HttpProto.h, HttpProto.c , HttpBootClient.c file.  The changes are given below,

HttpBootClient.h

             -#define HTTP_BOOT_BLOCK_SIZE                   1500
             +#define HTTP_BOOT_BLOCK_SIZE                   32000

HttpProto.c

          +  Tcp4Option->EnableWindowScaling = TRUE;
          + Tcp6Option->EnableWindowScaling = TRUE;

HttpProto.h

           -#define HTTP_BUFFER_SIZE_DEAULT   65535
           +#define HTTP_BUFFER_SIZE_DEAULT   0x200000

After reverting the changes, the issue is not reproduced.

Note: Above changes are from EDK2 TianoCore Bugzilla - Bug 4505
Link:  4505 - NetworkPkg: HTTP protocol throughput too small

From our side we tried to reproduce the issue. With change HTTP_BOOT_BLOCK_SIZE as 32000 and HTTP_BUFFER_SIZE_DEAULT as 0x200000. It took 23minutes 40seconds to download the RHEL ISO (11.5 GB) through private network from local HTTP server. With reverted changes HTTP_BOOT_BLOCK_SIZE as1500 and HTTP_BUFFER_SIZE_DEAULT as 65535. It took 17 minutes 15 seconds to download the RHEL ISO (11.5 GB) through private network from local HTTP server.

Can you please provide your suggestions on this behaviour?

Thanks,
santhosh

________________________________
From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>> on behalf of Michael D Kinney via groups.io <michael.d.kinney=intel.com@groups.io<mailto:michael.d.kinney=intel.com@groups.io>>
Sent: Saturday, September 9, 2023 02:25
To: Kasbekar, Saloni <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>; Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>>
Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Clark-williams, Zachary <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>; Luo, Heng <heng.luo@intel.com<mailto:heng.luo@intel.com>>; Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
Subject: [EXTERNAL] Re: [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling


**CAUTION: The e-mail below is from an external source. Please exercise caution before opening attachments, clicking links, or following guidance.**

Merged: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fcommit%2Fb240eab03530f063ef5438497d70a731b19a201e&data=05%7C01%7Csanthoshkumarv%40ami.com%7Cc6667944c43c41e3132b08dbb0ade19d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C638298033105005252%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=bMifbtnsYEA6xpgZVDenmtSoa7%2F5%2BC4wETTwnGvxJFk%3D&reserved=0<https://github.com/tianocore/edk2/commit/b240eab03530f063ef5438497d70a731b19a201e>


> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
> Sent: Friday, September 8, 2023 10:07 AM
> To: Kasbekar, Saloni <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>; Li, Yi1
> <yi1.li@intel.com<mailto:yi1.li@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Clark-
> williams, Zachary <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>; Luo, Heng
> <heng.luo@intel.com<mailto:heng.luo@intel.com>>; Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window scaling
>
> Acked-by: Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
>
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>
> > Sent: Wednesday, September 6, 2023 3:41 PM
> > To: Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Kinney, Michael D
> > <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>; Luo, Heng
> <heng.luo@intel.com<mailto:heng.luo@intel.com>>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Mike,
> >
> > Could you help us merge the patch?
> >
> > Thanks,
> > Saloni
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>
> > Sent: Wednesday, September 6, 2023 1:52 AM
> > To: Kasbekar, Saloni <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>; Luo, Heng
> <heng.luo@intel.com<mailto:heng.luo@intel.com>>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Hi Saloni and Zachary, can you help to merge this patch?  It got
> reviewed-by
> > but not check-in, Thanks!
> >
> > -----Original Message-----
> > From: Kasbekar, Saloni <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>
> > Sent: Tuesday, July 25, 2023 12:18 PM
> > To: Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> > Cc: Otcheretianski, Andrei <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Clark-
> williams,
> > Zachary <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>
> > Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> > window scaling
> >
> > Reviewed-by: Saloni Kasbekar <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>
> >
> > -----Original Message-----
> > From: Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>
> > Sent: Thursday, July 20, 2023 10:18 PM
> > To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
> > Cc: Li, Yi1 <yi1.li@intel.com<mailto:yi1.li@intel.com>>; Otcheretianski, Andrei
> > <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>; Kasbekar, Saloni
> > <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>; Clark-williams, Zachary <zachary.clark-
> > williams@intel.com<mailto:williams@intel.com>>
> > Subject: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP
> window
> > scaling
> >
> > REF: https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D4505&data=05%7C01%7Csanthoshkumarv%40ami.com%7Cc6667944c43c41e3132b08dbb0ade19d%7C27e97857e15f486cb58e86c2b3040f93%7C1%7C0%7C638298033105005252%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xMzBMuvcaWmfXYMR3YrTDvGo6x1aCC%2F9WMDUHbeGvW4%3D&reserved=0<https://bugzilla.tianocore.org/show_bug.cgi?id=4505>
> > This gives something like ~3 fold throughput boost.
> >
> > Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com<mailto:andrei.otcheretianski@intel.com>>
> > Cc: Saloni Kasbekar <saloni.kasbekar@intel.com<mailto:saloni.kasbekar@intel.com>>
> > Cc: Zachary Clark-williams <zachary.clark-williams@intel.com<mailto:zachary.clark-williams@intel.com>>
> > ---
> >  NetworkPkg/HttpBootDxe/HttpBootClient.h |  2 +-
> >  NetworkPkg/HttpDxe/HttpProto.c          | 48 +++++++++++++------------
> >  NetworkPkg/HttpDxe/HttpProto.h          |  2 +-
> >  3 files changed, 27 insertions(+), 25 deletions(-)
> >
> > diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > index 2fba713679..86a28bc91a 100644
> > --- a/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > +++ b/NetworkPkg/HttpBootDxe/HttpBootClient.h
> > @@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  #ifndef
> > __EFI_HTTP_BOOT_HTTP_H__  #define __EFI_HTTP_BOOT_HTTP_H__
> >
> > -#define HTTP_BOOT_BLOCK_SIZE                   1500
> > +#define HTTP_BOOT_BLOCK_SIZE                   32000
> >  #define HTTP_USER_AGENT_EFI_HTTP_BOOT          "UefiHttpBoot/1.0"
> >  #define HTTP_BOOT_AUTHENTICATION_INFO_MAX_LEN  255
> >
> > diff --git a/NetworkPkg/HttpDxe/HttpProto.c
> b/NetworkPkg/HttpDxe/HttpProto.c
> > index 33ae622c3f..7dfb82dd2e 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.c
> > +++ b/NetworkPkg/HttpDxe/HttpProto.c
> > @@ -1073,18 +1073,19 @@ HttpConfigureTcp4 (
> >    Tcp4AP->ActiveFlag  = TRUE;
> >    IP4_COPY_ADDRESS (&Tcp4AP->RemoteAddress, &HttpInstance->RemoteAddr);
> >
> > -  Tcp4Option                    = Tcp4CfgData->ControlOption;
> > -  Tcp4Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp4Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp4Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp4Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp4Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp4Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp4Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp4Option->EnableNagle       = TRUE;
> > -  Tcp4CfgData->ControlOption    = Tcp4Option;
> > +  Tcp4Option                      = Tcp4CfgData->ControlOption;
> > +  Tcp4Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp4Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp4Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp4Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp4Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp4Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp4Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp4Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp4Option->EnableNagle         = TRUE;
> > +  Tcp4Option->EnableWindowScaling = TRUE;
> > +  Tcp4CfgData->ControlOption      = Tcp4Option;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) @@ -1156,17
> +1157,18
> > @@ HttpConfigureTcp6 (
> >    IP6_COPY_ADDRESS (&Tcp6Ap->StationAddress, &HttpInstance-
> > >Ipv6Node.LocalAddress);
> >    IP6_COPY_ADDRESS (&Tcp6Ap->RemoteAddress, &HttpInstance-
> >RemoteIpv6Addr);
> >
> > -  Tcp6Option                    = Tcp6CfgData->ControlOption;
> > -  Tcp6Option->ReceiveBufferSize = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->SendBufferSize    = HTTP_BUFFER_SIZE_DEAULT;
> > -  Tcp6Option->MaxSynBackLog     = HTTP_MAX_SYN_BACK_LOG;
> > -  Tcp6Option->ConnectionTimeout = HTTP_CONNECTION_TIMEOUT;
> > -  Tcp6Option->DataRetries       = HTTP_DATA_RETRIES;
> > -  Tcp6Option->FinTimeout        = HTTP_FIN_TIMEOUT;
> > -  Tcp6Option->KeepAliveProbes   = HTTP_KEEP_ALIVE_PROBES;
> > -  Tcp6Option->KeepAliveTime     = HTTP_KEEP_ALIVE_TIME;
> > -  Tcp6Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL;
> > -  Tcp6Option->EnableNagle       = TRUE;
> > +  Tcp6Option                      = Tcp6CfgData->ControlOption;
> > +  Tcp6Option->ReceiveBufferSize   = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->SendBufferSize      = HTTP_BUFFER_SIZE_DEAULT;
> > +  Tcp6Option->MaxSynBackLog       = HTTP_MAX_SYN_BACK_LOG;
> > +  Tcp6Option->ConnectionTimeout   = HTTP_CONNECTION_TIMEOUT;
> > +  Tcp6Option->DataRetries         = HTTP_DATA_RETRIES;
> > +  Tcp6Option->FinTimeout          = HTTP_FIN_TIMEOUT;
> > +  Tcp6Option->KeepAliveProbes     = HTTP_KEEP_ALIVE_PROBES;
> > +  Tcp6Option->KeepAliveTime       = HTTP_KEEP_ALIVE_TIME;
> > +  Tcp6Option->KeepAliveInterval   = HTTP_KEEP_ALIVE_INTERVAL;
> > +  Tcp6Option->EnableNagle         = TRUE;
> > +  Tcp6Option->EnableWindowScaling = TRUE;
> >
> >    if ((HttpInstance->State == HTTP_STATE_TCP_CONNECTED) ||
> >        (HttpInstance->State == HTTP_STATE_TCP_CLOSED)) diff --git
> > a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index
> > 620eb39158..012f1f4b46 100644
> > --- a/NetworkPkg/HttpDxe/HttpProto.h
> > +++ b/NetworkPkg/HttpDxe/HttpProto.h
> > @@ -37,7 +37,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> >  #define HTTP_TOS_DEAULT           8
> >  #define HTTP_TTL_DEAULT           255
> > -#define HTTP_BUFFER_SIZE_DEAULT   65535
> > +#define HTTP_BUFFER_SIZE_DEAULT   0x200000
> >  #define HTTP_MAX_SYN_BACK_LOG     5
> >  #define HTTP_CONNECTION_TIMEOUT   60
> >  #define HTTP_DATA_RETRIES         12
> > --
> > 2.31.1.windows.1





-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120836): https://edk2.groups.io/g/devel/message/120836
Mute This Topic: https://groups.io/mt/100271527/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 28853 bytes --]

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

end of thread, other threads:[~2024-11-25 17:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-21  5:17 [edk2-devel] [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling Li, Yi
2023-07-25  4:17 ` Saloni Kasbekar
2023-09-06  8:51   ` Li, Yi
2023-09-06 22:41     ` Saloni Kasbekar
2023-09-08 17:07       ` Michael D Kinney
2023-09-08 20:55         ` Michael D Kinney
2024-11-25 10:03           ` Santhosh Kumar V via groups.io
2024-11-25 17:15             ` Michael D Kinney via groups.io

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