zephyr/subsys/bluetooth/mesh
Trond Einar Snekvik 0151d6dc33 Bluetooth: Mesh: Model extension concept
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>
2019-11-07 18:57:32 +02:00
..
access.c Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
access.h Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
adv.c Bluetooth: Mesh: Fix canceled buffer memory leak 2019-08-14 14:49:43 +02:00
adv.h Bluetooth: Mesh: Encrypt friend packets on send 2019-09-16 14:00:57 +03:00
beacon.c Bluetooth: Mesh: Add callback for unprovisioned device beacon 2019-10-30 13:08:09 +01:00
beacon.h
cfg_cli.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
cfg_srv.c Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
CMakeLists.txt Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
crypto.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
crypto.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
foundation.h Bluetooth: Mesh: Persistent storage of Virtual Addresses 2019-10-17 12:24:13 +03:00
friend.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
friend.h Bluetooth: Mesh: Fix adhering to the configured Friend Queue size 2019-08-19 16:30:31 +03:00
health_cli.c Bluetooth: Mesh: Model message macros 2019-10-08 18:38:43 +03:00
health_srv.c Bluetooth: Mesh: Model message macros 2019-10-08 18:38:43 +03:00
Kconfig Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
lpn.c Bluetooth: Mesh: Fix heartbeat sending on Friendship established/lost 2019-08-14 14:48:37 +02:00
lpn.h
main.c Bluetooth: rework to support C++20 designated initializers 2019-11-03 13:24:57 +01:00
mesh.h
net.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
net.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
nodes.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
nodes.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
prov.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
prov.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
proxy.c Bluetooth: Reduce severity of unavoidable warnings 2019-11-06 19:24:32 +02:00
proxy.h
settings.c Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
settings.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
shell.c Bluetooth: Mesh: Add support for provisioner over PB-ADV to shell 2019-10-30 13:08:09 +01:00
test.c
test.h
TODO
transport.c Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00
transport.h Bluetooth: Mesh: Add support for provisioner role over PB-ADV 2019-10-30 13:08:09 +01:00