Bluetooth Mesh
Bluetooth Mesh
Bluetooth Mesh
Johan Hedberg
What is Bluetooth Mesh?
• New standard which came out in 2017
• Many-to-many, multi-hop topology
• No new Bluetooth HW required
• Broadcast & relay in a flooding/ripple fashion
• Mainly for signaling – not large data transfer
• Message publication & subscription
• Multi-level security
• Greatly extended range
Mesh in terms of Bluetooth
3
Mesh in terms of LE roles
Central - Peripheral Observer - Broadcaster
• Connection-oriented, between two • Observer scans for advertising
devices packets
• Sensor as peripheral, your phone • Broadcaster sends advertising
or PC as the central packets for everybody who is
scanning
• The natural choice for Mesh
4
Node Types
GATT Low-Power
Proxy Node
GATT
Client Relay Friend
Provisioner
5
Node Lifecycle
Unprovisioned
Device
Node Reset Provisioning: ECDH, OOB,
Network Key, Address
Blacklisted Unconfigured
Mesh Node Mesh Node
6
Node Composition: Elements & Models
Elements Node (Physical device)
• Unique Network Address
• Implements one or more Element (Address)
Models
Models
Model (ID, Messages, States)
• OpCode addressing
• States & Messages State 1 State 2
• Client & Server
7
Mesh Protocol Layers
Models states / messages / behavior
9
Mesh Network Addresses
• 16-bit Network address with several categories/ranges
10
Relaying
• Time-to-Live (TTL, 7-bit, i.e. max 127)
• Decrypt with Network Key
• Decrement TTL
If TTL > 0:
• Re-encrypt with Network Key
• Send out to Network
• Application layer payload remains
encrypted & untouched
• Relay Node may not even have the
Application Key
11
Publish & Subscribe
Nodes Groups Nodes
Subscribe
Publish
Switch 2 Light 2
Den
Switch 3 Light 3
Switch 4 Kitchen Light 4
Switch 5 Light 5
Switch 6 Living
Light 6
Switch 7
Deck Light 7
Security Features
• Authentication during provisioning
• Two level encryption
• Network
• Application
• Replay protection
• IV Index (32-bits)
• Sequence number (24 bits)
• IV Index Update procedure
• Key Refresh
• Node Blacklisting
13
Segmentation & Reassembly
• A message can be either unsegmented or segmented
• Payload
• Unsegmented: 15 bytes
• Segmented: 12 bytes per segment, max 32 segments = 384 bytes
• Contains 4 or 8 byte MIC at the end, reducing usable payload size
• Unsegmented messages are inherently unreliable
• Segments of a segmented message are acknowledged by the receiver
• One-segment “segmented” message can be used for reliable sending
14
Friendship
• 100% duty-cycle scanning needed
for reliability, but consumes a lot
of power
• Mix of battery & mains powered
nodes
• Solution: pair up stable power
supply nodes (Friends) with Low
Power Nodes (LPNs)
• Friends queue up messages for
the LPN
• LPN queries the Friend
periodically if there are any
messages for it
15
Implementation status & plans
16
Support in Zephyr* OS
• Available starting with Zephyr 1.9
• All mandatory features implemented
• Tested against multiple other implementations
• Ported to MyNewt
• Multiple valuable fixes ported back to Zephyr
• Demos possible with many popular supported Zephyr boards
• Come to the Zephyr booth to see it in action!
• Minimum RAM footprint (entire OS with Mesh) is ~12kB
• Fits even the most constrained 16k boards, like BBC micro:bit
19
Questions?
20
Disclaimer
Intel technologies’ features and benefits depend on system configuration and may
require enabled hardware, software or service activation. Performance varies
depending on system configuration. No computer system can be absolutely secure.
Check with your system manufacturer or retailer or learn more at www.intel.com.
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other
countries.
The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth
SIG, Inc. and any use of such marks by Intel Corporation is under license.
*Other names and brands may be claimed as the property of others.
© Intel Corporation