This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Mesh Provisioner Recovery

Hello,

 

I have questions on the Provisioner of a network. Reading through the documentation on Mesh Provisioning, I have come to understand that some amount of data has to be kept by the proivsioner on the last device it provisioned so it can provision the next device. I am also lead to believe that this information can be held in the devices flash memory, i.e light switch demo, or off board using the serial example.

 

I have a few questions on this data and the process of recovering from a device failure:

  1. What is the data needed by the provisioner?
  2. Can the provisioning data be saved off board and restored later? If so, how?
  3. What happens if this provisioning data is lost or becomes out of sync?
  4. If a provisioner is lost, how does a network recuperate?
  • hello MathewJ,

    1. What is the data needed by the provisioner?

    In a Bluetooth Mesh network the Provisioner has to keep track of a plethora of data. This includes node unicast addresses, network and application keys and well as device keys etc. (see the example image below..) It represents a sample Bluetooth mesh json schema layout taken from provisioning a Zephyr mesh (2 nodes) via Bluez on a Raspberry Pi 3, but the info is similar for all Bluetooth provisioners and is only a subset of the info that could potentially be stored.


    2. Can the provisioning data be saved off board and restored later? If so, how?

    It is certainly possible to off board this meta-data for later restoration, however what the mesh specification doesn't currently do, is set a standard for how this is to be/can be done so it would be implementation specific.


    3. What happens if this provisioning data is lost or becomes out of sync?

    Again, how you would tackle provisioning data loss or sync issues would be down to your implementation. With data loss you could potentially have provisioned nodes which no longer 'appear' in your mesh network (from the provisioners perspective) so you wouldn't be able to manage those nodes (remove from network/re-configure into groups/engage in key refresh etc.) On the sync front, implies that you have a 2nd (and/or multiple) provisioner(s) so that again would need you to ensure that your backup/failover procedures are adequate. This is all very do-able but the SIG (for now) have left this part up to vendors/third-parties to tackle, although I believe that there is a SIG initiative to implement a JSON type format for mesh provisioning data.


    4. If a provisioner is lost, how does a network recuperate?

    No, the mesh network does not recuperate. Sans any applicable backup, if the provisioner is lost then your mesh network is effectively no more. My understanding is that this would therefore require a factory reset of all your nodes and a re-building of the mesh network. Again, the pain point will be determined by whether it's a simple home automation type of mesh or a large scale industrial lighting/asset tracking setup in place. As you should be able to determine, the provisioner is at the heart of a mesh network (although it's not needed for the network to send messages within itself) so how you implement 3. (above) would be especially significant.


    Regards,

Related