diff options
author | MichaĆ Lowas-Rzechonek <michal.lowas-rzechonek@silvair.com> | 2020-04-14 10:55:54 +0200 |
---|---|---|
committer | Brian Gix <brian.gix@intel.com> | 2020-04-14 08:45:47 -0700 |
commit | 2fb966d8044feb4f2deca840eb0ad399c1036cd1 (patch) | |
tree | 957be90eabae65504a84eeace85c5b0cb6788b04 /doc/mesh-api.txt | |
parent | e3b8a6484b23650f2e55047240dac25fece697cf (diff) | |
download | bluez-2fb966d8044feb4f2deca840eb0ad399c1036cd1.tar.gz |
doc/mesh: Change API to deliver tokens via JoinComplete
If Application is not be able to reliably store the token, the daemon
will end up with a uncontrollable node in its database.
Let's fix the issue by always delivering tokens using JoinComplete call,
and expecting a reply - if the application return an error, daemon will
get rid of the node.
Diffstat (limited to 'doc/mesh-api.txt')
-rw-r--r-- | doc/mesh-api.txt | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt index 6ecb81650..24cface22 100644 --- a/doc/mesh-api.txt +++ b/doc/mesh-api.txt @@ -29,6 +29,10 @@ Methods: therefore attempting to call this function using already registered UUID results in an error. + When provisioning finishes, the daemon will call either + JoinComplete or JoinFailed method on object implementing + org.bluez.mesh.Application1 interface. + PossibleErrors: org.bluez.mesh.Error.InvalidArguments org.bluez.mesh.Error.AlreadyExists, @@ -123,7 +127,7 @@ Methods: PossibleErrors: org.bluez.mesh.Error.InvalidArguments - uint64 token CreateNetwork(object app_root, array{byte}[16] uuid) + void CreateNetwork(object app_root, array{byte}[16] uuid) This is the first method that an application calls to become a Provisioner node, and a Configuration Client on a newly @@ -144,22 +148,20 @@ Methods: therefore attempting to call this function using already registered UUID results in an error. - The returned token must be preserved by the application in - order to authenticate itself to the mesh daemon and attach to - the network as a mesh node by calling Attach() method or - permanently remove the identity of the mesh node by calling - Leave() method. - The other information the bluetooth-meshd daemon will preserve about the initial node, is to give it the initial primary unicast address (0x0001), and create and assign a net_key as the primary network net_index (0x000). + Upon successful processing of Create() method, the daemon + will call JoinComplete method on object implementing + org.bluez.mesh.Application1. + PossibleErrors: org.bluez.mesh.Error.InvalidArguments org.bluez.mesh.Error.AlreadyExists, - uint64 token Import(object app_root, array{byte}[16] uuid, + void Import(object app_root, array{byte}[16] uuid, array{byte}[16] dev_key, array{byte}[16] net_key, uint16 net_index, dict flags, uint32 iv_index, uint16 unicast) @@ -204,11 +206,9 @@ Methods: The unicast parameter is the primary unicast address of the imported node. - The returned token must be preserved by the application in - order to authenticate itself to the mesh daemon and attach to - the network as a mesh node by calling Attach() method or - permanently remove the identity of the mesh node by calling - Leave() method. + Upon successful processing of Import() method, the daemon will + call JoinComplete method on object implementing + org.bluez.mesh.Application1 interface. PossibleErrors: org.bluez.mesh.Error.InvalidArguments, @@ -758,6 +758,10 @@ Methods: permanently remove the identity of the mesh node by calling Leave() method. + If this method returns an error, the daemon will assume that the + application failed to preserve the token, and will remove the + freshly created node. + void JoinFailed(string reason) This method is called when the node provisioning initiated by |