nuttx/net
Alexander Lunev f61f276120 net/tcp/sendfile: TCP retransmission could not start because of incorrect snd_ackcb callback handling:
Both the snd_ackcb and snd_datacb callbacks were created and destroyed right after sending every packet.
Whenever TCP_REXMIT event occurred due to TCP send timeout, TCP_REXMIT was ignored because
snd_ackcb callback had been destroyed by the time.
The issue is fixed as follows:
- both the snd_ackcb and snd_datacb callbacks are combined into one snd_cb callback
  (the same way as in tcp_send_unbuffered.c).
- the snd_cb callback lives until all requested data (via sendfile) is sent,
  including all ACKs and possible retransmissions.

As a positive side effect of the code optimization / fix, sendfile TCP payload throughput is increased.
2022-01-18 02:03:40 +08:00
..
arp net/arp: clean the arp table when netdev carrier off 2021-11-27 06:19:50 -06:00
bluetooth include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
can SocketCAN: add CAN error definitions 2022-01-05 18:32:46 +08:00
devif include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
icmp net/icmp: fix build break if enable NET_ALLOC_CONNS 2022-01-17 13:34:49 +08:00
icmpv6 net/icmp: fix build break if enable NET_ALLOC_CONNS 2022-01-17 13:34:49 +08:00
ieee802154 include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
igmp include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
inet net/socketpair: move socketpair implement into socket internal 2021-07-08 03:05:43 -05:00
ipforward net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO. 2021-09-18 21:01:39 -05:00
local Fix typos in comments and Kconfig files 2021-12-21 03:26:16 -06:00
mld include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
neighbor Back in 2007, an early network implementation was developed for NuttX. This early development was inspired largely by uIP 1.0 and recognition of that was noted in the then BSD license headers. Over the next 14 years, a new, much more advanced, original network was developed for NuttX. However, some references to Adam Dunkels were still present in the file headers. 2021-09-17 21:49:44 -05:00
netdev Replace self defined macros with NET_SOCK_[FAMILY|TYPE|PROTOCOL] 2021-12-21 11:02:33 -03:00
netlink net/netlink: fix build warning if disable CONFIG_NETLINK_ROUTE 2022-01-17 13:34:49 +08:00
pkt include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
procfs libc: Rename match to fnmatch 2021-08-02 08:23:35 -03:00
route Fix typos (and nxstyle errors) 2021-03-21 21:51:14 +01:00
rpmsg socket_rpmsg: fix ept_cb crash on server side 2021-12-13 21:15:59 -06:00
sixlowpan include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
socket include: fix double include pre-processor guards 2022-01-16 11:11:14 -03:00
tcp net/tcp/sendfile: TCP retransmission could not start because of incorrect snd_ackcb callback handling: 2022-01-18 02:03:40 +08:00
udp net/devif_callback: add support for CONFIG_NET_ALLOC_CONNS 2022-01-02 01:25:14 +08:00
usrsock net/usrsock: add support for CONFIG_NET_ALLOC_CONNS 2022-01-05 12:39:00 +08:00
utils net/udp/icmp: correct the unreadchable handling 2021-11-26 08:47:54 -06:00
Kconfig net: add config to support allocate connect dynamically 2022-01-01 20:40:02 +08:00
Makefile net/socket_rpmsg: add net socket rpmsg support 2021-03-07 01:45:51 -08:00
net_initialize.c Remove the empty xxx_initialize functions 2021-03-03 08:21:04 +00:00
README.txt

README
======

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

  nuttx/
   |
   `- net/
       |
       +- arp        - Address resolution protocol (IPv4)
       +- bluetooth  - PF_BLUETOOTH socket interface
       +- devif      - Stack/device interface layer
       +- 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   |
    +----------------------------------------------------------------+ +--------------------------+