| d5e4ea74 |
a2dp: Add implementation of MediaEndpoint.Device
This adds the implementation of MediaEndpoint.Device property so the
clints don't need to guess what device the endpoint belongs. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +15, -0 |
| f190f1dc |
doc/media-api: Add Device property to MediaEndpoint
This adds Device property which indicates which device the endpoint
belongs to. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +4, -0 |
| 7fba3eca |
a2dp: Cache remote endpoints
In order to always have the Endpoint interface available the remote
endpoints needs to be cached since the remote stack may config a stream
on its own there may not be a chance to discover the endpoits available
which would make it impossible to switch endpoints. |
Luiz Augusto von Dentz |
6 years ago |
3 files, +492, -283 |
| c196ea2c |
doc/settings-storage: Add Endpoint group to cache
This documents how A2DP endpoints should be stored in the cache. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +10, -1 |
| e3272ccb |
a2dp: Implement MediaTransport.Endpoint
This implements MediaTransport.Endpoint property which exposes what
endpoint is being used by the transport. |
Luiz Augusto von Dentz |
6 years ago |
5 files, +102, -24 |
| e8046c5e |
doc/media-api: Add Endpoint property to MediaTransport
Adds endpoint object to MediaTransport so application can resolve which
MediaEndpoint is in use. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +5, -0 |
| 6ce9df8c |
a2dp: Expose remote SEP
This implements MediaEndpoint for remote SEP which can be used by
clients to switch configuration on demand. |
Luiz Augusto von Dentz |
6 years ago |
5 files, +367, -7 |
| 25d3c9da |
doc/media-api: Enable MediaEndpoint to expose remote SEP
This adds the possibility to expose remote SEP using MediaEndpoint
interface to allow setting a configuration. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +25, -2 |
| d2d6bc66 |
monitor/avctp: Fix parsing of GetFolderItems attributes
Attributes in GetFolderItems are 32 bytes long not 16. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +2, -2 |
| c62a395d |
avdtp: Fix always destroying session immediatelly
In case the remote device sent a close/abort the session shall not be
free immediatelly as the remote may want to reconfigure the stream. |
Luiz Augusto von Dentz |
6 years ago |
1 file, +18, -5 |
| bb61884d |
mesh: Fix logic when cleaning up incomplete provisioning
Do not call acceptor_cancel() if the provisioning has been completed,
either fail or success. Acceptor automatically takes care of cleanup
on completion, either successful or not. |
Inga Stotland |
6 years ago |
1 file, +7, -5 |
| cca48f30 |
mesh: Fix Relaying for multiple nodes
Relay is now a cooperation between all the nodes on the daemon.
If any one or more nodes have relay enabled and a received packet
is addressed to a Group, or a non-present Unicast address, then the
packet's TTL is decremented and it is resent. |
Brian Gix |
6 years ago |
3 files, +118, -85 |
| c7c30ac0 |
btmon: Fix parsing A2DP FastStream codec configuration
This codec is bi-directional, therefore both sink and source directions may
be present in configuration at same time.
Some Creative headsets send more frequency bits in configuration and when
both 41kHz and 48kHz are present then headset expects 48kHz. So adjust
FastStream frequency table as find_value_bit() takes first matched bit. |
Pali Rohár |
7 years ago |
1 file, +7, -4 |
| 452b7d7e |
mesh: Cleanup PB-ADV transport on Prov Close
PB-ADV always used for provisioning, so must always be cleaned up. |
Brian Gix |
7 years ago |
2 files, +3, -4 |
| 9ce5a518 |
mesh: Clean up when finishing the Join call
Consolidate multiple instances where the pending Join data is freed
into calling one function free_pending_join_call().
Also, add checks for NULL data in cleanup functions for storage, agent
and provisioning acceptor. |
Inga Stotland |
7 years ago |
4 files, +32, -37 |
| 1ec20825 |
mesh: Fix reading device UUID from Join() call
Supply correct parameters to l_dbus_message_iter_get_fixed_array
to get the location from where to read UUID value. |
Inga Stotland |
7 years ago |
1 file, +4, -1 |
| 39c2e03f |
mesh: remove uneeded BDADDR type check
BT_HCI_EVT_LE_ADV_REPORT only comes from legal LE events |
Brian Gix |
7 years ago |
1 file, +0, -4 |
| 0be52461 |
unit: Fix fsanitize-address-use-after-scope with GCC 9
Raw data payload must be copied since the declaration goes out of
scope:
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=202213 |
Luiz Augusto von Dentz |
7 years ago |
7 files, +52, -25 |
| fa69d510 |
unit/test-sdp: Avoid extra copies when sending a PDU
Make use of writev instead of creating a separate buffer to transmit
the data. |
Luiz Augusto von Dentz |
7 years ago |
1 file, +10, -17 |
| 1e5f9032 |
shared/shell: Fix compilation error
asprintf return is not check which is catch by -Werror=unused-result
so in case asprintf fails don't set any prompt. |
Luiz Augusto von Dentz |
7 years ago |
1 file, +3, -1 |
| 4ed860a4 |
mesh: Sample Mesh Joiner (provision acceptor)
This implements a simple test to excercise Join() method
of org.bluez.mesh.Network interface. |
Inga Stotland |
7 years ago |
1 file, +408, -0 |
| 743dfac7 |
mesh: Sample On/Off Client and Server
These tests excercise the following methods:
interface org.bluez.mesh.Network - Attach()
interface org.bluez.mesh.Node - Send(), Publish() |
Inga Stotland |
7 years ago |
2 files, +653, -0 |
| 5261163f |
mesh: Sample Provisioning Agent
This implements a simple provisioning agent to test
org.bluez.mesh.ProvisionAgent interface. |
Inga Stotland |
7 years ago |
1 file, +40, -0 |
| a90b641a |
mesh: Add default location for Mesh Node storage |
Inga Stotland |
7 years ago |
1 file, +3, -0 |
| 00d7b3cb |
mesh: Update init for D-Bus and multi-node support
This adds D-Bus initialization, modifications for mulitple nodes and
optional control of storage directory location. |
Inga Stotland |
7 years ago |
1 file, +67, -8 |
| f4cf2c23 |
mesh: Clean up debug logging and comment style |
Brian Gix |
7 years ago |
1 file, +38, -38 |
| e25f4805 |
mesh: Clean up App Key configuration and storage
Fix miscellaneous issues: use l_debug instead of l_info for debug logs;
remove "local" from functions names (this handles only local app keys);
add missing App Key index initialization. |
Inga Stotland |
7 years ago |
2 files, +10, -10 |
| a7a5cca0 |
mesh: Implement Provisioning Agent D-Bus interface
This implements the time limited and user interaction D-Bus API as
required for Out-Of-Band authentication during provisioning, and as
described in doc/mesh-api.txt. |
Inga Stotland |
7 years ago |
2 files, +589, -145 |
| fb65010c |
mesh: Restructure model services for multiple nodes
This handles checking that incoming Mesh messages obey all
authentication rules regarding subscriptions and encryption
key bindings on a per node basis, before forwarding via D-Bus
to external applications that are authorized to handle them. |
Inga Stotland |
7 years ago |
2 files, +613, -269 |
| 23cd727b |
mesh: Add support for storage of multiple nodes
Add functionality to support storage of multiple subnets, model
subscriptions and publications per mesh node. |
Inga Stotland |
7 years ago |
2 files, +297, -168 |
| 535e83b7 |
mesh: Restructure I/O for multiple controllers
Restructured access to Bluetooth Controllers to allow the usage of
multiple controllers, and potentially functionality tailored to Mesh
specific features. |
Brian Gix |
7 years ago |
2 files, +4, -2 |
| c1f5df90 |
mesh: Add multi-node support to Config Server model
The Config Server model is rewritten to allow control of mutiple nodes
on the local device. The updates to a node configuration (e.g., keys,
model subscriptions/publications, etc.) as set by a remote Config Client
are routed to a properly addressed node and stored in a protected
configuration file corresponding to that node. |
Inga Stotland |
7 years ago |
2 files, +93, -89 |
| 7c11237d |
mesh: Implement org.bluez.mesh.Network API
This implements the following methods of org.bluez.mesh.Network
interface: Join(), Attach(), Cancel(). The methods are described in
doc/mesh-api.txt document.
Also, add changes to reflect that the single daemon now handles multiple
local mesh nodes. |
Inga Stotland |
7 years ago |
2 files, +503, -151 |
| 7005bb77 |
mesh: Re-arrange provisioning for DBus API
This restructures provisioning so that it is a service of high level
d-Bus based API and may be potentially used on mulitple provisioning
transports. |
Brian Gix |
7 years ago |
2 files, +112, -14 |
| 72486a78 |
mesh: Add hex string and debug logging utilities
This adds frequently used functionaility for logging and
saving/retrieval of long (128+ bit) hexidecimal data. |
Inga Stotland |
7 years ago |
2 files, +27, -2 |
| 3f10f9d3 |
mesh: Set unchanging variables to const |
Brian Gix |
7 years ago |
1 file, +1, -1 |
| c42fd5bd |
mesh: Rewrite Controler interface for full init
Functionaility has been added to allow a BT 4.0 or later controller
to be used for Advertising based Mesh usage, regardless of how it
was previously initialized. |
Brian Gix |
7 years ago |
1 file, +138, -11 |
| 37c06079 |
mesh: Implement provisioning initiator side
This functionaility (originally found in provision.c) was rewritten
as the Initiator side only of the provisioning procedure. If the
local device owns and controls access to a mesh network, this is the
side of the provisioning procedure that it must use to bring new
unprovisioned devices into the network as Nodes. |
Brian Gix |
7 years ago |
1 file, +641, -0 |
| 5f871831 |
mesh: Implement provisioning acceptor
This implements acceptor side of the provisioning procedure when an
unprovisioned device is brought into an existing mesh network by a
remote Provisioner. Upon the successful completion of the procedure
the device becomes a participating mesh node in thie network. |
Brian Gix |
7 years ago |
1 file, +684, -0 |
| 98ef5190 |
mesh: Add direction agnostic PB-ADV implementation
Originally found in prov.c, this file implements the PB-ADV
provisioning transport. It may be used by either the
Acceptor or the Initiator side of the Provisioning procedure,
but only one session may be active at a time. |
Brian Gix |
7 years ago |
2 files, +467, -0 |
| 628ab54f |
mesh: Rewrite Network layer for multiple nodes
The Network layer of the Mesh Daemon has access to all
network keys that have been entrusted to Nodes on the local
device, and acts as a MUX by forwarding incoming messages
to some, all or none of the local Nodes, based on addressing
and keys.
It also is reponsible for for applying Network layer encryption
to outgoing messages, and for relaying messages based on TTL. |
Brian Gix |
7 years ago |
2 files, +85, -244 |
| 39db4f7d |
mesh: Add org.bluez.mesh.Node D-Bus API support
Add support for maintaining multiple local nodes within a single daemon.
A mesh node is an adressable entity in Bluetooth mesh. A local mesh
capable device may have multiple distinct representations as a mesh
node on different mesh networks. Each such representation (aka "node
configuration") maintains runtime storage of encryption/decryption
keys, model subscriptions and publications, etc.
Also, implement D-Bus methods for org.bluez.mesh.Node interaface:
Send(), Publish(), VendorPublish()
Also, add support for generating temporary mesh node entity for Join()
method and verification of credentials for Attach() method |
Inga Stotland |
7 years ago |
2 files, +1159, -224 |
| 20146a4f |
mesh: Rewrite storage for multiple nodes
Multiple node configurations are now stored in priviledged location
to prevent unauthorized access to the security material entrusted to
each node.
Default storage location is /var/lib/bluetooth/mesh. |
Inga Stotland |
7 years ago |
2 files, +267, -342 |
| dc21082b |
mesh: Internal errors
Add error codes that map to specific faults that may occur while
using the mesh D-Bus API. |
Inga Stotland |
7 years ago |
1 file, +34, -0 |
| 82e5d87f |
mesh: Add utilities for DBus support
These files implement helper routines for common D-Bus functionality. |
Inga Stotland |
7 years ago |
2 files, +184, -0 |
| e3512c74 |
mesh: Structural changes for mesh
Delete composition.json since it not used for initialization anymore.
Delete btmesh.c as it is not used anymore.
Delete display.c and display.h, move retained functionality to util.c
Delete prov.c, move retained PB-ADV functionality to pb-adv.c
Delete provision.c, split retained functionality between
prov-acceptor.c and prov-initiator.c |
Brian Gix |
7 years ago |
8 files, +6, -2215 |
| 52b16066 |
btmon: Parse new A2DP codecs
Parse information about additional A2DP codecs: FastStream, aptX Low
Latency and aptX HD. |
Pali Rohár |
7 years ago |
1 file, +284, -12 |
| e7f72428 |
avinfo: Parse new A2DP codecs
Parse information about additional A2DP codecs: FastStream, aptX Low
Latency, aptX HD and LDAC. |
Pali Rohár |
7 years ago |
1 file, +144, -2 |
| 0e44d95a |
a2dp-codecs: Add macros and structures for new codecs
Add additional codecs: FastStream, aptX Low Latency and aptX HD codecs. |
Pali Rohár |
7 years ago |
1 file, +120, -0 |
| 3ed15179 |
a2dp-codecs: Properly define macros and struct for LDAC codec |
Pali Rohár |
7 years ago |
2 files, +19, -12 |