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.kasbe...@intel.com> Sent: Tuesday, July 25, 2023 12:18 PM To: Li, Yi1 <yi1...@intel.com>; devel@edk2.groups.io Cc: Otcheretianski, Andrei <andrei.otcheretian...@intel.com>; Clark-williams, Zachary <zachary.clark-willi...@intel.com> Subject: RE: [PATCH] NetworkPkg: Increase HTTP buffer size and enable TCP window scaling Reviewed-by: Saloni Kasbekar <saloni.kasbe...@intel.com> -----Original Message----- From: Li, Yi1 <yi1...@intel.com> Sent: Thursday, July 20, 2023 10:18 PM To: devel@edk2.groups.io Cc: Li, Yi1 <yi1...@intel.com>; Otcheretianski, Andrei <andrei.otcheretian...@intel.com>; Kasbekar, Saloni <saloni.kasbe...@intel.com>; Clark-williams, Zachary <zachary.clark-willi...@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.otcheretian...@intel.com> Cc: Saloni Kasbekar <saloni.kasbe...@intel.com> Cc: Zachary Clark-williams <zachary.clark-willi...@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/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-