Commit graph

21541 commits

Author SHA1 Message Date
Emil Gydesen
dc4d70da26 Bluetooth: conn: Expose simplified connection state in get_info
Add a state field in struct bt_conn_info that is a simplified
version of the internal state value (bt_conn_state_t).

This should provide an application to better determine the state
of the connection whne calling bt_conn_get_info, in case the
application does not keep track of the state itself.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-25 15:36:02 +01:00
Vinayak Kariappa Chettimada
2954658d3b Bluetooth: Controller: Cond. compile ISOAL for broadcast/receive only
Conditional compile ISOAL implementation to support ISO
Broadcast only and ISO Receive only application builds.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-25 12:52:11 +01:00
Emil Obalski
63b4f3e6ce ipc_service: icmsg: Pass priv user data to callbacks
This change fixes inconsistency with ipc-service API.

Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
2022-03-25 11:33:42 +01:00
Vinayak Kariappa Chettimada
1825f81cd3 Bluetooth: Controller: Fix compiler error due to missing include file
Fix compile error, compiling the connectionless direction
finding samples, due to missing include file.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-25 10:42:14 +01:00
Vinayak Kariappa Chettimada
690fc52a03 Bluetooth: Controller: Fix Periodic Sync CTE time reservations
Fix Periodic Advertising Synchronization time reservation
updated when enabling/disabling direction finding IQ
sampling.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-25 10:42:14 +01:00
Anders Storrø
c0eb461c50 Bluetooth: Mesh: shell several arg idx bug fix
Fixes errornous arg index for new identity in cmd_node_id.
Fixes errornous arg index for uuid in mod_pub_set.
Fixes errornous arg index for net_idx in hb_pub_set.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2022-03-25 10:42:08 +01:00
Anders Storrø
cbf97cb441 Bluetooth: Mesh: shell several arg idx bug fix
Fixes errornous arg index for new identity in cmd_node_id.
Fixes errornous arg index for uuid in mod_pub_set.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2022-03-25 10:42:08 +01:00
Asbjørn Sæbø
1ef1ca5dd1 Bluetooth: Audio: Media control - add const keyword
Add const keyword to variables that shall not change their value.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Asbjørn Sæbø
fb2df17933 Bluetooth: Audio: Media - move variables to innermost scope
Move variables to innermost scope - do not define the variable (and
read the value) until it is clear that the receiving callback exists.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Asbjørn Sæbø
98fa332527 Bluetooth: Audio: Media control - guard callback
Exclude callback from struct when not needed.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Asbjørn Sæbø
2c12328edd Bluetooth: Audio: Media control - correct return value
Change return value from calls to player(s) to EINVAL.

These functions are guarded, so that if neither local nor remote
players are supported, the functions will not be accessible.
So no need to return EOPNOTSUPP.  If the functions reach these
returns, it will be because the pointer provided does not match any
registered player.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Asbjørn Sæbø
b4dd2d934a Bluetooth: Audio: Media control - update guard
The calls to the players were guarded by "_LOCAL_PLAYER_CONTROL".
This was incorrect for two reasons:
- the second part of each function uses the remote player, not the
  local one
- the first part of each function is for local control (only) of the
  local player

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Asbjørn Sæbø
59b26061cd Bluetooth: Audio: Fix spelling in comment
Correct spelling in a comment

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:41:29 +01:00
Mariusz Skamra
35188c41ec Bluetooth: shell: Adapt to the ATT MTU API changes
This handles -EALREADY return error.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:19 +01:00
Mariusz Skamra
6eafc64855 Bluetooth: audio: Enable auto ATT MTU Exchange for BASS and unicast client
This enables automatic MTU exchange for services that require MTU size
bigger than default ATT MTU to operate.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:19 +01:00
Mariusz Skamra
e9becda611 Bluetooth: gatt: Add support for automatic ATT MTU Exchange
This adds support for automatic ATT MTU Exchange that will be done right
after the connection has been established.

Fixes: #43946
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:19 +01:00
Mariusz Skamra
a5d9322105 Bluetooth: gatt: Skip MTU exchange if already initiated by peer
This implements Core 5.3 recommendation to skip MTU Exchange procedure
if already performed by peer.

Core 5.3 | Vol 3, Part F 3.4.2.2:
If MTU is exchanged in one direction, that is sufficient for both
directions.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:19 +01:00
Mariusz Skamra
f619ca24d4 Bluetooth: gatt: Disallow repeated attempts to exchange MTU
The MTU can be exchange once during the connection by the client.
This ensures the ATT MTU Exchange request will not be sent again.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:19 +01:00
Mariusz Skamra
f6d0dc355f Bluetooth: has: Add stubs for handling control point requests
This adds server stubs for handling the preset control point requests.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-25 10:41:11 +01:00
Asbjørn Sæbø
570bc0d4bb Bluetooth: Media proxy - move mcc callbacks into instance struct
Move the media control client callbacks into the media proxy instance
struct, as requested in earlier PR review.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-25 10:39:40 +01:00
Dominik Ermel
e20f72f7cb kconfig: Remove unneeded ${ZEPHYR_BASE} from template import
The commit removes, from various Kconfigs, ${ZEPHYR_BASE} in
sourcing of logging template.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-24 18:07:28 -04:00
Piotr Pryga
3604a7bf9a Bluetooth: Controller: df: Fix CTE req send wrong ntf in single shot run
In case the CTE request was executed as a single shot and Controller
successfully received LL_CTE_RSP PDU there was an assertion.
The assertion was caused by not completely prepared notification PDU.
The notification PDU was send towards Host by CTE request handling code
due to an error in lp_comm_complete function. If the CTE request was
single shot it went into wrong if-else statement, despite that the
LL_CTE_RSP was correctly received.

