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
Vincent Coubard
559640cbd5
BLE: check LL resolution availability before enabling it.
2020-10-05 11:53:21 +01:00
Vincent Coubard
e5128689aa
BLE: Fix random static address storage
2020-10-05 11:53:21 +01:00
Vincent Coubard
924f8b1dc9
BLE: Update state when scan started/stopped callback received.
2020-10-05 11:53:21 +01:00
Vincent Coubard
d8c6820cbd
BLE: Add callback for scan started and stoped.
2020-10-05 11:53:21 +01:00
Vincent Coubard
b8549ec91d
BLE: rename address resolution handler.
2020-10-05 11:53:21 +01:00
Vincent Coubard
4b853956d9
BLE: Add resolvable and non resolvable private address rotation with advertising
2020-10-05 11:53:15 +01:00
Vincent Coubard
f810ec4c2a
BLE: Add initiating flag into gap to track if the local device tries to connect to a peer.
2020-10-05 11:50:34 +01:00
Vincent Coubard
13771b8172
BLE: Remove address resolution from GAP pal
2020-10-05 11:50:34 +01:00
Vincent Coubard
7e16ee448e
BLE: Bind address controller with Gap
2020-10-05 11:50:33 +01:00
Vincent Coubard
313676a089
BLE: Add gap handlers to be informed when advertising as started or been stopped
2020-10-05 11:50:33 +01:00
Vincent Coubard
23f7a187fb
BLE: Pal event queue pop before execution.
...
A race condition was present if a single event was present in the event queue and the event was generating a new event.
2020-10-05 11:50:33 +01:00
Vincent Coubard
237278be24
BLE: Update security manager to use the PrivateAddressController
...
Resolution list has been removed from the pal as this is handled by the PrivateAddressController.
2020-10-05 11:50:33 +01:00
Vincent Coubard
44681ee982
BLE: Add PrivateAddressController module.
...
It controls private address generation and host or controller address resolution.
2020-10-05 11:50:33 +01:00
Vincent Coubard
7dacae73b2
BLE: Add cordio implementation of PalPrivateAddressController
2020-10-05 11:50:33 +01:00
Vincent Coubard
f1dbc893f3
BLE: Introduce PalPrivateAddressController
...
This PAL interface is responsible for generating, resolving private address and maintaining the controller or host resolving list.
It also indicates to upper level if LL resolution is supported or not and allows them to enable it.
2020-10-05 11:50:33 +01:00
Vincent Coubard
742356158f
BLE: Add resolvable_address_timeout_t datatype.
2020-10-05 11:50:33 +01:00
Vincent Coubard
bc860db7c5
ble: Add privacy mode to the pal
2020-10-05 11:50:32 +01:00
Vincent Coubard
f7dfc5c9f2
BLE: Update ble::Duration to support default values
2020-10-05 11:50:32 +01:00
Paul Szczeanek
e9ac83a92c
reset transport last and reset the default chars in gatt server
2020-10-02 16:14:20 +01:00
Johnny Robeson
fac3ebb33b
Use impl namespace in GattServer att_cb registration, not ble
...
If this is the correct fix, then this shouldn't have passed CI, should
it?
2020-09-21 17:54:16 -04:00
phst
c0021e2147
Add missing defines to activate/deactivate BLE features
2020-09-17 11:02:25 +02:00
Paul Szczeanek
77ba844ef9
double negation fixed and ifs normalised
2020-09-09 17:08:32 +01:00
Vincent Coubard
904b7f5163
BLE: reintroduce default implementation GattClient::discoverServices.
2020-09-07 14:32:18 +01:00
Vincent Coubard
4bd7f8cfc4
BLE: fix code indentation
2020-09-04 16:39:23 +01:00
Vincent Coubard
f116604024
BLE: correctness improvments
...
Remove unused variable, improve header inclusion, fix initialization list order,
2020-09-04 13:26:29 +01:00
Vincent Coubard
702c1b9756
BLE: Fixed used of parent pointer in implementation classes.
2020-09-04 13:25:32 +01:00
Vincent Coubard
5943a7360c
BLE: Fix uses of mbed.h
2020-08-25 12:28:40 +01:00
Vincent Coubard
cf91053f93
BLE: Move cordio implementation include into source folder
2020-08-25 11:34:00 +01:00
Vincent Coubard
029ed3a0c5
BLE: Cleanup BLEInstanceBas implementation
2020-08-25 11:33:59 +01:00
Vincent Coubard
2af0f88fa6
BLE: Cleanup AttServerMessage implementation
2020-08-25 11:33:59 +01:00
Vincent Coubard
6df7846bbb
BLE: Remove cordio namespace
2020-08-25 11:33:59 +01:00
Vincent Coubard
d914cb1fb2
BLE: Cleanup PalSigningEventMonitor.
2020-08-25 11:33:59 +01:00
Vincent Coubard
f6b40e0e66
BLE: Cleanup pal generic access service
2020-08-25 11:33:59 +01:00
Vincent Coubard
b42abd0e25
BLE: cleanup PalEvent queue and implementation
2020-08-25 11:33:59 +01:00
Vincent Coubard
52b132e042
BLE: Cleanup pal security manager
2020-08-25 11:33:59 +01:00
Vincent Coubard
2952a5b327
BLE: Cleanup pal Gap
2020-08-25 11:33:59 +01:00
Vincent Coubard
3f3c11b113
BLE: Move GattServer implementation from generic to cordio
2020-08-25 11:32:38 +01:00
Vincent Coubard
e59e1b5ef6
BLE: Cleanup of pal AttClient and GattClient
...
Fix interface namespace being not used.
Move generic AttClient to GattClient adapter back into the pal
2020-08-25 11:32:38 +01:00
Vincent Coubard
bc259c561d
BLE: cleanup generic sources
2020-08-25 11:32:37 +01:00
Vincent Coubard
57b5f711e5
BLE: Move source/DiscoveredCharacteristic into source/gatt/DiscoveredCharacteristic
2020-08-25 11:26:28 +01:00
Vincent Coubard
12388d77d4
BLE: move source/impl into source/cordio
2020-08-25 11:26:28 +01:00
Vincent Coubard
241c69f50d
BLE: Cleanup public headers
2020-08-25 11:26:28 +01:00
Vincent Coubard
7cbc0e38a4
BLE: Clang tidy on public headers.
2020-08-25 11:26:28 +01:00
Vincent Coubard
0baa92d70c
BLE: Expose HCI driver in public API.
2020-08-25 11:26:28 +01:00
Vincent Coubard
dd54baecf6
BLE: Move Cordio implementation in source/impl
2020-08-25 11:26:27 +01:00
Vincent Coubard
cc78150afd
BLE: Move generic lib file into source/generic .
2020-08-25 11:26:27 +01:00
Vincent Coubard
134cb885f5
BLE: Move cordio_stack out of TARGET_CORDIO
2020-08-25 11:26:27 +01:00
Vincent Coubard
63ac8fac3c
BLE: Add compatibility path for headers.
2020-08-25 11:26:26 +01:00
Vincent Coubard
13c358717f
BLE: Move GATT public header into ble/gatt
...
Move private headers GattServerEvents.h, GapEvents,h and GapType.h in relevant part of the source tree.
2020-08-25 11:26:26 +01:00
Vincent Coubard
27cb03824e
BLE: Move common publi headers into ble/common
2020-08-25 11:26:26 +01:00
Vincent Coubard
d3427ca495
BLE: Move gap public header at the root.
2020-08-25 11:26:26 +01:00
Vincent Coubard
e11bfb6514
BLE: move PAL headers into source/pal
2020-08-25 11:26:26 +01:00