zephyr/samples
Trond Einar Snekvik 824c2ebc58 Bluetooth: Mesh: Slab based segmentation handling
Allocates segmented message buffers as slabs in a common pool for RX and
TX. This reduces memory requirements for both TX and RX, as TX messages
can be stored without the network and advertising buffer overhead, and
RX can use only the slabs it needs, instead of allocating a full size
segmented message. This approach also removes the need for decrypting
the segments for each retransmission, reducing overall processing load.

Slab based segmentation for tx also introduces queuing of segmented
messages, which allows the application layer to send multiple messages
to the same destination without violating Bluetooth Mesh specification
v1.0.1, section 3.6.4.1. This mechanism is provided through a flag that
blocks segmented messages to a destination which a message is already
being sent to until the previous message finishes.

This changes the SDU size configuration to a symmetrical
RX_SEG_MAX/TX_SEG_MAX pair of configurations, plus a new segment pool
side configuration. It also removes the binding between the TX_SEG_MAX
config and the advertising buffers, reducing the minimum advertising
buffer count from 6 to 3.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2020-03-19 15:54:26 +02:00
..
application_development kconfig: Remove assignments to CONFIG_<arch> syms and hide them 2020-02-08 00:50:08 -06:00
basic samples: blinky: clean up error on unsupported board 2020-03-04 21:50:43 +02:00
bluetooth Bluetooth: Mesh: Slab based segmentation handling 2020-03-19 15:54:26 +02:00
boards samples: pong: use log_stack_usage() 2020-03-14 13:10:19 -04:00
cpp_synchronization samples & tests: Correct main() type 2019-12-16 11:27:56 +01:00
display samples: display: lvgl use posix input, remove defaults 2020-03-11 13:23:19 -05:00
drivers doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
hello_world tests: fix test identifiers 2019-12-09 15:53:44 -05:00
mpu global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
net samples: net: azure: Add support for subscribe 2020-03-19 11:09:44 +02:00
nfc/nfc_hello cleanup: include/: move misc/byteorder.h to sys/byteorder.h 2019-06-27 22:55:49 -04:00
philosophers samples: philosophers: Disable networking 2019-12-18 10:35:15 +02:00
portability samples: cmsis_rtos_v1: Grow stack size to the maximum allowed 2020-01-20 18:33:34 -05:00
posix samples & tests: Correct main() type 2019-12-16 11:27:56 +01:00
scheduler samples: Add MetaIRQ dispatch sample 2020-02-06 23:06:28 -05:00
sensor samples: sensor: bme680: Add an overlay 2020-03-04 20:29:00 +02:00
shields tests: remove duplicate names for tests 2020-02-13 14:45:56 -06:00
smp samples: pi: fix stack overflow 2020-03-10 09:57:58 -04:00
subsys doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
synchronization tests: fix test identifiers 2019-12-09 15:53:44 -05:00
testing/integration tests: fix test identifiers 2019-12-09 15:53:44 -05:00
userspace scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
video samples: video: Fix board reference name 2019-10-30 18:33:18 +01:00
classic.rst doc: restructure and create index pages 2019-02-05 07:04:40 -05:00
index.rst samples: Add MetaIRQ dispatch sample 2020-02-06 23:06:28 -05:00