Commit graph

22128 commits

Author SHA1 Message Date
Emil Gydesen
b880637231 Bluetooth: Audio: Remove bidirectional audio streams
Audio streams as defined by the BAP spec does not
support bidirectional audio streams. This commit
updates the API and implementation to match that.

The use a bidirectional CIS with 2 audio stream will
be added in a future commit.

This removes the _IN_ and _OUT_ and _INOUT_ QOS
values, as well as the direction of the codec QOS
struct.

To keep direction for internal use, the direction
has been added to the endpoint struct.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 14:07:17 -05:00
Emil Gydesen
956518a33b Bluetooth: Audio: Add BASS client shell
Add the BASS client shell module.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 14:06:44 -05:00
Emil Gydesen
dcbd1a555f Bluetooth: Audio: Add BASS shell
Add support for the BASS server shell.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 14:06:44 -05:00
Emil Gydesen
b1437e1f0c Bluetooth: Audio: Add BASS client
Add the BASS client implementation

This is a standalone implementation that
needs to be (heavily) modified for the
broadcast assistant role in the future.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 14:06:44 -05:00
Emil Gydesen
742eac6214 Bluetooth: Audio: Add broadcast audio scan service (BASS)
Add the BASS as a standalone service. The service is
used for the scan delegator role, which has not been
fully implemented yet.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 14:06:44 -05:00
Emil Gydesen
e485305b7c Bluetooth: Audio: Fix ordering of array size after array parameter
Make it consistent for audio.h and capabilities.h that the
array size parameter appear after the array parameter.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 13:50:20 -05:00
Emil Gydesen
a01cc054c9 Bluetooth: Audio: Use size_t for audio.h array len arguments
Use size_t instead of uint8_t to describe array lengths.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 13:50:20 -05:00
Emil Gydesen
7ce1022691 Bluetooth: Audio: Fix valid checks for bt_audio_unicast_group_delete
The checks for stream->group was useless, and the check for
an active CIG was missing.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 13:50:20 -05:00
Emil Gydesen
d64328ebe5 Bluetooth: Audio: Add support for add/rem streams for unicast group
Add a function to add more and remove streams
to and from a unicast group.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-10 13:50:20 -05:00
Piotr Pryga
ce0ad0e30a Bluetooth: Controller: df: Do not send IQ rep for PDU without CTE
Check if the CTE was discovered by Radio peripheral should be
done with use of CTEPRESENT event. Samples count should not
be used for that purpose. If samples count is a value different
than zero for PDUs that don't have CTE, unwanted IQ samples
report will be generated. CTEPRESENT event is set only in case the
CTEInfo filed was correctly parsed by Radio peripheral during
PDU reception.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-03-10 13:45:41 -05:00
Pavel Vasilyev
f1d5066032 Bluetooth: Mesh: Don't replace destination of segmented message
Don't replace destination of segmented message when acknowledgement is
received from a friend node, otherwise, when segments are retransmitted,
the destination will be used and the friend node will treat it as a new
segmented message.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2022-03-10 13:44:05 -05:00
Erwan Gouriou
a099c79234 subsys/bluetooth/host: hci_core: Add a bt_disable command
Add a bt_disable function. This will abort existing threads and
close the HCI transport.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-03-10 13:28:41 -05:00
Benedikt Schmidt
ccd7ae2445 net: if: add default selection of first up interface
Add the default selection of the first interface which is up.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2022-03-10 13:24:03 -05:00
Herman Berget
3fb7f24f1d Bluetooth: Host: Add missing BT_ATT_OPs to att_op_get_type()
BT_ATT_OP_READ_MULT_VL_REQ, BT_ATT_OP_READ_MULT_VL_RSP, and
BT_ATT_OP_NOTIFY_MULT were missing.

