mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-02 01:54:29 +00:00
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> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
microbit_gatt.conf | ||
nrf51_qfaa.conf | ||
prj_bbc_microbit.conf | ||
prj.conf | ||
README.rst | ||
rv32m1_vega_ri5cy.overlay | ||
sample.yaml |
.. _ble_mesh: Bluetooth: Mesh ############### Overview ******** This sample demonstrates Bluetooth Mesh functionality. It has several standard Mesh models, and supports provisioning over both the Advertising and the GATT Provisioning Bearers (i.e. PB-ADV and PB-GATT). The application also needs a functioning serial console, since that's used for the Out-of-Band provisioning procedure. Requirements ************ * A board with Bluetooth LE support, or * QEMU with BlueZ running on the host Building and Running ******************** This sample can be found under :zephyr_file:`samples/bluetooth/mesh` in the Zephyr tree. See :ref:`bluetooth samples section <bluetooth-samples>` for details on how to run the sample inside QEMU. For other boards, build and flash the application as follows: .. zephyr-app-commands:: :zephyr-app: samples/bluetooth/mesh :board: <board> :goals: flash :compact: Refer to your :ref:`board's documentation <boards>` for alternative flash instructions if your board doesn't support the ``flash`` target.