Commit graph

22128 commits

Author SHA1 Message Date
Sean Madigan
c80b6d8223 Bluetooth: Host: reset adv_pool in bt_disable
Reset the adv_pool in disable so that advertising can be started after
re-enabling without issue.

Signed-off-by: Sean Madigan <sean.madigan@nordicsemi.no>
2022-11-09 09:03:50 +00:00
Sean Madigan
0e010e8744 Bluetooth: Host: init fifos and slists before use
In bt_att_init, bt_conn_init and bt_l2cap_init, init the fifos and
slists before use. This means that they can be used after disable
without memory leakage.

Signed-off-by: Sean Madigan <sean.madigan@nordicsemi.no>
2022-11-09 09:03:50 +00:00
Sean Madigan
0ef4f9740a Bluetooth: Shell: Add bt_disable to bluetooth shell app
bt_disable can now be used with the bluetooth shell.

Signed-off-by: Sean Madigan <sean.madigan@nordicsemi.no>
2022-11-09 09:03:50 +00:00
Jamie McCrae
693e4cda81 mgmt: mcumgr: img_mgmt: Remove packed attribute from some structs
Removes the packed attribute from the img_mgmt structs that do not
need it.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2022-11-08 22:38:20 +01:00
Emil Gydesen
a34c2cd90a Bluetooth: Audio: Fix ASE_{SNK,SRC}_COUNT=0 issues
Due to the LISTIFY macro for the counts, the value
cannot be 0.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-08 10:48:54 +01:00
Mariusz Skamra
529b4b2b1d Bluetooth: audio: ascs: Fix invalid error code returned
This fixes invalid error code that was returned in case remote requested
Disable operation with invalid ASE ID.

Fixes: BAP/USR/SPE/BI-01-C
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-08 10:48:47 +01:00
Pavel Vasilyev
f2ea6f2149 Bluetooth: Mesh: Check avail conn before restarting pb-gatt srv adv
When a provisioner connects to the device, gatt_connected callback is
called in pb_gatt_srv.c, then pb-gatt advertising is stopped and adv_sent
callback is triggered in adv_ext.c. adv_sent callback reschedules
advertising and eventually calls bt_mesh_adv_gatt_send. Since the device
is not provisioned yet, it tries to start pb-gatt advertising again. If
number of available connections is reached, this results in "Advertising
failed" error in adv_ext.c.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2022-11-08 10:47:24 +01:00
Vinayak Kariappa Chettimada
0f80133571 Bluetooth: Host: Add auto conn param update retry count and timeout
Add implementation to retry the automatic peripheral
perferred connection parameter request with a configurable
retry countdown and retry back-off timeout.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-11-08 10:47:07 +01:00
Vinayak Kariappa Chettimada
073b2af808 Bluetooth: Host: Fix use of tabs inside struct and enum definitions
Fix use of tabs inside struct member of bt_conn_le and
bt_conn enum definitions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-11-08 10:47:07 +01:00
Sam Hurst
37e6f15f34 usb-c: Fix unsupported message reporting
When operating in PD2.x mode, PD_CTRL_REJECT should be
transmitted to the port partner when an unsupported message
is received.

Signed-off-by: Sam Hurst <sbh1187@gmail.com>
2022-11-08 10:46:40 +01:00
Mariusz Skamra
e4f0bcdd56 Bluetooth: audio: ascs: Fix audio ISO allocation in QoS->QoS transition
ASE in QoS state already have audio ISO object.
This will just skip the audio ISO allocation and binding in such case
if CIG and CIS parameters did not change.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-08 10:46:07 +01:00
Lingao Meng
93709a7359 Bluetooth: Mesh: Add specific number of keys & groups
Since Mesh Spec and Mesh model sayes, some model no need
groups and no need keys, such as Config Server, but the
current implementation, all model use same configuration,
which cause some ram ext comsume.

