incubator-nuttx/net
YAMAMOTO Takashi 1d3594ba07 tcp_send_buffered.c: Fix broken retransmit
With an applictation using mbedtls, I observed retransmitted segments
with corrupted user data, detected by the peer tls during mac processing.

Looking at the packet dump, I suspect that a wrb which has been put back
onto the write_q for retransmission was partially sent but fully acked.
Note: it's normal for a retransmission to be acked before sent.

In that case, the bug fixed in this commit would cause the wrb have
a wrong sequence number, possibly the same as the next wrb. It matches
what I saw in the packet dump. That is, the broken segments contain the
payload identical to one of the previous segment.
2021-08-02 11:30:01 -07:00
..
arp net: arp: Fix a potential bug in arp_notify() 2021-03-31 12:23:35 -05:00
bluetooth libc/assert: Reference the expression in all case 2021-04-03 21:00:41 +01:00
can
devif devif_poll_tcp_connections: Fix a comment typo 2021-05-31 01:37:51 -05:00
icmp net: Rename IP_TTL to IP_TTL_DEFAULT 2021-07-12 16:30:37 -03:00
icmpv6 Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
ieee802154 libc/assert: Reference the expression in all case 2021-04-03 21:00:41 +01:00
igmp Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
inet net/socketpair: move socketpair implement into socket internal 2021-07-08 03:05:43 -05:00
ipforward Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
local local/stream: remove preamble header in stream mode 2021-07-21 23:43:10 -07:00
mld Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
neighbor Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
netdev net/inet: add support of FIONREAD 2021-07-05 06:20:52 -05:00
netlink netlink: fix compile error when enable netlink 2021-07-01 06:55:57 -05:00
pkt
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: add lock to bind list, reject if list more than backlog 2021-07-19 22:47:34 -03:00
sixlowpan net: Rename IP_TTL to IP_TTL_DEFAULT 2021-07-12 16:30:37 -03:00
socket net/socket: add SO_SNDBUF support 2021-07-20 20:24:58 -07:00
tcp tcp_send_buffered.c: Fix broken retransmit 2021-08-02 11:30:01 -07:00
udp net/socket: add SO_SNDBUF support 2021-07-20 20:24:58 -07:00
usrsock Kconfig: remove empty help sections 2021-07-23 02:32:19 -07:00
utils NuttX: Gregory Nutt: update licenses to Apache 2021-04-03 04:20:31 -07:00
Kconfig net/socket: add SO_SNDBUF support 2021-07-20 20:24:58 -07:00
Makefile
README.txt
net_initialize.c

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   |
    +----------------------------------------------------------------+ +--------------------------+