mbox series

[BlueZ,00/20] Mesh Configuration Database

Message ID 20210923032603.50536-1-inga.stotland@intel.com (mailing list archive)
Headers show
Series Mesh Configuration Database | expand

Message

Stotland, Inga Sept. 23, 2021, 3:25 a.m. UTC
This patch set (I apologize for its size, but this cannot be helped)
implements support for the newly published Mesh Configuration Database
Profile.

The changes are mostly contained to tools/mesh-cfgclient.c and tools/mesh
subdirectory. The only exception is the introduction of a new D-Bus mesh
API method ExportKeys() on org.bluez.mesh.Management1 interface.

The new functionality allows to export a snapshot of mesh state
from the point of view of mesh provisioner/configuration manager in
a standard format that can be used for to transferring the "ownership"
of the mesh configuration to another provisioner/configuration manager.

The changes break backwards compatibility with for the previous
versions of config-db.json that were generated when using
mesh-cfgclient tool. This can be amended by manually correcting the
field names and property values.

Inga Stotland (20):
  tools/mesh-cfgclient: Save provisioner info
  tools/mesh-cfgclient: Add timestamp to config database
  tools/mesh-cfgclient: Update stored NetKey and AppKey
  tools/mesh-cfgclient: Keep track of updated keys
  tools/mesh: Add new info to stored remote nodes
  tools/mesh-cfgclient: Overwrite config values when adding new ones
  tools/mesh-cfgclient: Store remote node's model bindings
  tools/mesh-cfgclient: Store remote node's model subs
  tools/mesh-cfgclient: Disallow model commands w/o composition
  tools/mesh-cfgclient: Store remote's model publication info
  tools/mesh-cfgclient: Check the result of config save
  tools/mesh-cfgclient: Rename mesh-db APIs for consistency
  tools/mesh-cfgclient: Save remote node feature setting
  tools/mesh-cfgclient: Store remote's heartbeat sub/pub
  tools/mesh-cfgclient: Add group parent address for DB compliance
  doc/mesh-api: Add ExportKeys call
  mesh: Implement ExportKeys() method
  tools/mesh-cfgclient: Store UUIDs in standard format
  tools/mesh-cfgclient: Excluded addresses property
  tools/mesh-cfgclient: Export configuration database

 doc/mesh-api.txt       |   56 ++
 mesh/keyring.c         |  286 ++++++++-
 mesh/keyring.h         |    2 +
 mesh/manager.c         |   35 ++
 tools/mesh-cfgclient.c |  212 ++++++-
 tools/mesh/cfgcli.c    |  284 ++++++---
 tools/mesh/keys.c      |    4 +-
 tools/mesh/mesh-db.c   | 1260 +++++++++++++++++++++++++++++++++++++---
 tools/mesh/mesh-db.h   |   66 ++-
 tools/mesh/model.h     |   13 +-
 tools/mesh/remote.c    |  205 +++++--
 tools/mesh/remote.h    |   11 +-
 12 files changed, 2206 insertions(+), 228 deletions(-)

Comments

Brian Gix Sept. 27, 2021, 8:27 p.m. UTC | #1
With very minor tweeks (to avoid introducing, then removing obsolete naming) Patchset has been applied.

On Wed, 2021-09-22 at 20:25 -0700, Inga Stotland wrote:
> This patch set (I apologize for its size, but this cannot be helped)
> implements support for the newly published Mesh Configuration Database
> Profile.
> 
> The changes are mostly contained to tools/mesh-cfgclient.c and tools/mesh
> subdirectory. The only exception is the introduction of a new D-Bus mesh
> API method ExportKeys() on org.bluez.mesh.Management1 interface.
> 
> The new functionality allows to export a snapshot of mesh state
> from the point of view of mesh provisioner/configuration manager in
> a standard format that can be used for to transferring the "ownership"
> of the mesh configuration to another provisioner/configuration manager.
> 
> The changes break backwards compatibility with for the previous
> versions of config-db.json that were generated when using
> mesh-cfgclient tool. This can be amended by manually correcting the
> field names and property values.
> 
> Inga Stotland (20):
>   tools/mesh-cfgclient: Save provisioner info
>   tools/mesh-cfgclient: Add timestamp to config database
>   tools/mesh-cfgclient: Update stored NetKey and AppKey
>   tools/mesh-cfgclient: Keep track of updated keys
>   tools/mesh: Add new info to stored remote nodes
>   tools/mesh-cfgclient: Overwrite config values when adding new ones
>   tools/mesh-cfgclient: Store remote node's model bindings
>   tools/mesh-cfgclient: Store remote node's model subs
>   tools/mesh-cfgclient: Disallow model commands w/o composition
>   tools/mesh-cfgclient: Store remote's model publication info
>   tools/mesh-cfgclient: Check the result of config save
>   tools/mesh-cfgclient: Rename mesh-db APIs for consistency
>   tools/mesh-cfgclient: Save remote node feature setting
>   tools/mesh-cfgclient: Store remote's heartbeat sub/pub
>   tools/mesh-cfgclient: Add group parent address for DB compliance
>   doc/mesh-api: Add ExportKeys call
>   mesh: Implement ExportKeys() method
>   tools/mesh-cfgclient: Store UUIDs in standard format
>   tools/mesh-cfgclient: Excluded addresses property
>   tools/mesh-cfgclient: Export configuration database
> 
>  doc/mesh-api.txt       |   56 ++
>  mesh/keyring.c         |  286 ++++++++-
>  mesh/keyring.h         |    2 +
>  mesh/manager.c         |   35 ++
>  tools/mesh-cfgclient.c |  212 ++++++-
>  tools/mesh/cfgcli.c    |  284 ++++++---
>  tools/mesh/keys.c      |    4 +-
>  tools/mesh/mesh-db.c   | 1260 +++++++++++++++++++++++++++++++++++++---
>  tools/mesh/mesh-db.h   |   66 ++-
>  tools/mesh/model.h     |   13 +-
>  tools/mesh/remote.c    |  205 +++++--
>  tools/mesh/remote.h    |   11 +-
>  12 files changed, 2206 insertions(+), 228 deletions(-)
>