zephyr/samples/net/echo_server
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
..
src
Makefile
prj_arduino_101_cc2520.conf samples: net: Fix echo applications setting for 15.4 2016-12-16 19:14:56 +01:00
prj_arduino_101.conf
prj_bt.conf
prj_cc2520.conf samples: net: Fix echo applications setting for 15.4 2016-12-16 19:14:56 +01:00
prj_frdm_k64f_cc2520.conf samples: net: Fix echo applications setting for 15.4 2016-12-16 19:14:56 +01:00
prj_frdm_k64f.conf
prj_qemu_802154.conf
prj_qemu_x86.conf
prj_slip.conf
testcase.ini