Go to file
Tomasz Bursztyka e7af4b8947 samples: net: Fix echo applications setting for 15.4
When zephyr receives a 15.4 frames it allocates 1 RX buf (nbuf) and 1
DATA (buf), and it gets queued on net stack for post processing.

Problem: receiving a lot of frames is just completely nominal and very
fast (timing is critical in radio, and the rx thread of the radio driver
has a high priority, much higher than net stack's rx post processing).
So guess what happens when CONFIG_NET_NBUF_RX_COUNT=10 though let's say
12 packets are coming in?

The RX buffer pools gets empty and soon the system hangs on getting a
newly allocated one.

This proper CONFIG_NET_NBUF_RX_COUNT tweak fixes the issue, however some
future work will reduce the need of so many RX meta buf:
- l2's recv could be called right away at net_recv_data, before queuing
  the buffer for post-processing, but this could affects reception
  timing on radio side, which is critical.
- An l2 pre-processing (in the middle of what current l2 recv does)
  could be implemented, it would be technology depenedent (aka: not
  mandatory on all l2) and could quickly decide what to do and at best
  drop the whole, or at least drop the RX meta buf (frag would still be
  kept). Let's see.

Jira: ZEP-1427

Change-Id: Ic75b02efa36e35b450c02b3e6439a8d73f03f839
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-16 19:14:56 +01:00
.known-issues
arch
boards drivers: eth_ksdk: Theres is no longer 'ETHERNET' Kconfig option 2016-12-16 19:14:55 +01:00
doc
drivers drivers: eth_ksdk: Simplifying MAC address generation 2016-12-16 19:14:55 +01:00
ext
include net: l2: ethernet: Handle Ethernet II minimal frame size relevantly 2016-12-16 19:14:54 +01:00
kernel
lib iot/dns: Use a k_sem for the DNS rx routine 2016-12-16 19:14:53 +01:00
misc
samples samples: net: Fix echo applications setting for 15.4 2016-12-16 19:14:56 +01:00
scripts
subsys net: buf: Use buf->pool instead of now removed buf->free 2016-12-16 19:14:56 +01:00
tests tests/tcp: Initialize buffer to NULL 2016-12-16 19:14:53 +01:00
.checkpatch.conf
.gitattributes
.gitignore
.gitreview
.mailmap
defaults.tc
Kbuild
Kconfig
Kconfig.zephyr
LICENSE
LICENSING.rst
MAINTAINERS
Makefile
Makefile.inc
release-notes.rst
zephyr-env.sh