This patch enlarges the TCP send/receive buffer to 2M in HttpDxe driver to speed up the download speed.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan...@intel.com> --- NetworkPkg/HttpDxe/HttpProto.c | 22 ++++++++++++---------- NetworkPkg/HttpDxe/HttpProto.h | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 85f8401..3f6291b 100644 --- a/NetworkPkg/HttpDxe/HttpProto.c +++ b/NetworkPkg/HttpDxe/HttpProto.c @@ -1063,6 +1063,7 @@ HttpConfigureTcp4 ( Tcp4Option->KeepAliveTime = HTTP_KEEP_ALIVE_TIME; Tcp4Option->KeepAliveInterval = HTTP_KEEP_ALIVE_INTERVAL; Tcp4Option->EnableNagle = TRUE; + Tcp4Option->EnableWindowScaling = TRUE; Tcp4CfgData->ControlOption = Tcp4Option; Status = HttpInstance->Tcp4->Configure (HttpInstance->Tcp4, Tcp4CfgData); @@ -1124,16 +1125,17 @@ HttpConfigureTcp6 ( 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->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; Status = HttpInstance->Tcp6->Configure (HttpInstance->Tcp6, Tcp6CfgData); if (EFI_ERROR (Status)) { diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index e43a2dc..291bb14 100644 --- a/NetworkPkg/HttpDxe/HttpProto.h +++ b/NetworkPkg/HttpDxe/HttpProto.h @@ -43,7 +43,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. // #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.5.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel