Moves the callback structure for VOCS to the register function
which is renamed from init, as there's no reason to register
the callbacks separately.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Adds documentation specifically for empty notification in the
bt_gatt_notify_func_t callback, as that works a bit different
from e.g. reading an empty characteristic.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add the BT_GAP_PER_ADV_MIN_INTERVAL and BT_GAP_PER_ADV_MAX_INTERVAL
macros in gap.h that are also reference in bluetooth.h and
used for parameter validation in adv.c.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Adds name length checks. The OTS spec does not
explicitely specifiy a maximum name length, but the
maximum name length in the directory listing object
shall be less or equal to 120 octets.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fixes a typo where the BT_GAP_PER_ADV macros had MAX twice,
as well as adding a MIN timeout macro and check.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This adds a note about buffer ownership and error handling of
bt_iso_chan_send so it is aligned with recent changes.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a note about buffer ownership and error handling of
bt_l2cap_chan_send so it is aligned with recent changes.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a new flag, BT_LE_ADV_OPT_FORCE_NAME_IN_AD, which can be used
to force the Bluetooth GAP device name to appear in the advertising
data rather than the scan response data of an advert with scan response
data.
Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
Document the default behavior of LE connection parameters request when
the application has not defined a callback.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Periodic publication would previously build and send the first
publication inside the bt_mesh_model_pub() function, before cancelling
and rescheduling the next publication. The timer handler would only
handle retransmissions, and would abandon the rest of the publication
event if one of the packets failed to send.
This design has three issues:
- If the initial timer cancel fails, the publication would interfer with
the periodic publication management, which might skip an event or
send too many packets.
- If any of the messages fail to publish, the full publication event
would be abandoned. This is not predictable or expected from the API.
- bt_mesh_model_pub() required 384 bytes of stack to build the message,
which has to be factored into all calling threads.
This patch moves all transmission into the publication timer by
replacing k_work_cancel with a single k_work_reschedule(K_NO_WAIT). It
also changes the error recovery behavior to attempt to finish the full
publication event even if some of the transmissions fail.
Split out from #33782.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
First design towards ISO adaptation layer, this PR introduces
data-structures and framework for Rx unframed PDUs (BT RX ingress).
Two callbacks are defined for the SDU production (BT RX egress), one for
SDU allocation as well as a callback for emitting a reassembled SDU.
Signed-off-by: Asger Munk Nielsen <asmk@oticon.com>
This commit implements the secondary service
Audio Input Control Service (AICS) server and client.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add include <bluetooth/mesh/msg.h> into <bluetooth/mesh/access.h> to get
definition of 'struct bt_mesh_msg_ctx'.
We see this when trying to build the mesh_badge sample for the
reel_board.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Adds #defines for the minimum (first) and maximum (last)
attribute handles in ATT. These are useful for when setting e.g.
the start and end handle when doing a full GATT discover.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The implementation of blocking calls is common for all the client
models.
This change reduces the code duplication by introducing new API that
helps to manage acknowledged messages.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Adds two functions:
1) Lookup periodic adv sync object by address
2) Get information about a periodic adv sync object.
These can be useful for the application verify if there is already an
existing sync to an periodic advertiser.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add discovery of standard descriptor values. This provides a shorthand
instead of doing a read by UUID, allowing the application discovery
procedure to re-use the discover parameters for simple descriptors.
Fixes: #21489
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add Server Characteristic Configuration definitions for bit values
and attribute value.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add BT_UUID_IAS for Immediate Alert Service
Add BT_UUID_LLS for Link Loss Service
Add BT_UUID_HPS for HTTP Proxy Service
Add BT_UUID_ALERT_LEVEL for Alert Level
Add BT_UUID_URI for URI
Add BT_UUID_HTTP_HEADERS for HTTP Headers
Add BT_UUID_HTTP_STATUS_CODE for HTTP Status Code
Add BT_UUID_HTTP_ENTITY_BODY for HTTP Entity Body
Add BT_UUID_HTTP_CONTROL_POINT for HTTP Control Point
Add BT_UUID_HTTPS_SECURITY for HTTPS Security
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Adds a parsing mechanism for Composition data page 0 in the Config
Client API, and uses it in the shell module to parse the incoming
composition data.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
The first byte of the composition data status message is the returned
page index, not the status of the request. This is now reflected in the
API.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
The Configuration Client doesn't check the address in a received
response. This means that a response from any device will be accepted.
This change ensures that the correct response will be accepted.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Channel direction was actually a source of confusion since the spec does
actually define the data path direction from controller point of view
meaning input actually means transmit and output receive, also direction
can be configured with different QoS settings.
To make these APIs less confusing and allow QoS to be configured
independently they are now split into RX (receiving) and TX
(transmission) settings including its data path.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This fixes bt_iso_cleanup when there are still channels bound to the
ACL connection.
On top of it introduce bt_iso_chan_unbind which can be used to unbind
channels and thus release the reference to the ACL connection if that
has not been disconnected in which case the channels are unbind
automatically.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit implements the secondary service
Volume Offset Control Service (VOCS) server and client.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The directory listing object is an internal object which
content is the aggregation of all the metadata of all objects
(including the directory listing object itself). The client
can read this value to get a list of all objects with names,
lengths, and other metadata.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Adds a Proxy callback structure with a callback for Node ID enable and
disable. This API follows the Friend and LPN API pattern in mesh/main.h,
and can be expanded with more callbacks later.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Add the option CONFIG_BT_HCI_ACL_DATA_SIZE which allows the user
to configure the max HCI ACL data payload. This is needed for platorms
where the BLE LL, HCI uart and host run on three different cores.
Fixes: #30441
Signed-off-by: Johan Stridkvist <johan.stridkvist@nordicsemi.no>
Adds a "polled" function to the friend callback structure, that gets
called every time the friend receives a poll message. The polled
callback is called before the establish callback, to match the LPN
behavior.
Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
The SCA (sca) field of bt_iso_chan_qos did not give much
information about the expected values or what they meant,
nor any information about what the value perhaps should be.
Updated the description and the ISO shell.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Switch to new work API. Avoid a racy cancel by allowing the work
handler to deal with an immediate off when the time remaining changes
to zero.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Added initial support for BIS (broadcast ISO stream), which
adds support for creating BISes as both broadcaster and receiver,
as well as managing and creating BIGs.
Extends PA sync to handle BIGInfo adveritising reports.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add Thalley (emil.gydesen@nordicsemi.no) and asbjornsabo
(asbjorn.sabo@nordicsemi.no) as additional maintainers/codeowners for
bluetooth audio.
(Also adds empty audio.h file, that will later be expanded, so that
the include/bluetooth/audio directory now listed in CODEOWNERS
actually exists.)
Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
Fixed some undesired or incorrect macros, which
can cause build error.
This is a resubmission of PR (#30086)
Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
Document the GATT APIs not waiting for TX context when being called
from the system workqueue context. This is because the TX contexts
are freed by the system workqueue so blocking would cause a deadlock.
The number of TX contexts are by default equal to the number of
TX buffers in the system. Since TX contexts is allocated after a buffer,
but freed from a lower priority than the buffer then there can be more
allocated TX contexts than TX buffers.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Remove the incorrect documentation note about the indication callback
being called from the system workqueue.
The callback will be called by the RX thread once the confirm indication
response has been received.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Allow NULL pointer to be passed to bt_id_get function so
that only count can be fetched.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Don't auto-update the device name in the advertising data as that
would clear any other scan-response data set by the application.
Document the behavior of the advertise with device name option
and the need to update data by the application to make sure
advertising data does not get cleared.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Fix endianness issue in reading CPF descriptor not converting from
native endianess to little-endian on the 'unit' and 'description'
fields.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add definitions for the HCI command LE Generate DHKey v2.
This command includes the option to use the debug private key.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Set #0 is used for legacy advertising when legacy HCI commands are used
and in such case it's possible to enable advertising without any prior
configuration. This means we should better always have PDUs in set #0
initialized with default empty data.
Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>