zephyr/subsys/net/ip
Sjors Hettinga e3b8fad9fa net: tcp: Fix accidental removal of data from send_data
In the function net_tcp_queue_data. When an -ENOBUFS by
tcp_send_queued_data is returned, it throws away the whole block of size
len from the send_data. If the len is > MSS, it could happen that the
first section is transmitted, but at the second an -ENOBUFS occurs.
In that case the data is transmitted, but later on removed from the
send_data.

To circumvent this problem, check if the len + unacked_len is smaller
then the send_data_total. If so, the data can safely be removed from
send_data. Otherwise, just pretend the transmission went OK. The
acknowledgment and retransmit path will eventually take care of it.

Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com>
2022-06-07 18:55:44 +02:00
..
6lo_private.h
6lo.c net: 6lo: Remove dead statement 2022-06-07 11:54:20 +02:00
6lo.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
canbus_socket.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
canbus_socket.h
CMakeLists.txt net/tcp: Rename TCP2 to TCP 2021-11-11 07:26:41 -05:00
connection.c net: conn: Add proper processing of DGRAM packet sockets 2022-05-27 15:40:29 -07:00
connection.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
dhcpv4.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
dhcpv4.h
icmpv4.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
icmpv4.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
icmpv6.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
icmpv6.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
igmp.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv4_autoconf_internal.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv4_autoconf.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv4.c net: ipv4: Accept unspecified src address if dst is broadcast 2022-05-27 15:46:44 -07:00
ipv4.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv6_fragment.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv6_mld.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv6_nbr.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv6.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ipv6.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
Kconfig net: tcp: Remove unused config NET_TCP_BACKLOG_SIZE 2022-05-13 13:04:59 +02:00
Kconfig.debug kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.ipv4 kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.ipv6 kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.mgmt kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.stack
Kconfig.stats
nbr.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
nbr.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_context.c net: context: prevent truncating outgoing datagrams 2022-06-01 11:17:07 +02:00
net_core.c net: conn: Add proper processing of DGRAM packet sockets 2022-05-27 15:40:29 -07:00
net_if.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_mgmt.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_pkt.c net: pkt: Fix leak when using shallow clone 2022-06-05 14:29:19 +02:00
net_private.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_shell.c net: tcp: Use our MTU to determine the mss for transmission 2022-06-07 18:55:44 +02:00
net_shell.h
net_stats.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_stats.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_tc_mapping.h
net_tc.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_timeout.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
packet_socket.c net: sockets: packet: Remove obsolete TODO 2022-05-27 15:40:29 -07:00
packet_socket.h
promiscuous.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
route.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
route.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
tcp_internal.h net: tcp: Use our MTU to determine the mss for transmission 2022-06-07 18:55:44 +02:00
tcp_private.h net: tcp: Use our MTU to determine the mss for transmission 2022-06-07 18:55:44 +02:00
tcp.c net: tcp: Fix accidental removal of data from send_data 2022-06-07 18:55:44 +02:00
tcp.h everywhere: fix typos 2022-03-18 13:24:08 -04:00
tp_priv.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
tp.c
tp.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
trickle.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
udp_internal.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
udp.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
utils.c net: utils: Remove dead statement 2022-06-07 11:54:20 +02:00