So that, change to specific way, but will consume more footprint size.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-11-08 10:45:15 +01:00
Erik Brockhoff
76439d0ba4 Bluetooth: controller: integrating SCA procedure and adding HCI API
Adding controller support for updating SCA in ACL and ISO peripherals
Adding HCI API support for le_request_peer_sca and complete event.

Signed-off-by: Erik Brockhoff <erbr@oticon.com>
2022-11-08 10:44:54 +01:00
Erik Brockhoff
b3b4b9e322 Bluetooth: controller: implementing SCA update procedure PDU flow
Adding PDU flow and unittest for Sleep clock accuracy procedure

Signed-off-by: Erik Brockhoff <erbr@oticon.com>

wip kconf
2022-11-08 10:44:54 +01:00
Tom Burdick
e3d877f811 rtio: Userspace support
Add support for userspace with RTIO by making rtio and rtio_iodev
k_objects. As well as adding three syscalls for copying in submissions,
copying out completions, and starting tasks with submit.

For the small devices Zephyr typically runs on one of the most important
attributes tends to be low memory usage. To maintain the low footprint of
RTIO and its current executor implementations the rings are not shared with
userspace. Sharing the rings it turns out would require copying submissions
before working with them to avoid TOCTOU issues.

The API could still support shared rings in the future so that a
kernel thread could directly poll, copy, verify, and start the submitted
work. This would require a third executor implementation that maintains its
own copy of submissions similiar to how io_uring in Linux works.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-11-08 10:44:03 +01:00
Emil Gydesen
8dffa45e0c Bluetooth: Audio: Add support for multiple subgroups for BAP broadcast sink
The broadcast sink supports multiple subgroups, but was
not possible due to the Kconfig option.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-08 09:43:11 +00:00
Erik Brockhoff
6b324122e7 Bluetooth: controller: fix CIS REQ event generation and rejection
Check LE event mask state as well as host controlled feature mask state
and reject CIS request accordingly.
Release pre-allocated ISO resources on rejection of request

Signed-off-by: Erik Brockhoff <erbr@oticon.com>
2022-11-08 09:38:21 +00:00
Emil Gydesen
87eab711df Bluetooth: Audio: Add additional printing in CSIS client shell
The CSIS client shell did not print the pointers of the instances
discovered, which are needed for future commands.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-08 09:37:17 +00:00
Emil Gydesen
6d46472cfe Bluetooth: VCS: More explicit log for abs vol set opcode
When the set absolute volume opcode was received, we
logged the current volume, but without any explaining
text.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-08 09:36:04 +00:00
Emil Gydesen
7fb8f77103 Bluetooth: Audio: Shell: Fix metadata argument
The metadata in the presets are just defined
using the BT_AUDIO_LC3_PRESET which ultimately
uses BT_CODEC_LC3_CONFIG_META which correctly
sets the data pointer, but the `value` array is unused.

So we cannot just update the `value`, as that is actually
not used in those cases, and the `data` pointer is `const`.

The solution is to a copy of the metadata data, and use
the copy when calling the API.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-08 09:35:25 +00:00
Kumar Gala
6401682dd3 ztest: Fix building when CONFIG_MP_NUM_CPUS=1
We get compiler warnings on testcases that set CONFIG_MP_NUM_CPUS=1
and platforms that have CONFIG_SMP=y.  Qualify the code so its only
built if CONFIG_SMP && (CONFIG_MP_NUM_CPUS > 1).

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2022-11-07 21:12:54 -05:00
Andrzej Puzdrowski
2c52733f8d dfu/boot/mcuboot: treat pristine image as confirmed
In case of initial/pre-programed image.
Such image can neither be reverted nor physically confirmed.

