From cdcbe85df7f27eb27f09a69cbef93fe0a1b8f419 Mon Sep 17 00:00:00 2001 From: dave Date: Thu, 29 Sep 2022 10:17:27 +0100 Subject: [PATCH] TCP: don't hardcode a maximum write of 4000 bytes This allows larger MTUs to be used, which helps when there is large per-packet overhead. For example - qemu when using the socket network device - Apple virtualization.framework both expose ethernet frames over SOCK_DGRAM file descriptors, which leads to one syscall per frame. Signed-off-by: David Scott --- src/tcp/flow.ml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/tcp/flow.ml b/src/tcp/flow.ml index a96e2400..26bbe87b 100644 --- a/src/tcp/flow.ml +++ b/src/tcp/flow.ml @@ -585,9 +585,7 @@ struct (* Maximum allowed write *) let write_available pcb = - (* Our effective outgoing MTU is what can fit in a page *) - min 4000 (min (Window.tx_mss pcb.wnd) - (Int32.to_int (UTX.available pcb.utx))) + min (Window.tx_mss pcb.wnd) (Int32.to_int (UTX.available pcb.utx)) (* Wait for more write space *) let write_wait_for pcb sz =