[][src]Crate bluetooth_mesh

Modules

access

Access Layer between Models and the rest of the stack (Transport, Network, etc). The most surface layer of the stack.

address

Mesh Addresses | Bits (16) | Type | |-----------------------|---------------| | 0b0000 0000 0000 0000 | Unassigned | | 0b0xxx xxxx xxxx xxxx | Unicast | | 0b10xx xxxx xxxx xxxx | Virtual | | 0b11xx xxxx xxxx xxxx | Group |

beacon

Bluetooth Mesh Beacon Layer. Currently only supports SecureNetworkBeacons and UnprovisionedDeviceBeacons.

bearer

Bluetooth Mesh Bearers.

ble

Generic BLE driver targeting mostly Bluetooth Advertisements. Implements the HCI layer.

control

Bluetooth Mesh Control Layer.

crypto

Crypto functions (AES, ECDH) that the Mesh uses. AES is primarily used in the crypto::k_funcs and in network/application layer encryption. ECDH is used for the provisioning key exchange.

device_state

Device State Manager used to storing device state and having an config client control it.

element
foundation
friend

Optional Bluetooth Mesh Friends feature.

lower

Lower Transport Layer. Primarily handles 4 types of PDUs. | Segmented |

mesh

Common Bluetooth Mesh Objects/Structures.

mesh_io

Mesh IO Layer. Generalized IO for PDU and Beacons.

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.

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.

scheduler

Arbitrary Scheduler module mostly used for Packet Schedule but also for Publish scheduling and other timing related things.

serializable
stack
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 std::time::Instant but it could use a crystal oscillator clock (for ARM) or some other source.

upper

Upper Transport Layer. Primarily focusing on segmentation and reassembly.

uuid

Universally Unique Identifiers or UUIDs.