Commit Graph

153 Commits (mbed-os-6.4.0)

Author SHA1 Message Date
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
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