Because of this, multiple variable length reads did not time out.

Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
2022-03-10 13:16:56 -05:00
Aleksandr Khromykh
8c9e8da82f Bluetooth: Mesh: add heartbeat publication callback
Heartbeat publication sent callback can be used
as a watch mechanism to determine whether
the mesh stack is still capable of sending messages or not.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2022-03-10 13:16:40 -05:00
Herman Berget
6a23439b20 Bluetooth: Host: Fix check for number of ATT bearers
Fixes #42306

Attach bt_att_chan objects to bt_att when creating them so that the
check in att_chan_new() works. Use the flag ATT_CONNECTED to signal that
a channel is connected instead of attaching it.

The flag ATT_DISCONNECTED was not set anywhere and is replaced by
ATT_CONNECTED.

Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
2022-03-10 13:26:46 +01:00
Herman Berget
5afa815e88 Bluetooth: Host: Remove unused function att_chan_is_connected()
gcc does not warn on unused static inline functions.

Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
2022-03-10 13:26:46 +01:00
Enjia Mai
2b1bccde07 tests: testsuite: add emulating send IPI in X2APIC mode
We emulate the interrupt by sending the IPI to core itself by
the local APIC for x86 platfrom.

But in X2APIC mode, this no longer works. So we emulate the
interrupt the by writing the IA32_X2APIC_SELF_IPI MSR to send
IPI to the core itself via LOAPIC also. According to SDM vol.3
chapter 10.12.11.

Fixes #42108

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-03-09 14:55:26 -05:00
Lingao Meng
5b50133467 Bluetooth: Host: Reconstruct stream interface
Add `remaining_size` in struct ad_stream.

By calculating the actual space required instead of
using the maximum space.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-09 13:59:47 -05:00
Lingao Meng
5f2170f184 Bluetooth: Host: Optimize hci buf alloc by calc actually require size
By calculating the actual space required instead of using
the maximum space, for `hci_set_adv_ext_complete`.

Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/37710

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-09 13:59:47 -05:00
Henrik Brix Andersen
e9c9caa80d net: remove unmaintained 6LoCAN implementation
Remove the unmaintained, experimental 6LoCAN (IPv6 over CAN bus)
implementation.

Fixes: #42559

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-03-09 18:07:31 +01:00
Gerard Marull-Paretas
dffaf5375c kconfig: tweak Kconfig prompts
Tweak some Kconfig prompts after the removal of "Enable...".

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-09 15:35:54 +01:00
Gerard Marull-Paretas
95fb0ded6b kconfig: remove Enable from boolean prompts
According to Kconfig guidelines, boolean prompts must not start with
"Enable...". The following command has been used to automate the changes
in this patch:

sed -i "s/bool \"[Ee]nables\? \(\w\)/bool \"\U\1/g" **/Kconfig*

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-09 15:35:54 +01:00
Vinayak Kariappa Chettimada
d510663c26 Bluetooth: Controller: Fix Extended Advertising Power Amp setup
Fix Extended Advertising implementation to setup Power
Amplifier (PA) GPIO toggle for transmission instead of
incorrect Low Noise Amplifier (LNA) setup which is for
reception.

