walnux/include/nuttx/net
chao an 64dd7e6376 net/tcp: add Selective-ACK support
Reference:
https://datatracker.ietf.org/doc/html/rfc2018

Iperf2 client/server test on esp32c3:

Drop(1/50):
CONFIG_NET_TCP_DEBUG_DROP_SEND=y
CONFIG_NET_TCP_DEBUG_DROP_SEND_PROBABILITY=50  // Drop probability: 1/50
CONFIG_NET_TCP_DEBUG_DROP_RECV=y
CONFIG_NET_TCP_DEBUG_DROP_RECV_PROBABILITY=50  // Drop probability: 1/50

Drop(1/50) + OFO/SACK:
CONFIG_NET_TCP_DEBUG_DROP_SEND=y
CONFIG_NET_TCP_DEBUG_DROP_SEND_PROBABILITY=50  // Drop probability: 1/50
CONFIG_NET_TCP_DEBUG_DROP_RECV=y
CONFIG_NET_TCP_DEBUG_DROP_RECV_PROBABILITY=50  // Drop probability: 1/50

CONFIG_NET_TCP_OUT_OF_ORDER=y
CONFIG_NET_TCP_SELECTIVE_ACK=y

---------------------------------------------------------
|  TCP Config            | Server | Client |            |
|-------------------------------------------------------|
|  Original              |   12   |     9  |  Mbits/sec |
|  Drop(1/50)            |  0.6   |   0.3  |  Mbits/sec |
|  Drop(1/50) + OFO/SACK |    8   |     8  |  Mbits/sec |
---------------------------------------------------------

Signed-off-by: chao an <anchao@xiaomi.com>
2023-01-18 16:24:09 +08:00
..
netfilter net: Add set/getsockopt options compatible with iptables. 2022-12-28 22:40:53 +08:00
bluetooth.h Remove the unnecessary inclusion of assert.h and string.h from public header files 2021-12-20 10:30:08 +01:00
can.h
dns.h
enc28j60.h
encx24j600.h
ethernet.h
ftmac100.h
gmii.h
icmp.h Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00
icmpv6.h Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00
ieee802154.h
igmp.h
ioctl.h tun: add ioctl cmd TUNGETIFF implement 2022-12-20 21:15:50 +08:00
ip.h Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00
ipopt.h
ipv6ext.h Support fragmentation and reassembly 2023-01-17 14:01:37 +08:00
lan91c111.h
loopback.h
mii.h imxrt:Support TJ1103 PHY 2022-11-15 02:27:35 +08:00
mld.h libc: Move queue.h from include to include/nuttx 2022-09-26 08:04:58 +02:00
neighbor.h
net.h net: Move s_flags to last to avoid the padding added by compiler 2023-01-16 23:29:26 -03:00
netconfig.h net/tcp: Make TCP_MAXRTX and TCP_MAXSYNRTX configurable 2022-11-07 10:05:57 +01:00
netdev.h net/netdev: Avoid hardcoded guardsize when using d_iob 2023-01-18 14:41:07 +08:00
netlink.h libc: Move queue.h from include to include/nuttx 2022-09-26 08:04:58 +02:00
netstats.h
phy.h
pkt.h
radiodev.h Fix mistakes in comments and docs 2022-06-27 11:30:53 +08:00
rfc6775.h
rpmsg.h
rpmsgdrv.h
sixlowpan.h
slip.h
sms.h drivers: modem: update altair modem 2022-10-22 09:00:32 +08:00
snoop.h wireless/bluetooth: add interrupt_context hander for netsnoop 2023-01-10 18:08:22 +08:00
tcp.h net/tcp: add Selective-ACK support 2023-01-18 16:24:09 +08:00
telnet.h
tun.h
udp.h
usrsock.h usrsock:add done flag in usrsock_iovec_do 2022-10-11 00:57:49 +08:00
w5500.h Add driver for WIZnet W5500 Ethernet controller 2022-06-03 13:01:23 +08:00