* [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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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
0 siblings, 0 replies; 6+ 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] 6+ messages in thread
end of thread, other threads:[~2023-09-08 20:55 UTC | newest]
Thread overview: 6+ 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox