mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-27 05:55:22 +00:00
Adds the model extension concept to the access layer, as described in the Mesh Profile Specification, Section 2.3.6. Extensions are implemented as a tree, using two pointers in each model: The extends pointer points to the first extended model, and the next pointer points to the next sibling or (if the NEXT_IS_PARENT flag is set) the parent model in the tree, forming a cyclical "Left-child right-sibling" (LCRS) tree. The tree root can be obtained by calling bt_mesh_model_root_get(), and the extended models can be walked by calling bt_mesh_model_tree_walk(). According to the Mesh Profile Specification Section 4.2.3, all models in the same extension tree share one subscription list per element. This is implemented by walking the model's extension tree, and pooling the subscription lists of all models in the same element into one. If the config server adds a subscription to a model, it may be stored in any of the model tree's models' subscription lists. No two models in the same extension tree and element will have duplicate groups listed. This allows us to increase extended models' capacity for subscriptions significantly. Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no> |
||
---|---|---|
.. | ||
beacon | ||
central | ||
central_hr | ||
eddystone | ||
handsfree | ||
hci_spi | ||
hci_uart | ||
hci_usb | ||
ibeacon | ||
ipsp | ||
mesh | ||
mesh_demo | ||
peripheral | ||
peripheral_csc | ||
peripheral_dis | ||
peripheral_esp | ||
peripheral_hids | ||
peripheral_hr | ||
peripheral_ht | ||
peripheral_sc_only | ||
scan_adv | ||
bluetooth.rst |