zephyr/subsys/net/ip
Robert Lubos 349bf81e00 net: tcp: Keep track of recv window size change since last ACK
Windows TCP stack has a peculiar behavior - when running iperf, it will
fill out the RX window almost entirely, but will not set PSH flag on
packets. In result, our stack would delay the ACK and thus window
update, affecting throughputs heavily.

In order to avoid that, keep track of the most recent window size
reported to the peer, and reduce it when receiving new data. In case the
RX window, as seen from the peer perspective, drops below certain
threshold, and the real RX window is currently empty, send an ACK
immediately when updating window, so that peer can continue
with sending data.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-07-31 12:56:52 +02:00
..
6lo_private.h
6lo.c
6lo.h
canbus_socket.c
canbus_socket.h
CMakeLists.txt net: ipv4: Implement IPv4 address conflict detection 2024-06-10 00:59:28 -07:00
connection.c net: ip: fix typo 2024-06-25 21:19:00 -04:00
connection.h everywhere: replace double words 2024-06-22 05:40:22 -04:00
icmp.c net: use appropriate sys_randX_get() 2024-04-05 12:28:46 +02:00
icmpv4.c net: Support partial checksum offloading 2024-06-14 17:10:43 -04:00
icmpv4.h
icmpv6.c net: Support partial checksum offloading 2024-06-14 17:10:43 -04:00
icmpv6.h
igmp.c
ipv4_acd.c net: ipv4: Implement IPv4 address conflict detection 2024-06-10 00:59:28 -07:00
ipv4_autoconf.c net: ipv4: autoconf: Integrate with the ACD module 2024-06-10 00:59:28 -07:00
ipv4_fragment.c net: ipv4: Fix tx_pkts slab leak in send_ipv4_fragment 2024-07-27 10:45:14 +03:00
ipv4.c net: ip: fix typo 2024-06-25 21:19:00 -04:00
ipv4.h net: ipv4: Implement IPv4 address conflict detection 2024-06-10 00:59:28 -07:00
ipv6_fragment.c
ipv6_mld.c net: ipv6: mld: use proper MLDv2 modes 2024-05-10 11:44:50 +02:00
ipv6_nbr.c net: ipv6: routing: do not use an original source address for NS 2024-07-27 10:44:48 +03:00
ipv6_pe.c net: ipv6-pe: Verify that hmac calculation was ok 2024-07-03 15:25:58 +02:00
ipv6.c net: ipv6: routing: do not add route to original iface without ND 2024-07-31 12:40:16 +02:00
ipv6.h net: ip: fix typo 2024-06-25 21:19:00 -04:00
Kconfig net: if: Make sure interface name can contain terminating null 2024-06-24 14:48:03 -04:00
Kconfig.debug
Kconfig.ipv4 kconfig: replace known integer constants with variables 2024-07-27 20:49:15 +03:00
Kconfig.ipv6 kconfig: replace known integer constants with variables 2024-07-27 20:49:15 +03:00
Kconfig.mgmt hostap: Increase the stack size for net_mgmt 2024-05-06 14:55:09 +01:00
Kconfig.stack
Kconfig.stats
Kconfig.tcp kconfig: replace known integer constants with variables 2024-07-27 20:49:15 +03:00
nbr.c
nbr.h
net_context.c net: context: Check null pointer in V6ONLY getsockopt 2024-07-27 10:39:40 +03:00
net_core.c net: ipv6: routing: do not loop back already routed packets 2024-07-27 10:44:48 +03:00
net_if.c net: if: No need to join mcast groups if interface IPv6 is disabled 2024-07-31 12:40:32 +02:00
net_mgmt.c net: mgmt: Fix build error when event direct enabled without event info 2024-07-09 11:49:47 +02:00
net_pkt.c everywhere: replace #if IS_ENABLED() as per docs 2024-06-28 07:20:32 -04:00
net_private.h net: Start socket service thread by net core init 2024-06-03 09:49:01 +02:00
net_stats.c
net_stats.h
net_tc_mapping.h
net_tc.c
net_timeout.c everywhere: replace double words 2024-06-22 05:40:22 -04:00
packet_socket.c
packet_socket.h
promiscuous.c
route.c net: ipv6: routing: decide whether to set interface's LL address 2024-07-31 12:40:16 +02:00
route.h net: ipv6: mcast_routing: hop limit handling 2024-06-13 05:44:30 -04:00
tcp_internal.h net: context: Add helpers for figuring out local endpoint address 2024-05-06 22:50:18 +01:00
tcp_private.h net: tcp: Keep track of recv window size change since last ACK 2024-07-31 12:56:52 +02:00
tcp.c net: tcp: Keep track of recv window size change since last ACK 2024-07-31 12:56:52 +02:00
tcp.h
tp_priv.h net: change controlling expressions in while to Boolean 2024-06-11 20:03:16 +03:00
tp.c net: change controlling expressions in while to Boolean 2024-06-11 20:03:16 +03:00
tp.h
udp_internal.h
udp.c net: Support partial checksum offloading 2024-06-14 17:10:43 -04:00
utils.c net: utils: improve hex digit character checking in net_bytes_from_str 2024-07-27 15:16:42 +03:00