incubator-nuttx/drivers/net
Gregory Nutt 3c0b49448a Network Loopback Driver: A configuration option to control packet size.
Historically, the loopback driver used the largest packet size of all enabled link layer protocols.  This permitted packets to be forward via the loopbak device with no major loss of performance.  However, in experimenting with configurations where no other link layer protocols were enabled, this means the loopback packet size was set to the smallest possible size, to the SLIP minimum of 296 bytes.  This resulted in terrible loopback performance.

    This commit adds an option to increase the loopback packet size with the option CONFIG_NET_LOOPBACK_PACKETSIZE.

    The loopback driver packet buffer should be quite large.  The larger the loopback packet buffer, the better will be TCP performance of the loopback transfers.  The Linux loopback device historically used packet buffers of size 16Kb, but that was increased in recent Linux versions to 64Kb.  Those sizes may be excessive for resource constrained MCUs, however.

    The network still enforces the lower limit that is the maximum packet size of all enabled link layer protocols.  But this new option permits the loopback packet size to be increased from that.

    * net/Kconfig:  Adds CONFIG_NET_LOOPBACK_PKTSIZE option
    * include/nuttx/net/netconfig.h:  Assures that the packet size that is used is at least as large as the largest packet size of other link layer protocols.
    * drivers/net/loopback.c:  Use that larger packet size.
    * boards/sim/sim/sim/configs/tcploop/defconfig:  Set the loopback packet size to 1500
2020-02-10 22:17:32 -03:00
..
Kconfig Kconfig: Move the ARCH_PHY_INTERRUPT option to net/Kconfig and make it 2020-02-09 00:55:41 +00:00
Make.defs Remove NETDEV_LOOPBACK option, NET_LOOPBACK is enough 2020-02-02 08:25:06 -06:00
dm90x0.c Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
enc28j60.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
enc28j60.h drivers/net: Run tools/detab, rmcr, lowhex, and nstyle against all files. 2019-02-24 11:51:25 -06:00
encx24j600.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
encx24j600.h Refine the preprocessor conditional guard style (#190) 2020-01-31 19:07:39 +01:00
ftmac100.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
lan91c111.c Correct some problems with network timed events when there are multiple network devices in the configuration. 2019-12-24 10:37:30 -06:00
lan91c111.h Fix use of undefined pp-token #errror, other typos. 2019-09-19 18:19:18 -06:00
loopback.c Network Loopback Driver: A configuration option to control packet size. 2020-02-10 22:17:32 -03:00
phy_notify.c drivers/net/phy_notify.c: Use IFNAMSIZ for interface name size 2020-02-02 11:02:39 -06:00
rpmsgdrv.c Ensure psock_socket and psock_accept initialize s_crefs to 1 2020-01-31 13:45:14 -06:00
skeleton.c Fix wait loop and void cast (#24) 2020-01-02 10:54:43 -06:00
slip.c drivers/net/slip.c: It's enough to only hold the net lock in SLIP driver 2020-02-02 08:27:33 -06:00
telnet.c drivers/telnet: Stop the loop if SIGSTP char is match and SIGINT not enabled 2020-02-10 09:21:34 -06:00
tun.c Improve tun (#198) 2020-02-02 08:02:17 -06:00