zephyr/samples
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
..
application_development kconfig: Clean up 'config FOO' (two spaces) definitions 2019-11-04 17:31:27 -05:00
basic samples: basic: Remove disco sample 2019-11-06 10:55:24 -05:00
bluetooth Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
boards drivers: gpio: remove altera gpio driver 2019-11-06 10:56:41 -05:00
cpp_synchronization cleanup: include/: move misc/printk.h to sys/printk.h 2019-06-27 22:55:49 -04:00
display coccinelle: standardize k_sleep calls with integer timeouts 2019-10-09 08:38:10 -04:00
drivers watchdog: Remove CONFIG_WDT_0_NAME usage 2019-11-06 13:51:20 -06:00
gui boards: reel_board: revise SPI routing 2019-10-23 20:58:19 -04:00
hello_world doc: add how to exit from QEMU in samples 2019-09-02 12:06:08 -04:00
mpu cleanup: include/: move flash.h to drivers/flash.h 2019-06-27 22:55:49 -04:00
net samples: net: zperf: Clarify that only iPerf 2.0.5 is supported 2019-11-05 09:29:15 -05:00
nfc/nfc_hello cleanup: include/: move misc/byteorder.h to sys/byteorder.h 2019-06-27 22:55:49 -04:00
philosophers coccinelle: standardize k_sleep calls with integer timeouts 2019-10-09 08:38:10 -04:00
portability x86: consolidate x86_64 architecture, SoC and boards 2019-10-25 17:57:55 -04:00
posix samples: posix: gettimeofday: Demo gettimeofday() returning correct time 2019-10-28 13:04:35 +02:00
sensor doc: fix misspellings in rst docs 2019-10-29 06:01:13 +01:00
shields shields: x_nucleo_iks01a1: Enable IRQ pin for LIS3MDL magn sensor 2019-11-06 17:10:49 +01:00
smp Samples: Add SMP Pi 2019-11-03 12:41:29 +01:00
subsys kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
synchronization tests: tracing: add tests for tracing features 2019-09-27 14:42:22 -04:00
testing/integration license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
userspace samples: add userspace producer/consumer sample 2019-10-31 14:46:08 +01: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 SMP Pi 2019-11-03 12:41:29 +01:00