Commit graph

21541 commits

Author SHA1 Message Date
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
Eduardo Montoya
e05c966992 net: openthread: remove CONFIG_OPENTHREAD_CSL_SAMPLE_WINDOW
Remove obsolete configuration option.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
2022-03-07 10:54:30 +01:00
Vinayak Kariappa Chettimada
fdda91d4b4 Bluetooth: Controller: Fix k_sem_give call from Zero Latency IRQs
Fix k_sem_give() from being called from Zero Latency IRQs
when the Controller is configured with BT_CTLR_ZLI=y.

Kernel features shall not be used from Zero Latency IRQs as
these IRQs cannot be locked by the kernel to maintain
context safety of the kernel objects.

Relates to commit 92e017fd70 ("Bluetooth: controller:
split: Support Zero Latency IRQs") and
commit c842eef3ae ("Bluetooth: controller: Add semaphore
to indicate free AD data buffers").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-07 10:53:50 +01:00
Piotr Pryga
89a6a3a7c2 Bluetooth: Controller: Fix per adv scheduling issue
sw_switch implementation uses two parallel groups of
PPIs connecting radio and timer tasks and events.
The groups are used interchaneably, one is set for
following radio TX/RX event while the other is in use
(enabled).

The group should be disabled by timer compare event that
starts Radio to TX/RX a PDU. The timer is responsible for
maintenance of TIFS/TMAFS. The disabled group collects
all PPIs required to maintain the TIFS/TMASF. After
the time is reached Radio is started and the group is
disabled. It will be enabled again by software radio
swich during next call.

If the group is not disabled then it will work in parallel
to other one. That causes issues in correct maintenance of
instant when radio shoudl be started for next TX/RX  event
e.g. radio may be enabled to early.

In case the PHY CODED was enabled and periodic advertising
included chained PDUs, that are transmitted back-to-back,
there was missing group delay disable. The missing case was
sw_switch function called with dir_curr and dir_next set
to SW_SWITCH_TX.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-03-07 10:53:30 +01:00
Dominik Ermel
264877cf50 mgmt/mcumgr/lib: Fix taskstat thread name processing
The commit:
 - removes usage of strnlen to make taskstat code C99 compliant;
 - corrects thread name len, following update description of
   CONFIG_OS_MGMT_TASKSTAT_THREAD_NAME_LEN;
 - reduces duplicated code.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-07 10:53:20 +01:00
Dominik Ermel
cd97b19749 mgmg/mcumgr/lib: Remove strnlen from OS echo command
The commit removes usage of strnlen from echo command to make
code C99 compliant, and allow it to compile with newlib.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-07 10:53:20 +01:00
Dominik Ermel
8284d486c4 mgmt/mcumgr: Kconfig: Correct OS_MGMT_TASKSTAT_THREAD_NAME_LEN info
The help for the OS_MGMT_TASKSTAT_THREAD_NAME_LEN stated that
the config includes terminating zero, but this is not true:
when thread name is encoded with CBOR it is encoded with actual
string length and is not zero terminated.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-07 10:53:20 +01:00
Veijo Pesonen
0032f0bcff net: lwm2m: obj inst processing per formatter
It depends from a content formatter is there need to put constructs
with a path level deeper than object instance. In other words with
resource- or resource-instance-level.

Signed-off-by: Veijo Pesonen <veijo.pesonen@nordicsemi.no>
2022-03-07 10:52:58 +01:00
Carlo Caione
4ea6fd4f20 ipc_service: Start the wq only once
No need to start the wq every time the mbox is initialized, it must be
done once for all the instances (it is shared by all the instances).

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-03-07 10:52:51 +01:00
Lingao Meng
e6212c203a Bluetooth: Mesh: Fix missing add suffix _COMMON
Since `CONFIG_BT_MESH_PB_GATT` represent to pb-gatt-srv.

We use `CONFIG_BT_MESH_PB_GATT_COMMON` to represent common.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2022-03-07 10:52:14 +01:00
Asbjørn Sæbø
68144f58e9 Bluetooth: OTS - rename client data receive callbacks
Rename the data and metadata callbacks to _read(), for consistency
with the corresponding function calls.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
13b4506bf8 Bluetooth: OTS: Use out-of-range value for unknown object ID
Use a value for "Unknown object ID" that is outside of the range of
valid object IDs.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
eecd94409c Bluetooth: OTS - Client APIs to have instance as first parameter
Move the instance as the first parameter of the client function calls
and callbacks, for consistency with the server implementation.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
4e1ca8f9d4 Bluetooth: OTS - do not include internal connection header
Remove #include of conn_internal.h - cast conn pointers to void for
logging instead.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
1f8e4c906f Bluetooth: OTS - rename two defines
Rename two defines for internal consistency in file.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
c894b63e9e Bluetooth: OTS - Rename client callbacks
Rename client callbacks to be more consistent with common code style.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
70eefae1d2 Bluetooth: OTS - Merge server and client header files
- Move content of client header file to common header file.
- Rename content from "otc" to "ots_client".
- Remove empty client header file.
- Update users.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
adfd1d16e0 Bluetooth: OTS: Merge client and server metadata types
Merge the metadata types for client and server.
This is part of merging the ots_client and ots header files.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
da89dcfbcd Bluetooth: OTC - Move metadata bitfields to common files
Move the metadata request bitfields to the common header files.
This is part of merging the ots_client and ots header files.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
68745d87d5 Bluetooth: OTS: Unify object name size for client and server
Use Kconfig value for object name size also for client.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
7fabcb3124 Bluetooth: OTS - minor client cleanups
Small clean-ups to client code: Making variables const, adding a value
to a debug print.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
b16c760c6c Bluetooth: OTS: Move defines to internal file
Move defines from public API to implementation (only used there).

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
76cf124060 Bluetooth: OTS - rename client files
Rename OTS client files from "otc" to "ots_client".

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
352dd3763e Bluetooth: OTS - join Kconfig for OTS server and client
Merge Kconfig file for OTS server and client.
Rename the client config from _OTC to _OTS_CLIENT

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
b33625fcd2 Bluetooth: OTC - mark as Experimental
Mark the OTC implementation as experimental

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
69b731d824 Bluetooth: OTC: Rename two functions
Rename functions to follow common pattern (module, action, noun).

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
1a81bceea2 Bluetooth: OTC: Use OTS defines and types instead of separate ones
Update the Object Transfer Client to use OTS defines and types instead
of the ones left over from the previous "le-audio local" object
transfer service:
DIR_LIST, object ID size, OACP and OLCP

Remove the no longer used defines and types from the OTC header file.
Exception: The OLCP sort order defines have not been removed, but
moved to the olcp internal header file, for expected later use.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
1be80a4d84 Bluetooth: OTS: Move directory listing defines to other header
Move the directory listing size defines to the OTS directory listing
internal header file.

This removes an implicit dependency upon users of
ots_dir_list_internal.h to also include ots_internal.h.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
aa80b87d4a Bluetooth: OTC: Clean up internal header file
Remove various unused defines, update comments, update inclusion guard

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
a821dacf90 Bluetooth: Audio: Media control - add missing include
The media control client shell must include the OTC header file.
(It is currently indirectly included via otc_internal.h.)

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
00b14b36aa Bluetooth: OTC: Use ots_l2cap for l2cap transfer
Update the OTC to use the existing ots_l2cap code rather than its own
implementation.
- Add an ots_l2cap struct and register it
- Add ots_l2cap callbacks, reuse most of old l2cap_recv callback in
  the ots_l2cap rx_done callback
- Remove old l2cap code

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
806aeb73cb Bluetooth: OTS/OTC: Config changes for using l2cap for OTC
Update configuration so that the OTS l2cap file can also be used for
the OTC.
(The plan is to merge the OTS and OTC config files later.)

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
3e80d4b04f Bluetooth: OTS: add connect() function to ots_l2cap
Add an l2cap connect() function to OTS.  This is a function for
clients, added to prepare for the upcoming OTC client (re)using the
ots_l2cap module.

As part of this, factor out an internal function to find a free l2cap
context.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
9e4443a8b3 Bluetooth: OTC: Remove unused macros and net_buf
Remove some unused code from the OTC.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
25540ef746 Bluetooth: OTC - do not register L2CAP server
Remove L2CAP server registration.  The object transfer client does not
need to register an L2CAP server.

OTS spec: "It is always the responsibility of the Client to open the
Object Transfer Channel, regardless of the direction of transfer, and
is never the responsibility of the Server."

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
0d6e18a052 Bluetooth: OTC: Move OTC files to OTS folder
Move the OTC files to the OTS folders for further refactoring.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
725d9b9b7e Bluetooth: OTC - remove old ots header file
Preparations for making OTC "official"

Move remaining content of old ots header fil into the otc header file,
and remove the old ots header file.

(Another ots header file already exists in the ots folder.)

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00
Asbjørn Sæbø
343586dd05 Bluetooth: OTC: Remove old ots internal header file
This commit is the first in a series of commits to make the OTC
(Object Transfer Client) implementation that exists in the audio
folder "official". That is, the client implementation will be updated
and refactored to be aligned with the OTS (Object Transfer Service)
implementation that exists in subsys/bluetooth/services/ots, and moved
to that folder.

Preparations for making OTC "official":
Move remaining content of old ots_internal header fil into the
otc_internal header file, and remove the ots_internal header file.
(Another ots_internal header file already exists in the ots folder.)

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2022-03-07 10:47:43 +01:00