[−][src]Crate bluetooth_mesh
Pure Rust Bluetooth Mesh Stack.
The layers are designed so they can be put together in different ways to make different stacks
(single-threaded, multi-threaded, multi-radio, etc).
General stack glue is available in stack while a prebuilt full-stack requires std,
async, etc.
How a Bluetooth Mesh Stack works
Modules
| access | Access Layer between Models and the rest of the stack (Transport, Network, etc). The most surface layer of the stack. |
| address | Bluetooth Mesh Addresses. All address are 16-bit except for Virtual Addresses. Virtual Address are 128-bit UUIDs but only a 16-bit hash of the UUID is sent with message. |
| advertisement | |
| beacon | Bluetooth Mesh Beacon Layer. Currently only supports |
| bearer | Bluetooth Mesh Bearers. |
| bytes | |
| control | Bluetooth Mesh Control Layer. |
| crypto | Crypto functions (AES, ECDH) that the Mesh uses.
AES is primarily used in the |
| device_state | Device State Manager used to storing device state and having an config client control it. |
| foundation | Foundation Layer. Handles Publication, Config, etc. |
| friend | Optional Bluetooth Mesh Friends feature. |
| interface | Network Input/Output Interface and Filter. |
| lower | Lower Transport Layer. Primarily handles 4 types of PDUs. |
| mesh | Common Bluetooth Mesh Objects/Structures. |
| models | |
| net | Bluetooth Mesh Network Layer is BIG Endian |
| properties | Bluetooth Properties (From GATT). |
| provisioning | Provisioning Layer for Bluetooth Mesh Provisioning is Big Endian. |
| random | Random Number generation for the Mesh. Generalized over the rand Library so there's no hard dependencies. |
| reassembler | Transport Layer Reassembler. |
| relay | Optional Relay Feature |
| replay | Replay Cache based on a BTreeMap that keeps track of each ivi and seq per src address. Updating the IVIndex causes a 'Garbage Collection' like effect that will delete any cache entries for any 'too' old IVIndices. |
| segmenter | |
| stack | Bluetooth Mesh Stack that connects all the layers together. See ['StackInternals'] for more. |
| timestamp | Timestamp module for keeping track of time. Different systems have different clock sources so
this module generalizes over it. By default, it uses the |
| upper | Upper Transport Layer. Primarily focusing on segmentation and reassembly. |
| uuid | Universally Unique Identifiers or UUIDs. |