Image like this should be recognized as confirmed by the
boot_is_img_confirmed() for consistency.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2022-11-07 09:50:35 +01:00
Mariusz Skamra
9054435a4a Bluetooth: ascs: Handle CIS disconnection in non-releasing state
Unbind ISO when goint to idle state if there's still reference kept.
It may happen that we get CIS disconnection being in non-releasing
state, so we have to handle that case. This fixes regression that was
introduced in 3fa456905d.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-07 09:50:18 +01:00
Lingao Meng
9cb1ff7fce Settings: NVS: Add cache for nvs name lookup
Add cache for name id lookup.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-11-05 19:58:34 +01:00
Jamie McCrae
b6cd83bf7a net: ipv4: Add fragmented packet support
Adds support for incoming and outgoing IPv4 fragmented packet support,
allowing a single packet that is too large to be sent to be split up
and sent successfully.

Signed-off-by: Jamie McCrae <spam@helper3000.net>
2022-11-05 19:58:26 +01:00
Pavel Vasilyev
d286bc4699 Bluetooth: Mesh: Fix args parsing in cmd_net_key_add function
cmd_net_key_add has only 2 arguments.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2022-11-05 19:56:50 +01:00
Mariusz Skamra
7a6581219d Bluetooth: gatt: Fix notification cleanup on disconnection
This fixes GATT notification buffer missing cleanup on ACL
disconnection. Fixes potential NULL pointer dereference trying to use
invalid conn object in `notify_mult_process` work queue task handler
and/or missing free of pending notification buffer.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-05 19:56:42 +01:00
Stephanos Ioannidis
fa5fd41b61 kernel: Add C++ main() support
The C++ standard requires the main() function to have the return type
of 'int' and does not allow the main() to be defined with the 'void'
return type. Moreover, GCC goes as far as to emit a hard error when the
'::main()' has the return type of `void`.

This commit introduces an option to instruct the Zephyr kernel to call
the 'int main(void)' instead of the 'void main(void)' in case a Zephyr
application defines main() in a C++ source file.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-11-05 16:41:45 +09:00
Mariusz Skamra
fbeee206f2 Bluetooth: audio: pacs: Hotfix invalid PACS length
This fixes adding 2 redundant bytes... to the PAC records.
As a result we end up with broken PAC record.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 10:00:00 +01:00
Mariusz Skamra
7405f81db6 Bluetooth: audio: pacs: Remove unused structure member
The 'pacs' member was never referenced.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 10:00:00 +01:00
Mariusz Skamra
8f6fc38ca3 Bluetooth: audio: unicast_client: Remove redundant code
The unicast_client_ep_set_codec function that is called below
sets the codec id, cid, vid.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 10:00:00 +01:00
Juha Heiskanen
efa75b5a76 net: lwm2m: Send operation registry lock update
Secured Message allocation, init and rebuild process for secure
timeseries ring buffer.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-11-04 09:59:51 +01:00
Juha Heiskanen
05a92f9258 net: lwm2m: Timeseries data cache read update
Added support for handle case when all data is not possible to
add in 1 message for Send and Observed Notification.

Notification continuous pending timeseries data is triggred
by iMIN attribute.

Send Operation generate continuous message in multiple lwm2m
message.

Normal Read by server only report back latest stored data.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-11-04 09:59:51 +01:00
Tommi Kangas
75b5eaac0f net: lwm2m: fix hanging deregistration
Fixed a deadlock in deregistration by moving mutex unlocking.

