diff options
author | Richard Scheffenegger <rscheff@FreeBSD.org> | 2020-09-25 10:38:19 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-07-11 11:52:46 +0200 |
commit | 7b30b9f648a25f3b615730864ddc86a433a93333 (patch) | |
tree | 1b3953d88cc5b1230c1fdc8761ffc02c8464f0a7 | |
parent | 43e76bafcd70f0639b3d9ea9c411de23b119c55f (diff) | |
download | newlib-7b30b9f648a25f3b615730864ddc86a433a93333.zip newlib-7b30b9f648a25f3b615730864ddc86a433a93333.tar.gz newlib-7b30b9f648a25f3b615730864ddc86a433a93333.tar.bz2 |
TCP: send full initial window when timestamps are in use
The fastpath in tcp_output tries to send out
full segments, and avoid sending partial segments by
comparing against the static t_maxseg variable.
That value does not consider tcp options like timestamps,
while the initial window calculation is using
the correct dynamic tcp_maxseg() function.
Due to this interaction, the last, full size segment
is considered too short and not sent out immediately.
Reviewed by: tuexen
MFC after: 2 weeks
Sponsored by: NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D26478
-rw-r--r-- | newlib/libc/sys/rtems/include/netinet/tcp.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/newlib/libc/sys/rtems/include/netinet/tcp.h b/newlib/libc/sys/rtems/include/netinet/tcp.h index 0a52268..faf1429 100644 --- a/newlib/libc/sys/rtems/include/netinet/tcp.h +++ b/newlib/libc/sys/rtems/include/netinet/tcp.h @@ -80,6 +80,8 @@ struct tcphdr { u_short th_urp; /* urgent pointer */ }; +#define PADTCPOLEN(len) ((((len) / 4) + !!((len) % 4)) * 4) + #define TCPOPT_EOL 0 #define TCPOLEN_EOL 1 #define TCPOPT_PAD 0 /* padding after EOL */ |