aboutgitcodebugslistschat
path: root/util.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2021-06-08 02:20:28 +0200
committerStefano Brivio <sbrivio@redhat.com>2021-06-08 02:20:28 +0200
commit90078ebc5911f2dc7cb2290e92db67b78a0b9f1e (patch)
treed55e269e7e3e2d1299271b0785cff3391802d78a /util.c
parent8b39b0b47f86e5bab88634cba1a8e9932e275f77 (diff)
downloadpasst-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar.gz
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar.bz2
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar.lz
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar.xz
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.tar.zst
passt-90078ebc5911f2dc7cb2290e92db67b78a0b9f1e.zip
tcp: Add support for kernels not exporting tcpi_snd_wnd via TCP_INFO
Before commit 8f7baad7f035 ("tcp: Add snd_wnd to TCP_INFO"), the kernel didn't export tcpi_snd_wnd via TCP_INFO, which means we don't know what's the window size of the receiver, socket-side. To get TCP connections working in that case, ignore this value if it's zero during handshake, and use the initial window value as suggested by RFC 6928 (14 600 bytes, instead of 4 380 bytes), to keep network performance usable. To make the TCP dynamic responsive enough in this case, also check the socket for available data whenever we get an ACK segment from tap, instead of waiting until all the data from the tap is dequeued. While at it, fix the window scaling value sent for SYN and SYN, ACK segments: we want to increase the data pointer after writing the option, not the value itself. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'util.c')
0 files changed, 0 insertions, 0 deletions