Paul Szczeanek
beb56320eb
Add a new implementation of security db for KVStore
...
This works similar to filesystem db but uses the KVStore which it assumes is initialised. This is checked by open_db. On initialisation it either reads the present db or writes a new db into all entries thus guaranteeing that after the initialisation we will not run out of space for the keys and no extra error handling is needed.
2020-06-10 16:03:16 +01:00
Paul Szczeanek
f661ce0c81
Relax the integrity requirement to allow private functions to call themselves
2020-06-10 16:03:16 +01:00
Paul Szczeanek
07bcbeb8f1
Make kvstore and fs store configured in the lib json
2020-06-10 16:03:16 +01:00
Paul Szczeanek
fe98309063
mention tx power in the readme
2020-06-10 15:49:55 +01:00
Paul Szczeanek
056f46d629
add tx power to cordio hci driver
2020-06-10 15:49:55 +01:00
Martin Kojtal
f858000252
Merge pull request #13039 from pan-/fix-legacy-payload-update
...
BLE: remove limitation in the Cordio to update adv payload
2020-06-10 12:09:54 +02:00
Martin Kojtal
2466411b83
Merge pull request #13037 from paul-szczepanek-arm/ble-sm-fix
...
BLE: Fix privacy and signing handling in Security Manager
2020-06-10 12:09:32 +02:00
Martin Kojtal
6a431ffc58
Merge pull request #13055 from paul-szczepanek-arm/cordio-rf-tester
...
BLE: RF tester commands (and Cordio unhandled command complete)
2020-06-10 12:07:30 +02:00
Martin Kojtal
d971d4e021
Merge pull request #13060 from paul-szczepanek-arm/direct-advertising
...
BLE: fix direct advertising on Cordio
2020-06-10 12:06:17 +02:00
jeromecoutant
28f8307afa
STM32WB baremetal support
...
move BLE files to FEATURE_BLE
2020-06-08 12:06:01 +02:00
Martin Kojtal
49c1d947fa
Merge pull request #13044 from hugueskamba/hk_nrf_implicit_declaration
...
NRF: fix implicit declarations
2020-06-05 14:44:31 +02:00
Martin Kojtal
c7cf9a9aed
Merge pull request #13035 from pan-/fix-ble-service-data-addition
...
Fix capacity check when service data are added to BLE advertising payload
2020-06-05 10:49:43 +02:00
Martin Kojtal
35a0e5d4f9
Merge pull request #13041 from hugueskamba/hk_remove_cordio_warnings
...
Cordio: put parentheses to correct order of precedence in ternary expressions
2020-06-05 10:47:36 +02:00
Paul Szczeanek
a882d2d35f
mention the rf tester commands in the readme
2020-06-03 18:46:20 +01:00
Paul Szczeanek
9d54c56562
reinitialise identity and signing when bond table reset
2020-06-03 17:36:06 +01:00
Paul Szczeanek
110b190b38
fix privacy initialisation and give access to local identity
...
Initialises identity addres when privacy is enabled. Stores the identity. Retrieves local identity if previously stored.
2020-06-03 17:35:23 +01:00
Paul Szczeanek
73b4bebee0
add connection addresses to whitelist
2020-06-03 17:30:21 +01:00
Paul Szczeanek
bfdbcc7b4a
add accessor for local irk
2020-06-03 17:29:51 +01:00
Paul Szczeanek
fff0247ae5
fix infinite recursive call
2020-06-03 17:29:20 +01:00
Paul Szczeanek
05f7685a79
store local csrk and identity in the security db
2020-06-03 17:27:26 +01:00
Paul Szczeanek
94a6cac838
expose identity address used by controller
2020-06-03 17:24:11 +01:00
Paul Szczeanek
d6a5bd2825
make number of db entries configurable
2020-06-03 17:07:47 +01:00
Paul Szczeanek
dd615f7943
Add direct advertising support.
...
To start direct connectable advertising on the cordio stack, the programmer should call the function DmConnAccept instead of the function DmAdvStart .
This functions expect the target address and address type as parameter, which are passed to the controller when the programmer sets the advertising parameters and not known when advertising_enable is called.
Therefore, this information should be kept in memory when advertising parameters are set and retrieved when advertising is enable to choose the right call to start (or stop) advertising.
Timeout of direct advertising is also handled in an uncommon way, a connection timeout is received. Similarly, DmConnClose should be called to stop connectable direct advertising.
The state is kept in an array of direct_adv_cb_t. Each items contains a peer address, the peer address type, the connection handle and the advertising handle as well as a state which indicate if the advertising is running, pending or not used.
When advertising parameters are set, the state is updated to match the target address or disable direct advertising management for the advertising set being configured.
When advertising is enabled, the pal dispatch the operation to the right calls (DmAdvStart/DmConnAccept or DmAdvStop/DmConnClose).
When an advertising timeout happen or a connection is made, the pal cleans any direct advertising state of this advertising set
2020-06-03 16:25:23 +01:00
Paul Szczeanek
fbe93123a5
Add rf tester commands to cordio hci driver. This adds commands that allow you to send the HCI commands HCI_LE_Receiver_Test, HCI_LE_Transmitter_Test and HCI_LE_Test_End. The results of the test are obtained by the command complete command for HCI_LE_Test_End and passed to the user by the callback register in the test start calls.
2020-06-03 15:21:32 +01:00
Paul Szczeanek
51d1a30b8e
Route unhandled cmd cmpl events to mbed. Cordio ignores command complete events for all commands that it doesn't have a specific handler for. This adds a catch-all handler that allows the user application to handle any command complete that isn't already handled by the stack. This involves adding a new type of event and routing the event through the stack to the device where it's forwarded to the existing event handling in mbed-os.
2020-06-03 15:21:05 +01:00
Paul Szczeanek
0affb73747
Fix bounds check using a define instead of table size. The bounds check was incorrectly picking a define that wasn't even the last in the table. It now uses the size of the table.
2020-06-03 15:19:39 +01:00
Paul Szczeanek
8285ecdefb
connection update handled elsewhere
2020-06-02 10:01:10 +01:00
Paul Szczeanek
157c54bfc7
fix inverted meaning of _user_manage_connection_parameter_requests
2020-06-02 09:39:07 +01:00
Hugues Kamba
992133be50
NRF: fix implicit declarations
...
As a result removes warnings
2020-06-01 10:26:51 +01:00
Hugues Kamba
4d939ccdbe
Cordio: put parentheses to correct order of precedence in ternary expressions
...
Also remove extraneous parentheses in comparison.
2020-05-29 19:11:25 +01:00
Vincent Coubard
2bbc8a0bae
BLE: remove limitation in the Cordio to update adv payload
...
Nothing in the Bluetooth standard prevents update of advertising payload while advertising is active.
This limitation wasn't present in previous version of the stack and is not present for extended advertising.
2020-05-29 17:52:05 +01:00
Vincent Coubard
23e39a1dbd
Fix capacity check when service data are added to BLE advertising payload.
2020-05-29 15:06:38 +01:00
Lingkai Dong
3b48d3f198
NRFCordioHCIDriver: remove idle_hook
...
In PR #8876 when we added Cordio support for nRF52* targets,
we attempted to use an RTOS idle hook to workaround sleep
latency issues. However, the condition to bypass sleeps
never gets satisfied, and BLE nRF52* targets have generally
worked fine over the past year.
This commit removes the hook to avoid dependency on RTOS,
enabling BLE on bare metal.
2020-05-11 17:34:07 +01:00
Lingkai Dong
50928fbcff
BLE whitelist can only contain public or random static addresses
2020-04-17 09:59:17 +01:00
Lingkai Dong
a6810ddc37
Remove a few leftovers in BLE namespace
2020-04-17 09:59:16 +01:00
Lingkai Dong
3c922acec4
Gap.tpp: remove misleading deprecation header
2020-04-17 09:59:15 +01:00
Lingkai Dong
8de604d485
Rename ConnectionParams_t -> PreferredConnectionParams_t
...
For actual connections, full ConnectionParameters is used. But
as per BLE specification, Generic Access Service can display
preferred connection parameters which is a smaller subset and
ConnectionParams_t matches exactly. Thus we rename/repurpose
it to PreferredConnectionParams_t.
2020-04-17 09:59:14 +01:00
Lingkai Dong
76b92b82e2
BLE: correct misspelling: prefered -> preferred
2020-04-17 09:59:14 +01:00
Lingkai Dong
7c49aeb01f
Remove connection_params from internal on_connected()
...
The callback on_connected() in ConnectionEventMonitorEventHandler
contains a parameter ConnectionParams_t which is superceded by
ConnectionParameters. Since it's not used, remove it.
2020-04-17 09:59:13 +01:00
Lingkai Dong
d6eeab1744
Cordio: bring back device name & appearance function
...
Functions in Cordio for device name & appearance are currently
unused as they are both part of and dependent on deprecated
Mbed OS BLE APIs.
Nonetheless we want to keep them (and disable using macros)
so we can reintroduce them and make improvements in the future
as needed.
2020-04-17 09:59:12 +01:00
Lingkai Dong
53550bb63b
Gap: create legacy advertising set only when required
2020-04-17 09:59:11 +01:00
Lingkai Dong
0341d5c898
disconnection_reason_t from raw uint8_t should be explicited an undocumented
2020-04-17 09:59:11 +01:00
Lingkai Dong
0b163ffbe1
Add default initialisation of own_address_type_t
2020-04-17 09:59:10 +01:00
Lingkai Dong
25608eede1
Remove BLEProtocol.h
2020-04-17 09:59:09 +01:00
Lingkai Dong
9455f86954
BLE: replace legacy address types (BLEProtocol) with new ones
2020-04-17 09:59:08 +01:00
Lingkai Dong
ae86c119d2
Add whitelist_t::entry_t which will replace Address_t to store addr type and value
2020-04-17 09:59:08 +01:00
Lingkai Dong
7fed75b356
BLE: remove ResolutionStrategy type
2020-04-17 09:59:07 +01:00
Lingkai Dong
7ce73d414e
BLE LinkLossService: use new EventHandler API to handle disconnection
2020-04-17 09:59:06 +01:00
Lingkai Dong
eba5821fd8
GenericGap: ensure legacy advertising set exists when setting data
2020-04-17 09:59:06 +01:00
Lingkai Dong
2422efc9bb
GenericGap: clean up unused helper functions
2020-04-17 09:59:05 +01:00
Lingkai Dong
09a81a9972
GenericAccessService: remove unused device name/appearance functions due to API changes
2020-04-17 09:59:04 +01:00
Lingkai Dong
55ecc57ac9
BLE: use up-to-date structs for disconnections
2020-04-17 09:59:04 +01:00
Lingkai Dong
c17cf0f3f3
Add to Gap/GenericGap non-deprecated APIs originally in LegacyGap
2020-04-17 09:59:03 +01:00
Lingkai Dong
2989466b01
BLE: construct disconnection_reason_t from uint8_t (received from HCI)
2020-04-17 09:59:02 +01:00
Lingkai Dong
d2d09b2bce
BLE: Remove LegacyGap and related types
2020-04-17 09:59:02 +01:00
Lingkai Dong
af6f32e584
Cordio: remove LegacyGap implementation
2020-04-17 09:59:01 +01:00
Lingkai Dong
be3858cec2
BLE: update to use whitelist_t from ble namespace
2020-04-17 09:58:58 +01:00
Lingkai Dong
e97582bd23
Move BLE whitelist APIs from LegacyGap to ble::Gap
2020-04-17 09:56:25 +01:00
Lingkai Dong
eee3b687c4
GenericGap: prepare legacy advertising set
...
This is based on (and supercedes) PR #10772 .
As the switches between old and new APIs do not exist anymore,
we create a function for legacy advertising set creation.
2020-04-17 09:56:24 +01:00
Lingkai Dong
a2a99291d4
BLE Gap: remove version one scan API
2020-04-17 09:56:24 +01:00
Lingkai Dong
db14f196e7
GenericGap: remove legacy timeout callback signalling
2020-04-17 09:56:23 +01:00
Lingkai Dong
d35a6b88a9
GenericGap: remove legacy dis/connection callbacks signalling
2020-04-17 09:56:22 +01:00
Lingkai Dong
6f701cd6ef
Remove deprecated implementations from GenericGap & LegacyGap
2020-04-17 09:56:21 +01:00
Lingkai Dong
55edb6131d
ble/Gap.h: remove deprecated APIs
2020-04-17 09:56:21 +01:00
Martin Kojtal
7b0c38aabb
Merge pull request #12742 from LDong-Arm/gatt_sm_deprecated_cleanup
...
BLE: remove deprecated APIs from Gatt and SecurityManager
2020-04-16 17:21:52 +02:00
Lingkai Dong
a85c157952
Remove Nordic SoftDevice BLE driver
2020-04-15 09:57:42 +01:00
Lingkai Dong
4cb729fb49
Remove Maxim BLE stack which does not implement the new API
2020-04-15 09:51:14 +01:00
Martin Kojtal
4128efdf3d
Merge pull request #12785 from LDong-Arm/port_packetcraft_ltk_improvements
...
Cordio: Apply Packetcraft's fix for possible SweynTooth vulnerabilities
2020-04-15 09:08:24 +02:00
Lingkai Dong
c927773115
Port Cordio LE Secure Connections check from PacketCraft
...
This change is provided by Packetcraft (which maintains the
Cordio BLE stack) to address possible Sweyntooth vulnerabilities.
2020-04-09 16:01:28 +01:00
Lingkai Dong
0402fe4efb
Port Cordio SMP control block improvements from Packetcraft
...
This change is provided by Packetcraft (which maintains the
Cordio BLE stack) to address possible Sweyntooth vulnerabilities.
2020-04-09 15:57:59 +01:00
MarceloSalazar
a15f6a43ad
General clean-up of unsupported targets
2020-04-09 15:36:21 +01:00
Rajkumar Kanagaraj
9739b565b2
Fix the CI build issue
2020-04-08 10:35:07 +01:00
Rajkumar Kanagaraj
83be3f24a5
Remove mbed wait deprecated APIs
2020-04-08 10:35:07 +01:00
Lingkai Dong
07c25bba16
GattCharacteristic: remove deprecated APIs and helper function SecurityModeToAttSecurity
2020-04-07 10:27:16 +01:00
Lingkai Dong
70a564e7de
GattClient: remove deprecated onDataWrite
2020-04-07 10:27:16 +01:00
Lingkai Dong
1a89b7718c
BLE SecurityManager: remove legacy event callbacks and deprecated API
2020-04-07 10:27:16 +01:00
Martin Kojtal
c8ab263388
Merge pull request #12701 from dustin-crossman/pr/custom-bt-firmware
...
Add custom BT Firmware image for CYW9P62S1_43012EVB_01
2020-04-03 09:09:46 +02:00
Martin Kojtal
548e1c6766
Merge pull request #12676 from LDong-Arm/ble_deprecation_cleanup
...
Remove deprecated BLE:: APIs and unsupported services
2020-04-03 08:36:38 +02:00
Ryan Morse
f060b6afd7
Add custom BT Firmware image for CYW9P62S1_43012EVB_01
2020-04-02 09:30:17 -07:00
Martin Kojtal
8b929726e1
Merge pull request #12609 from rajkan01/semwait_remove_deprecation
...
Remove Semaphore deprecated APIs
2020-03-31 10:36:43 +02:00
Lingkai Dong
de89b9a572
BLE DeviceInformationService: fix deprecated addService usage
2020-03-23 16:37:21 +00:00
Lingkai Dong
682927d0a7
Remove deprecated BLE:: API
...
Note: The BLE() constructor is now private.
2020-03-23 16:14:20 +00:00
Lingkai Dong
266de6a69a
Remove BLE services that are not maintained anymore
2020-03-23 16:14:19 +00:00
Martin Kojtal
4f4c8c48e1
Merge pull request #12637 from armPelionEdge/#12625-BLE-Cardio-Patch
...
Cordio: fix for issue #12625
2020-03-23 14:47:52 +01:00
Martin Kojtal
cc799a83fc
Merge pull request #12661 from kbarm/feature-fix-documentation-ascii-art
...
Adjusted SecurityManager Doxygen ASCII art
2020-03-23 10:18:54 +01:00
Anna Bridge
ab483c2ead
Merge pull request #12654 from kbarm/feature-remove-cc-arm-macro
...
Removed all references to __CC_ARM
2020-03-20 15:22:03 +00:00
Anna Bridge
d048cd4c83
Merge pull request #12410 from rajkan01/serial_remove_deprecate
...
Remove the deprecated RawSerial, UARTSerial, Serial
2020-03-20 15:19:32 +00:00
Krzysztof Borowczyk
a624acd45c
Adjusted SecurityManager Doxygen ASCII art to make it display correctly on mbed.com
2020-03-20 10:20:58 +01:00
Krzysztof Borowczyk
4465295332
Remove ARMC5 reference from Mbed OS platform (removed all references to __CC_ARM)
2020-03-19 16:00:45 +01:00
Vishal Bhargava
4ea64cb6c6
Update hci_tr.c
...
Indent formating
2020-03-17 12:13:07 +05:30
Vishal Bhargava
5b65d3b119
Update hci_tr.c
...
Handled fragmented packet case also.
2020-03-17 11:57:14 +05:30
Rajkumar Kanagaraj
a6b78c6429
Remove Semaphore deprecated APIs
2020-03-16 09:37:45 -07:00
Martin Kojtal
b4034dc547
Merge pull request #12551 from rajkan01/mpm_remove_deprecated
...
Remove mbed power management deprecated API
2020-03-04 08:22:52 +00:00
Rajkumar Kanagaraj
df32091c7b
Remove the deprecated RawSerial, UARTSerial, Serial class and SerialBase attach API
2020-03-03 05:19:42 -08:00
Rajkumar Kanagaraj
35f1b4ab53
Remove mbed power management deprecated API
2020-03-02 15:06:26 -08:00
Rajkumar Kanagaraj
6e969ec5ab
Remove the deprecated CallChain class and its APIs.
2020-02-28 07:41:44 -08:00
jeromecoutant
f0370222d8
STM32WB BLE : add FW version when trace is enabled
2020-02-20 09:20:43 +01:00
jeromecoutant
55b42a683e
STM32WB HCIDriver trace update
2020-02-20 09:20:36 +01:00
jeromecoutant
f000b87911
STM32 TRACE_GROUP update
...
Only 4 characters is allowed
2020-02-17 16:38:42 +01:00
Vincent Coubard
cb340f8f55
BLE: Fix documentation of set_random_static_address
...
Co-Authored-By: Lingkai Dong <lingkai.dong@arm.com>
2020-01-29 09:53:12 +00:00