Signed-off-by: Tommi Kangas <tommi.kangas@nordicsemi.no>
2022-11-04 08:56:05 +00:00
Mariusz Skamra
50b57056bd Bluetooth: iso: Fix calling wrong function to terminate BIG
The bt_iso_chan contains vaild pointers for Tx and Rx QoS parameters.
This unifies the implementation between different roles.
This fixes checking ISO type that is done based on ISO type that
is kept inside of conn.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 08:55:12 +00:00
Mariusz Skamra
0fa978508c Bluetooth: audio: unicast_client: Inform all related EP's about ISO state
This fixes application callbacks not being called on ISO connection
state change.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 08:55:12 +00:00
Mariusz Skamra
3fa456905d Bluetooth: audio: Factor out bt_audio_iso pool
This adds common bt_audio_iso pool that will be used across all the
roles/profiles. The pool range is dependent on the CONFIG_BT_ISO_MAX_CHAN
which is the maximum number of ISO connections the host can maintain.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 08:55:12 +00:00
Mariusz Skamra
1aaf1e522f Bluetooth: audio: unicast_client: Remove unused functions
This removes unused functions from unicast_client.c

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 08:55:12 +00:00
Mariusz Skamra
6fde7ae96d Bluetooth: audio: ascs: Move control point work to EP
Move the control point work to the EP. The aim is to cleanup the code so
that it there's no EP for ASE that means ASE is in idle state.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-11-04 08:55:12 +00:00
Jamie McCrae
461b2147d6 mgmt: mcumgr: Fix using wrong value for response packet size
Fixes an issue introduced with a recent change that wrongly uses the
source packet header size for the output instead of the supplied
size.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2022-11-03 15:39:17 +01:00
Dominik Ermel
95202ae3da mgmt/mcumgr: Unify function definition style
Move static and return type in line with definition.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:45 +01:00
Dominik Ermel
98831be2c4 mgmt/mcumgr: Rename mgmt_hdr to smp_hdr
mgmt_hdr has always been part of SMP protocol and the name is
a little bit misleading.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:45 +01:00
Dominik Ermel
73d1bf984a mgmt/mcumgr: Make mgmt_hdr definition internal
It is only needed to be known by SMP protocol processing
and in some cases by transport, for example reassembly.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:45 +01:00
Dominik Ermel
bf8ec99860 mgmt/mcumgr: Remove mgmt_ntoh_hdr and mgmt_hton_hdr
These two-liners have been only used by SMP protocol processing,
and there is no reason to have them available as public functions.
Code from these functions have been moved directly where they
have been used and they have been removed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:45 +01:00
Dominik Ermel
5f025cf49c mgmt/mcumgr: Move and rename zephyr_ prefixed functions in OS group
zephyr_ prefix is now redundant as there are no other OSes supported.
The commit also moves functions, after renaming them, and makes
them static, as they no longer have to be shared between compilation
units.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:29 +01:00
Dominik Ermel
80958bbff9 mgmt/mcumgr/lib: Merge Zephyr specific code to fs_mgmt.c
It is no longer needed to have "system specific" API for FS management.
The commit removes fs_mgmt_impl.h and moves Zephyr specific
functions that implement the fs_mgmt_impl.h declared functions
into fs_mgmt.c

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-11-03 13:04:29 +01:00
Jamie McCrae
4c48b4f21a mgmt: mcumgr: img_mgmt: Fix bug with old image state being present
This fixes an issue whereby the image state of an upload is present
even after an image erase command, which would instruct a client to
continue uploading at an offset that has no preceeding data.

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2022-11-03 13:03:53 +01:00
Vinayak Kariappa Chettimada
f35b9eb5cc Bluetooth: Shell: Select BT_TICKER_NEXT_SLOT_GET when BT_LL_SW_SPLIT
Select BT_TICKER_NEXT_SLOT_GET when BT_LL_SW_SPLIT enabled
and building applications with shell support (BT_SHELL).

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-11-03 10:24:49 +01:00
Emil Gydesen
cdc3b332ba Bluetooth: Audio: Fix unicast client ep reset
The endpoint was only partially memset on disconnect,
which left the handles untouched. This meant that the
reset endpoint would still get returned by
unicast_client_ep_find.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2022-11-03 10:24:03 +01:00
Morten Priess
447c7390f5 Bluetooth: controller: Add window widening for CIS/CIG
Program CIG ticker with window widening drift. Introduce vendor specific
conversion macros allowing sub-microsecond resolution in the
accumulation of window widening drift per interval.

Calculation of window_widening_max_us is done for NSE<3, and must be
adjusted in the LLL before use, if the first CIS in the CIG has a
NSE>=3. In that case window_widening_max_us shall be limited to one sub
interval.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2022-11-03 08:56:58 +00:00