v2: 1. Adjust for changed l_dbus_object_manager_enable parameters 2. Fix AppKey delete and Add Model bindings commands (tools/mesh/cfgli.c) 3. ADjust JSON storage format and add support for NetKey AppKey deletion. ********************* This patch set adds a mesh-cfgclient tool that allows to create mesh networks operating over advertising (PB-ADV) provisioning bearer. The toolimplements support for: - creating of the inital "pcrovisioner" node with the initial network key - adding/removing network and application keys to the network - provisioning remote devices into mesh network - configuring of the provisioned nodes (Config Model Client operations) Network configuration is saved in JSON format file. Disclaimer: the storage is work in progress and is not fully implemented. Also, some functionality overlaps with meshctl tool (GATT based mesh network provisioning and configuration tool). For the time being, these two tools are separate and coexist side by side. Eventually, additional work needs to be done to eleiminate overlapping areas and potentially merge the tools. Currently, meshctl supplemenal files are moved to tools/mesh-gatt Inga Stotland (10): tools/mesh: Remove extra dependencies from agent.c tools/mesh: Move meshctl specific files to mesh-gatt tools: Add mesh-cfgclient tool tools/mesh: move remote node processing to a separate file tools/mesh-cfgclient: Commands for Management iface methods tools/mesh-cfgclient: Add config menu key commands tools/mesh-cfgclient: Add timeout for expected response tools/mesh-cfgclient: Command line option for config tools/mesh: add initial support for config storage tools/mesh-cfgclient: Add README file .gitignore | 1 + Makefile.tools | 46 +- tools/mesh-cfgclient.c | 1861 +++++++++++++++++++++ tools/mesh-gatt/README | 43 + tools/{mesh => mesh-gatt}/config-client.c | 14 +- tools/{mesh => mesh-gatt}/config-server.c | 14 +- tools/{mesh => mesh-gatt}/crypto.c | 5 +- tools/{mesh => mesh-gatt}/crypto.h | 0 tools/{mesh => mesh-gatt}/gatt.c | 11 +- tools/{mesh => mesh-gatt}/gatt.h | 0 tools/mesh-gatt/keys.h | 39 + tools/{mesh => mesh-gatt}/local_node.json | 0 tools/{mesh => mesh-gatt}/mesh-net.h | 0 tools/{mesh => mesh-gatt}/net.c | 16 +- tools/{mesh => mesh-gatt}/net.h | 0 tools/{mesh => mesh-gatt}/node.c | 16 +- tools/{mesh => mesh-gatt}/node.h | 0 tools/{mesh => mesh-gatt}/onoff-model.c | 15 +- tools/{mesh => mesh-gatt}/onoff-model.h | 0 tools/{mesh => mesh-gatt}/prov-db.c | 14 +- tools/{mesh => mesh-gatt}/prov-db.h | 0 tools/{mesh => mesh-gatt}/prov.c | 16 +- tools/{mesh => mesh-gatt}/prov.h | 0 tools/{mesh => mesh-gatt}/prov_db.json | 0 tools/mesh-gatt/util.c | 220 +++ tools/mesh-gatt/util.h | 41 + tools/mesh/README | 43 +- tools/mesh/agent.c | 32 +- tools/mesh/cfgcli.c | 1413 ++++++++++++++++ tools/mesh/cfgcli.h | 25 + tools/mesh/config-model.h | 3 +- tools/mesh/keys.c | 175 ++ tools/mesh/keys.h | 27 +- tools/mesh/mesh-db.c | 899 ++++++++++ tools/mesh/mesh-db.h | 54 + tools/mesh/model.h | 63 + tools/mesh/remote.c | 266 +++ tools/mesh/remote.h | 29 + tools/mesh/util.c | 107 +- tools/mesh/util.h | 14 +- tools/meshctl.c | 22 +- 41 files changed, 5313 insertions(+), 231 deletions(-) create mode 100644 tools/mesh-cfgclient.c create mode 100644 tools/mesh-gatt/README rename tools/{mesh => mesh-gatt}/config-client.c (99%) rename tools/{mesh => mesh-gatt}/config-server.c (94%) rename tools/{mesh => mesh-gatt}/crypto.c (99%) rename tools/{mesh => mesh-gatt}/crypto.h (100%) rename tools/{mesh => mesh-gatt}/gatt.c (98%) rename tools/{mesh => mesh-gatt}/gatt.h (100%) create mode 100644 tools/mesh-gatt/keys.h rename tools/{mesh => mesh-gatt}/local_node.json (100%) rename tools/{mesh => mesh-gatt}/mesh-net.h (100%) rename tools/{mesh => mesh-gatt}/net.c (99%) rename tools/{mesh => mesh-gatt}/net.h (100%) rename tools/{mesh => mesh-gatt}/node.c (98%) rename tools/{mesh => mesh-gatt}/node.h (100%) rename tools/{mesh => mesh-gatt}/onoff-model.c (96%) rename tools/{mesh => mesh-gatt}/onoff-model.h (100%) rename tools/{mesh => mesh-gatt}/prov-db.c (99%) rename tools/{mesh => mesh-gatt}/prov-db.h (100%) rename tools/{mesh => mesh-gatt}/prov.c (98%) rename tools/{mesh => mesh-gatt}/prov.h (100%) rename tools/{mesh => mesh-gatt}/prov_db.json (100%) create mode 100644 tools/mesh-gatt/util.c create mode 100644 tools/mesh-gatt/util.h create mode 100644 tools/mesh/cfgcli.c create mode 100644 tools/mesh/cfgcli.h create mode 100644 tools/mesh/keys.c create mode 100644 tools/mesh/mesh-db.c create mode 100644 tools/mesh/mesh-db.h create mode 100644 tools/mesh/model.h create mode 100644 tools/mesh/remote.c create mode 100644 tools/mesh/remote.h -- 2.21.0