zephyr/include
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
..
app_memory
arch x86: fix z_x86_page_tables_get() for 64-bit 2019-11-06 17:50:34 -08:00
audio
bluetooth Bluetooth: Mesh: Model extension concept 2019-11-07 18:57:32 +02:00
cmsis_rtos_v1
cmsis_rtos_v2
console console: Remove deprecated function console_register_line_input 2019-09-18 19:14:25 -05:00
crypto cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
data include: json: reorder designated initializers 2019-07-22 18:10:51 -07:00
debug debug: tracing: Remove unneeded abstraction 2019-09-26 06:26:22 -04:00
dfu include/dfu: rearrange for standard use of extern "C" in private headers 2019-08-13 18:00:31 +02:00
disk sdhc: rename disk_access_sdhc.c 2019-07-10 11:58:15 -05:00
display subsys/cfb: improve font structure packing 2019-07-31 05:43:50 -04:00
drivers uart: Improve line control documentation 2019-11-07 15:54:40 +01:00
dt-bindings dt-bindings: add support for parsing stm32 dma consumer cells 2019-11-06 14:14:39 +01:00
fs doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
linker x86: consolidate x86_64 architecture, SoC and boards 2019-10-25 17:57:55 -04:00
logging logging: add syst format output 2019-10-29 10:18:51 +01:00
mgmt
misc cleanup: include/: move misc/reboot.h to power/reboot.h 2019-06-27 22:55:49 -04:00
net net: tcp: Handle special case where accepted socket is closed 2019-10-28 13:58:59 +02:00
nvs
posix include: posix: time.h: Make CLOCK_REALTIME, etc. compatible with Newlib 2019-10-28 13:04:35 +02:00
power cleanup: include/: move misc/reboot.h to power/reboot.h 2019-06-27 22:55:49 -04:00
random subsys/random: Add cryptographically secure and bulk fill functions 2019-11-05 19:36:42 +01:00
settings doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
shell doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
stats
storage doc: fix flash_area_get_sectors doc 2019-10-25 16:40:12 -05:00
sys headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
toolchain headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
usb
zephyr riscv: make core code 64-bit compatible 2019-08-02 13:54:48 -07:00
adc.h
atomic.h
base64.h
cache.h
can.h
clock_control.h
console.h
counter.h
crc.h
device.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
disk_access.h
display.h
dma.h
entropy.h
exc_handle.h
fatal.h doc: fix misspelling in API doxygen comments 2019-10-29 06:00:14 +01:00
fcb.h
flash_map.h
flash.h
fs.h
generated_dts_board.h dts: Add new DTS/binding parser 2019-07-29 16:22:17 -04:00
gna.h
gpio.h
hwinfo.h
i2c.h
i2s.h
init.h
ipm.h
irq_nextlevel.h irq_nextlevel: add API to query if an IRQ line is enabled 2019-09-07 10:20:51 -04:00
irq_offload.h kernel: activate arch interface headers 2019-10-21 10:13:38 -07:00
irq.h kernel: activate arch interface headers 2019-10-21 10:13:38 -07:00
json.h
kernel_includes.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
kernel_structs.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
kernel_version.h
kernel.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
led_strip.h
led.h
pinmux.h
power.h
ptp_clock.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
pwm.h
ring_buffer.h
sched_priq.h cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
sensor.h
shared_irq.h
spi.h
spinlock.h ztest: add missing headers 2019-10-23 10:47:22 -04:00
stats.h
sw_isr_table.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys_clock.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys_io.h
syscall_handler.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
syscall.h kernel: use uintptr_t for syscall arguments 2019-11-06 09:04:16 -08:00
timeout_q.h kernel: include: Fix warning when !CONFIG_SYS_CLOCK_EXISTS 2019-11-07 08:22:59 -05:00
toolchain.h toolchain: Fix for off-tree toolchains 2019-10-08 17:09:23 -04:00
tracing.h
tty.h
uart.h
wait_q.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
watchdog.h
zephyr.h