zephyr/subsys/bluetooth/mesh
Trond Einar Snekvik 56a918f8ca Bluetooth: Mesh: Rework msg_cache
Changes the behavior of the message cache to optimize for cache
capacity. Previously, the message cache's primary function was to avoid
decrypting messages multiple times, although the cache's main function
in the spec is to avoid message rebroadcasting. Optimizing for minimal
decryption causes us to fill the network cache faster, which in turn
causes more cache misses, potentially outweighing the advantage.

Now stores src + seq in message cache instead of field hash value. This
cuts cache size in two, while including more of the sequence number than
before.

Adds messages to the cache only after the packet is successfully
decrypted. This reduces noise in the cache, and ensures that no
invalid deobfuscations are added.

Additionally, this fixes a bug where multiple calls to net_decrypt with
the same packet failed, as the message cache found its own entry from
the previous call.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2020-03-10 17:13:32 +02:00
..
access.c Bluetooth: Mesh: Support reliable sending when publishing 2020-02-07 20:42:15 +02:00
access.h
adv.c kernel: overhaul unused stack measurement 2020-02-08 10:02:35 +02:00
adv.h Bluetooth: Mesh: Segmented TX to groups 2020-03-10 12:17:13 +02:00
beacon.c
beacon.h
cdb.c Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
cfg_cli.c Bluetooth: Mesh: Fixes Config client send publish message 2019-11-14 14:26:21 +02:00
cfg_srv.c Bluetooth: Mesh: Fix possible NULL dereference in BT_DBG statement. 2020-03-06 10:04:46 +02:00
CMakeLists.txt Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
crypto.c Bluetooth: Move Mesh CCM into a separate module 2020-01-30 12:41:45 +02:00
crypto.h
foundation.h
friend.c Bluetooth: mesh: Use 24-bit functions 2020-01-02 19:05:27 +01:00
friend.h
health_cli.c
health_srv.c
Kconfig kconfig: Replace some single-symbol 'if's with 'depends on' 2020-02-08 08:32:42 -05:00
lpn.c Bluetooth: Mesh: Fix PreviousAddress endianess in Friend Request 2020-01-03 10:14:10 +01:00
lpn.h
main.c Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
mesh.h Bluetooth: Mesh: Model start callback 2020-01-11 18:20:00 +01:00
net.c Bluetooth: Mesh: Rework msg_cache 2020-03-10 17:13:32 +02:00
net.h Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
prov.c Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
prov.h
proxy.c Bluetooth: Mesh: GATT Proxy Spec 1.0.1 changes 2020-02-14 14:43:06 +02:00
proxy.h
settings.c Bluetooth: Mesh: Fix cdb key update iteration 2020-03-05 20:33:07 +02:00
settings.h Bluetooth: Mesh: Add database for managing nodes and keys 2020-02-05 18:47:41 +02:00
shell.c Bluetooth: Mesh: CDB for config client in shell 2020-03-10 12:16:31 +02:00
test.c
test.h
TODO
transport.c Bluetooth: Mesh: Segmented TX to groups 2020-03-10 12:17:13 +02:00
transport.h