Relates to commit 4e5290948e ("Bluetooth: Controller: Fix
Periodic Advertising to setup Power Amp").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 14:22:04 +01:00
Vinayak Kariappa Chettimada
681127f6ce Bluetooth: Controller: Fix allocations for chain reception
Do not implicitly allocate Rx buffers for maximum chain PDU
reception. Instead let applications increase as required the
Kconfig CONFIG_BT_CTLR_RX_BUFFERS.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 14:20:47 +01:00
Alperen Sener
0eee702bad Bluetooth: Mesh: Add back-off to secure beacons
adding back-off mechanism to mesh secure beacon behaviour

Signed-off-by: Alperen Sener <alperen.sener@nordicsemi.no>
2022-03-09 15:10:26 +02:00
Emil Gydesen
b2cf78af4c Bluetooth: Audio: Improved cleanup on disconnect
The LE Audio clients will now do more and proper cleanup
during disconnects. Furthermore, the will also
take a proper bt_conn_ref when the conn pointer
is assigned locally.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-09 15:04:57 +02:00
Vinayak Kariappa Chettimada
39570bd1d7 Bluetooth: Controller: Fix missing configure of Device Address Match
Fix missing configure of Device Address Matching when
receiving auxiliary PDUs.

This fixes some privacy related conformance test cases.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 13:59:23 +01:00
Vinayak Kariappa Chettimada
e60ac093b4 Bluetooth: Controller: Fix missing RPA timer start for Broadcaster
Fix missing RPA timer start in Broadcaster only controller
builds.

Without the fix private resolvable addresses where not
updated at RPA timeout.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 13:58:41 +01:00
Vinayak Kariappa Chettimada
b36a0ee071 Bluetooth: Controller: Fix private address update in auxiliary PDUs
Fix missing implementation to update private resolvable
address in auxiliary PDUs on RPA timeout.

Without the implementation the controller asserted on RPA
timeout when AdvA is not present in the primary channel PDU
of Extended Advertising set.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 13:58:41 +01:00
Vinayak Kariappa Chettimada
d54f3bd5f7 Bluetooth: Controller: Fix missing reset of sync create association
Fix missing reset of sync create association with scan
context when associated with both 1M and Coded PHY contexts,
and sync create cancel is called.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 13:58:17 +01:00
Vinayak Kariappa Chettimada
5494f475b8 Bluetooth: Controller: Fix address resolution when max entries in list
Fix address resolution when trying to match the maximum
entries in the resolving list.

Wait for address resolution AAR peripheral to complete with
checking with all the entries in the IRK list.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 13:57:57 +01:00
Andy Ross
c5cf46a670 subsys/ztest: Revert "Make 1cpu tests run on CPU 0 specifically"
This change introduced some weird failures on x86 that will take some
time to untangle, and wasn't a particularly important feature to
merge.  Revert for now.

This reverts commit adc901aa6a.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-03-09 06:54:24 -05:00
Vinayak Kariappa Chettimada
a10cb58295 Bluetooth: Controller: Fix out-of-bound memory write
Fix out-of-bound memory write during mem_init due to
regression introduced in commit c6750de9c1 ("Bluetooth:
Controller: Fix missing ISOAL sink destroy").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-09 12:44:42 +01:00
Andy Ross
adc901aa6a subsys/ztest: Make 1cpu tests run on CPU 0 specifically
Some hardware has "interesting" configuration like asymmetric default
interrupt masking (the intel_adsp devices in particular, but x86's
IO-APIC driver has tripped over this in the past too) that needs
special treatment if you want to run something on "core 1"
specifically, and 1cpu test cases pretty much by definition are going
to have been written without SMP details in mind.  Switch the logic
around a tiny bit such that these test cases always run on CPU ID zero
explicitly.

Actually in practice this was ALMOST guaranteed to be true already,
because test setup and happens serially, having been started on the
main thread, which starts on CPU 0 by definition.  Then the test
teardown aborts all the spawned threads that might have been running
on CPUs 1+, so those reach idle, and the next test case starts
syncronously on the same thread (and thus CPU) where it started.  But
nonetheless that wasn't actually enforced, and we've found at least
one simulation environment where timing conspires to break things.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-03-08 16:26:26 -05:00
Przemyslaw Bida
c9645f4d36 openthread: net: implementing of otPlatRadioSetChannelMaxTransmitPower
This commit adds implementation of otPlatRadioSetChannelMaxTransmitPower
This function is responsible for setting maximum allowed power on
IEEE 802.15.4 channels.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2022-03-08 09:21:48 -06:00
Krzysztof Chruscinski
3cbfc505b3 logging: Add prompt to LOG2_ALWAYS_RUNTIME option
Prompt was removed by 154ca8526 to ensure that it is not
disable when it is required. That removed possibility of
manually enabling that option my the user. Bringing prompt
back and adding check to code to fail compilation if
LOG2_ALWAYS_RUNTIME is not set but is required.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-03-08 12:36:28 +01:00
Trond Einar Snekvik
b6993b0837 Bluetooth: Mesh: Extended advertiser should build without relay
The extended advertiser would fail to build due to a missing kconfig
option dependency when relay was disabled.

Fixes #43172.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2022-03-08 12:32:46 +02:00
Lingao Meng
05f75f9f33 Bluetooth: Mesh: Fix unable iv update due to cache
When local node poweroff and power on again, will
receive iv update but within 96hours.

When 96h after, due to cache, we can't process this
beacon any more.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-08 11:09:49 +01:00
Lingao Meng
78eddf6e37 Bluetooth: Mesh: Fix unable iv recovery when in iv update state
According Mesh Profile 3.10.6 IV Index Recovery procedure

Upon receiving and successfully authenticating a Secure Network
beacon for a primary subnet whose IV Index is 1 or more higher
than the current known IV Index, the node shall set its current
IV Index and its current IV Update procedure state from the
values in this Secure Network beacon.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-08 11:09:49 +01:00
Emil Gydesen
62704bd8a0 Bluetooth: PACS: Add PAC record data to pac_notify
When pac_notify is called it will notify the
actual PAC records for the specific type (sink/source).

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-08 11:08:00 +01:00
Emil Gydesen
9477e61bf8 Bluetooth: PACS: Move read of PAC records into new function
Adds function get_pac_records that will retrieve the PAC
records from the application. The pac_read callback
will then call this to get the value, before returning
it to GATT.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-08 11:08:00 +01:00
Emil Gydesen
4c2a09e8c5 Bluetooth: PACS: Change indicate to notify
The PAC service (PACS) should use notify instead
of indicate as per the specification.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-08 11:08:00 +01:00
Krzysztof Chruscinski
47ae656cc1 all: Deprecate UTIL_LISTIFY and replace with LISTIFY
UTIL_LISTIFY is deprecated. Replacing it with LISTIFY.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-03-08 11:03:30 +01:00
Daniel DeGrasse
5ba1787163 tests: ztest: add CONFIG_ZTEST_NO_YIELD to keep SOC awake after test
Some SOCs cannot be flashed reliably in low power modes. If
CONFIG_ZTEST_NO_YIELD is selected, do not yield to the idle thread after
testsuite completes, so that the SOC will not enter low power mode.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2022-03-07 13:53:14 -06:00
Georges Oates_Larsen
303c42e70a net: http_client: Add official null response behavior
Adds an official behavior in response to null response from HTTP
endpoint.

Fixes #42988

Signed-off-by: Georges Oates_Larsen <georges.larsen@nordicsemi.no>
2022-03-07 09:18:50 -06:00
Thomas Ebert Hansen
0b0a90ae84 Bluetooth: controller: Unsupported proc handling
Add handling of unsupported procedures based on opcode and role.

Signed-off-by: Thomas Ebert Hansen <thoh@oticon.com>
2022-03-07 16:15:54 +01:00
Thomas Ebert Hansen
995ce7a226 ztest: Add skipping for non-kernel tests
Add ztest_test_skip() support to non-kernel tests by implementing
long jump buffer and TC_SKIP result collection.

Signed-off-by: Thomas Ebert Hansen <thoh@oticon.com>
2022-03-07 16:15:54 +01:00
Juha Heiskanen
3d44738b19 net: lwm2m: Fix SenML Json Name parser
Bug fix for case when base name is not included at message.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-03-07 10:54:57 +01:00
Lu Ding
818d90efda net: gptp: Fix sync_receipt_time calculation in gptp_mi
Fix #42800
Both pss->rate_ratio and port_ds->neighbor_rate_ratio are double type
but sync_receipt_time is uint64_t. If pss->rate_ratio is less than 1
or sync_receipt_time * port_ds->neighbor_rate_ratio is less than 1,
sync_receipt_time becomes 0 due to double to uint64_t cast.
Assign port_ds->neighbor_prop_delay to sync_receipt_time first to fix
this issue.

Signed-off-by: Lu Ding <lucasdinglu@gmail.com>
2022-03-07 10:54:49 +01:00