Commit graph

12176 commits

Author SHA1 Message Date
Vinayak Kariappa Chettimada
7f97c04bf8 Bluetooth: Controller: Fix jitter between primary and auxiliary PDU
As Extended Advertising primary PDUs do not use ticker
remainder value for fine scheduling of radio events, do not
use the remainder value for auxiliary PDUs. This fixes the
jitter in the aux_offset value that caused the auxiliary PDU
being observed to be late compared to the aux_offset value
filled in the primary PDUs.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-21 10:14:59 +01:00
Szymon Janc
2f93808bcc Bluetooth: Host: Validate security on GATT subscription
Core Specification 5.3 clarified security requirements for GATT client
when handling incoming notifications and indications.

Vol 3: Part C: 10.3.2.2:
"...Since the configuration is persistent across a disconnection and
reconnection, the client shall check the security requirements against
the configuration upon a reconnection before processing any indications
or notifications from the server. Any notifications received before
the security requirements are met shall be ignored. Any indications
received before the security requirements are met shall be confirmed
and then discarded. ..."

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2022-03-21 10:14:53 +01:00
Dominik Ermel
9a0174df40 mgmt/mcumgr: Storeage erase may bus fault when no device
The commit fixes erase storage command so that it would return with
error code instead of bus faulting when no device is attached
to flash storage.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-21 10:14:41 +01:00
Dominik Ermel
c842bb1ac1 mgmg/mcumgr/lib: Fix image commandis bus faults when no device
It is possible for flash partition to have no device attached
which may cause image commands to bus fault device.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-03-21 10:14:41 +01:00
Carlo Caione
3fc5150f36 ipc_service: static_vrings: Use atomic helpers
Use the correct atomic helpers when accessing atomic_t variables and fix
a possible race condition.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-03-21 10:14:32 +01:00
Mariusz Skamra
7c99e67b94 Bluetooth: audio: Add initial Hearing Access Service implementation
This adds bare minimum implementation of Hearing Access Service.
The GATT HAS service contains one Hearing Aid Features mandatory
characteristic.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-21 10:14:15 +01:00
Henrik Brix Andersen
67ba9900f0 drivers: can: add struct device argument to callback functions
Include a pointer to the CAN controller device for the CAN
transmit, receive, and state change callback functions.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-03-19 14:31:22 -04:00
Martin Jäger
9cc32af99e lorawan: allow setting of DevNonce for OTAA re-join
Starting with LoRaWAN 1.0.4 the DevNonce sent with the OTAA join must be
monotonically increasing for each new join with the same EUI. The DevNonce
should be stored in non-volatile memory by the application.

This commit uses a simple extension of the lorawan_join_otaa struct to
allow specifying the DevNonce.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-03-19 14:29:01 -04:00
Nazar Kazakov
f483b1bc4c everywhere: fix typos
Fix a lot of typos

Signed-off-by: Nazar Kazakov <nazar.kazakov.work@gmail.com>
2022-03-18 13:24:08 -04:00
Kamil Gawor
a80416fede bluetooth: controller: Align the Openisa test ll API
Alignes the Openisa ll_test_tx and ll_test_rx functions
with the new test API.

Signed-off-by: Kamil Gawor <Kamil.Gawor@nordicsemi.no>
2022-03-18 12:00:03 +01:00
Kamil Gawor
5db0302c99 bluetooth: controller: Add support for all DTM commands
This adds support for the following Direct Test mode
commands:
- HCI LE Receiver Test [v3]
- HCI LE Transmitter Test [v3]
- HCI LE Transmitter Test [v4]

Those commands set add a possibility to test an CTE
reception and transmission. The HCI LE Transmitter
Test [v4] commands allows also setting a transmit power.

Signed-off-by: Kamil Gawor <Kamil.Gawor@nordicsemi.no>
2022-03-18 12:00:03 +01:00
Szymon Janc
a5364567ec Bluetooth: controller: Make sure effective DLE is valid
If peer sends invalid data length in response IUT should fix those
when calculating effective data length.

This was affecting following qualification test cases:
LL/CON/PER/BI-10-C
LL/CON/PER/BI-11-C
LL/CON/PER/BI-12-C
LL/CON/CEN/BI-07-C
LL/CON/CEN/BI-08-C
LL/CON/CEN/BI-09-C

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
2022-03-18 11:39:27 +01:00
Robert Lubos
ffdc621f1b net: http_client: Fix http_client_req() return value
http_client_req() was supposed to return the number of bytes sent as a
HTTP request. The return value was not riht however due to some bugs in
helper functions:
* http_send_data() returned the current buffer position istead of the
  number of bytes actually sent. This could result in counting the same
  data into the total request size several times. A helper variable was
  added to track how many bytes were actually sent to the network.
* http_flush_data() forwarded the return value of sendall() helper
  function. That function however did not return number of bytes sent,
  but 0 or a negative error code.

