zephyr/subsys/net/ip
Paul Sokolovsky 338dc8a952 net: tcp: Properly queue FIN packets for retransmission
In TCP protocol, any packet is subject to retransmission if not
ACKed in expected time. Thus, any packet, including FIN (and SYN
for that matter) should be added to the retransmission queue.

In our case, despite its name, queue_fin() function didn't add
FIN packet to rexmit queue, so do that. Then, in
net_tcp_ack_received() which handles ACKs, make sure that we can
handle FIN packets: calculate its sequence number properly, don't
make adhoc adjustments to retransmission logic (it's handled
centrally in restart_timer() already), etc.

Fixes: #8188

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-08-27 12:46:28 -04:00
..
6lo_private.h
6lo.c net: ipv6: Refactor IPv6 header length handling 2018-08-13 13:53:14 +03:00
6lo.h
CMakeLists.txt net: ipv6: Separate IPv6 fragment functionality 2018-08-17 17:01:54 +03:00
connection.c net: ipv6: Refactor IPv6 header length handling 2018-08-13 13:53:14 +03:00
connection.h
dhcpv4.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
dhcpv4.h net/dhcpv4: Rename functions to follow domain related naming rules 2018-07-27 13:00:01 +03:00
icmpv4.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
icmpv4.h net: icmpv4: Simplify the flow at net_icmpv4_get/set_xxx() calls 2018-08-13 13:52:57 +03:00
icmpv6.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
icmpv6.h net: icmpv6: Simplify the flow at net_icmpv6_get/set_xxx() calls 2018-08-10 12:53:59 +03:00
ipv4_autoconf_internal.h net: IPv4 link local support 2018-07-31 16:34:28 +03:00
ipv4_autoconf.c net: ipv4: Corrupted ARP pkt was sent instead of real IPv4 pkt 2018-08-09 11:56:44 +03:00
ipv4.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
ipv4.h net: core: Always have a timeout when allocating a net_buf 2018-08-14 12:17:00 +03:00
ipv6_fragment.c net: ipv6: Separate IPv6 fragment functionality 2018-08-17 17:01:54 +03:00
ipv6_mld.c net: ipv6: Separate IPv6 MLD functionality 2018-08-17 17:01:54 +03:00
ipv6_nbr.c net: ipv6: Separate IPv6 Neighbor functionality 2018-08-17 17:01:54 +03:00
ipv6.c net: ipv6: Separate IPv6 fragment functionality 2018-08-17 17:01:54 +03:00
ipv6.h net: ipv6: Separate IPv6 fragment functionality 2018-08-17 17:01:54 +03:00
Kconfig net: Move CONFIG_NET_OFFLOAD definition to net/ip/ 2018-08-22 12:56:34 +03:00
Kconfig.debug
Kconfig.ipv4 Kconfig: Use the first default with a satisfied condition 2018-08-10 12:38:28 -07:00
Kconfig.ipv6 Kconfig: Use the first default with a satisfied condition 2018-08-10 12:38:28 -07:00
Kconfig.mgmt
Kconfig.rpl net: rpl: Kconfig: Fix 'Network type' choice default 2018-08-14 13:43:11 -07:00
Kconfig.stack Kconfig: Use the first default with a satisfied condition 2018-08-10 12:38:28 -07:00
Kconfig.stats net: eth: Vendor specific statistics 2018-08-02 12:42:27 +03:00
nbr.c
nbr.h
net_context.c net: context: Move/rename net_context_set_appdata_values() to net_pkt.c 2018-08-25 07:16:15 -07:00
net_core.c net: l2: Add support for Link Layer Discovery Protocol (LLDP) 2018-08-08 09:53:24 +03:00
net_if.c net: if: Remove IPv6 auto addresses if the prefix is removed 2018-08-17 17:02:21 +03:00
net_mgmt.c
net_pkt.c net: context: Move/rename net_context_set_appdata_values() to net_pkt.c 2018-08-25 07:16:15 -07:00
net_private.h net: context: Move/rename net_context_set_appdata_values() to net_pkt.c 2018-08-25 07:16:15 -07:00
net_shell.c net: ipv6: Separate IPv6 Neighbor functionality 2018-08-17 17:01:54 +03:00
net_shell.h
net_stats.c
net_stats.h
net_tc_mapping.h net: Fix credit-based shaper typos 2018-08-08 13:01:37 +03:00
net_tc.c net: tc: Add other priority to traffic class mappings 2018-08-06 10:23:57 +03:00
promiscuous.c
route.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
route.h
rpl-mrhof.c
rpl-of0.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
rpl.c net: ip: Refactor usage of net_sprint_ip*() 2018-08-17 12:36:50 +03:00
rpl.h net: Avoid holes in structs 2018-07-25 15:20:34 +03:00
tcp_internal.h net: Avoid holes in structs 2018-07-25 15:20:34 +03:00
tcp.c net: tcp: Properly queue FIN packets for retransmission 2018-08-27 12:46:28 -04:00
trickle.c
udp_internal.h
udp.c net: udp: Check return value when appending UDP data 2018-08-27 12:26:26 -04:00
utils.c net: ip: Add net_sprint_addr() 2018-08-17 12:36:50 +03:00