nuttx/net
Zhe Weng b058f37353 net/tcp: Reply RST when we cannot receive data
According to RFC 2525, Section 2.17:
"When an application closes a connection in such a way that it can no longer read any received data, the TCP SHOULD, per section 4.2.2.13 of RFC 1122, send a RST if there is any unread received data, or if any new data is received."

When our TCP socket is closed (even when the thread has exited), the peer can keep sending data and NuttX keeps replying ACK (we've tried for ~12h). This is not a good behavior (also different from Linux), so send RST instead of ACK for data receiving in FIN_WAIT.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2023-03-29 09:22:00 -03:00
..
arp Typo fixes. 2023-02-17 11:17:11 -03:00
bluetooth net: Make si_poll callback optional 2023-03-06 20:58:27 +02:00
can net: Make si_accept callback optional 2023-03-06 20:58:27 +02:00
devif net/pkt: Add readahead queue for pkt, call input for tx on sim 2023-03-08 23:09:25 +02:00
icmp net: Make si_accept callback optional 2023-03-06 20:58:27 +02:00
icmpv6 icmpv6: add RDNSS field support for send route advertise 2023-03-17 16:50:37 -03:00
ieee802154 net: Make si_poll callback optional 2023-03-06 20:58:27 +02:00
igmp support ipv4 ToS and ipv6 TrafficClass 2023-01-29 13:43:44 +08:00
inet net/inet: Only setup poll for UDP when s_type == SOCK_DGRAM 2023-03-29 09:18:36 -03:00
ipforward net/netdev: Avoid hardcoded guardsize when using d_iob 2023-01-18 14:41:07 +08:00
ipfrag net/ip: fix compile break if disable NET_TCP 2023-02-07 12:46:40 +02:00
local net/local: Return the unblock handle correctly in local_accept 2023-03-09 09:17:19 +01:00
mld support ipv4 ToS and ipv6 TrafficClass 2023-01-29 13:43:44 +08:00
nat net/ip: fix compile break if disable NET_TCP 2023-02-07 12:46:40 +02:00
neighbor net/arp: Move arp_ipin and arp_out to private header file 2022-12-04 20:39:21 +08:00
netdev net: Finish FIONBIO default action if si_ioctl return OK 2023-03-07 11:34:35 +02:00
netfilter change strcpy to strlcpy 2023-02-24 12:15:40 +08:00
netlink net: Make si_accept callback optional 2023-03-06 20:58:27 +02:00
pkt net/pkt: Add readahead queue for pkt, call input for tx on sim 2023-03-08 23:09:25 +02:00
procfs net/procfs: fix visual studio Compiler Error C2057 2023-02-09 20:11:55 +08:00
route net: use NXRMUTEX_INITIALIZER for rmutex init 2023-03-15 13:57:08 +01:00
rpmsg net/local: Return the unblock handle correctly in local_accept 2023-03-09 09:17:19 +01:00
sixlowpan net: consistent the net sem wait naming conversion 2023-01-15 12:31:30 -03:00
socket net/local: Return the unblock handle correctly in local_accept 2023-03-09 09:17:19 +01:00
tcp net/tcp: Reply RST when we cannot receive data 2023-03-29 09:22:00 -03:00
udp Performance optimizations in connection allocations. 2023-02-28 14:23:16 +01:00
usrsock net/local: Return the unblock handle correctly in local_accept 2023-03-09 09:17:19 +01:00
utils net: modify find device logic 2023-02-12 01:25:34 +08:00
Kconfig Removed obsolete option NET_ALLOC_CONNS. 2023-02-20 09:06:46 +08:00
Makefile Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00
net_initialize.c net: Reoder the initialize sequence(mac->ip->tcp/udp) 2022-03-12 19:24:17 +02:00
README.txt Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00

README
======

Directory Structure
===================

  nuttx/
   |
   `- net/
       |
       +- arp        - Address resolution protocol (IPv4)
       +- bluetooth  - PF_BLUETOOTH socket interface
       +- devif      - Stack/device interface layer
       +- ipfrag     - Fragmentation and reassembly
       +- icmp       - Internet Control Message Protocol (IPv4)
       +- icmpv6     - Internet Control Message Protocol (IPv6)
       +- ieee802154 - PF_IEEE802154 socket interface
       +- inet       - PF_INET/PF_INET6 socket interface
       +- ipforward  - IP forwarding logic
       +- local      - Unix domain (local) sockets
       +- mld        - Multicast Listener Discovery (MLD)
       +- neighbor   - Neighbor Discovery Protocol (IPv6)
       +- netdev     - Socket network device interface
       +- netlink    - Netlink IPC socket interface
       +- pkt        - "Raw" packet socket support
       +- sixlowpan  - 6LoWPAN implementation
       +- socket     - BSD socket interface
       +- route      - Routing table support
       +- tcp        - Transmission Control Protocol
       +- udp        - User Datagram Protocol
       +- usrsock    - User socket API for user-space networking stack
       `- utils      - Miscellaneous utility functions

    +-------------------------------------------------------------------++------------------------+
    |                     Application layer                             || usrsock daemon         |
    +-------------------------------------------------------------------++------------------------+
    +-------------------------------------------------------------------++----------------+ +-----+
    |                   Socket layer (socket/)                          || /dev/usrsock   | |     |
    +-------------------------------------------------------------------++----------------+ |     |
    +------------++--------------------------------------------------++-------------------+ |     |
    |  Network   || Protocol stacks (arp, ipv6, icmp, pkt, tcp, udp) || usrsock/          | |     |
    |   Device   |+--------------------------------------------------++-------------------+ |     |
    | Interface  |+------------------------------------++---------------------------------+ |     |
    | (netdev/)  ||  Network Device Interface (devif/) || Utilities                       | |     |
    +------------++------------------------------------++---------------------------------+ |     |
    +----------------------------------------------------------------+                      |     |
    |                    Network Device Drivers                      |                      | HAL |
    +----------------------------------------------------------------+                      +-----+
    +----------------------------------------------------------------+ +--------------------------+
    |                    Networking Hardware                         | |  Hardware TCP/IP Stack   |
    +----------------------------------------------------------------+ +--------------------------+