Vincent Coubard
2eb77d607a
Update GattAuthCallbackReply_t enumeration.
...
Add missing values that are present in pal::AttErrorResponse.
This allows applications to use correct ATT error codes.
2020-12-08 10:47:55 +00:00
Paul Szczeanek
5cc09f58f8
the adv bit is actually optional in aux_adv_ind so is not required for periodic sync
2020-11-30 16:00:14 +00:00
Martin Kojtal
dd432a387e
Merge pull request #13942 from paul-szczepanek-arm/securitydb-fix
...
ble: Fix persistence in SecurityDB
2020-11-26 11:17:28 +00:00
Martin Kojtal
483db06a5f
Merge pull request #13948 from rajkan01/simplify_ble_lib_inclusion
...
CMake: Simplify BLE library inclusion
2020-11-25 13:37:11 +00:00
Martin Kojtal
57bbb4739b
Merge pull request #13085 from pea-pod/remove-deprecated-mbed-assert
...
Change MBED_STATIC_ASSERTs version for built-in
2020-11-24 13:38:07 +00:00
Rajkumar Kanagaraj
a964453edf
CMake: target_link_library the BLE with CORDIO stack
...
- Security manager uses some feature from wsf which is part of the mbed-ble-cordio library so added target_link_library to link the BLE library to cordio stack lib.
2020-11-23 16:06:53 +00:00
Paul Szczeanek
e71f452e9d
fix missing return
2020-11-23 09:06:42 +00:00
Paul Szczeanek
63887d19a8
update the peer address when LTK has been found in old entry
2020-11-23 09:06:30 +00:00
Paul Szczeanek
187ed98d82
update the connected status of db entry
2020-11-23 09:06:05 +00:00
Paul Szczeanek
6f844e1a71
fix indexing in ble security db
2020-11-23 09:02:56 +00:00
Marc Emmers
01e56f1f34
Fix missing newline
2020-11-16 17:03:23 +01:00
Marc Emmers
afc42b8fb7
Update NRF ble configuration options
2020-11-16 16:43:43 +01:00
Martin Kojtal
e725df7d07
Merge pull request #13833 from AGlass0fMilk/privacy-enabled-cb-patch
...
Add new Gap::EventHandler callbacks to ChainableGapEventHandler class
2020-11-12 08:43:35 +00:00
Hugues Kamba
bf84a5b329
CMake: Rename CMake targets
...
* mbed-os renamed mbed-core
* mbed-os-<COMPONENT> renamed mbed-<COMPONENT>
2020-11-06 17:25:22 +00:00
Hugues Kamba
0ddc75a8f6
CMake: Fix BLE private address linker error
...
List newly added files in CMake input source files.
2020-11-06 17:25:22 +00:00
Hugues Kamba
fa98689639
CMake: Componentize Mbed OS into multiple CMake targets ( #13732 )
...
Aside from the core mbed-os CMake target, a number of targets have been created so they can optionally be included by application executables that require them using `target_link_libraries()`.
Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: Rajkumar Kanagaraj <rajkumar.kanagaraj@arm.com>
2020-11-06 17:25:21 +00:00
Hugues Kamba
e22b19d6db
CMake: Fix build failure due to BLE dir changes
2020-11-06 17:25:21 +00:00
Hugues Kamba
b3c614e921
CMake: Fix CORDIO_LL build failure
...
List missing CORDIO_LL source file in CMake source file.
2020-11-06 17:25:19 +00:00
Hugues Kamba
20e19de028
CMake: Fix breakage due to BLE dir move
2020-11-06 17:25:19 +00:00
Martin Kojtal
c29a2e2338
Merge pull request #13811 from pan-/ble-conditional-compilation
...
Ble conditional compilation
2020-11-06 16:11:10 +00:00
Martin Kojtal
eb6b53ac92
Merge pull request #13753 from AGlass0fMilk/rm-nordic-bsp
...
Remove Unneeded nordic-bsp Folder from Cordio
2020-11-02 14:14:33 +00:00
George Beckstein
911cee69f2
Add new Gap::EventHandler callbacks to ChainableGapEventHandler class
2020-10-29 15:39:41 -04:00
Paul Szczeanek
34c75ffb45
fix wrong advertising set handle being passed to handler
2020-10-28 08:42:58 +00:00
Paul Szczeanek
9e509f435b
fix incorrect parameter check in periodic advertising
2020-10-27 15:09:30 +00:00
Vincent Coubard
ad37f560c2
BLE: Set host default version to 5.1
...
Disable 5.2 event handling if not enabled.
2020-10-27 14:36:59 +00:00
Vincent Coubard
87ea47f211
BLE: Refactor Gap::reset to make it more readable
2020-10-27 14:22:54 +00:00
pea-pod
507181d262
Change MBED_STATIC_ASSERTs version for built-in
2020-10-27 08:30:40 -05:00
Vincent Coubard
f3031da424
BLE: Disable handling of BT5.2 event in the controller.
...
These events are not used nor triggered by any of our APIs. It saves ~1.4k of flash
2020-10-23 16:44:29 +01:00
Vincent Coubard
557eac0617
BLE: Conditional compilation of the security manager
...
Depends on the role (central or peripheral), signing enabled and secure connection enabled.
2020-10-23 16:19:38 +01:00
Vincent Coubard
2e859cdab4
BLE: Conditionally compile PAL depending on the feature selected.
...
Previously (most) of the code was not pulled in because the pal interface was not virtual.
2020-10-23 12:17:31 +01:00
Vincent Coubard
26300912d3
BLE: Prevent code generation from GattClient when not used.
2020-10-23 10:37:28 +01:00
Martin Kojtal
27d10506e0
Merge pull request #13785 from pan-/ble-fix-prep-write-queue-access
...
BLE: Fix access to attcCb.onDeck and attsCb.prepWriteQueue access
2020-10-20 11:10:11 +01:00
Martin Kojtal
1b663a37cf
Merge pull request #13779 from paul-szczepanek-arm/fix-scan-state
...
BLE: Fix scan state and host resolution of RPAs
2020-10-20 11:09:24 +01:00
Vincent Coubard
3cab37793b
BLE: Fix index access to attcCb.onDeck in Cordio.
...
The connection starts at 1, not 0. The entry in the array should be connId - 1
2020-10-19 17:23:42 +01:00
Vincent Coubard
542b725545
BLE: Fix incorrect index used to access attsCb.prepWriteQueue in Cordio
...
The connection id starts at the value 1. The entry accessed in the array should be connId - 1
2020-10-19 17:21:49 +01:00
Paul Szczeanek
934e111107
fix advertising report not terminating early for unwanted reports
2020-10-19 15:47:40 +01:00
Paul Szczeanek
2c906110fc
missing host resolution for rpa when extended advertising is available
2020-10-19 15:47:39 +01:00
Paul Szczeanek
0931709516
replace current bool state combination for keeping track of ble scanning with an enum that covers all states
2020-10-19 15:47:39 +01:00
Martin Kojtal
b242be1b08
Merge pull request #13734 from AGlass0fMilk/chainable-event-handler
...
BLE: Introduce ChainableEventHandler and subclasses
2020-10-19 12:27:56 +01:00
Martin Kojtal
61aa6817f0
Merge pull request #13724 from harmut01/license_refactor
...
Add license notice to Arm copyrighted source files
2020-10-16 09:09:53 +01:00
Martin Kojtal
75f3b6cb1c
Merge pull request #13717 from ARMmbed/feature-ble-host-privacy
...
Feature ble host privacy
2020-10-15 15:07:54 +01:00
Harrison Mutai
4fad1112e5
Add SPDX license identifier to Arm files
...
Add license identifier to files which Arm owns the copyright to,
and contain either BSD-3 or Apache-2.0 licenses. This is to address
license errors raised by scancode analysis.
2020-10-15 10:47:27 +01:00
George Beckstein
9a6d207585
Update GattServer Callback API
...
Update parameters passed to onDataSent, onUpdatesEnabled/Disabled, and onConfirmationReceived callbacks.
Deprecate single-callback-registering functions for event handling in lieu of the new EventHandler-based API.
Introduce new GattServer::EventHandler callback functions to replace the deprecated versions.
2020-10-14 12:44:12 -04:00
George Beckstein
cda2c8bb8d
Introduce ChainableGapEventHandler subclass of ChainableEventHandler
...
The ChainableGapEventHandler enables chaining together Gap::EventHandlers so separate parts of an application can be notified of Gap events as needed. The application can register multiple Gap::EventHandler objects to one ChainableGapEventHandler and then set the global Gap::EventHandler to the ChainableGapEventHandler. All registered EventHandlers will then be called when a Gap Event occurs.
2020-10-14 12:44:09 -04:00
George Beckstein
751674b962
Introduce ChainableEventHandler and ChainableGattServerEventHandler classes.
...
Common functionality has been split off into a generic ChainableEventHandler for use by other EventHandler implementations. The ChainableEventHandler is essentially singly-linked list that propagates callbacks to all objects in the list.
The ChainableGattServerEventHandler enables chaining together GattServer::EventHandlers. An application can register separate event handlers (eg: for different services that need to handle GattServer events) and then set the global GattServer::setEventHandler to the instance of ChainableGattServerEventHandler with all registered GattServer::EventHandlers.
2020-10-14 12:42:25 -04:00
Vincent Coubard
5f1b716bfb
Merge pull request #13760 from paul-szczepanek-arm/privacy-fix-ifdef
...
Fix conditional compilation for ble
2020-10-14 13:35:16 +01:00
Paul Szczeanek
119d459361
fix removed friend function
2020-10-14 09:58:11 +01:00
Paul Szczeanek
9f09bb4956
rename private address controller to match security manager
2020-10-13 17:40:37 +01:00
Paul Szczeanek
3f9798b52d
Fix conditional compilation based on config
2020-10-13 17:32:49 +01:00
Vincent Coubard
2a4a097a93
BLE: Take advantage of controller based address resolution on WB55
2020-10-13 16:16:48 +01:00
Vincent Coubard
e1842ccd87
BLE: Workaround for WB55 connection event
...
The connection event reported by the WB55 is incorrect if controller privacy is not enable and the peer connects with an unknown private resolvable address: The RPA field contains the connection address (it should be empty) and the peer address is all FF while it should be equal to the connection address.
2020-10-13 16:16:17 +01:00
Martin Kojtal
83579b1aa5
Merge pull request #13704 from paul-szczepanek-arm/reset-fix
...
ble: reset transport last and reset the default chars in gatt server
2020-10-13 11:21:21 +01:00
Martin Kojtal
35f97f4e98
Merge pull request #13729 from AGlass0fMilk/implicit-cccd
...
BLE: Enable getting an implicitly-created CCCD through `GattCharacteristic::getDescriptor`
2020-10-13 11:18:40 +01:00
George Beckstein
46bc1577eb
Ignore unneeded Nordic BSP files
2020-10-12 23:28:15 -04:00
Johnny Robeson
e27571fb83
This fixes lto type mismatch warnings in 3 functions
...
```sh
[Warning] pal_rtc.h@76,6: type of 'PalRtcCompareSet' does not match original declaration [-Wlto-type-mismatch]
[Warning] pal_rtc.h@73,6: type of 'PalRtcEnableCompareIrq' does not match original declaration [-Wlto-type-mismatch]
[Warning] pal_rtc.h@74,6: type of 'PalRtcDisableCompareIrq' does not match original declaration [-Wlto-type-mismatch]
```
2020-10-12 07:02:18 -04:00
George Beckstein
f9af08c0ad
Add error if allocation of cccd attribute fails
2020-10-09 09:47:05 -04:00
George Beckstein
fa2c3633dd
Add doxygen guard to private function
2020-10-07 13:32:17 -04:00
George Beckstein
eccb3e9bda
Make setImplicitCCCD private and add impl::GattServer as a friend class
2020-10-07 13:31:09 -04:00
George Beckstein
ca9b70582c
Remove nullptr check when deleting _implicit_cccd
2020-10-07 13:12:08 -04:00
George Beckstein
5c82533d06
Enabled getting an implicitly-created CCCD through GattCharacteristic::getDescriptor
2020-10-06 19:26:32 -04:00
Vincent Coubard
f32141a051
BLE: Notify application when advertising start or stop
...
Applicable for legacy and extended advertising.
2020-10-05 11:54:05 +01:00
Paul Szczeanek
6ee5740941
use _initiating to block scan manipulation
2020-10-05 11:54:05 +01:00
Paul Szczeanek
f0bbc4c7ae
use enum for state
2020-10-05 11:54:05 +01:00
Paul Szczeanek
b0086919ed
scan forever and allow cancellation
2020-10-05 11:54:05 +01:00
Paul Szczeanek
18c218b027
allow host resolved address to be used for connection
2020-10-05 11:54:04 +01:00
Vincent Coubard
4744c87b6c
Set privacy mode to device mode in LL.
...
Do not enable address resolution when a new entry is added.
2020-10-05 11:54:04 +01:00
Vincent Coubard
bb35cba134
BLE: Add function to signal privacy initialization.
2020-10-05 11:54:04 +01:00
Paul Szczeanek
5216a9aa8c
only apply policy if privacy enabled
2020-10-05 11:54:04 +01:00
Paul Szczeanek
d4360383e1
do not reject conn if no bond
2020-10-05 11:54:04 +01:00
Paul Szczeanek
b67230cbdb
apply peripheral policy on ll privacy
2020-10-05 11:54:04 +01:00
Paul Szczeanek
ec2808be31
filter based on resolving list size
2020-10-05 11:54:04 +01:00
Paul Szczeanek
457268825d
add nrf override for host resolution
2020-10-05 11:54:04 +01:00
Paul Szczeanek
03cc0f9940
host privacy config option to enable it
2020-10-05 11:54:04 +01:00
Vincent Coubard
76f89f6f89
BLE: Factorize peripheral privacy applied when connected
2020-10-05 11:54:04 +01:00
Vincent Coubard
e4b317c1b1
BLE: Add workaround for cordio use of global random address
...
In Cordio, the global random address is used when the local device is connected instead of the advertising set one.
This can cause pairing to fail if the advertising set address and the global random address are different.
This workaround forces the global random address to be set when advertising is started and extended advertising is present.
2020-10-05 11:54:04 +01:00
Vincent Coubard
8fe2d7ebbe
BLE: Report connection internally when address resolution has completed.
2020-10-05 11:54:03 +01:00
Vincent Coubard
8716298ea2
BLE: Update DB entry if current entry doesn't match requested EDIV and RAND
2020-10-05 11:54:03 +01:00
Vincent Coubard
4c1afe8e83
BLE: Update identity address when retrieved from the DB
2020-10-05 11:54:03 +01:00
Vincent Coubard
7c8a754667
BLE: Remove set advertising timeout from SM pal
2020-10-05 11:54:03 +01:00
Vincent Coubard
02667389db
BLE: Fix insertion to host resolving list.
2020-10-05 11:54:03 +01:00
Vincent Coubard
3a632a3685
BLE: Check if the resolving list item is populated instead of IRK validity
2020-10-05 11:54:03 +01:00
Vincent Coubard
1daee237e9
BLE: Queue address resolution in event queue to avoid synchronous execution
...
Otherwise when no IRK are available, the process will execute synchronously, calling the callback before the return of the function.
2020-10-05 11:54:03 +01:00
Vincent Coubard
dee20fe5a7
BLE: Check if extended advertising is available to clear advertising set upon connection
2020-10-05 11:54:03 +01:00
Paul Szczeanek
f126793f20
Add host reolustion for advertising and connections
2020-10-05 11:53:59 +01:00
Paul Szczeanek
593c1776b4
add EventList class for storing pending events
2020-10-05 11:53:23 +01:00
Paul Szczeanek
44b2e73ef1
Add setters to events
2020-10-05 11:53:23 +01:00
Paul Szczeanek
df17942c2c
remove unused enhanced conn complete
2020-10-05 11:53:23 +01:00
Paul Szczeanek
0a3cd69fc6
event handler should not affect internal state
2020-10-05 11:53:22 +01:00
Paul Szczeanek
685af00fd5
split resolve addres into cache and not cache
2020-10-05 11:53:22 +01:00
Vincent Coubard
4859dbe426
BLE: Set identity address to random static.
...
This also ensure the random static address used by gap is the correct one.
2020-10-05 11:53:22 +01:00
Vincent Coubard
0b98682109
BLE: Add function to set the identity address used by the controller/platform.
...
The function to get it has been removed as this operation is driven by the security manager.
2020-10-05 11:53:22 +01:00
Vincent Coubard
5cb05958a9
BLE: Add function to get the device random static address.
2020-10-05 11:53:22 +01:00
Vincent Coubard
f897729d5c
Cordio: Add API to set the local identity address.
2020-10-05 11:53:22 +01:00
Vincent Coubard
9eac36879a
BLE: improve scan state bookkeeping
2020-10-05 11:53:22 +01:00
Vincent Coubard
9df7fc9b7e
BLE: Fix state update when event handler not present
2020-10-05 11:53:22 +01:00
Vincent Coubard
48f4cfbe04
BLE: return stack busy instead of invalid state when applicable
...
enabling/disabling scanning and advertising operations can be prevented if the previous operations hasn't completed.
Return that the stack is busy and cannot fulfill the request at the moment rather than the state is invalid.
2020-10-05 11:53:22 +01:00
Vincent Coubard
3c22f8ae1d
BLE: privacy tracing cleanup
2020-10-05 11:53:22 +01:00
Vincent Coubard
19d89366d7
BLE: Private address when initiating connection
2020-10-05 11:53:22 +01:00
Vincent Coubard
c39d03a531
BLE: Implement private address rotation for initiating.
2020-10-05 11:53:22 +01:00
Vincent Coubard
4685322f4e
BLE: Add routine that computes the random address to use depending on the procedure.
2020-10-05 11:53:21 +01:00