A check if-clause if the procedure is periodic should not affect the
procedure completion. It should affect whether req_expire counter has
to be restored.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-03-24 15:26:50 +01:00
Constantin Krischke
8ee675946c modbus: stop bits can now be set individually in client mode
Added the stop_bits_client parameter to the modbus_serial_param struct.
Being able to configure the number of stop bits for the client
independently from the parity setting, allows to support connecting to
modbus server that do not follow the MODBUS over Serial Line Specification
and Implementation Guide.

Signed-off-by: Constantin Krischke <constantin.krischke@lemonbeat.com>
Signed-off-by: Jan Geldmacher <jan.geldmacher@lemonbeat.com>
2022-03-24 08:23:17 -04:00
Alexander Mihajlovic
4b2d4eb287 settings: Add support for overriding settings partition
Change NVS and FCB backends to look for chosen `zephyr,settings-partition`
in the first place, or fall back to partition "storage" if the chosen
is not set.

Signed-off-by: Alexander Mihajlovic <a@abxy.se>
2022-03-24 08:16:46 -04:00
Emil Gydesen
f474e5075e Bluetooth: Audio: Fix bad string format for ARRAY_SIZE
ARRAY_SIZE was recently changed to a size_t instead of
a long. Update the log statement to use correct
string format.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 12:50:05 +01:00
Piotr Pryga
09cd296962 Bluetooth: Controller: radio: Fix num of antennas returned by controller
The antenna number returned by controller if antenna switching is not
enabled was zero. That is not compliant with  BT 5.3. Core Spec Vol 4.
Part E section 7.8.87. In this situation returned value should be 1.

There is always single antenna available that is responsible for PDU
reception and transmission.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-03-24 11:59:31 +01:00
Emil Gydesen
b0a01ac82f Bluetooth: Audio: Fix broadcast sink PA sync callbacks register
The broadcast sink would continously register the PA sync callbacks,
effectively creating an infinite loop. Fixed by correctly
setting the boolean to prevent this.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
868806c211 Bluetooth: Audio: Fix broadcast sink null pointer in cleanup
Fix potential null pointer acceess in
broadcast_sink_cleanup_streams.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
9e765a2004 Bluetooth: Audio: add BIS index check for broadcast sink
When the broadcast sink receives a BASE it will now
properly check if the BIS indexes are valid.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
ec3793b154 Bluetooth: Audio: Fix broadcast audio endpoint disconnect state
Once a broadcast source is stopped, the endpoints
should go into the same state before it was
started (BT_AUDIO_EP_STATE_QOS_CONFIGURED), instead
of idle.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
2df9077307 Bluetooth: Audio: Add missing break for broadcast source ep state
There was a missing break statement for the
BT_AUDIO_EP_STATE_QOS_CONFIGURED state, so the
broadcast source could never go into the streaming state.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
9efa22940c Bluetooth: Audio: Add broadcast source subgroup count Kconfig
Add a (initally hidden) Kconfig option for broadcast source
used to determine the size of the advertisable BASE.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
23e45c937a Bluetooth: Audio: Add subgroup count check for broadcast sink
The broadcast sink will now not attempt to decode BASEs with
more subgroups than what the broadcast sink can
actually decode.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
a50e41b059 Bluetooth: Audio: Remove unicast guard for some stream functions
Remove the unicast guard for bt_audio_codec_qos_to_iso_qos
and bt_audio_stream_attach as they are also used for
broadcast sink and broadcast source.

Also allow broadcast source to use bt_audio_stream_send.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Emil Gydesen
8e34701e19 Bluetooth: Audio: Move CONFIG_BT_CODEC out of unicast-only
Move the Kconfig options for BT_CODEC out of the
BT_AUDIO_UNICAST guard, as these are used for broadcast sink
and broadcast source as well.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-24 10:48:00 +01:00
Lingao Meng
b76d74cd64 Bluetooth: Mesh: Fix adv_send call before enabled.
Since the default syswork thread priority = `-1`.
`adv_send` will call when controller report advertising
sending completed, due to this process by BT RX task, will
maybe process this before `buf_send`, since, sysworkq will be
used by other place and defer by any place.

Note: secure beacon will be 40ms, and friend and lpn will be 20ms.