Additionally, change the return type of sendall() function - according
to standard the ssize_t type is only capable of holding -1 negative
value, but the function could return the full range of negative errno
values. Use int instead.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2022-03-18 11:14:24 +01:00
Aleksander Wasaznik
4fcaba29e2 Bluetooth: Host: Fix GCC 7 error: non-constant expr in initializer
Using a const-qualified object in a static initializer is implementation
specific in C, and it does not work in GCC 7.

Before this change, `write_appearance` was a pointer object if
CONFIG_BT_DEVICE_APPEARANCE_GATT_WRITABLE was disabled. This change
removes that object in favor of a macro `GAP_APPEARANCE_WRITE_HANDLER`.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2022-03-18 10:21:49 +01:00
Eduardo Montoya
3efc73f031 manifest: openthread upmerge up to commit 9f30e049
Regular OpenThread upmerge.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
2022-03-17 16:37:03 -05:00
Juha Heiskanen
9777ba7354 net: lwm2m: SenML JSON dynamic Resource instance allocation
Integrated dynamic resouce instance allocation to SenML JSON.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-03-17 11:41:42 +01:00
Vinayak Kariappa Chettimada
4aad6d0d66 Bluetooth: Controller: Fix Extended Legacy Direct Advertising report
Fix Extended Legacy Direct Advertising report to have the
correct Target Address.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:38:40 +01:00
Vinayak Kariappa Chettimada
07ff037da3 Bluetooth: Controller: Avoid pre-empting when extended active scanning
Avoid pre-empting scan window when extended active scanning.
If a scan request has been transmitted, then avoid being
pre-empted at the end of window when in continuous scanning.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:38:17 +01:00
Vinayak Kariappa Chettimada
7c7da5d4a4 Bluetooth: Controller: Fix power amp for transmit of chain scan resp
Fix power amp for transmitting of chain scan response
wherein capture of PDU end timestamp was missing causing
power amplifier from not being enabled for first chain PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:37:41 +01:00
Mariusz Skamra
26ff5a30d2 Bluetooth: bap: Remove EATT dependency
The EATT support is optional for BAP. The specification mandates the
minimum MTU supported to be 64 bytes.

As per BAP_v1.0
"The Unicast Server shall support a minimum ATT_MTU of 64 octets for
one Unenhanced ATT bearer, or for at least one Enhanced ATT bearer
if the Unicast Server supports Enhanced ATT bearers."

The same applies for other BAP roles.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2022-03-17 11:37:21 +01:00
Vinayak Kariappa Chettimada
d402dbb652 Bluetooth: Controller: Fix auxiliary context flush on auxiliary stop
Fix auxiliary context from being flushed when scanner or
periodic synchronization is stopped, to avoid using the
disable_cb by both. Fixes an assertion when this race
condition happens.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:36:05 +01:00
Vinayak Kariappa Chettimada
3325aac985 Bluetooth: Controller: Fix to not send release message to HCI
Do not enqueue NODE_RX_TYPE_RELEASE into Auxiliary context
when stopping scanner, as this type is not to be passed to
HCI processing, which would lead to assertion.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:36:05 +01:00
Vinayak Kariappa Chettimada
8b26752199 Bluetooth: Controller: Fix auxiliary context leak on stop
Fix auxiliary context leak on stop, under race condition
where ULL High execution context does not release the
auxiliary context as stop has been requested, and done
has decremented the auxiliary context's reference count.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:36:05 +01:00
Vinayak Kariappa Chettimada
c1e78c232e Bluetooth: Controller: Fix the order of Periodic Sync in HCI Reset
Fix the order of Periodic Synchronize reset during HCI
Reset Command. Perform scan reset last after Periodic
Synchronize reset to avoid resetting the auxiliary
context which may be in use by Periodic Synchronize.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2022-03-17 11:33:43 +01:00
Rubin Gerritsen
c17bc7ad2a Bluetooth: Kconfig: Move audio and mesh to be shown under host
These subsystems are part of the host.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
beaa73ff19 Bluetooth: Kconfig: Hide buffer configuration in a separate menu
Users will usually not want to browse through these. Therefore it is
better to hide them a bit.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
6a687da940 Bluetooth: Kconfig: Move BT_LIM_ADV_TIMEOUT to host config
This configuration is meant to be in the host.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
96a2f56ac6 Bluetooth: Kconfig: No use menu for observer and broadcaster configs
This will ensure that they don't turn up as sub-menus

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
d13ff191c3 Bluetooth: Kconfig: Remove Controller comment line
The controller configuration is already a submenu

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
1e0e2370ac Bluetooth: Kconfig: Move GATT Kconfig to be part of host
This prevents GATT service selection being selectable when compiling
controller only builds.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Rubin Gerritsen
db9ae3e09a Bluetooth: Kconfig: Move Host configuration to a separate menu
This reduces the number of visible options.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2022-03-17 11:12:47 +01:00
Robert Lubos
81b92fcbb3 net: tcp: Verify accept callback before use
Closing a listening socket will set the accept callback to NULL.
This could lead to a crash, in case an already received packet,
finalizing the connection handshake, was processed after the socket was
closed. Thereby, it's needed to verify if the callback is actually set
before processing it.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2022-03-16 16:23:16 +01:00
Robert Lubos
08752aed0f net: sockets: Fix userspace accept() verification
The verification function for accept() did not take into account that
addr and addrlen pointers provided could be NULL.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2022-03-16 16:23:16 +01:00
Robert Lubos
546267ab3b net: sockets: Implement getpeername() function
Implement getpeername() function.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2022-03-16 16:23:16 +01:00
Gerard Marull-Paretas
8f913d1977 pm: policy: allow to get notifief when maximum latency changes
Add a new API that allows to register a callback that is called when the
maximum latency value changes. This can be used by SoC code to perform
actions based on certain latency values.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
35fd6eadbf pm: policy: new API to set maximum latency requirements
Add a new API that allows to configure maximum latency requirements.
When the policy manager computes the next state, it will check if the
state brings too much latency based on requirements. This can be useful,
for example, if a certain driver or the application want a system to
respond fast, since any low power state that brings too much latency
will not be used.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
e6339eac1a pm: policy: assert on unbalanced state lock get/put
The state lock get/put calls should always be balanced: first call get
and then put. Add an assertion in case lock counter is about to go
negative, indicating a programming error.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
5a71eeb35c pm: policy: move constraints to policy API
The pm_constraint_* APIs were effectively used by the policy manager
only. This patch renames the API to the policy namespace and makes its
naming more explicit:

