If an LTK or an STK is available and encryption is required
(LE security mode 1) but encryption is not enabled, the
service request shall be rejected with the error code
"Insufficient Encryption".
This is affecting L2CAP/LE/CFC/BV-25-C and L2CAP/ECFC/BV-32-C
qualification test cases.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
This was affecting L2CAP/LE/CFC/BV-26-C, L2CAP/LE/CFC/BV-27-C,
L2CAP/ECFC/BV-33-C and L2CAP/ECFC/BV-34-C qualification test cases.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
This comment was previously associated with a stand-along net_buf_ref
call. Now it's not clear what exactly it's referring to, and the
additional reference to net_buf_put() is fairly self explanatory.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
bt_ccm_encrypt only works when encrypting in place. To fix this
ccm_auth() inside bt_ccm_encrypt() must take plaintext instead of
enc_data, to not rely on assumption that plain and cypher data are the
same memory.
Signed-off-by: Ilya Makarov <ilya.makarov.592@gmail.com>
Fixes: #40069
When an CIS is connected, the peripheral did not have
any information about the QoS settings. This commit
adds information about the PHY and SDU. For some reason
the peripheral won't ever have information about the RTN.
The remaining values in the event (interval, delay and
latency) are still not exposed, nor is framing or
packing, the latter of which are not part of the event.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Previously, if the AD field length was greater than the maximum
fragment size - 2 bytes, an out of bounds access would occur.
Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/39852
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
make sure channel request reference is cleared if send fails. without
this change this could happen when att_handle_rsp was called:
1. reqs before call:
head: 0x2000f8e8, tail: 0x2000f8c0, elements:
- addr 0x2000f8e8, function pointer NULL
- addr 0x2000f8c0, function pointer 0x35c1d
2. att_handle_rsp called, calling bt_att_req_free with address
0x2000f8e8
3. reqs after call:
head: 0x2000f8e8, tail: 0x2000f8c0, elements:
- addr 0x2000f8e8, function pointer NULL
- addr 0x2000f8d4, function pointer NULL
- addr 0x2000f8ac, function pointer NULL
- addr 0x2000f898, function pointer NULL
- addr 0x2000f884, function pointer NULL
- addr 0x2000f870, function pointer 0xd92b7e7c
- addr 0x2000f85c, function pointer 0x462a03a9
- addr 0x2000f848, function pointer 0xf77b2f4b
- addr 0x2000f834, function pointer 0x33714775
- addr 0x2000f820, function pointer 0x31ba37f8
- addr 0x2000f80c, function pointer 0x5fda8494
- addr 0x2000f7f8, function pointer 0xbcff174e
- addr 0x2000f7e4, function pointer 0x341393f
- addr 0x2000f7d0, function pointer 0xbcfee8b8
- addr 0x2000f7bc, function pointer 0x1e73d9e5
which obviously is broken.
closes#39506.
Signed-off-by: Jacob Siverskog <jacob@teenage.engineering>
Core Specification 5.3 Vol 3. Part G. 4.2:
The Signed Write Without Response sub-procedure shall only be supported
on the LE Fixed Channel Unenhanced ATT bearer.
This was affecting GATT/SR/GAW/BI-38-C qualification test.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
With the introduction of `EXPERIMENTAL` and `WARN_EXPERIMENTAL` in
Zephyr all subsys/bluetooth and drivers/bluetooth/hci settings having
`[EXPERIMENTAL]` in their prompt has has been updated to include
`select EXPERIMENTAL` so that developers can enable warnings when
experimental features are enabled.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Better group code specific for e.g. ISO broadcaster and
ISO sync receiver.
No code has been changed.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Splitt he ISO broadcast config into broadcaster and
sync receiver. This will allow a device that only
wants to one of the roles to have a much more optimized
configuration.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The struct basically only had a pointer to
bt_iso_chan_path as well as duplicating the pid and
the direction.
The commit removes the struct as it was more confusing than helpful,
and instead use the PID for the bt_iso_chan_path and
supply the direction as a argument instead.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
A recent change broke the fallback to using a simple
HCI data path configuration in case that the application
does not provide a data path.
This commit fixes that issue, while retaining the
intended update from the change that broke the fallback,
as well as making the code a bit easier to read
and more documented.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Implemented host function for configuring vendor specific data path for
use with ISO, and fixed passing of path ID in setup.
Signed-off-by: Morten Priess <mtpr@oticon.com>
This allows application to increase channel's MTU and (in some cases)
MPS. When channel gets reconfigured dedicated callback is called to
inform application.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
There are two simmilar functions for unsubscribing from GATT handles.
- `gatt_sub_remove`, which is called on disconnect for every
subscription will free the `subscriptions` entry when the entry
represents no subscriptions.
- `bt_gatt_unsubscribe`, called by the application, which forgets to
free the `subscriptions` entry.
If all subscriptions grouped in a `subscriptions` entry are removed
using `bt_gatt_unsubscribe` before disconnect, there are no
subscriptions left to call `gatt_sub_remove` on. The `subscriptions`
entry is then never freed.
The above results in a resource leak of a `subscriptions` entry.
This fix makes explicit and enforces the invariant that there should not
be entries in `subscriptions` with an empty subscription list.
Fixes#38688
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
When the controller forwards incomplete reports to the host,
the application currently has no way of reassembling them.
Therefore the application may fail to parse the data.
Issue a warning until
https://github.com/zephyrproject-rtos/zephyr/issues/37368
is resolved.
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
Change the way the local IRKs are accessed to be consistent with the
all other uses.
Coverity thinks using the pointer to the array is suspicious in this
case.
Fixes: #38130
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Verify that the local identity loaded from the settings key is
valid for the current configuration.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Add a new struct that provides information to the upper
layer when accepting an connected isochronous stream.
The CIG ID and CIS ID makes it possible for the upper layer
to determine which ISO channels are "together" in a group.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add the BT_ISO_SDU_BUF_SIZE which can be used to declare
the TX buffers for ISO, similar to the BT_L2CAP_SDU_BUF_SIZE
macro for L2CAP.
This also updates the ISO samples to use this as well
updating the SDU check to use
CONFIG_BT_ISO_TX_MTU/CONFIG_BT_ISO_RX_MTU without
subtracting the BT_ISO_CHAN_SEND_RESERVE to make the
API more clear.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Handle the case that setting up the iso data path for a
broadcast (sink or source) bis fails.
As part of this fix, implement the lookup_big_by_handle
function.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add check that can be removed by the compiler since the rest is only
needed when multiple identities have been enabled.
Fixes: #38134
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Removed the bt_conn_unref from the deferred_work function.
For ISO, the conn unref for the peripheral will happen in
the bt_iso_disconnected function. For the central, the
unref shall only happen when the CIG is terminated.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Check the return value of bt_rand when creating identities.
Failure to generate a random IRK would result in the privacy feature
being compromised.
Fixes: #38120
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Fix unexpected control flow in host keys module. A continue in a do
while false act the same as a break. This entire construct can be
replaced with a simple if else control flow.
Fixes: #38014
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Check len is not zero before accessing data pointer, the len variable
is not checked before this point so cannot be trusted to not be zero.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Fixes an issue whereby the application is configured for extended
advertising mode but advertises in legacy mode with a large device name
which should be limited to 31 bytes
Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
Ignore the return value of the bt_gatt_change_aware function when the
client is reading the database hash characteristic value. This is the
point where the client becomes change-aware, so nothing else should be
done if the client is change-unaware.
Fixes: #38012
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This is a regression introduced in b8770acc28 when
aligning with BT Core Spec 5.3 naming convention.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
When falling back to L2CAP for connection parameter updates, the
interval min and maxes should also be saved.
Fixes#38613.
Signed-off-by: Eric Johnson <eric@liveathos.com>
Align with the new inclusive naming terms in the v5.3 spec in the
Bluetooth Host implementation.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Add an array similar to the bt_conn (ACL/L2CAP)
tx sent callback, and initialize it.
This increases the number of bt_conn_tx available
such that ISO does not take any of "L2CAP's" buffers,
but also ensures that the sent callback is called
for a broadcast iso only build.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The new inclusive naming terminology changes in v5.3 of the Bluetooth
specification affect the HCI layer, so apply all relevant changes to
align with it.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Fix Periodic Advertising Sync Establishment to accept
synchronization establishment to device listed in the
Periodic Advertisers List when filter policy was used.
Fixes#38520.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>