| a73cdc09 |
mesh: Fix test-join to include mandatory VendorModels property |
Michał Lowas-Rzechonek |
6 years ago |
1 file, +15, -1 |
| ab95c132 |
mesh: Ignore Composition features during attach
Node Features are currently all under the control of the mesh daemon,
and should be ignored when attaching. Eventually all Composition
feature bits will be controlled by a master mesh.conf file, overriding
any local node specific settings. |
Brian Gix |
6 years ago |
1 file, +4, -0 |
| abe8f8f8 |
tools/mesh-cfgclient: Fix agent method signatures
This adds return parameter name to PromptNumeric and PromptStatic
method signatures. Also, style fixes. |
Inga Stotland |
6 years ago |
1 file, +5, -4 |
| 56d144ca |
mesh: Fix dbus management interface input params
Previously input parameters in "org.bluez.mesh.Management1"
would not register properly, being shifted by one:
<method name="ImportRemoteNode">
<arg name="" type="q" direction="in"/>
<arg name="primary" type="y" direction="in"/>
<arg name="count" type="ay" direction="in"/>
</method>
This fixes this issue:
<method name="ImportRemoteNode">
<arg name="primary" type="q" direction="in"/>
<arg name="count" type="y" direction="in"/>
<arg name="dev_key" type="ay" direction="in"/>
</method> |
Rafał Gajda |
6 years ago |
1 file, +29, -31 |
| 81f7c2e1 |
tools/mesh-cfgclient: Add full support inOOB and outOOB
Add support for all the forms of inOOB and outOOB prompt and display
requests from the Provisioner for a remote device:
"push", "twist", "blink", "beep", "vibrate", "in-numeric",
"out-numeric", "in-alpha", and "out-alpha" |
Inga Stotland |
6 years ago |
4 files, +168, -44 |
| 4853937e |
mesh: Fix inOOB and outOOB agent handling on prov initiate
This code fixes the Provisioner Initiator role so that the following
Out-of-Band agent calls are made correctly, and their results handled
properly:
"push", "twist", "blink", "beep", "vibrate", "in-numeric",
"out-numeric", "in-alpha", "out-alpha" |
Brian Gix |
6 years ago |
4 files, +81, -24 |
| 53a81750 |
mesh: Fix crash after deleting all subscriptions |
Rafał Gajda |
6 years ago |
1 file, +2, -3 |
| 8a29b59d |
mesh: fix node default TTL
There is a confusion between the node default TTL (section 4.2.7) and
the publish TTL (section 4.2.2.5):
- The node default TTL can only take values 0x00, and 0x02 to 0x7f. The
value 0xff is not prohibited.
- The publish TTL can take values 0x00 to 0x7f, as well as 0xff which
means use the node default TTL.
Currently the default node TTL is set to 0xff (DEFAULT_TTL), and
read_default_ttl() also allows such a value. This patch fixes that to
use 0x7f (TTL_MASK) as the default value instead.
Note that the code handling OP_CONFIG_DEFAULT_TTL_SET correctly use 0x7f
(TTL_MASK) for the upper allowed limit. |
Aurelien Jarno |
6 years ago |
2 files, +3, -3 |
| f5c178d1 |
mesh: Correct typo in cfg_cmd table |
Steve Brown |
6 years ago |
1 file, +2, -2 |
| dcc46d4c |
mesh: Fix io inititalization sequence
This introduces a chain of callbacks to indicate whether mesh io
is initialized and mesh network is ready to use.
This fixes the reported situation when the receive callbacks
were setup before the HCI was fully initialized. In other words,
BT_HCI_CMD_LE_SET_SCAN_PARAMETERS was called before BT_HCI_CMD_RESET
and, as the result, the callback issueing BT_HCI_CMD_LE_SET_SCAN_ENABLE
command was not called. |
Inga Stotland |
6 years ago |
7 files, +107, -35 |
| d64f6c88 |
mesh: Cancel unprovisioned scan on exit or app disconnect
If a provisioner app quits or the daemon is stopped while there's
an active scan for unprovisioned devices in progress, the scan needs
to be explicitly canceled. |
Inga Stotland |
6 years ago |
3 files, +19, -0 |
| 6dcea66f |
mesh: Add missing property interface to node objects |
Michał Lowas-Rzechonek |
6 years ago |
1 file, +8, -0 |
| 8e5a2f9d |
mesh: Fix ignored return value
This fixes the following build error when compiling in maintainer mode:
mesh/keyring.c: In function ‘finalize’:
mesh/keyring.c:142:8: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
(void)write(fd, &key, sizeof(key));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
Michał Lowas-Rzechonek |
6 years ago |
1 file, +3, -1 |
| fa1ad60f |
core/advertising: Fix crash when client is added after unregistration
After "register_advertisement()" callback "client_proxy_added()" was yet
called but it was actually called after: "unregister_advertisement()" which
caused segmentation fault because client was removed twice. |
Simon Mikuda |
6 years ago |
1 file, +2, -0 |
| caff2b48 |
core/advertising: Fix crash when unregistering advertisement too fast
When advertisement is unregistered during MGMT_OP_ADD_ADVERTISING it will
crash in add_adv_callback because struct btd_adv_client no longer exist.
This is seen also in debug log from bluetoothd:
bluetoothd[29698]: src/advertising.c:register_advertisement() RegisterAdvertisement
bluetoothd[29698]: src/advertising.c:client_create() Adding proxy for /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:register_advertisement() Registered advertisement at path /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180D
bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180F
bluetoothd[29698]: src/advertising.c:parse_manufacturer_data() Adding ManufacturerData for ffff
bluetoothd[29698]: src/advertising.c:parse_service_data() Adding ServiceData for 9999
bluetoothd[29698]: src/advertising.c:parse_data() Adding Data for type 0x26 len 3
bluetoothd[29698]: src/advertising.c:refresh_adv() Refreshing advertisement: /org/bluez/example/advertisement0
bluetoothd[29698]: src/advertising.c:unregister_advertisement() UnregisterAdvertisement
bluetoothd[29698]: src/advertising.c:add_adv_callback() Advertisement registered: �
Segmentation fault (core dumped) |
Simon Mikuda |
6 years ago |
1 file, +26, -8 |
| f12d3386 |
tools/mesh-cfgclient: add unbind command
This reuses the existing cmd_bind for both opcodes. cmds[] already has
code to handle it. |
Aurelien Jarno |
6 years ago |
1 file, +16, -4 |
| 93eaad58 |
mesh: fix sending messages to group addresses
When sending a message to a group address (either virtual or fixed), it
has to be sent OTA even if successfully enqueued to an internal model. |
Aurelien Jarno |
6 years ago |
1 file, +3, -3 |
| 5ae38ddb |
mesh: Fix clean up after AddNode method
This fixes the cleanup routine that is called after AddNode method
on org.bluez.mesh.Manager1 interface is complete: do not remove
the agent associated with the Provisioner (owner of Manager interface). |
Inga Stotland |
6 years ago |
1 file, +1, -3 |
| 220ab7b8 |
tools/mesh-cfgclient: fix binaries and config name in README
This patch fixes the mesh-cfgclient README file:
- The configuration directory is meshcfg not mesh-cfgcli
- The home directory is looked up using $HOME not using /home/$USER
- The binary is called mesh-cfgclient, not mesh-config
- The -c option takes a config file path, not the directory where the
config file is stored. |
Aurelien Jarno |
6 years ago |
1 file, +3, -3 |
| 4f4ac13e |
unit: Fixed Mesh Crypto unit test build for LTO
Was erroneously compiling and linking explicit unit test versions of the
ELL source dependancies while also linking with the library made from
same sources. This created Link Time Optimization (LTO) problems when
calling exit(), as there were two copies of the constructors and
destructors from ell/log.c. |
Brian Gix |
6 years ago |
1 file, +2, -4 |
| 29c1ed83 |
tools/mesh-cfgclient: Add README file |
Inga Stotland |
6 years ago |
1 file, +54, -0 |
| 5c6e6e55 |
tools/mesh: add initial support for config storage
This adds support for storing the state of a mesh network.
The configuration is written out in JSON format. The initial
configuration file is generated automatically upon the
successful completion of "create" command form the main menu. |
Inga Stotland |
6 years ago |
8 files, +1307, -43 |
| cacd2581 |
tools/mesh-cfgclient: Command line option for config
This adds "-c" option to specify full path to configuration file.
If the path is not provided, the application will attempt to open
in the following order:
1) $XDG_CONFIG_HOME/meshcfg/config_db.json
2) $HOME/meshcfg/config_db.json
if the file does not exist, it will be generated for a newly created
network, i.e., upon successful completion of "create" command. |
Inga Stotland |
6 years ago |
1 file, +70, -5 |
| cf291d29 |
tools/mesh-cfgclient: Add timeout for expected response
This adds a pending request queue for the issued commands awaiting
response from a remote config server. The tool forces "single-issue"
of a config command, i.e. only one command that has a specified return
type is allowed to be outstanding per a remote node address.
That is, if AppKeyAdd command to a node is pending response, the tool
disallows sending another AppKeyAdd, AppKeyUpdate or AppKeyDelete to
the same address until response timeout expires (notification will
be displayed).
The default response timeout is set to 2 seconds and is configurable
by "timeout" command. |
Inga Stotland |
6 years ago |
3 files, +135, -4 |
| 7616e582 |
tools/mesh-cfgclient: Add config menu key commands
This adds implementation for config client commands to add/update
NetKeys and AppKeys on a remote node. |
Inga Stotland |
6 years ago |
1 file, +221, -72 |
| 763b1d03 |
tools/mesh-cfgclient: Commands for Management iface methods
This adds complete list of commenads that excercise calls to
org.bluez.mesh.Manager1 methods:
"appkey-create": CreateAppKey()
"appkey-import": ImportAppKey()
"appkey-update": UpdateAppKey()
"appkey-delete": DeleteAppKey()
"subnet-create": CreateSubnet()
"subnet-import": SubnetImport()
"subnet-update": SubnetUpdate()
"subnet-delete": SubnetDelete()
"subnet-set-phase": SetKeyPhase()
"node-import": ImportRemoteNode()
"node-delete": DeleteRemoteNode() |
Inga Stotland |
6 years ago |
1 file, +520, -31 |
| d2ff3092 |
tools/mesh: move remote node processing to a separate file
This confines the functionality related to remote node
housekeeping into a separate file remote.c |
Inga Stotland |
6 years ago |
4 files, +165, -68 |
| 5759c461 |
tools: Add mesh-cfgclient tool
This adds a tool that allows to create mesh networks
opreating over advertising (PB-ADV) provisioning bearer.
The main commands are:
create - Create new mesh network with one initial node
discover-unprovisioned - Look for devices to provision
list-unprovisioned - List unprovisioned devices
provision - Initiate provisioning
list-nodes - List remote mesh nodes |
Inga Stotland |
6 years ago |
11 files, +2804, -1 |
| fead292f |
tools/mesh: Move meshctl specific files to mesh-gatt |
Inga Stotland |
6 years ago |
48 files, +10043, -10027 |
| 2777515a |
tools/mesh: Remove extra dependencies from agent.c
This removes dependency on glib and mesh/util.c.
Also, fixes few style glitches. |
Inga Stotland |
6 years ago |
1 file, +23, -9 |
| 05e7b8ff |
mesh: Add authorization checks for Manager iface methods
This adds a check for org.bluez.mesh.Manager1 interface calls to
validate that a message sender, i.e. thatt the sender is the original
owner of the node object generated on Attach() method call.
If the check fails, org.bluez.mesh.Error.NotAuthorized is returned. |
Inga Stotland |
6 years ago |
1 file, +57, -3 |
| e002fd43 |
Release 5.52 |
Marcel Holtmann |
6 years ago |
2 files, +5, -1 |
| 69523592 |
gitignore: Ignore test-mesh-crypto executable |
Marcel Holtmann |
6 years ago |
1 file, +1, -0 |
| 2d50e393 |
build: Require at least version 0.26 when building with external ELL |
Marcel Holtmann |
6 years ago |
1 file, +2, -2 |
| 927cc54f |
tools: Adjust for changed l_dbus_object_manager_enable parameters |
Marcel Holtmann |
6 years ago |
1 file, +1, -1 |
| ba617285 |
mesh: Adjust for changed l_dbus_object_manager_enable parameters |
Marcel Holtmann |
6 years ago |
1 file, +1, -1 |
| bf6f4a28 |
mesh: Fix reading/writing key indices
This fixes inconsistency when reading/writing NetKey and AppKey
indices to/from JSON config storage:
- when writing, convert an integer to hex string
- when reading, convert hex string to uint16 integer |
Inga Stotland |
6 years ago |
1 file, +40, -27 |
| 2d249af3 |
Include limits.h for PATH_MAX |
Jory Pratt |
6 years ago |
4 files, +4, -0 |
| b9cfdb61 |
a2dp: Remove experimental flag for remote MediaEndpoint
This makes the MediaEndpoint and stable API for remote endpoints which
aligns with RegisterApplication API which is already stable. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +5, -12 |
| 4881c265 |
mesh: Implement AddAppKey and AddNetKey methods
This adds implementation for the following methods on
org.bluez.mesh.Node1 interface:
void AddNetKey(object element_path, uint16 destination,
uint16 subnet_index, uint16 net_index, boolean update)
void AddAppKey(object element_path, uint16 destination,
uint16 app_index, uint16 net_index, boolean update) |
Inga Stotland |
6 years ago |
1 file, +132, -2 |
| 12f29e68 |
mesh: Add provisioner confirmation
This adds codes to send a confirmationfrom provisioner's side
after receiving a callback from a provisioning agent. |
Inga Stotland |
6 years ago |
1 file, +20, -16 |
| 8812296c |
unit: Make mesh tests conditional
Mesh code can be disabled with use of --disable-mesh. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +2, -0 |
| 9a6ffbbb |
mesh: Secure Beacon - IV_Index/Key Refresh re-write
This is a major rewrite of Secure Network Beacon (SNB) handling
that includes:
* Seperating Key Refresh from IV_Index handling
This is a clearer handling of the two features. Although both features
are represented in SNB's, they run independantly.
* Creating a Seperate IV_Index initialization and updating state
distinct from the current values sent and received in SNBs.
If a restart occured during an IV Update procedure (96 hours long)
the IVU bit got lost, and Sequence number resetting was not done
correctly.
* Assuring that all Nodes handled by daemon receive each incoming
beacon. SNB handling previously stopped after the first node
successfuly handled it, although the SNB may be valid for many local
nodes. |
Brian Gix |
6 years ago |
2 files, +131, -222 |
| 4f5a1df1 |
monitor: Add support for reading over J-Link RTT
This patch adds support for reading data over J-Link RTT. It can be
used as replacement for TTY when reading from embedded devices since
it's much faster and does block a UART. Data format is the same as
for TTY. At the moment monitor over RTT is only supported by Apache
Mynewt project.
Reading data is done by polling RTT every 1 msec since there is no
blocking API to read something from RTT buffer.
To enable reading from RTT, J-Link configuration needs to be passed via
command line (all parameters except <device> can be skipped to use
default value):
-J <device>,<serialno=0>,<interface=swd>,<speed=1000>
-J nrf52,683649029
In some cases J-Link cannot locate RTT buffer in RAM. In such case
RAM area and buffer name should be provided via command line:
-R <address=0x0>,<area=0x1000>,<buffer=monitor>
-R 0x20000000,0x10000 |
Andrzej Kaczmarek |
6 years ago |
4 files, +72, -3 |
| 7ce36e23 |
monitor: Add interface for J-Link library
This adds simple interface to libjlinkarm.so which will be used to read
data from RTT buffer. It was mostly made by trial and error since there
is no public documentation for this library so it may lack something,
but seems to work fine with few Cortex-M devices I tried. |
Andrzej Kaczmarek |
6 years ago |
2 files, +310, -0 |
| 068bc4b0 |
monitor: Extract TTY data processing to separate function |
Andrzej Kaczmarek |
6 years ago |
1 file, +21, -16 |
| 52faac46 |
audio: Fix cancelling disconnect timeout
If AVDTP session has been connected but no stream has been setup calls
to service->connect would return -EBUSY to avoid stream setup collision
but it also takes a reference to the session cancelling the disconnect
timeout and disabling the stream_setup logic that would attempt to
estabilish a stream. |
Luiz Augusto von Dentz |
6 years ago |
2 files, +24, -26 |
| a7cb2d44 |
unit: Fix valgrind errors in test-mesh-crypto
Two HEAP errors, and one error caused by missing checksum data. |
Brian Gix |
6 years ago |
1 file, +28, -4 |
| 117c4124 |
Makefile.am: add missing mkdir in rules generation
In parallel out-of-tree builds it's possible that tools/*.rules are
generated before the target directory has been implicitly created. Solve this by
creating the directory before writing into it. |
Ross Burton |
6 years ago |
1 file, +1, -0 |
| 32e1f524 |
Makefile.obexd: add missing mkdir in builtin.h generation
In parallel out-of-tree builds it's possible that obexd/src/builtin.h is
generated before the target directory has been implicitly created. Solve this by
creating the directory before writing into it. |
Ross Burton |
6 years ago |
1 file, +1, -0 |