- pm_constraint_set -> pm_policy_state_lock_get()
- pm_constraint_release -> pm_policy_state_lock_put()
- pm_constraint_get -> pm_policy_state_lock_is_active()

The reason for these changes is that constraints can be of many types:
allow/disallow states, impose latency requirements, etc. The new naming
also makes explicit that the API calls will influence the PM policy
behavior.

All drivers and documentation have been updated accordingly.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
d158f512ac pm: constraint: cleanup include list
Most include files were not used, and `toolchain.h` was missing (needed
by `__weak`).

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
ebb88fb3a2 pm: constraint: remove unused logging
The constraint code does not log, so remove include/module declaration.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
a66a4cdf6e pm: constraint: remove redundant assertions
1. state < PM_STATE_COUNT: the function argument is an enumeration that
   already indicates the valid values. It is a programming error to pass
   random integer values, the API should not be defensive "just in case
   the application has messed things up".
2. v < UINT_MAX: first, this assumes type used by `atomic_t` (opaque).
   Second, if the integer overflows it will just wrap around, so the
   check does nothing in practice.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
3c38a41991 pm: policy: remove unused logging
The policy file does not perform any logging, so just drop logging
include and declaration.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
2238387285 pm: policy: move to pm folder
Move policy code one level up for simplicity, since there is a single
source file. Source file has been renamed to "policy.c" to make things
clear.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Gerard Marull-Paretas
22fe2142f0 pm: policy: use DEFAULT/CUSTOM naming
The residency policy, is in reality, influences by other parameters for
example constraints. It has been renamed to "DEFAULT" policy to make it
more general. The "APP" policy has been renamed to "CUSTOM" to better
represent its purpose.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-16 15:26:47 +01:00
Tomasz Bursztyka
521c9d13fb pm: constify all device instances
Run cocci script to constify device instances.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2022-03-16 12:33:12 +01:00
Robert Lubos
2f2c356ca7 net: tcp: Verify if IPv4/IPv6 is enabled before processing addr family
TCP processed IPv4/IPv6 packets w/o verifying first if IPv4/IPv6 is
enabled in the system. This could lead to problems especially for IPv6,
where in case it's disabled the sockaddr structure is not large enough
to accomodate IPv6 address, leading to possible out-of-bound access on
the sockaddr structure.

Fix this by adding appropriate checks where applicable.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2022-03-16 04:21:34 -07:00
Krzysztof Chruscinski
786647bdcf lib: os: assert: Avoid including printk.h in __assert.h
Create wrapper for printk to avoid including printk.h in __assert.h.
__assert.h is used everywhere thus should not have dependency to
printk.h.

Cleanup assert Kconfig options.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2022-03-16 10:27:20 +01:00
Juha Heiskanen
6cb662a495 net: lwm2m: Composite Observation update
Added support for Composite observation for LwM2M v1.1.
Updated current Observation node to support linked path list.
Rename typos lwm_ to lwm2m_.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-03-16 10:26:01 +01:00
Juha Heiskanen
6970addc12 net: lwm2m: Observation pmin and pmax refactor
Removed to store pmin and pmax at oberservation node structure and
use attribute list store for calculate time for next Notification.
Observation class use timestamp for triggering notification based on
resource update which use pmin and default pmax behaviour.

Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
2022-03-16 10:26:01 +01:00
Yong Cong Sin
d2f7d696aa subsys/mgmt/hawkbit: update http response handling
Following the merge of #42026, the http body handling can be
simplified.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2022-03-16 10:25:38 +01:00