Commit Graph

65 Commits (54a5fc5f1512c61b47d76aba8cf0d12d0fdda4f9)

Author SHA1 Message Date
Paul Szczepanek a62c1e1228 add missing include 2021-03-15 15:35:52 +00:00
Vincent Coubard d1672aaa64 BLE: Update level of traces in GattServer 2021-03-15 15:35:52 +00:00
Vincent Coubard 957486e0eb BLE: Move traces out of header file to avoid collisions.
This change required the creation of the implementation files of SecurityDb classes.
2021-03-15 15:35:52 +00:00
Abbas Bracken Ziad db9428f18f Add tracing to BLE Gatt Server (#14107)
* Add traces to GattServerImpl.cpp

* Update BLGS traces

* Add context to BLGS traces

* Set value of TRACE_WRITE_VALUES to 0

* Add param logs to BLGS traces

* Apply changes from code review

* Add trace helper for UUIDs

* C++ string library is not needed

* Update to_string function for UUIDs

The previous implementation had a memory leak and did not format 128-bit UUIDs

* Possibly faster ternary

* Add more context to adding/inserting of services/characteristic

* Add trace to events and event path

* Refactor to_string helper for UUIDs
2021-03-15 15:35:52 +00:00
Abbas Bracken Ziad f4febdcb9d Add tracing to BLE GAP (#14117)
* Add traces to GapImpl.cpp

* Add helpers and param logs

* Update GapImpl.cpp

* Move helpers to ble_trace_helpers.h

* Add traces to whitelist setter & getter functions

* Prepend parent dir. to ble_trace_helpers.h include line

* Resolve portability issue by using PRI* macro in place of %lu

* Add traces to PalGapImpl.cpp

* Complete PAL GAP traces

* Remove stray include

* Make 'echo' traces in PAL configurable

Some of the tr_info traces at the beginning of PAL functions  are duplicates ('echoes') of those in GAP functions. This commit enables including/excluding of these traces in mbed_app.json by writing 1/0, respectively to the MBED_CONF_CORDIO_TRACE_PAL_ECHOES config macro. The default is to exclude 'echo' traces.

* Add missing spaces in tr_info traces

* Clean-up param log for set_extended_advertising_parameters

* Remove "Failed: " from every tr_error trace

* Apply changes from PalGapImpl.cpp review

* Apply changes from GapImpl.cpp review

* Use binary for channel map trace

B0: ADVERTISING_CHANNEL_37
B1: ADVERTISING_CHANNEL_38
B2: ADVERTISING_CHANNEL_39

We're assuming that the user understands the above. This could be documented somewhere.

* Replace more %lu w/PRIu32

* Add tr_info to terminateSync for user call

* Make trace group for PAL traces BLDM

* Remove [PAL] prefix from every PAL trace

* Add trace to setPeripheralPrivacyConfiguration

* Make set scan params tr_info dependent on selected PHY

* Add trace to GAP events

* Other GAP events required traces
2021-03-15 15:35:52 +00:00
Paul Szczepanek 91d4b48989 BLE: add traces to gatt client (#14165)
* add traces to gatt client

* add files to cmakelists

Co-Authored-By: Vincent Coubard <vincent.coubard@arm.com>

* fixed tracing variable name

Co-Authored-By: Vincent Coubard <vincent.coubard@arm.com>

* add pal tracing

* add more traces for successfull actions

* put write and read as tr_debug in pal

Co-authored-by: Vincent Coubard <vincent.coubard@arm.com>
2021-03-15 15:35:52 +00:00
Paul Szczepanek 7b08388be6 Add traces to HCI, BLE instance, Security DB and WSF cordio traces (#14138)
* ble HCI tracing

* fix typo in SM trace

* add BLE instance tracing

* route wsf traces to mbed tr_debug

* Update connectivity/FEATURE_BLE/source/cordio/source/BLEInstanceBaseImpl.cpp

Co-authored-by: Vincent Coubard <vincent.coubard@arm.com>

* print hci on cordio side

* trace controller supported features

* log reset sequence

* include config for printing enums

* remove duplicate trace

* add tracing to security db

* workaround for macro error on use outside trace

Co-authored-by: Vincent Coubard <vincent.coubard@arm.com>
2021-03-15 15:35:52 +00:00
Vincent Coubard 5aa76e566a BLE: Add privacy trace (#14127)
Add traces to the Bluetooth Security Manager and Privacy controller.
The traces are made to be comprehensive to improve the ux when users submit bugs.
A centralized set of helpers has been created to convert BLE types to string.

* BLE: Add SM traces

* BLE: Add traces to Security Manager PAL

* BLE: Make SM traces consistent.
- Prefix with Connection <id> - when appropriate.
- Display parameters after `:`.
- If multiple parameters should be displayed name then and print the value after =. They are separated by a `,`.

* BLE: Fix SM random number generation.

Only the first 8 bytes were generated from the stack.

* BLE: Regenerate CSRK if it is all zeroes.

* BLE: Add trace into privacy modules

Address resolution is set at the debug level as it is a very common operation and may clutter the output.

* Address trace review for SM:

- Put privacy traces in BLPR
- Add missing traces in PALSecurityManagerImpl.cpp
- Add missing EventHandler null pointer check
- Typo and parameters order fix.
2021-03-15 15:34:34 +00:00
Paul Szczepanek 938aedac91 use the correct id to identify sync 2021-02-10 11:57:30 +00:00
Rajkumar Kanagaraj 6824b14e48 CMake: rename greentea test macro 2021-02-02 07:43:40 -08:00
Hugues Kamba 51bd84ef7d CMake: Add support for CORDIO Greentea tests
The Cordio Greentea tests can now be built with CMake.
2021-01-11 16:30:29 +00:00
Martin Kojtal e1d1753726
Merge pull request #14111 from paul-szczepanek-arm/ble-fix-ext
BLE: fix scanning/advertising when extended features are available but disabled on host
2021-01-05 13:28:13 +00:00
paul.szczepanek@arm.com 6746573b34 add missing guards for extended advertising feature 2021-01-04 18:05:50 +00:00
Paul Szczeanek cdc8845b3c copy authorsation callbacks to gattserver 2021-01-04 17:11:03 +00:00
Andrea Palmieri ae4a53e74a
Support to BlueNRG_2 BLE component (#13246)
Add support to BlueNRG_2 BLE component

Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>

Co-authored-by: Andrea Palmieri <andrea.palmieri@st.com>
Co-authored-by: Paul Szczeanek <paul.szczepanek@arm.com>
2020-12-17 14:37:21 +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
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 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
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 3f9798b52d Fix conditional compilation based on config 2020-10-13 17:32:49 +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 eccb3e9bda Make setImplicitCCCD private and add impl::GattServer as a friend class 2020-10-07 13:31:09 -04:00
George Beckstein 5c82533d06 Enabled getting an implicitly-created CCCD through GattCharacteristic::getDescriptor 2020-10-06 19:26:32 -04: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
Paul Szczeanek 03cc0f9940 host privacy config option to enable it 2020-10-05 11:54:04 +01:00
Vincent Coubard 7c8a754667 BLE: Remove set advertising timeout from SM pal 2020-10-05 11:54:03 +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 9df7fc9b7e BLE: Fix state update when event handler not present 2020-10-05 11:53:22 +01:00
Vincent Coubard d8c6820cbd BLE: Add callback for scan started and stoped. 2020-10-05 11:53:21 +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 7dacae73b2 BLE: Add cordio implementation of PalPrivateAddressController 2020-10-05 11:50:33 +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