This problem is very easy to reproduce, especially in native posix.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-24 10:46:07 +01:00
Lingao Meng
58a501d6cd Bluetooth: Mesh: Fix unref null pointer
When pb-gatt advertising enabled, after extablish connect,
will call `cb->connected` and `cb->adv_send`.

In previous connected also clear `ADV_FLAG_PROXY` flag, but
in `adv_send` will attempt unref null point buffers.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-24 10:46:07 +01:00
Casper Bonde
0874ff5cfd Bluetooth: Audio: ASCS: do not fail on preferred value check
bt_audio_valid_stream_qos() is used to validate the QoS parameters
set by a client. It did a check of a preferred setting which is
ok to exceed (mandatory in some cases).
This change removes the statement that causes the check to fail,
but keeps the check for debug purposes.

Fixes #43359

Signed-off-by: Casper Bonde <casper_bonde@bose.com>
2022-03-24 10:43:38 +01:00
Dominik Ermel
e1d57d19f2 mgmt/mcumgr/lib: Add missing mcumgr_img_mgmt log Kconfig options
Due to lack of proper Kconfig options for the logging module,
default were always applied.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-23 18:40:53 +01:00
Dominik Ermel
7de1061f5c mgmt/mcumgr/lib: Fix LOG_MODULE_NAME for image group
Was mcumgr_flash_mgmt, replaced with mcumgr_img_mgmt.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-23 18:40:53 +01:00
Vinayak Kariappa Chettimada
68f63246a0 Bluetooth: Controller: Fix filter accept list with periodic adv list use
Fix implementation to be able to establish synchronization
when scan filter accept list is in use and periodic
synchronization needs to be established using specified peer
address or using periodic advertiser list.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-23 16:32:49 +01:00
Piotr Pryga
e6f685991f Bluetooth: Controller: llcp: fix missing remote CTE REQ was handling
The CTE request has two parts: transmission of a CTE request and
reception of a CTE request. The outcome of reception of a CTE request
is transmission of CTE response.

In the new_proc_lut table for allowed remotely requested control procedures
the CTE request was quarded by CONFIG_BT_CTLR_DF_CONN_CTE_REQ.
In case of a build where CTE request is not enabled but CTE response is
the receiver part of CTE request should be enabled also.

The entry in the new_proc_lut should be quarded by CONFIG_BT_CTLR_DF_CONN_-
CTE_RSP.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-03-23 14:10:47 +01:00
Emil Gydesen
ae55dae454 sys: util: Change return type of ARRAY_SIZE to size_t
The ARRAY_SIZE macro uses sizeof and thus the return
type should be an unsigned value. size_t is typically
the type used for sizeof and fits well for the
ARRAY_SIZE macro as well.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-03-23 14:09:23 +01:00
Dominik Ermel
14877fd6a6 mgmt/mcumgr/lib: Use stack allocated shell buffer
The commit moves shell command buffer to stack and changes
initialization to just just put null at the beginning, before calling
a function that will fill in the buffer, and at the end, after the call.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-23 14:04:31 +01:00
Dominik Ermel
7dea9134a9 mgmt/mcumgr/lib: Unify source code for SHELL mgmt group
Moves Zephyr specific code to common source file and removes
no longer needed interface headers.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-23 14:04:31 +01:00
David Leach
a282e93079 random: rand32_ctr_drbg: fix bug preventing initialization
Bug introduced that prevented the logic from initializing the
context structure. Without this initialization, the application
will crash on repeated request for ctr_drbg random data.

Fixes: #44092

Signed-off-by: David Leach <david.leach@nxp.com>
2022-03-23 07:42:34 -05:00
Jordan Yates
01402429cc Bluetooth: check if Bluetooth has been enabled
Adds a simple boolean check of whether the Bluetooth subsystem has been
enabled. This allows users outside of `subsys/bluetooth` to check
whether they can send HCI commands.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-03-23 13:38:47 +01:00
Jordan Yates
38c2f892ed random: ctr_drbg: initialize on first run
With f44b3dc4df statically initializing
the entropy_dev variable, `ctr_drbg_initialize` was not being run on
the first call to `z_impl_sys_csrand_get`. Use a dedicated static bool
to track whether the init needs to be run.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-03-23 13:38:47 +01:00
Jordan Yates
fd618351bf random: xoshiro128: reseed state on entropy fail
When requesting seed entropy data fails, reseed the PRNG state with
runtime data. This is a minimal effort to ensure that random data
requested before a backing entropy device is ready does not result in
repeatable data on each boot.

The random XOR integers are selected from the CRC32 algorithm.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-03-23 13:38:47 +01:00
Jordan Yates
9bfb7bde1d random: xoshiro128: defer state init
Defer the state initialization of the xoshiro algorithm until the first
time a random number is requested. This allows the PRNG algorithm to be
used with entropy sources which may not be available at boot, i.e
Bluetooth HCI.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2022-03-23 13:38:47 +01:00