summaryrefslogtreecommitdiff
path: root/doc/mesh-api.txt
Commit message (Collapse)AuthorAgeFilesLines
* doc/mesh: Add Remote Provisioning DBus APIsBrian Gix2023-01-301-6/+134
| | | | | | | | | | | | Remote Provisioning (introduced in Mesh Profile Specification v1.1) * Allows Provisioners to use a remote server to scan for and provision devices. * Allows Config managers to reprovision existing nodes to: * Refresh Device Keys * Reassign Node Addresses * Refresh Node Composition
* doc/mesh-api: Add ExportKeys callInga Stotland2021-09-271-0/+56
| | | | | | | | | Add description for a new method: ExportKeys() on org.bluez.mesh.Management1 interface. This method is used by the authorized application to export information about network keys, application keys and device keys present in the local key database.
* doc: Inclusive language updateArchie Pusaka2021-09-211-1/+1
| | | | | | | Update the docs to reflect the changes for the other inclusive language updates. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* doc/mesh-api: Add notion of Device UUID complianceInga Stotland2021-02-161-3/+6
| | | | | | Add requirement that the value of Device UUID supplied in CreateNetwork/Join/Import methods should be compliant with RFC 4122.
* doc/mesh-api: Add "options" dictionary to Send/PublishInga Stotland2020-08-261-25/+35
| | | | | | | | | | | | | | | | | | This modifies Send, DevKeySend and Publish methods on mesh.Node interface to include additional argument "options". This new argument is a dictionary that currently has only one new key word defined for Send() and DevKeySend(): "ForceSegmented" - to force small payloads to be sent as one-segment messages In case of Publish(), and additional keyword is defined "Vendor" - 16-bit Company ID as defined by the Bluetooth SIG Other key words may be defined in future to accommodate evolving requirements of Mesh Profile specification. Also, the addition of "options" dictionary to Publish allows to eliminate VendorPublish() method (taken care by "Vendor" keyword).
* doc/mesh-api: Add dictionary to model propertiesInga Stotland2020-07-011-6/+34
| | | | | | | | | | | | | | | | | This changes the signature of "Models" and "VendorModels" properties on org.bluez.mesh.Element1 interface to contain a dictionary with model options. Models: signature change "aq" -> "a(qa{sv})" VendorModels: signature change "a(qq)" -> "a(qqa{sv})" Currently, the defined keywords for the options dictionary are "Publish" - indicates whether the model supports publication mechanism. If not present, publication is enabled. "Subscribe" - indicates whether the model supports subscription mechanism. If not present, subscriptions are enabled. The dictionary allowed to be empty.
* mesh: Replace BeaconFlags with just IvUpdateMichał Lowas-Rzechonek2020-06-181-4/+4
| | | | | | | | To import nodes, applications need just IvIndex and IvUpdate. KeyRefresh phase in under provisioner's control, so we don't need to expose it. Moreover, BeaconFlags property dealt just with the primary net key, and each subnet key is refreshed separately.
* mesh: Rename IVUpdate import flag to IvUpdateMichał Lowas-Rzechonek2020-06-161-1/+1
| | | | Name change for consistency with "IvIndex" property.
* mesh: Add "node is busy" check for Leave() & Attach()Inga Stotland2020-06-101-0/+3
| | | | | | | | | | | | | | | This introduces the following behavior change for those methods on Network interface that specify node token as an input parameter Leave() method: If Leave method is called for a node that is being processed as a result of a Create, Import, Join or Attach method calls in progress, node removal is not allowed and org.bluez.mesh.Error.Busy error is returned. Attach() method: If Attach method is called for a node that is being processed as a result of a Create, Import or Join method calls in progress, node attachment is not allowed and org.bluez.mesh.Error.Busy error is returned.
* mesh: Make "Busy" and "InProgress" to be distinct errorsInga Stotland2020-06-101-1/+1
| | | | | | | | | This separates "Busy" and "InProgress" error codes: MESH_ERROR_IN_PROGRESS maps to org.bluez.mesh.Error.InProgress MESH_ERROR_BUSY maps to org.bluez.mesh.Error.Busy Minor API change: UpdateAppKey() returns "InProgress" error instead of "Busy"
* doc/mesh: Change API to deliver tokens via JoinCompleteMichał Lowas-Rzechonek2020-04-141-13/+17
| | | | | | | | | 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.
* doc/mesh-api: OOB Information field is 16 bit, not 32Michał Lowas-Rzechonek2020-04-011-1/+1
|
* doc/mesh-api: Forward compatibility modificationsInga Stotland2020-03-301-7/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following methods are modified to allow for future development: Interface org.bluez.mesh.Management1: Old: void UnprovisionedScan(uint16 seconds) New: void UnprovisionedScan(dict options) The options parameter is a dictionary with the following keys defined: uint16 Seconds Specifies number of seconds for scanning to be active. If set to 0 or if this key is not present, then the scanning will continue until UnprovisionedScanCancel() or AddNode() methods are called. other keys TBD Old: void AddNode(array{byte}[16] uuid) New: void AddNode(array{byte}[16] uuid, dict options) The options parameter is currently an empty dictionary Interface org.bluez.mesh.Provisioner1 Old: void ScanResult(int16 rssi, array{byte} data) New: void ScanResult(int16 rssi, array{byte} data, dict options) The options parameter is currently an empty dictionary
* doc/mesh-api: Fix reference discrepancy for Import()Inga Stotland2020-01-221-2/+2
| | | | Remove mentioning of ImportLocalNode() method, use Import() instead.
* mesh: Add sequence nr getter to the docJakub Witowski2020-01-141-0/+5
|
* mesh: Fix getting managed objects from ObjectManagerMichał Lowas-Rzechonek2019-12-181-24/+28
| | | | | | | | | | | | | | | | | | | D-Bus spec mandates that GetManagedObjects method of org.freedesktop.DBus.ObjectManager interface returns *children* only: https://dbus.freedesktop.org/doc/dbus-specification.html > All returned object paths are children of the object path implementing > this interface, i.e. their object paths start with the ObjectManager's > object path plus '/' Both test scripts and ELL abuse this by returning application interfaces via ObjectManager attached to the same path, but other D-Bus implementations do not, making Attach() fail because mandatory interfaces cannot be found. This patch fixes the issue by scanning hierarchy returned by GetManagedObjects for object implementing org.bluez.mesh.Application1 interface and keeping that as node's app_path.
* mesh: Inform application about model subscriptionsMichał Lowas-Rzechonek2019-11-261-0/+15
|
* mesh: Provide destination address in MessageReceived APIMichał Lowas-Rzechonek2019-11-261-5/+12
|
* mesh: Add remote boolean to DevKey transactionsBrian Gix2019-10-011-3/+14
| | | | | | DevKey operations require authorization on the part of the applications making the requests. Messages to state changing Servers should use device keys from the remote (destination) to demonstrate authorization.
* doc: Remove uneeded dbus API for App Key RefreshBrian Gix2019-09-101-19/+0
|
* mesh: Add org.bluez.mesh.Node1.Addresses propertyMichał Lowas-Rzechonek2019-08-281-0/+4
| | | | | | | | | | To enable applications to talk to the local node's internal models, it's useful to know its unicast addresses. They are known after CreateNetwork and Import, but after Join, the allocated address is only known to the provisioner. This patch enables read only access to list of allocated unicast addresses.
* mesh: Add documentation for Import() D-Bus APIMichał Lowas-Rzechonek2019-08-011-15/+42
| | | | This replaces previously specified ImportLocalNode() call
* doc/mesh-api: Restore properties in mesh node hierarchyInga Stotland2019-07-261-49/+49
| | | | | | This restores Features, Beacon, BeaconFlags, IvIndex and SecondsSinceLAst heard properties under the org.bluez.mesh.Node1 interface.
* mesh: Check address range passed to ImportRemoteNodeMichał Lowas-Rzechonek2019-07-191-0/+6
| | | | | +changed "not authorized" error to "invalid args" when managing device key for local address range
* doc: Cleanup API Provisioner1 interfaceBrian Gix2019-07-141-5/+8
| | | | | | Modified the RequestProvData In and Out param list to eliminate parameters which can be provided by the Node which owns the procedure, and clean-up the actual error list.
* mesh: Allow to set-up the CRPL with applicationJakub Witowski2019-07-021-0/+4
| | | | | This adds an optional CRPL property to org.bluez.mesh.Application1 interface, allowing to indicate the depth of reply protection list.
* mesh: Remove unused error code from Leave()Jakub Witowski2019-06-241-1/+1
| | | | This removes NotFound error from mesh-api.txt from Leave() function.
* mesh: Add new method for Key Refresh procedureBrian Gix2019-05-241-18/+48
| | | | | | | | | This adds a new method CompleteAppKeyUpdate() on org.bluez.mesh.Management1 interface to be used by the application at the completion of a Key Refresh procedure. This method should be called for each app key that is being updated during the procedure, and must be performed prior to changing the phase of the bound net key to phase 3.
* mesh: Use node uuids as storage directory namesMichał Lowas-Rzechonek2019-05-081-6/+20
| | | | | | | | | | | Instead of keeping track of unique 16bit node identifiers, reuse their UUIDs to create both storage directories and dbus objects. Because of that: - UUID is no longer stored in the JSON file, it's inferred from the directory name instead - Join(), CreateNetwork() and ImportLocalNode() APIs return an error if given UUID already registered within the daemon
* mesh: Add APIs for Provisioner and Config ClientBrian Gix2019-04-221-14/+478
| | | | | The added D-Bus APIs enable Applications to function in a Provisioner Initiator role, and as a Configuration Client.
* mesh: Allow only one app attachment per nodeInga Stotland2019-04-221-0/+1
| | | | | | | | If a node is already attached to an application process, disallow another appication to attach to the same node. This means that an Attach() method called with the token identifying a node that is already in use, returns an error org.bluez.mesh.Error.AlreadyExists
* doc/mesh-api: Fix Attach() method signatureInga Stotland2019-03-011-12/+11
| | | | | Correct return arguments for Attach() method. Also, fix some grammar and formatting.
* doc: Update mesh Agent APIInga Stotland2018-12-051-296/+338
| | | | | Change enumerated values to strings in method parameters, and corrected formatting for 80 character terminals.
* doc: Initial Bluetooth Mesh APIInga Stotland2018-11-221-0/+512
This decribes proposed D-Bus based API for Bluetooth Mesh implementation.