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

Reply via email to