summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/TODO24
-rw-r--r--nuttx/configs/c5471evm/httpd/defconfig7
-rw-r--r--nuttx/configs/c5471evm/nettest/defconfig7
-rw-r--r--nuttx/configs/c5471evm/nsh/defconfig7
-rw-r--r--nuttx/configs/cloudctrl/nsh/defconfig7
-rw-r--r--nuttx/configs/eagle100/httpd/defconfig7
-rw-r--r--nuttx/configs/eagle100/nettest/defconfig7
-rw-r--r--nuttx/configs/eagle100/nsh/defconfig7
-rw-r--r--nuttx/configs/eagle100/thttpd/defconfig7
-rw-r--r--nuttx/configs/ekk-lm3s9b96/nsh/defconfig7
-rw-r--r--nuttx/configs/ez80f910200zco/httpd/defconfig7
-rw-r--r--nuttx/configs/ez80f910200zco/nettest/defconfig7
-rw-r--r--nuttx/configs/ez80f910200zco/nsh/defconfig7
-rw-r--r--nuttx/configs/ez80f910200zco/poll/defconfig7
-rw-r--r--nuttx/configs/fire-stm32v2/nsh/defconfig7
-rw-r--r--nuttx/configs/lm3s6432-s2e/nsh/defconfig7
-rw-r--r--nuttx/configs/lm3s6965-ek/discover/defconfig7
-rw-r--r--nuttx/configs/lm3s6965-ek/nsh/defconfig7
-rw-r--r--nuttx/configs/lm3s6965-ek/tcpecho/defconfig7
-rw-r--r--nuttx/configs/lm3s8962-ek/nsh/defconfig7
-rw-r--r--nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig7
-rw-r--r--nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig7
-rw-r--r--nuttx/configs/ntosd-dm320/nettest/defconfig7
-rw-r--r--nuttx/configs/ntosd-dm320/nsh/defconfig7
-rw-r--r--nuttx/configs/ntosd-dm320/poll/defconfig7
-rw-r--r--nuttx/configs/ntosd-dm320/thttpd/defconfig7
-rw-r--r--nuttx/configs/ntosd-dm320/uip/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/ftpc/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/hidmouse/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/nettest/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/nsh/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/thttpd/defconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/zmodem/defconfig7
-rw-r--r--nuttx/configs/olimex-stm32-p107/nsh/defconfig7
-rw-r--r--nuttx/configs/olimex-stm32-p207/nsh/defconfig7
-rw-r--r--nuttx/configs/olimex-strp711/nettest/defconfig7
-rw-r--r--nuttx/configs/pic32-starterkit/nsh2/defconfig7
-rw-r--r--nuttx/configs/pic32mx7mmb/nsh/defconfig7
-rw-r--r--nuttx/configs/rgmp/arm/default/defconfig7
-rw-r--r--nuttx/configs/rgmp/arm/nsh/defconfig7
-rw-r--r--nuttx/configs/rgmp/x86/cxxtest/defconfig7
-rw-r--r--nuttx/configs/rgmp/x86/default/defconfig7
-rw-r--r--nuttx/configs/rgmp/x86/helloxx/defconfig7
-rw-r--r--nuttx/configs/rgmp/x86/nsh/defconfig7
-rw-r--r--nuttx/configs/sam4e-ek/nsh/defconfig7
-rw-r--r--nuttx/configs/sam4e-ek/usbnsh/defconfig7
-rw-r--r--nuttx/configs/shenzhou/nsh/defconfig7
-rw-r--r--nuttx/configs/shenzhou/nxwm/defconfig7
-rw-r--r--nuttx/configs/shenzhou/thttpd/defconfig7
-rw-r--r--nuttx/configs/sim/nettest/defconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/nettest/defconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/nsh/defconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/nsh2/defconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/nxwm/defconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/telnetd/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/discover/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/nettest/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/nsh/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/nsh2/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/nxconsole/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/nxwm/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/telnetd/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/webserver/defconfig7
-rw-r--r--nuttx/configs/stm3240g-eval/xmlrpc/defconfig7
-rw-r--r--nuttx/configs/viewtool-stm32f107/netnsh/defconfig7
-rw-r--r--nuttx/configs/zkit-arm-1769/hello/defconfig7
-rw-r--r--nuttx/configs/zkit-arm-1769/nsh/defconfig7
-rw-r--r--nuttx/configs/zkit-arm-1769/nxhello/defconfig7
-rw-r--r--nuttx/configs/zkit-arm-1769/thttpd/defconfig7
-rw-r--r--nuttx/include/nuttx/net/iob.h26
-rw-r--r--nuttx/include/nuttx/net/netconfig.h18
-rw-r--r--nuttx/include/nuttx/net/tcp.h29
-rw-r--r--nuttx/net/iob/Kconfig4
-rw-r--r--nuttx/net/iob/Make.defs4
-rw-r--r--nuttx/net/iob/iob_alloc.c10
-rw-r--r--nuttx/net/iob/iob_alloc_qentry.c32
-rw-r--r--nuttx/net/iob/iob_copyin.c2
-rw-r--r--nuttx/net/iob/iob_free.c3
-rw-r--r--nuttx/net/iob/iob_initialize.c4
-rw-r--r--nuttx/net/iob/iob_remove_queue.c7
-rw-r--r--nuttx/net/net_poll.c4
-rw-r--r--nuttx/net/recvfrom.c96
-rw-r--r--nuttx/net/tcp/Kconfig39
-rw-r--r--nuttx/net/tcp/Make.defs6
-rw-r--r--nuttx/net/tcp/tcp_callback.c131
-rw-r--r--nuttx/net/tcp/tcp_conn.c12
-rw-r--r--nuttx/net/tcp/tcp_readahead.c143
-rw-r--r--nuttx/net/tcp/tcp_send_buffered.c2
-rw-r--r--nuttx/net/uip/uip.h11
-rw-r--r--nuttx/net/uip/uip_initialize.c8
91 files changed, 503 insertions, 595 deletions
diff --git a/nuttx/TODO b/nuttx/TODO
index 3530567a0..268121271 100644
--- a/nuttx/TODO
+++ b/nuttx/TODO
@@ -1,4 +1,4 @@
-NuttX TODO List (Last updated April 23, 2014)
+NuttX TODO List (Last updated June 24, 2014)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file summarizes known NuttX bugs, limitations, inconsistencies with
@@ -15,7 +15,7 @@ nuttx/
(11) Kernel Build
(4) C++ Support
(6) Binary loaders (binfmt/)
- (15) Network (net/, drivers/net)
+ (13) Network (net/, drivers/net)
(4) USB (drivers/usbdev, drivers/usbhost)
(10) Libraries (libc/, )
(12) File system/Generic drivers (fs/, drivers/)
@@ -816,26 +816,6 @@ o Network (net/, drivers/net)
Status: Open
Priority: Low
- Title: READ-AHEAD THROTTLING
- Description: Read-ahead buffers capture incoming TCP data when no user
- thread is recv-ing the data. Should add some driver call to
- support throttling; when there is no listener for new data, the
- driver should be throttled. Perhaps the driver should disable
- RX interrupts when throttled and re-anable on each poll time.
- recvfrom would, of course, have to un-throttle.
- Status: Open. This is just a thought experiment. No changes are planned.
- Priority: Low. This is not a bug but an enhancement idea.
-
- Title: COMMON TCP BUFFERING
- Description: TCP read-ahead logic and TCP write buffering logic use a
- separate set of packet buffers. It seems like more efficient
- use of the buffering would be had if a common pool of packet
- buffers were used for both read-ahead and write buffering.
- This would probably depend on having READ-AHEAD THROTTLING to
- prevent run-awary read-ahead logic from consuming all buffers.
- Status: Open. This is just a thought experiment. No changes are planned.
- Priority: Low. This is not a bug but an enhancement idea.
-
Title: STANDARDIZE ETHERNET DRIVER STATISTICS
Description: Need to standardize collection of statistics from network
drivers. apps/nshlib ifconfig command should present
diff --git a/nuttx/configs/c5471evm/httpd/defconfig b/nuttx/configs/c5471evm/httpd/defconfig
index 375b3e64b..ef3294ba0 100644
--- a/nuttx/configs/c5471evm/httpd/defconfig
+++ b/nuttx/configs/c5471evm/httpd/defconfig
@@ -347,8 +347,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -367,6 +365,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/c5471evm/nettest/defconfig b/nuttx/configs/c5471evm/nettest/defconfig
index 45c302cdc..0c05b25e4 100644
--- a/nuttx/configs/c5471evm/nettest/defconfig
+++ b/nuttx/configs/c5471evm/nettest/defconfig
@@ -345,8 +345,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=562
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=32
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -365,6 +363,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/c5471evm/nsh/defconfig b/nuttx/configs/c5471evm/nsh/defconfig
index b943e5d62..803f97144 100644
--- a/nuttx/configs/c5471evm/nsh/defconfig
+++ b/nuttx/configs/c5471evm/nsh/defconfig
@@ -348,8 +348,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=32
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -372,6 +370,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/cloudctrl/nsh/defconfig b/nuttx/configs/cloudctrl/nsh/defconfig
index 6aa1fb495..63ef8d27c 100644
--- a/nuttx/configs/cloudctrl/nsh/defconfig
+++ b/nuttx/configs/cloudctrl/nsh/defconfig
@@ -404,8 +404,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_UDP=y
@@ -420,6 +418,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/eagle100/httpd/defconfig b/nuttx/configs/eagle100/httpd/defconfig
index 00c8f4b8b..c3a8c3b7d 100644
--- a/nuttx/configs/eagle100/httpd/defconfig
+++ b/nuttx/configs/eagle100/httpd/defconfig
@@ -414,8 +414,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -434,6 +432,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/eagle100/nettest/defconfig b/nuttx/configs/eagle100/nettest/defconfig
index 4f1b4eab0..c2ccee25d 100644
--- a/nuttx/configs/eagle100/nettest/defconfig
+++ b/nuttx/configs/eagle100/nettest/defconfig
@@ -461,8 +461,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=532
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -481,6 +479,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/eagle100/nsh/defconfig b/nuttx/configs/eagle100/nsh/defconfig
index 9410f472f..577b2c7fc 100644
--- a/nuttx/configs/eagle100/nsh/defconfig
+++ b/nuttx/configs/eagle100/nsh/defconfig
@@ -454,8 +454,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -478,6 +476,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/eagle100/thttpd/defconfig b/nuttx/configs/eagle100/thttpd/defconfig
index 77440cf34..503fa93c6 100644
--- a/nuttx/configs/eagle100/thttpd/defconfig
+++ b/nuttx/configs/eagle100/thttpd/defconfig
@@ -406,8 +406,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -426,6 +424,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ekk-lm3s9b96/nsh/defconfig b/nuttx/configs/ekk-lm3s9b96/nsh/defconfig
index 6ef2f467a..fb725cddb 100644
--- a/nuttx/configs/ekk-lm3s9b96/nsh/defconfig
+++ b/nuttx/configs/ekk-lm3s9b96/nsh/defconfig
@@ -440,8 +440,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -464,6 +462,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ez80f910200zco/httpd/defconfig b/nuttx/configs/ez80f910200zco/httpd/defconfig
index fd1a186fd..f3ed9b29e 100644
--- a/nuttx/configs/ez80f910200zco/httpd/defconfig
+++ b/nuttx/configs/ez80f910200zco/httpd/defconfig
@@ -416,8 +416,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=562
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -436,6 +434,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ez80f910200zco/nettest/defconfig b/nuttx/configs/ez80f910200zco/nettest/defconfig
index 48f5b19d6..d91299244 100644
--- a/nuttx/configs/ez80f910200zco/nettest/defconfig
+++ b/nuttx/configs/ez80f910200zco/nettest/defconfig
@@ -414,8 +414,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -434,6 +432,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ez80f910200zco/nsh/defconfig b/nuttx/configs/ez80f910200zco/nsh/defconfig
index 3d4c25bfe..ec905a780 100644
--- a/nuttx/configs/ez80f910200zco/nsh/defconfig
+++ b/nuttx/configs/ez80f910200zco/nsh/defconfig
@@ -418,8 +418,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -442,6 +440,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ez80f910200zco/poll/defconfig b/nuttx/configs/ez80f910200zco/poll/defconfig
index 78ebd9d03..39da34730 100644
--- a/nuttx/configs/ez80f910200zco/poll/defconfig
+++ b/nuttx/configs/ez80f910200zco/poll/defconfig
@@ -416,8 +416,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -436,6 +434,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/fire-stm32v2/nsh/defconfig b/nuttx/configs/fire-stm32v2/nsh/defconfig
index 302c8f65b..c2cb656b9 100644
--- a/nuttx/configs/fire-stm32v2/nsh/defconfig
+++ b/nuttx/configs/fire-stm32v2/nsh/defconfig
@@ -449,8 +449,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=16
CONFIG_NET_TCP_READAHEAD=y
-# CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
CONFIG_NET_UDP=y
@@ -465,6 +463,11 @@ CONFIG_NET_STATISTICS=y
# CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/lm3s6432-s2e/nsh/defconfig b/nuttx/configs/lm3s6432-s2e/nsh/defconfig
index ec2d618ce..995daae3f 100644
--- a/nuttx/configs/lm3s6432-s2e/nsh/defconfig
+++ b/nuttx/configs/lm3s6432-s2e/nsh/defconfig
@@ -437,8 +437,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -461,6 +459,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lm3s6965-ek/discover/defconfig b/nuttx/configs/lm3s6965-ek/discover/defconfig
index addaa0142..47a81688c 100644
--- a/nuttx/configs/lm3s6965-ek/discover/defconfig
+++ b/nuttx/configs/lm3s6965-ek/discover/defconfig
@@ -446,8 +446,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -470,6 +468,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lm3s6965-ek/nsh/defconfig b/nuttx/configs/lm3s6965-ek/nsh/defconfig
index addaa0142..47a81688c 100644
--- a/nuttx/configs/lm3s6965-ek/nsh/defconfig
+++ b/nuttx/configs/lm3s6965-ek/nsh/defconfig
@@ -446,8 +446,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -470,6 +468,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lm3s6965-ek/tcpecho/defconfig b/nuttx/configs/lm3s6965-ek/tcpecho/defconfig
index fc4358e7d..c536c9bb0 100644
--- a/nuttx/configs/lm3s6965-ek/tcpecho/defconfig
+++ b/nuttx/configs/lm3s6965-ek/tcpecho/defconfig
@@ -449,8 +449,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=624
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -473,6 +471,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=624
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lm3s8962-ek/nsh/defconfig b/nuttx/configs/lm3s8962-ek/nsh/defconfig
index f57038fa7..e12d3fb44 100644
--- a/nuttx/configs/lm3s8962-ek/nsh/defconfig
+++ b/nuttx/configs/lm3s8962-ek/nsh/defconfig
@@ -454,8 +454,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -478,6 +476,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig b/nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig
index d3faa6919..0bd0d25a7 100644
--- a/nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig
+++ b/nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig
@@ -531,8 +531,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -555,6 +553,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig b/nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig
index 2ffaca630..1587c899c 100644
--- a/nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig
+++ b/nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig
@@ -484,8 +484,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -504,6 +502,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ntosd-dm320/nettest/defconfig b/nuttx/configs/ntosd-dm320/nettest/defconfig
index bad3d07ad..e66240584 100644
--- a/nuttx/configs/ntosd-dm320/nettest/defconfig
+++ b/nuttx/configs/ntosd-dm320/nettest/defconfig
@@ -388,8 +388,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -408,6 +406,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ntosd-dm320/nsh/defconfig b/nuttx/configs/ntosd-dm320/nsh/defconfig
index 163567e56..ae9f3b6fe 100644
--- a/nuttx/configs/ntosd-dm320/nsh/defconfig
+++ b/nuttx/configs/ntosd-dm320/nsh/defconfig
@@ -397,8 +397,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -421,6 +419,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ntosd-dm320/poll/defconfig b/nuttx/configs/ntosd-dm320/poll/defconfig
index 0f43c2272..d8769f561 100644
--- a/nuttx/configs/ntosd-dm320/poll/defconfig
+++ b/nuttx/configs/ntosd-dm320/poll/defconfig
@@ -390,8 +390,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -410,6 +408,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ntosd-dm320/thttpd/defconfig b/nuttx/configs/ntosd-dm320/thttpd/defconfig
index 7308ed851..2a73e1054 100644
--- a/nuttx/configs/ntosd-dm320/thttpd/defconfig
+++ b/nuttx/configs/ntosd-dm320/thttpd/defconfig
@@ -389,8 +389,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -409,6 +407,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/ntosd-dm320/uip/defconfig b/nuttx/configs/ntosd-dm320/uip/defconfig
index 269d1cfa7..8642a8d9d 100644
--- a/nuttx/configs/ntosd-dm320/uip/defconfig
+++ b/nuttx/configs/ntosd-dm320/uip/defconfig
@@ -389,8 +389,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -409,6 +407,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/ftpc/defconfig b/nuttx/configs/olimex-lpc1766stk/ftpc/defconfig
index 3c4a1afa4..301f34271 100644
--- a/nuttx/configs/olimex-lpc1766stk/ftpc/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/ftpc/defconfig
@@ -515,8 +515,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=550
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -539,6 +537,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=550
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/hidmouse/defconfig b/nuttx/configs/olimex-lpc1766stk/hidmouse/defconfig
index 21c315b80..507a7bd2f 100644
--- a/nuttx/configs/olimex-lpc1766stk/hidmouse/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/hidmouse/defconfig
@@ -506,8 +506,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -531,6 +529,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/nettest/defconfig b/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
index f07449121..6e66d4732 100644
--- a/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
@@ -485,8 +485,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -505,6 +503,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/nsh/defconfig b/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
index e444a6d67..d9033a4c7 100644
--- a/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
@@ -515,8 +515,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -540,6 +538,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig b/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
index 13b1f529c..b9ead68ec 100644
--- a/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
@@ -465,8 +465,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=256
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -485,6 +483,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=256
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
CONFIG_SLIP_NINTERFACES=1
CONFIG_SLIP_STACKSIZE=2048
diff --git a/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig b/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
index f04e98e9c..4be3b0cf0 100644
--- a/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
@@ -485,8 +485,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -505,6 +503,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-lpc1766stk/zmodem/defconfig b/nuttx/configs/olimex-lpc1766stk/zmodem/defconfig
index ce5da73d6..321cdeaee 100644
--- a/nuttx/configs/olimex-lpc1766stk/zmodem/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/zmodem/defconfig
@@ -529,8 +529,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -554,6 +552,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/olimex-stm32-p107/nsh/defconfig b/nuttx/configs/olimex-stm32-p107/nsh/defconfig
index cbd4af0fe..96f67a5a1 100644
--- a/nuttx/configs/olimex-stm32-p107/nsh/defconfig
+++ b/nuttx/configs/olimex-stm32-p107/nsh/defconfig
@@ -513,8 +513,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=624
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
# CONFIG_NET_TCP_SPLIT is not set
@@ -534,6 +532,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=624
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/olimex-stm32-p207/nsh/defconfig b/nuttx/configs/olimex-stm32-p207/nsh/defconfig
index 71ee3a9a2..9f43d37d9 100644
--- a/nuttx/configs/olimex-stm32-p207/nsh/defconfig
+++ b/nuttx/configs/olimex-stm32-p207/nsh/defconfig
@@ -550,8 +550,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=20
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
# CONFIG_NET_TCP_SPLIT is not set
@@ -572,6 +570,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/olimex-strp711/nettest/defconfig b/nuttx/configs/olimex-strp711/nettest/defconfig
index c4dc098d5..0c24a0f40 100644
--- a/nuttx/configs/olimex-strp711/nettest/defconfig
+++ b/nuttx/configs/olimex-strp711/nettest/defconfig
@@ -411,8 +411,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -431,6 +429,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/pic32-starterkit/nsh2/defconfig b/nuttx/configs/pic32-starterkit/nsh2/defconfig
index a171003c6..cf0fc455a 100644
--- a/nuttx/configs/pic32-starterkit/nsh2/defconfig
+++ b/nuttx/configs/pic32-starterkit/nsh2/defconfig
@@ -553,8 +553,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -577,6 +575,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/pic32mx7mmb/nsh/defconfig b/nuttx/configs/pic32mx7mmb/nsh/defconfig
index 9fc6dadff..83b39d98b 100644
--- a/nuttx/configs/pic32mx7mmb/nsh/defconfig
+++ b/nuttx/configs/pic32mx7mmb/nsh/defconfig
@@ -606,8 +606,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -630,6 +628,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/arm/default/defconfig b/nuttx/configs/rgmp/arm/default/defconfig
index a0b63bc04..ba309aff3 100644
--- a/nuttx/configs/rgmp/arm/default/defconfig
+++ b/nuttx/configs/rgmp/arm/default/defconfig
@@ -312,8 +312,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -336,6 +334,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/arm/nsh/defconfig b/nuttx/configs/rgmp/arm/nsh/defconfig
index cc5c92aa4..dea6ce875 100644
--- a/nuttx/configs/rgmp/arm/nsh/defconfig
+++ b/nuttx/configs/rgmp/arm/nsh/defconfig
@@ -334,8 +334,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -358,6 +356,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=8
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/x86/cxxtest/defconfig b/nuttx/configs/rgmp/x86/cxxtest/defconfig
index ed7ce4dd1..7fcc74b28 100644
--- a/nuttx/configs/rgmp/x86/cxxtest/defconfig
+++ b/nuttx/configs/rgmp/x86/cxxtest/defconfig
@@ -341,8 +341,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -365,6 +363,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/x86/default/defconfig b/nuttx/configs/rgmp/x86/default/defconfig
index d882b8cf6..9ea922f01 100644
--- a/nuttx/configs/rgmp/x86/default/defconfig
+++ b/nuttx/configs/rgmp/x86/default/defconfig
@@ -320,8 +320,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -344,6 +342,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/x86/helloxx/defconfig b/nuttx/configs/rgmp/x86/helloxx/defconfig
index 616cfbcba..312b31839 100644
--- a/nuttx/configs/rgmp/x86/helloxx/defconfig
+++ b/nuttx/configs/rgmp/x86/helloxx/defconfig
@@ -341,8 +341,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -365,6 +363,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/rgmp/x86/nsh/defconfig b/nuttx/configs/rgmp/x86/nsh/defconfig
index 429bb9a48..a455b18ec 100644
--- a/nuttx/configs/rgmp/x86/nsh/defconfig
+++ b/nuttx/configs/rgmp/x86/nsh/defconfig
@@ -342,8 +342,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=1460
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -366,6 +364,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=1460
CONFIG_NET_ARPTAB_SIZE=8
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/sam4e-ek/nsh/defconfig b/nuttx/configs/sam4e-ek/nsh/defconfig
index e16d92c83..111edc99a 100644
--- a/nuttx/configs/sam4e-ek/nsh/defconfig
+++ b/nuttx/configs/sam4e-ek/nsh/defconfig
@@ -584,8 +584,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=16
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -608,6 +606,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/sam4e-ek/usbnsh/defconfig b/nuttx/configs/sam4e-ek/usbnsh/defconfig
index f3d67290d..1324d549f 100644
--- a/nuttx/configs/sam4e-ek/usbnsh/defconfig
+++ b/nuttx/configs/sam4e-ek/usbnsh/defconfig
@@ -630,8 +630,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=16
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -654,6 +652,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/shenzhou/nsh/defconfig b/nuttx/configs/shenzhou/nsh/defconfig
index 8ff61a9a1..ee442559e 100644
--- a/nuttx/configs/shenzhou/nsh/defconfig
+++ b/nuttx/configs/shenzhou/nsh/defconfig
@@ -404,8 +404,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_UDP=y
@@ -420,6 +418,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/shenzhou/nxwm/defconfig b/nuttx/configs/shenzhou/nxwm/defconfig
index 5179d010f..4a4df03ed 100644
--- a/nuttx/configs/shenzhou/nxwm/defconfig
+++ b/nuttx/configs/shenzhou/nxwm/defconfig
@@ -623,8 +623,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=16
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=4
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
# CONFIG_NET_TCP_SPLIT is not set
@@ -646,6 +644,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/shenzhou/thttpd/defconfig b/nuttx/configs/shenzhou/thttpd/defconfig
index 03cada392..3c13c9ddf 100644
--- a/nuttx/configs/shenzhou/thttpd/defconfig
+++ b/nuttx/configs/shenzhou/thttpd/defconfig
@@ -391,8 +391,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=742
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_UDP=y
@@ -407,6 +405,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=742
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
#
# File Systems
diff --git a/nuttx/configs/sim/nettest/defconfig b/nuttx/configs/sim/nettest/defconfig
index bcbd3b2b9..01963df63 100644
--- a/nuttx/configs/sim/nettest/defconfig
+++ b/nuttx/configs/sim/nettest/defconfig
@@ -296,8 +296,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -316,6 +314,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3220g-eval/nettest/defconfig b/nuttx/configs/stm3220g-eval/nettest/defconfig
index fcdb162e0..99f5516e8 100644
--- a/nuttx/configs/stm3220g-eval/nettest/defconfig
+++ b/nuttx/configs/stm3220g-eval/nettest/defconfig
@@ -591,8 +591,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -611,6 +609,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3220g-eval/nsh/defconfig b/nuttx/configs/stm3220g-eval/nsh/defconfig
index 09aeb18a9..5893e747d 100644
--- a/nuttx/configs/stm3220g-eval/nsh/defconfig
+++ b/nuttx/configs/stm3220g-eval/nsh/defconfig
@@ -635,8 +635,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -659,6 +657,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3220g-eval/nsh2/defconfig b/nuttx/configs/stm3220g-eval/nsh2/defconfig
index f66fe5a1a..88ed24d93 100644
--- a/nuttx/configs/stm3220g-eval/nsh2/defconfig
+++ b/nuttx/configs/stm3220g-eval/nsh2/defconfig
@@ -638,8 +638,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -662,6 +660,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3220g-eval/nxwm/defconfig b/nuttx/configs/stm3220g-eval/nxwm/defconfig
index d15e31176..15095a5a8 100644
--- a/nuttx/configs/stm3220g-eval/nxwm/defconfig
+++ b/nuttx/configs/stm3220g-eval/nxwm/defconfig
@@ -670,8 +670,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -694,6 +692,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3220g-eval/telnetd/defconfig b/nuttx/configs/stm3220g-eval/telnetd/defconfig
index c173ac3ca..33bca8973 100644
--- a/nuttx/configs/stm3220g-eval/telnetd/defconfig
+++ b/nuttx/configs/stm3220g-eval/telnetd/defconfig
@@ -591,8 +591,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -611,6 +609,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/discover/defconfig b/nuttx/configs/stm3240g-eval/discover/defconfig
index 248eb5792..002fc48c5 100644
--- a/nuttx/configs/stm3240g-eval/discover/defconfig
+++ b/nuttx/configs/stm3240g-eval/discover/defconfig
@@ -631,8 +631,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=624
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -655,6 +653,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=624
CONFIG_NET_ARPTAB_SIZE=16
CONFIG_NET_ARP_IPIN=y
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/nettest/defconfig b/nuttx/configs/stm3240g-eval/nettest/defconfig
index 7104b0046..40b6d4e46 100644
--- a/nuttx/configs/stm3240g-eval/nettest/defconfig
+++ b/nuttx/configs/stm3240g-eval/nettest/defconfig
@@ -593,8 +593,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -613,6 +611,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/nsh/defconfig b/nuttx/configs/stm3240g-eval/nsh/defconfig
index 89f0e3573..a42a7b8eb 100644
--- a/nuttx/configs/stm3240g-eval/nsh/defconfig
+++ b/nuttx/configs/stm3240g-eval/nsh/defconfig
@@ -616,8 +616,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -640,6 +638,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/nsh2/defconfig b/nuttx/configs/stm3240g-eval/nsh2/defconfig
index 1701faa20..01e2963d6 100644
--- a/nuttx/configs/stm3240g-eval/nsh2/defconfig
+++ b/nuttx/configs/stm3240g-eval/nsh2/defconfig
@@ -640,8 +640,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -664,6 +662,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/nxconsole/defconfig b/nuttx/configs/stm3240g-eval/nxconsole/defconfig
index 0ee0b0a50..cd5c0260d 100644
--- a/nuttx/configs/stm3240g-eval/nxconsole/defconfig
+++ b/nuttx/configs/stm3240g-eval/nxconsole/defconfig
@@ -647,8 +647,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -671,6 +669,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/nxwm/defconfig b/nuttx/configs/stm3240g-eval/nxwm/defconfig
index efa8c44e6..b0637eada 100644
--- a/nuttx/configs/stm3240g-eval/nxwm/defconfig
+++ b/nuttx/configs/stm3240g-eval/nxwm/defconfig
@@ -665,8 +665,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -689,6 +687,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/telnetd/defconfig b/nuttx/configs/stm3240g-eval/telnetd/defconfig
index 60df903b9..d3968671d 100644
--- a/nuttx/configs/stm3240g-eval/telnetd/defconfig
+++ b/nuttx/configs/stm3240g-eval/telnetd/defconfig
@@ -593,8 +593,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -613,6 +611,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/webserver/defconfig b/nuttx/configs/stm3240g-eval/webserver/defconfig
index 6b0fa2442..468156298 100644
--- a/nuttx/configs/stm3240g-eval/webserver/defconfig
+++ b/nuttx/configs/stm3240g-eval/webserver/defconfig
@@ -630,8 +630,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -654,6 +652,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/stm3240g-eval/xmlrpc/defconfig b/nuttx/configs/stm3240g-eval/xmlrpc/defconfig
index ba015dcba..7bdd1e7b1 100644
--- a/nuttx/configs/stm3240g-eval/xmlrpc/defconfig
+++ b/nuttx/configs/stm3240g-eval/xmlrpc/defconfig
@@ -626,8 +626,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -650,6 +648,11 @@ CONFIG_NET_STATISTICS=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
CONFIG_NET_ARP_IPIN=y
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/viewtool-stm32f107/netnsh/defconfig b/nuttx/configs/viewtool-stm32f107/netnsh/defconfig
index 3a32331b6..e4f0bcfaf 100644
--- a/nuttx/configs/viewtool-stm32f107/netnsh/defconfig
+++ b/nuttx/configs/viewtool-stm32f107/netnsh/defconfig
@@ -581,8 +581,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=624
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -605,6 +603,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=624
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/zkit-arm-1769/hello/defconfig b/nuttx/configs/zkit-arm-1769/hello/defconfig
index 9495b1322..2a6d23b1d 100644
--- a/nuttx/configs/zkit-arm-1769/hello/defconfig
+++ b/nuttx/configs/zkit-arm-1769/hello/defconfig
@@ -485,8 +485,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -505,6 +503,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/zkit-arm-1769/nsh/defconfig b/nuttx/configs/zkit-arm-1769/nsh/defconfig
index 040fe00fa..ae11539e9 100644
--- a/nuttx/configs/zkit-arm-1769/nsh/defconfig
+++ b/nuttx/configs/zkit-arm-1769/nsh/defconfig
@@ -515,8 +515,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -540,6 +538,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/zkit-arm-1769/nxhello/defconfig b/nuttx/configs/zkit-arm-1769/nxhello/defconfig
index acbf63c84..abd30fa99 100644
--- a/nuttx/configs/zkit-arm-1769/nxhello/defconfig
+++ b/nuttx/configs/zkit-arm-1769/nxhello/defconfig
@@ -553,8 +553,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=16
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
# CONFIG_NET_TCPBACKLOG is not set
@@ -578,6 +576,11 @@ CONFIG_NET_ICMP_PING=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/configs/zkit-arm-1769/thttpd/defconfig b/nuttx/configs/zkit-arm-1769/thttpd/defconfig
index 48c1a8705..50599cee1 100644
--- a/nuttx/configs/zkit-arm-1769/thttpd/defconfig
+++ b/nuttx/configs/zkit-arm-1769/thttpd/defconfig
@@ -485,8 +485,6 @@ CONFIG_NET_TCP=y
CONFIG_NET_TCP_CONNS=16
CONFIG_NET_MAX_LISTENPORTS=8
CONFIG_NET_TCP_READAHEAD=y
-CONFIG_NET_TCP_READAHEAD_BUFSIZE=536
-CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
# CONFIG_NET_TCP_WRITE_BUFFERS is not set
CONFIG_NET_TCP_RECVDELAY=0
CONFIG_NET_TCPBACKLOG=y
@@ -505,6 +503,11 @@ CONFIG_NET_ICMP=y
CONFIG_NET_RECEIVE_WINDOW=536
CONFIG_NET_ARPTAB_SIZE=16
# CONFIG_NET_ARP_IPIN is not set
+CONFIG_NET_IOB=y
+CONFIG_IOB_NBUFFERS=24
+CONFIG_IOB_BUFSIZE=196
+CONFIG_IOB_NCHAINS=8
+CONFIG_IOB_THROTTLE=0
# CONFIG_NET_ROUTE is not set
#
diff --git a/nuttx/include/nuttx/net/iob.h b/nuttx/include/nuttx/net/iob.h
index d3eebe8d5..333e806b3 100644
--- a/nuttx/include/nuttx/net/iob.h
+++ b/nuttx/include/nuttx/net/iob.h
@@ -97,7 +97,7 @@
/* Queue helpers */
# define IOB_QINIT(q) do { (q)->qh_head = 0; (q)->qh_tail = 0; } while (0)
-# define IOB_QEMPTY(q) ((q)->head == NULL)
+# define IOB_QEMPTY(q) ((q)->qh_head == NULL)
#endif
/****************************************************************************
@@ -220,10 +220,13 @@ int iob_add_queue(FAR struct iob_s *iob, FAR struct iob_queue_s *iobq);
#endif /* CONFIG_IOB_NCHAINS > 0 */
/****************************************************************************
- * Name: iob_add_queue
+ * Name: iob_remove_queue
*
* Description:
- * Remove one I/O buffer chain from the heaqd of a queue.
+ * Remove and return one I/O buffer chain from the head of a queue.
+ *
+ * Returned Value:
+ * Returns a reference to the I/O buffer chain at the head of the queue.
*
****************************************************************************/
@@ -232,6 +235,23 @@ FAR struct iob_s *iob_remove_queue(FAR struct iob_queue_s *iobq);
#endif /* CONFIG_IOB_NCHAINS > 0 */
/****************************************************************************
+ * Name: iob_peek_queue
+ *
+ * Description:
+ * Return a reference to the I/O buffer chain at the head of a queue. This
+ * is similar to iob_remove_queue except that the I/O buffer chain is in
+ * place at the head of the queue. The I/O buffer chain may safely be
+ * modified by the caller but must be removed from the queue before it can
+ * be freed.
+ *
+ * Returned Value:
+ * Returns a reference to the I/O buffer chain at the head of the queue.
+ *
+ ****************************************************************************/
+
+FAR struct iob_s *iob_peek_queue(FAR struct iob_queue_s *iobq);
+
+/****************************************************************************
* Name: iob_free_queue
*
* Description:
diff --git a/nuttx/include/nuttx/net/netconfig.h b/nuttx/include/nuttx/net/netconfig.h
index ab2135ee4..5638c2718 100644
--- a/nuttx/include/nuttx/net/netconfig.h
+++ b/nuttx/include/nuttx/net/netconfig.h
@@ -280,24 +280,6 @@
# define CONFIG_NET_BUFSIZE 400
#endif
-#ifdef CONFIG_NET_TCP_READAHEAD
- /* Number of TCP read-ahead buffers */
-
-# ifndef CONFIG_NET_NTCP_READAHEAD_BUFFERS
-# define CONFIG_NET_NTCP_READAHEAD_BUFFERS 4
-# endif
-
- /* The size of one TCP read buffer */
-
-# ifndef CONFIG_NET_TCP_READAHEAD_BUFSIZE
-# define CONFIG_NET_TCP_READAHEAD_BUFSIZE UIP_TCP_MSS
-# endif
-
-#else
-# undef CONFIG_NET_TCP_READAHEAD_BUFSIZE
-# undef CONFIG_NET_NTCP_READAHEAD_BUFFERS
-#endif
-
/* Delay after receive to catch a following packet. No delay should be
* required if TCP/IP read-ahead buffering is enabled.
*/
diff --git a/nuttx/include/nuttx/net/tcp.h b/nuttx/include/nuttx/net/tcp.h
index 6cba92934..b5d691b5d 100644
--- a/nuttx/include/nuttx/net/tcp.h
+++ b/nuttx/include/nuttx/net/tcp.h
@@ -55,7 +55,9 @@
#include <stdint.h>
#include <stdbool.h>
+
#include <nuttx/net/netconfig.h>
+#include <nuttx/net/iob.h>
#include <nuttx/net/uip.h>
/****************************************************************************
@@ -193,12 +195,12 @@ struct uip_conn
/* Read-ahead buffering.
*
- * readahead - A singly linked list of type struct uip_readahead_s
+ * readahead - A singly linked list of type struct iob_qentry_s
* where the TCP/IP read-ahead data is retained.
*/
#ifdef CONFIG_NET_TCP_READAHEAD
- sq_queue_t readahead; /* Read-ahead buffering */
+ struct iob_queue_s readahead; /* Read-ahead buffering */
#endif
/* Write buffering
@@ -272,25 +274,9 @@ struct uip_conn
void (*connection_event)(FAR struct uip_conn *conn, uint16_t flags);
};
-/* The following structure is used to handle read-ahead buffering for TCP
- * connection. When incoming TCP data is received while no application is
- * listening for the data, that data will be retained in these read-ahead
- * buffers so that no data is lost.
- */
-
-#ifdef CONFIG_NET_TCP_READAHEAD
-struct uip_readahead_s
-{
- sq_entry_t rh_node; /* Supports a singly linked list */
- uint16_t rh_nbytes; /* Number of bytes available in this buffer */
- uint8_t rh_buffer[CONFIG_NET_TCP_READAHEAD_BUFSIZE];
-};
-#endif
-
/* This structure supports TCP write buffering */
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
-struct iob_s; /* Forward reference */
struct tcp_wrbuffer_s
{
sq_entry_t wb_node; /* Supports a singly linked list */
@@ -458,13 +444,6 @@ int uip_listen(struct uip_conn *conn);
int uip_unlisten(struct uip_conn *conn);
-/* Access to TCP read-ahead buffers */
-
-#ifdef CONFIG_NET_TCP_READAHEAD
-FAR struct uip_readahead_s *uip_tcpreadahead_alloc(void);
-void uip_tcpreadahead_release(FAR struct uip_readahead_s *readahead);
-#endif /* CONFIG_NET_TCP_READAHEAD */
-
/* Backlog support */
#ifdef CONFIG_NET_TCPBACKLOG
diff --git a/nuttx/net/iob/Kconfig b/nuttx/net/iob/Kconfig
index b8481ab9e..5bb6e4c6b 100644
--- a/nuttx/net/iob/Kconfig
+++ b/nuttx/net/iob/Kconfig
@@ -48,8 +48,8 @@ config IOB_NCHAINS
config IOB_THROTTLE
int "I/O buffer throttle value"
default 0 if !NET_TCP_WRITE_BUFFERS || !NET_TCP_READAHEAD
- default 8 if NET_TCP_WRITE_BUFFERS && !NET_TCP_READAHEAD
- depends on NET_TCP_WRITE_BUFFERS && !NET_TCP_READAHEAD
+ default 8 if NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD
+ depends on NET_TCP_WRITE_BUFFERS && NET_TCP_READAHEAD
---help---
TCP write buffering and read-ahead buffer use the same pool of free
I/O buffers. In order to prevent uncontrolled incoming TCP packets
diff --git a/nuttx/net/iob/Make.defs b/nuttx/net/iob/Make.defs
index 205ef72ea..0eb2e0f9b 100644
--- a/nuttx/net/iob/Make.defs
+++ b/nuttx/net/iob/Make.defs
@@ -40,8 +40,8 @@ ifeq ($(CONFIG_NET_IOB),y)
NET_CSRCS += iob_add_queue.c iob_alloc.c iob_alloc_qentry.c iob_clone.c
NET_CSRCS += iob_concat.c iob_copyin.c iob_copyout.c iob_contig.c iob_free.c
NET_CSRCS += iob_free_chain.c iob_free_qentry.c iob_free_queue.c
-NET_CSRCS += iob_initialize.c iob_pack.c iob_remove_queue.c iob_trimhead.c
-NET_CSRCS += iob_trimtail.c
+NET_CSRCS += iob_initialize.c iob_pack.c iob_peek_queue.c iob_remove_queue.c
+NET_CSRCS += iob_trimhead.c iob_trimtail.c
ifeq ($(CONFIG_DEBUG),y)
NET_CSRCS += iob_dump.c
diff --git a/nuttx/net/iob/iob_alloc.c b/nuttx/net/iob/iob_alloc.c
index 672d1e2e7..179908d46 100644
--- a/nuttx/net/iob/iob_alloc.c
+++ b/nuttx/net/iob/iob_alloc.c
@@ -95,7 +95,7 @@ static FAR struct iob_s *iob_tryalloc(bool throttled)
#if CONFIG_IOB_THROTTLE > 0
/* Select the semaphore count to check. */
- sem = (throttled ? : &g_throttled_sem, &g_iob_sem);
+ sem = (throttled ? &g_throttle_sem : &g_iob_sem);
#endif
/* We don't know what context we are called from so we use extreme measures
@@ -107,7 +107,7 @@ static FAR struct iob_s *iob_tryalloc(bool throttled)
#if CONFIG_IOB_THROTTLE > 0
/* If there are free I/O buffers for this allocation */
- DEBUGVERIFY(sem_getvalue(sem, semcount));
+ DEBUGVERIFY(sem_getvalue(sem, &semcount));
if (semcount > 0)
#endif
{
@@ -124,7 +124,9 @@ static FAR struct iob_s *iob_tryalloc(bool throttled)
g_iob_freelist = iob->io_flink;
DEBUGVERIFY(sem_trywait(&g_iob_sem));
#if CONFIG_IOB_THROTTLE > 0
- DEBUGVERIFY(sem_trywait(&g_throttle_sem));
+ //DEBUGVERIFY(sem_trywait(&g_throttle_sem));
+ g_throttle_sem.semcount--;
+ DEBUGASSERT(g_throttle_sem.semcount >= -CONFIG_IOB_THROTTLE);
#endif
irqrestore(flags);
@@ -161,7 +163,7 @@ static FAR struct iob_s *iob_allocwait(bool throttled)
#if CONFIG_IOB_THROTTLE > 0
/* Select the semaphore count to check. */
- sem = (throttled ? : &g_throttled_sem, &g_iob_sem);
+ sem = (throttled ? &g_throttle_sem : &g_iob_sem);
#else
sem = &g_iob_sem;
#endif
diff --git a/nuttx/net/iob/iob_alloc_qentry.c b/nuttx/net/iob/iob_alloc_qentry.c
index f75d21009..8f425adb0 100644
--- a/nuttx/net/iob/iob_alloc_qentry.c
+++ b/nuttx/net/iob/iob_alloc_qentry.c
@@ -105,7 +105,7 @@ static FAR struct iob_qentry_s *iob_tryalloc_qentry(void)
*/
g_iob_freeqlist = iobq->qe_flink;
- DEBVERIFY(sem_trywait(&g_qentry_sem));
+ DEBUGVERIFY(sem_trywait(&g_qentry_sem));
/* Put the I/O buffer in a known state */
@@ -186,32 +186,20 @@ static FAR struct iob_qentry_s *iob_allocwait_qentry(void)
FAR struct iob_qentry_s *iob_alloc_qentry(void)
{
- FAR struct iob_qentry_s *iobq;
- irqstate_t flags;
-
- /* We don't know what context we are called from so we use extreme measures
- * to protect the free list: We disable interrupts very briefly.
- */
+ /* Were we called from the interrupt level? */
- flags = irqsave();
- iobq = g_iob_freeqlist;
- if (iobq)
+ if (up_interrupt_context())
{
- /* Remove the I/O buffer chain container from the free list and
- * decrement the counting semaphore that tracks the number of free
- * containers.
- */
-
- g_iob_freeqlist = iobq->qe_flink;
- DEBVERIFY(sem_trywait(&g_qentry_sem));
-
- /* Put the I/O buffer in a known state */
+ /* Yes, then try to allocate an I/O buffer without waiting */
- iobq->qe_head = NULL; /* Nothing is contained */
+ return iob_tryalloc_qentry();
}
+ else
+ {
+ /* Then allocate an I/O buffer, waiting as necessary */
- irqrestore(flags);
- return iobq;
+ return iob_allocwait_qentry();
+ }
}
#endif /* CONFIG_IOB_NCHAINS > 0 */
diff --git a/nuttx/net/iob/iob_copyin.c b/nuttx/net/iob/iob_copyin.c
index 1cfd1f697..75d82023c 100644
--- a/nuttx/net/iob/iob_copyin.c
+++ b/nuttx/net/iob/iob_copyin.c
@@ -223,5 +223,5 @@ int iob_copyin(FAR struct iob_s *iob, FAR const uint8_t *src,
offset = 0;
}
- return 0;
+ return OK;
}
diff --git a/nuttx/net/iob/iob_free.c b/nuttx/net/iob/iob_free.c
index ada8a7fe6..984287600 100644
--- a/nuttx/net/iob/iob_free.c
+++ b/nuttx/net/iob/iob_free.c
@@ -135,6 +135,9 @@ FAR struct iob_s *iob_free(FAR struct iob_s *iob)
/* Signal that an IOB is available */
sem_post(&g_iob_sem);
+#if CONFIG_IOB_THROTTLE > 0
+ sem_post(&g_throttle_sem);
+#endif
irqrestore(flags);
/* And return the I/O buffer after the one that was freed */
diff --git a/nuttx/net/iob/iob_initialize.c b/nuttx/net/iob/iob_initialize.c
index 8971f8d63..647eb0649 100644
--- a/nuttx/net/iob/iob_initialize.c
+++ b/nuttx/net/iob/iob_initialize.c
@@ -131,6 +131,10 @@ void iob_initialize(void)
sem_init(&g_iob_sem, 0, CONFIG_IOB_NBUFFERS);
+#if CONFIG_IOB_THROTTLE > 0
+ sem_init(&g_throttle_sem, 0, CONFIG_IOB_NBUFFERS - CONFIG_IOB_THROTTLE);
+#endif
+
#if CONFIG_IOB_NCHAINS > 0
/* Add each I/O buffer chain queue container to the free list */
diff --git a/nuttx/net/iob/iob_remove_queue.c b/nuttx/net/iob/iob_remove_queue.c
index f516ad047..e134bcd01 100644
--- a/nuttx/net/iob/iob_remove_queue.c
+++ b/nuttx/net/iob/iob_remove_queue.c
@@ -67,10 +67,13 @@
****************************************************************************/
/****************************************************************************
- * Name: iob_add_queue
+ * Name: iob_remove_queue
*
* Description:
- * Remove one I/O buffer chain from the heaqd of a queue.
+ * Remove and return one I/O buffer chain from the head of a queue.
+ *
+ * Returned Value:
+ * Returns a reference to the I/O buffer chain at the head of the queue.
*
****************************************************************************/
diff --git a/nuttx/net/net_poll.c b/nuttx/net/net_poll.c
index 00900919a..a8f873ea7 100644
--- a/nuttx/net/net_poll.c
+++ b/nuttx/net/net_poll.c
@@ -243,11 +243,11 @@ static inline int net_pollsetup(FAR struct socket *psock,
#ifdef CONFIG_NET_TCPBACKLOG
/* Check for read data or backlogged connection availability now */
- if (!sq_empty(&conn->readahead) || uip_backlogavailable(conn))
+ if (!IOB_QEMPTY(&conn->readahead) || uip_backlogavailable(conn))
#else
/* Check for read data availability now */
- if (!sq_empty(&conn->readahead))
+ if (!IOB_QEMPTY(&conn->readahead))
#endif
{
/* Normal data may be read without blocking. */
diff --git a/nuttx/net/recvfrom.c b/nuttx/net/recvfrom.c
index 79e1e339b..5c6a5aa07 100644
--- a/nuttx/net/recvfrom.c
+++ b/nuttx/net/recvfrom.c
@@ -80,7 +80,7 @@ struct recvfrom_s
FAR struct uip_callback_s *rf_cb; /* Reference to callback instance */
sem_t rf_sem; /* Semaphore signals recv completion */
size_t rf_buflen; /* Length of receive buffer */
- char *rf_buffer; /* Pointer to receive buffer */
+ uint8_t *rf_buffer; /* Pointer to receive buffer */
#ifdef CONFIG_NET_IPv6
FAR struct sockaddr_in6 *rf_from; /* Address of sender */
#else
@@ -316,69 +316,63 @@ static inline void recvfrom_newudpdata(FAR struct uip_driver_s *dev,
#if defined(CONFIG_NET_TCP) && defined(CONFIG_NET_TCP_READAHEAD)
static inline void recvfrom_readahead(struct recvfrom_s *pstate)
{
- FAR struct uip_conn *conn = (FAR struct uip_conn *)pstate->rf_sock->s_conn;
- FAR struct uip_readahead_s *readahead;
- size_t recvlen;
+ FAR struct uip_conn *conn = (FAR struct uip_conn *)pstate->rf_sock->s_conn;
+ FAR struct iob_s *iob;
+ int recvlen;
/* Check there is any TCP data already buffered in a read-ahead
* buffer.
*/
- do
+ while ((iob = iob_peek_queue(&conn->readahead)) != NULL &&
+ pstate->rf_buflen > 0)
{
- /* Get the read-ahead buffer at the head of the list (if any) */
+ DEBUGASSERT(iob->io_pktlen > 0);
- readahead = (struct uip_readahead_s *)sq_remfirst(&conn->readahead);
- if (readahead)
- {
- /* We have a new buffer... transfer that buffered data into
- * the user buffer.
- *
- * First, get the length of the data to transfer.
- */
+ /* Transfer that buffered data from the I/O buffer chain into
+ * the user buffer.
+ */
- if (readahead->rh_nbytes > pstate->rf_buflen)
- {
- recvlen = pstate->rf_buflen;
- }
- else
- {
- recvlen = readahead->rh_nbytes;
- }
+ recvlen = iob_copyout(pstate->rf_buffer, iob, pstate->rf_buflen, 0);
+ nllvdbg("Received %d bytes (of %d)\n", recvlen, iob->io_pktlen);
- if (recvlen > 0)
- {
- /* Copy the read-ahead data into the user buffer */
+ /* Update the accumulated size of the data read */
- memcpy(pstate->rf_buffer, readahead->rh_buffer, recvlen);
- nllvdbg("Received %d bytes (of %d)\n", recvlen, readahead->rh_nbytes);
+ pstate->rf_recvlen += recvlen;
+ pstate->rf_buffer += recvlen;
+ pstate->rf_buflen -= recvlen;
- /* Update the accumulated size of the data read */
+ /* If we took all of the ata from the I/O buffer chain is empty, then
+ * release it. If there is still data available in the I/O buffer
+ * chain, then just trim the data that we have taken from the
+ * beginning of the I/O buffer chain.
+ */
- pstate->rf_recvlen += recvlen;
- pstate->rf_buffer += recvlen;
- pstate->rf_buflen -= recvlen;
- }
+ if (recvlen >= iob->io_pktlen)
+ {
+ FAR struct iob_s *tmp;
- /* If the read-ahead buffer is empty, then release it. If not, then
- * we will have to move the data down and return the buffer to the
- * front of the list.
+ /* Remove the I/O buffer chain from the head of the read-ahead
+ * buffer queue.
*/
- if (recvlen < readahead->rh_nbytes)
- {
- readahead->rh_nbytes -= recvlen;
- memcpy(readahead->rh_buffer, &readahead->rh_buffer[recvlen],
- readahead->rh_nbytes);
- sq_addfirst(&readahead->rh_node, &conn->readahead);
- }
- else
- {
- uip_tcpreadahead_release(readahead);
- }
+ tmp = iob_remove_queue(&conn->readahead);
+ DEBUGASSERT(tmp == iob);
+ UNUSED(tmp);
+
+ /* And free the I/O buffer chain */
+
+ (void)iob_free_chain(iob);
+ }
+ else
+ {
+ /* The bytes that we have received from the from of the I/O
+ * buffer chain.
+ */
+
+ (void)iob_trimhead(iob, recvlen);
}
}
- while (readahead && pstate->rf_buflen > 0);
}
#endif /* CONFIG_NET_UDP || CONFIG_NET_TCP */
@@ -1252,10 +1246,10 @@ static ssize_t tcp_recvfrom(FAR struct socket *psock, FAR void *buf, size_t len,
#ifdef CONFIG_NET_TCP_READAHEAD
recvfrom_readahead(&state);
- /* The default return value is the number of bytes that we just copied into
- * the user buffer. We will return this if the socket has become disconnected
- * or if the user request was completely satisfied with data from the readahead
- * buffers.
+ /* The default return value is the number of bytes that we just copied
+ * into the user buffer. We will return this if the socket has become
+ * disconnected or if the user request was completely satisfied with
+ * data from the readahead buffers.
*/
ret = state.rf_recvlen;
diff --git a/nuttx/net/tcp/Kconfig b/nuttx/net/tcp/Kconfig
index dacb96395..b46b1ab84 100644
--- a/nuttx/net/tcp/Kconfig
+++ b/nuttx/net/tcp/Kconfig
@@ -36,6 +36,7 @@ config NET_MAX_LISTENPORTS
config NET_TCP_READAHEAD
bool "Enable TCP/IP read-ahead buffering"
default y
+ select NET_IOB
---help---
Read-ahead buffers allows buffering of TCP/IP packets when there is no
receive in place to catch the TCP packet. In that case, the packet
@@ -43,40 +44,14 @@ config NET_TCP_READAHEAD
You might want to disable TCP/IP read-ahead buffering on a highly
memory constrained system that does not have any TCP/IP packet rate
- issues.
-
-if NET_TCP_READAHEAD
-
-config NET_TCP_READAHEAD_BUFSIZE
- int "TCP/IP read-ahead buffer size"
- default 1220 if !NET_SLIP && NET_IPv6
- default 536 if !NET_SLIP && !NET_IPv6
- default 256 if NET_SLIP && !NET_IPv6
- ---help---
- Read-ahead buffers allows buffering of TCP/IP packets when there is no
- receive in place to catch the TCP packet. In that case, the packet
- will be retained in the NuttX read-ahead buffers.
-
- This setting specifies the size of one TCP/IP read-ahead buffer.
- This should best be a equal to the maximum packet payload size (MSS).
+ issues. But, if disabled, there will probably be more packet
+ retransmissions or even packet loss.
- Optimally, the size of the read-ahead buffer will should the maximum
- size of an incoming TCP packet payload (MSS). This MSS value is
- determined by NET_BUFSIZE minus the size of TCP, IP, and Ethernet
- headers (assuming you are using the Ethernet transport). IPv4 hosts
- are required to be able to handle an MSS of 536 octets and IPv6 hosts
- are required to be able to handle an MSS of 1220 octets.
-
-config NET_NTCP_READAHEAD_BUFFERS
- int "Number of TCP/IP read-ahead buffers"
- default 8
- ---help---
- Read-ahead buffers allows buffering of TCP/IP packets when there is no
- receive in place to catch the TCP packet. In that case, the packet
- will be retained in the NuttX read-ahead buffers.
-
- This setting specifies the number of TCP/IP read-ahead buffers.
+ Make sure that you check the setting in the I/O Buffering menu.
+ These settings are critical to the reasonable operation of read-
+ ahead buffering.
+if NET_TCP_READAHEAD
endif # NET_TCP_READAHEAD
config NET_TCP_WRITE_BUFFERS
diff --git a/nuttx/net/tcp/Make.defs b/nuttx/net/tcp/Make.defs
index 609fa24bb..c2d5f66f5 100644
--- a/nuttx/net/tcp/Make.defs
+++ b/nuttx/net/tcp/Make.defs
@@ -53,11 +53,7 @@ NET_CSRCS += tcp_conn.c tcp_seqno.c tcp_poll.c tcp_timer.c tcp_send.c
NET_CSRCS += tcp_input.c tcp_appsend.c tcp_listen.c tcp_callback.c
NET_CSRCS += tcp_backlog.c
-# TCP Buffering
-
-ifeq ($(CONFIG_NET_TCP_READAHEAD),y)
-NET_CSRCS += tcp_readahead.c
-endif
+# TCP write buffering
ifeq ($(CONFIG_NET_TCP_WRITE_BUFFERS),y)
NET_CSRCS += tcp_wrbuffer.c
diff --git a/nuttx/net/tcp/tcp_callback.c b/nuttx/net/tcp/tcp_callback.c
index b05027c5b..f9a99d7ab 100644
--- a/nuttx/net/tcp/tcp_callback.c
+++ b/nuttx/net/tcp/tcp_callback.c
@@ -1,7 +1,7 @@
/****************************************************************************
* net/tcp/tcp_callback.c
*
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -60,47 +60,6 @@
****************************************************************************/
/****************************************************************************
- * Function: uip_readahead
- *
- * Description:
- * Copy as much received data as possible into the read-ahead buffer
- *
- * Assumptions:
- * This function is called at the interrupt level with interrupts disabled.
- *
- ****************************************************************************/
-
-#ifdef CONFIG_NET_TCP_READAHEAD
-static int uip_readahead(FAR struct uip_readahead_s *readahead,
- FAR uint8_t *buf, int len)
-{
- int available = CONFIG_NET_TCP_READAHEAD_BUFSIZE - readahead->rh_nbytes;
- int recvlen = 0;
-
- if (len > 0 && available > 0)
- {
- /* Get the length of the data to buffer. */
-
- if (len > available)
- {
- recvlen = available;
- }
- else
- {
- recvlen = len;
- }
-
- /* Copy the new appdata into the read-ahead buffer */
-
- memcpy(&readahead->rh_buffer[readahead->rh_nbytes], buf, recvlen);
- readahead->rh_nbytes += recvlen;
- }
-
- return recvlen;
-}
-#endif
-
-/****************************************************************************
* Function: uip_dataevent
*
* Description:
@@ -141,17 +100,12 @@ uip_dataevent(FAR struct uip_driver_s *dev, FAR struct uip_conn *conn,
nllvdbg("No listener on connection\n");
#ifdef CONFIG_NET_TCP_READAHEAD
- /* Save as much data as possible in the read-ahead buffers */
-
- recvlen = uip_datahandler(conn, buffer, buflen);
-
- /* There are several complicated buffering issues that are not addressed
- * properly here. For example, what if we cannot buffer the entire
- * packet? In that case, some data will be accepted but not ACKed.
- * Therefore it will be resent and duplicated. Fixing this could be tricky.
+ /* Save as the packet data as in the read-ahead buffer. NOTE that
+ * partial packets will not be buffered.
*/
- if (recvlen < buflen)
+ recvlen = uip_datahandler(conn, buffer, buflen);
+ if (recvlen < buflen)
#endif
{
/* There is no handler to receive new data and there are no free
@@ -267,8 +221,8 @@ uint16_t uip_tcpcallback(struct uip_driver_s *dev, struct uip_conn *conn,
* buflen - The number of bytes to copy to the read-ahead buffer.
*
* Returned value:
- * The number of bytes actually buffered. This could be less than 'nbytes'
- * if there is insufficient buffering available.
+ * The number of bytes actually buffered is returned. This will be either
+ * zero or equal to buflen; partial packets are not buffered.
*
* Assumptions:
* - The caller has checked that UIP_NEWDATA is set in flags and that is no
@@ -281,57 +235,44 @@ uint16_t uip_tcpcallback(struct uip_driver_s *dev, struct uip_conn *conn,
uint16_t uip_datahandler(FAR struct uip_conn *conn, FAR uint8_t *buffer,
uint16_t buflen)
{
- FAR struct uip_readahead_s *readahead1;
- FAR struct uip_readahead_s *readahead2 = NULL;
- uint16_t remaining;
- uint16_t recvlen = 0;
-
- /* First, we need to determine if we have space to buffer the data. This
- * needs to be verified before we actually begin buffering the data. We
- * will use any remaining space in the last allocated read-ahead buffer
- * plus as much one additional buffer. It is expected that the size of
- * read-ahead buffers are tuned so that one full packet will always fit
- * into one read-ahead buffer (for example if the buffer size is 420, then
- * a read-ahead buffer of 366 will hold a full packet of TCP data).
- */
+ FAR struct iob_s *iob;
+ int ret;
- readahead1 = (FAR struct uip_readahead_s*)conn->readahead.tail;
- if ((readahead1 &&
- (CONFIG_NET_TCP_READAHEAD_BUFSIZE - readahead1->rh_nbytes) > buflen) ||
- (readahead2 = uip_tcpreadahead_alloc()) != NULL)
+ /* Allocate on I/O buffer to start the chain (throttling as necessary) */
+
+ iob = iob_alloc(true);
+ if (iob == NULL)
{
- /* We have buffer space. Now try to append add as much data as possible
- * to the last read-ahead buffer attached to this connection.
- */
+ nlldbg("ERROR: Failed to create new I/O buffer chain\n");
+ return 0;
+ }
- remaining = buflen;
- if (readahead1)
- {
- recvlen = uip_readahead(readahead1, buffer, remaining);
- if (recvlen > 0)
- {
- buffer += recvlen;
- remaining -= recvlen;
- }
- }
+ /* Copy the new appdata into the I/O buffer chain */
- /* Do we need to buffer into the newly allocated buffer as well? */
+ ret = iob_copyin(iob, buffer, buflen, 0, true);
+ if (ret < 0)
+ {
+ /* On a failure, iob_copyin return a negated error value but does
+ * not free any I/O buffers.
+ */
- if (readahead2)
- {
- readahead2->rh_nbytes = 0;
- recvlen += uip_readahead(readahead2, buffer, remaining);
+ nlldbg("ERROR: Failed to add data to the I/O buffer chain: %d\n", ret);
+ (void)iob_free_chain(iob);
+ return 0;
+ }
- /* Save the read-ahead buffer in the connection structure where
- * it can be found with recv() is called.
- */
+ /* Add the new I/O buffer chain to the tail of the read-ahead queue */
- sq_addlast(&readahead2->rh_node, &conn->readahead);
- }
+ ret = iob_add_queue(iob, &conn->readahead);
+ if (ret < 0)
+ {
+ nlldbg("ERROR: Failed to queue the I/O buffer chain: %d\n", ret);
+ (void)iob_free_chain(iob);
+ return 0;
}
- nllvdbg("Buffered %d bytes (of %d)\n", recvlen, buflen);
- return recvlen;
+ nllvdbg("Buffered %d bytes\n", buflen);
+ return buflen;
}
#endif /* CONFIG_NET_TCP_READAHEAD */
diff --git a/nuttx/net/tcp/tcp_conn.c b/nuttx/net/tcp/tcp_conn.c
index 893c95642..573d8cbf9 100644
--- a/nuttx/net/tcp/tcp_conn.c
+++ b/nuttx/net/tcp/tcp_conn.c
@@ -317,9 +317,6 @@ void uip_tcpfree(struct uip_conn *conn)
{
FAR struct uip_callback_s *cb;
FAR struct uip_callback_s *next;
-#ifdef CONFIG_NET_TCP_READAHEAD
- FAR struct uip_readahead_s *readahead;
-#endif
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
FAR struct tcp_wrbuffer_s *wrbuffer;
#endif
@@ -357,10 +354,7 @@ void uip_tcpfree(struct uip_conn *conn)
#ifdef CONFIG_NET_TCP_READAHEAD
/* Release any read-ahead buffers attached to the connection */
- while ((readahead = (struct uip_readahead_s *)sq_remfirst(&conn->readahead)) != NULL)
- {
- uip_tcpreadahead_release(readahead);
- }
+ iob_free_queue(&conn->readahead);
#endif
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
@@ -545,7 +539,7 @@ struct uip_conn *uip_tcpaccept(struct uip_tcpip_hdr *buf)
#ifdef CONFIG_NET_TCP_READAHEAD
/* Initialize the list of TCP read-ahead buffers */
- sq_init(&conn->readahead);
+ IOB_QINIT(&conn->readahead);
#endif
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
@@ -700,7 +694,7 @@ int uip_tcpconnect(struct uip_conn *conn, const struct sockaddr_in *addr)
#ifdef CONFIG_NET_TCP_READAHEAD
/* Initialize the list of TCP read-ahead buffers */
- sq_init(&conn->readahead);
+ IOB_QINIT(&conn->readahead);
#endif
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
diff --git a/nuttx/net/tcp/tcp_readahead.c b/nuttx/net/tcp/tcp_readahead.c
deleted file mode 100644
index 059abbc5c..000000000
--- a/nuttx/net/tcp/tcp_readahead.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * net/tcp/tcp_readahead.c
- *
- * Copyright (C) 2007-2009, 2013-2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/net/netconfig.h>
-#if defined(CONFIG_NET) && defined(CONFIG_NET_TCP) && defined(CONFIG_NET_TCP_READAHEAD)
-
-#include <queue.h>
-#include <debug.h>
-
-#include <nuttx/net/uip.h>
-
-#include "uip/uip.h"
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/* Package all globals used by this logic into a structure */
-
-struct readahead_s
-{
- /* This is the list of available write buffers */
-
- sq_queue_t freebuffers;
-
- /* These are the pre-allocated write buffers */
-
- struct uip_readahead_s buffers[CONFIG_NET_NTCP_READAHEAD_BUFFERS];
-};
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/* This is the state of the global read-ahead resource */
-
-static struct readahead_s g_readahead;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Function: uip_tcpreadahead_init
- *
- * Description:
- * Initialize the list of free read-ahead buffers
- *
- * Assumptions:
- * Called once early initialization.
- *
- ****************************************************************************/
-
-void uip_tcpreadahead_init(void)
-{
- int i;
-
- sq_init(&g_readahead.freebuffers);
- for (i = 0; i < CONFIG_NET_NTCP_READAHEAD_BUFFERS; i++)
- {
- sq_addfirst(&g_readahead.buffers[i].rh_node, &g_readahead.freebuffers);
- }
-}
-
-/****************************************************************************
- * Function: uip_tcpreadahead_alloc
- *
- * Description:
- * Allocate a TCP read-ahead buffer by taking a pre-allocated buffer from
- * the free list. This function is called from TCP logic when new,
- * incoming TCP data is received but there is no user logic receiving the
- * the data. Note: kmalloc() cannot be used because this function is
- * called from interrupt level.
- *
- * Assumptions:
- * Called from interrupt level with interrupts disabled.
- *
- ****************************************************************************/
-
-FAR struct uip_readahead_s *uip_tcpreadahead_alloc(void)
-{
- return (FAR struct uip_readahead_s*)sq_remfirst(&g_readahead.freebuffers);
-}
-
-/****************************************************************************
- * Function: uip_tcpreadahead_release
- *
- * Description:
- * Release a TCP read-ahead buffer by returning the buffer to the free list.
- * This function is called from user logic after it is consumed the buffered
- * data.
- *
- * Assumptions:
- * Called from user logic BUT with interrupts disabled.
- *
- ****************************************************************************/
-
-void uip_tcpreadahead_release(FAR struct uip_readahead_s *readahead)
-{
- sq_addfirst(&readahead->rh_node, &g_readahead.freebuffers);
-}
-
-#endif /* CONFIG_NET && CONFIG_NET_TCP && CONFIG_NET_TCP_READAHEAD */
diff --git a/nuttx/net/tcp/tcp_send_buffered.c b/nuttx/net/tcp/tcp_send_buffered.c
index 05a0e4bfb..f8fcb5715 100644
--- a/nuttx/net/tcp/tcp_send_buffered.c
+++ b/nuttx/net/tcp/tcp_send_buffered.c
@@ -414,7 +414,7 @@ static uint16_t send_interrupt(FAR struct uip_driver_s *dev, FAR void *pvconn,
tmp = (FAR struct tcp_wrbuffer_s *)sq_remfirst(&conn->write_q);
DEBUGASSERT(tmp == wrb);
- UNUSED(wrb);
+ UNUSED(tmp);
/* And return the write buffer to the free list */
diff --git a/nuttx/net/uip/uip.h b/nuttx/net/uip/uip.h
index 91e804d0f..06c4b58ea 100644
--- a/nuttx/net/uip/uip.h
+++ b/nuttx/net/uip/uip.h
@@ -183,17 +183,6 @@ uint16_t uip_tcpcallback(FAR struct uip_driver_s *dev,
uint16_t uip_datahandler(FAR struct uip_conn *conn,
FAR uint8_t *buffer, uint16_t nbytes);
#endif
-
-/* Defined in tcp_readahead.c ***********************************************/
-
-#ifdef CONFIG_NET_TCP_READAHEAD
-void uip_tcpreadahead_init(void);
-
-struct uip_readahead_s;
-FAR struct uip_readahead_s *uip_tcpreadahead_alloc(void);
-void uip_tcpreadahead_release(FAR struct uip_readahead_s *readahead);
-#endif /* CONFIG_NET_TCP_READAHEAD */
-
#endif /* CONFIG_NET_TCP */
#ifdef CONFIG_NET_UDP
diff --git a/nuttx/net/uip/uip_initialize.c b/nuttx/net/uip/uip_initialize.c
index a76f0a1bd..8b88d5cf8 100644
--- a/nuttx/net/uip/uip_initialize.c
+++ b/nuttx/net/uip/uip_initialize.c
@@ -139,18 +139,12 @@ void uip_initialize(void)
uip_tcpinit();
- /* Initialize the TCP/IP read-ahead buffering */
-
-#ifdef CONFIG_NET_TCP_READAHEAD
- uip_tcpreadahead_init();
-#endif
-#endif /* CONFIG_NET_TCP */
-
/* Initialize the TCP/IP write buffering */
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
tcp_wrbuffer_initialize();
#endif
+#endif /* CONFIG_NET_TCP */
/* Initialize the UDP connection structures */