Commit Graph

1792 Commits (eb2457f59d688cbfe99526d2343d37029be20a60)

Author SHA1 Message Date
paul-szczepanek-arm 61b063129d MBED_WEAK in random spot removed 2019-03-01 15:05:59 +00:00
paul-szczepanek-arm f740985627 remove define that trips up IAR 2019-03-01 14:46:43 +00:00
paul-szczepanek-arm 34ef17370b fix signing permissions 2019-03-01 11:58:52 +00:00
paul-szczepanek-arm e247852043 reinstate fixes 2019-03-01 11:23:28 +00:00
paul-szczepanek-arm 0c855780d1 remove duplicate headers 2019-03-01 10:59:44 +00:00
paul-szczepanek-arm 64e70e8ca0 cordio controller change from library to source 2019-03-01 10:59:44 +00:00
paul-szczepanek-arm a3c1345d45 these consts are not in fact const 2019-03-01 10:59:42 +00:00
paul-szczepanek-arm fdb10908cc fix warning of no return 2019-03-01 10:59:42 +00:00
paul-szczepanek-arm 2c10b93a12 deal with not implemented functions 2019-03-01 10:59:42 +00:00
paul-szczepanek-arm 8989e39bb1 update copyright years 2019-03-01 10:59:42 +00:00
paul-szczepanek-arm dc66204c1b cordio host sources updated 2019-03-01 10:59:41 +00:00
Cruz Monrreal f8d254fc4c
Merge pull request #9790 from paul-szczepanek-arm/ble-conf
Ble conf
2019-02-28 22:08:41 -06:00
Cruz Monrreal aaf3ce4741
Merge pull request #9727 from pan-/optimize-size
BLE API devirtualization
2019-02-28 18:20:36 -06:00
paul-szczepanek-arm 54a866c159 add broadcaster ifdef and pull headers into ifdef 2019-02-28 17:18:30 +00:00
Vincent Coubard 72e5d3f603 BLE - Filter user facing implementation based on configuration 2019-02-28 16:31:59 +00:00
Vincent Coubard 4e172ba22d BLE - Fix conditional directive. 2019-02-28 16:31:34 +00:00
Vincent Coubard 74bc6774f9 BLE - Fix conditional directive. 2019-02-28 16:31:07 +00:00
Vincent Coubard eeca03f952 BLE - Fix exclusion of getMaxAdvertisingSetNumber and getMaxAdvertisingDataLength 2019-02-28 16:29:21 +00:00
Vincent Coubard 3142f26def BLE - Exclude services if GattServer is not available. 2019-02-28 16:28:15 +00:00
Vincent Coubard 5ae59fc534 BLE - Improve FEATURE_PRIVACY conditions. 2019-02-28 14:47:07 +00:00
Vincent Coubard 24f7f36f01 BLE - Return supported feature based on compile time features. 2019-02-28 14:23:19 +00:00
Vincent Coubard 04891b205c BLE - Conditionally handle gap events. 2019-02-28 14:13:45 +00:00
Vincent Coubard ea9554dfbc BLE - restrict AttConnRegister to GattServer. 2019-02-28 14:12:56 +00:00
Vincent Coubard 9566af64fb BLE - Fix initialization of extended advertising modules. 2019-02-28 13:51:50 +00:00
Vincent Coubard 6a3f3d187e BLE - Conditionnally remove LESC and privacy event processing. 2019-02-28 13:45:05 +00:00
Vincent Coubard 20c4e4ced5 BLE - Fix call to implementation. 2019-02-28 13:40:09 +00:00
Vincent Coubard 020c5b4262 BLE - Disabling SecurityManager connection handling when security disabled. 2019-02-28 13:34:05 +00:00
Vincent Coubard af09f7b8ab BLE - Disable peer csrk retrieval if signing disabled. 2019-02-28 13:30:36 +00:00
Vincent Coubard ca44ce3cd8 BLE - Conditionally expose SecurityManager::enableSigning 2019-02-28 13:27:16 +00:00
Vincent Coubard eeb14c5ce6 BLE - Conditionally include address rotation at compile time 2019-02-28 13:26:51 +00:00
Vincent Coubard 632851e5ae BLE - Small reordering to reduce diff. 2019-02-28 12:02:23 +00:00
Vincent Coubard 9e5e23aad6 BLE - Remove conditional directive in construction of Cordio objects. 2019-02-28 11:37:21 +00:00
Vincent Coubard a31d1012db BLE - Cleanup CordioPalSecurityManager conditional directives.
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:36:36 +00:00
Vincent Coubard b0d62a7090 BLE - Fix conditional code within CordioPalGenericAccessService. 2019-02-28 11:35:34 +00:00
Vincent Coubard dedc204daa BLE - Cleanup CordioGattServer conditional directives. 2019-02-28 11:34:35 +00:00
Vincent Coubard 831241df12 BLE - Cleanup GenericSecurityManager conditional directives
- Inheritance lisr
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:33:49 +00:00
Vincent Coubard e706b6cc52 BLE - Cleanup Generic GattClient conditional directives.
- Inherithance list
- private functions exposed
- members declaration.
2019-02-28 11:32:51 +00:00
Vincent Coubard 07f3ca2723 BLE - Cleanup GenericGap conditional directive
- Within constructor
- Within member declaration
- Private function declaration and definition.
2019-02-28 11:31:48 +00:00
Vincent Coubard 593cf2bd7c BLE - Remove conditional compilation of FileSecurityDb 2019-02-28 11:30:07 +00:00
Vincent Coubard f7df97bed7 BLE - Remove conditionnal directive within GattClient::WriteOp_t 2019-02-28 11:29:35 +00:00
Vincent Coubard c9d719a8ca BLE - Cleanup conditional directives in Gap.
- Remove conditional directives for member variables.
- Remove conditional directive for processXXX functions that are exclusively used by implementation.
-  Remove conditional directives on types exported by the class.
2019-02-28 11:28:55 +00:00
Vincent Coubard 126a7a966e BLE - Cleanup conditional directives in gap/Gap/
- Remove directives from event handler type
- Expose privacy default configuration  unconditionally
- Fix conditional test for connect and cancelConnect.
2019-02-28 11:27:02 +00:00
Vincent Coubard bc10a09c4e BLE - Remove conditional directive removing functions in pal. 2019-02-28 11:24:08 +00:00
Vincent Coubard 3c9e778433 BLE - Remove conditionnal directive within services 2019-02-28 11:23:05 +00:00
Vincent Coubard 06b26d4e8a BLE - remove conditional directive from value types 2019-02-28 11:22:37 +00:00
Vincent Coubard ba9aa6b641 Fix rebase mistakes. 2019-02-27 22:15:06 +00:00
paul-szczepanek-arm cd2501bb64 tab fix 2019-02-27 21:52:07 +00:00
paul-szczepanek-arm a034bf875e gatt server pass
mostly phy and security issues
2019-02-27 21:52:07 +00:00
paul-szczepanek-arm f8c28fcbe7 privacy pass 2019-02-27 21:51:16 +00:00
paul-szczepanek-arm aa6342b265 cordio security pass 2019-02-27 21:47:22 +00:00
paul-szczepanek-arm bc3ff56504 partial security pass 2019-02-27 21:46:08 +00:00
paul-szczepanek-arm a1815e31f0 correct dependencies for central and peripheral 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm c3a72073be cordio extended peripheral pass 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm e950da11f2 extended doesn't depends on phy 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm ec6783ed77 cordio peripheral role pass 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm 45eca7c373 cordio observer role pass 2019-02-27 21:36:26 +00:00
paul-szczepanek-arm eb16fb6053 broadcaster role cordio pass 2019-02-27 21:34:00 +00:00
paul-szczepanek-arm c198603c63 ble ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm e44c3edede fix gap ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm 909b78fc14 complete gap feature ifdef 2019-02-27 21:15:54 +00:00
paul-szczepanek-arm 630b2fe792 more gap ifdefs 2019-02-27 21:08:15 +00:00
paul-szczepanek-arm 1d5b7d4056 ifdef source files based on features 2019-02-27 21:00:11 +00:00
paul-szczepanek-arm c8d8c4e159 merge failure fix 2019-02-27 21:00:10 +00:00
paul-szczepanek-arm 30ad32a465 ifdef out security features 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm 9e710d4309 git review changes 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm cb3d79bf9b update descriptions 2019-02-27 20:57:10 +00:00
paul-szczepanek-arm 7974726659 fixed conf file (tabs and order) 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 208eb200f1 gatt client signing 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 3e03c11832 guard class fields with ifs 2019-02-27 20:55:58 +00:00
paul-szczepanek-arm 33e8826361 whitelist feature 2019-02-27 19:46:43 +00:00
paul-szczepanek-arm bc69e15638 revert accidental changes 2019-02-27 19:46:42 +00:00
paul-szczepanek-arm dc3aba181e fix BLE_CONNECTABLE_FEATURE macro 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm 5a97706aab added #if guards to cordio ble 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm bed567825f connectable is a feature not role 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm b60eaf14a2 require macros to be defined 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 26cc72f191 add more feature toggles in cordio init 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 9a22db0e96 implied features 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm ab4e47661d move config to ble feature 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm 212e9477d3 require at least one role observer or broadcaster 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm aefab05e5a add all the features and rename existing non-roles to features 2019-02-27 19:31:46 +00:00
Steve Cartmell 8e36ed4b1e feat(ble): Guard out the CordioBLE initialisation code 2019-02-27 19:29:51 +00:00
Steve Cartmell 72d28d920a feat(ble): Guard out Observer code when role is disabled 2019-02-27 19:29:51 +00:00
Steve Cartmell 5d73a03a64 feat(ble): Guard out SecurityManager code when role is disabled 2019-02-27 19:24:40 +00:00
Steve Cartmell 73f7ffb124 feat(ble): Guard out GattServer code when role is disabled 2019-02-27 19:24:39 +00:00
Steve Cartmell 6e301ce148 feat(ble): Guard out GattClient code when role is disabled 2019-02-27 19:23:31 +00:00
Steve Cartmell 9806f91ecf feat(ble): Add preprocessor check to determine enabled roles are valid
A number of BLE roles depend on each other, checking within the target
configuration file for a valid configuration is infeasible. Move the
validation to the preprocessor and fail to compile if some required
roles are not enabled.
2019-02-27 19:00:08 +00:00
Vincent Coubard 73f29e7733 BLE - Fix qualification of abort and terminate. 2019-02-26 13:18:18 +00:00
Vincent Coubard 9ab284940a BLE - Devirtualization of the NRF52 softdevice port. 2019-02-26 13:18:18 +00:00
Vincent Coubard ddbb177e33 BLE - Devirtualization of the NRF51 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard b86049d1e7 BLE - Devirtualization of the legacy NRF51822 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 0323d91f04 BLE - Devirtualization of the Maxim port . 2019-02-26 13:18:17 +00:00
Vincent Coubard 536443b1f8 BLE - Devirtualization of the Cordio port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 04d26f7ab5 BLE - Devirtualize ::ble::generic::GenericSecurityManager
Two parameters are expected by the template:
- TPalSecurityManager a template class of the security manager of the form TPalSecurityManager<EventHandler>. The GenericSecurityManager is the event handler.
- SigningMonitor a template in the form SigningMonitor<Handler>.
2019-02-26 13:18:17 +00:00
Vincent Coubard b135074821 BLE - Devirtualize ble::generic::GattClient
GenericGattClient is parametized by two types:
- The template of the PalGattClient
- The SigningMonitorEventHandler

Note that the PalGattClient template must be of the form PalGattClient<EventHandler>. The event handler being the GenericGattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 39e938bf8e BLE - Devirtualize ble::generic::GenericGap
Expected types are similar to the type expected by the constructor:
- PalGap
- PalSecurityManager
- ConnectionEventMonitorEventHandler

Note that for the PalGap we expect a **template** of the form PalGap<EventHandler>
2019-02-26 13:18:17 +00:00
Vincent Coubard e70fb27d55 BLE - cleanup includes. 2019-02-26 13:18:17 +00:00
Vincent Coubard fb39848481 BLE - Cleanup deprecation implementation bits in BLE.cpp 2019-02-26 13:18:17 +00:00
Vincent Coubard 7796e733ad BLE - Devirtualize ::SecurityManager
The interface now lives in ::ble::interface::SecurityManager. The implementation type is expectected to exported as ble ::ble::impl::SecurityManager by the implementation.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6d2592a137 BLE - Devirtualize ::GattServer.
The interface is defined in ::ble::interface::GattServer and an implementation must export the implementation type ::ble::impl::GattServer.
2019-02-26 13:18:17 +00:00
Vincent Coubard e56fd682a1 BLE - Devirtualize ::GattClient
Interface definition now lives in ble::interface::GattClient. An implementation must export the implementation type in ::ble::impl::GattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 43e87fb04d BLE - Devirtualize ::ble::Gap
The interface definition now lives in ::ble::interface::Gap.
The implementation must export the implementation types as ::ble::impl::Gap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 1ad726322f BLE - Devirtualization of ::Gap
The interface definition now lives in ::ble::interface::LegacyGap. Implementation must export the implementation type as ble::impl::LegacyGap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 2d007eee42 BLE - Devirtualize pal::SigningEventMonitor
The event handler has been extracted out of SigningEventMonitor declaration and SigningEventMonitor instantion requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard 50de4c8a44 BLE - Devirtualize pal::SecurityManager
The event handler has been extracted out of SecurityManager declaration and instantion of the interface requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard e1371f8149 BLE - Devirtualize pal::GattClient
The event handler has been taken out of GattClient declaration and an instantiation requires the actual implementation and the type that handle events.
2019-02-26 13:18:17 +00:00
Vincent Coubard 0749100676 BLE - Devirtualize pal::Gap
The event handler has been taken out of Gap declaration and the instantiation must provide an implementation and the type that plays the event handler role.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6514bbd1f0 BLE - Devirtualize pal::ConnectionEventMonitor
The event handler has been extracted out of the monitor declaration.
2019-02-26 13:18:17 +00:00
Vincent Coubard 71b8d8a2f3 BLE - devirtualize pal::AttClientToGattClientAdapter 2019-02-26 13:18:17 +00:00
Vincent Coubard 333a31507b BLE - devirtualize pal::AttClient 2019-02-26 13:18:17 +00:00
Vincent Coubard 7e78433cec BLE - replace some usages of Gap::Handle_t by ble::connection_handle_t 2019-02-26 13:18:17 +00:00
Vincent Coubard bc098d0272 BLE - add static interface helper. 2019-02-26 13:18:17 +00:00
Desmond Chen 0143229bd0 Fix Cordio Gatts descriptor configuring write permission 2019-02-26 11:30:57 +08:00
Cruz Monrreal d0881ad259
Merge pull request #9813 from paul-szczepanek-arm/cordio-cfg
BLE: Cordio build time configuration through mbed_lib.json
2019-02-25 17:28:56 -06:00
Cruz Monrreal 8ec8674e4e
Merge pull request #9833 from donatieng/remove_beetle
Remove Arm Beetle target for Mbed OS 5.12
2019-02-25 17:27:22 -06:00
paul-szczepanek-arm f62217b3dd typos 2019-02-25 15:33:52 +00:00
paul-szczepanek-arm a7297186b5 fixed names 2019-02-25 15:30:55 +00:00
paul-szczepanek-arm e75c534445 stray comma 2019-02-25 15:23:35 +00:00
Donatien Garnier 176e5779ce Remove Arm Beetle target
Deprecation in preparation for Mbed OS 5.12 and move to IAR8 and ARMC6
2019-02-25 12:09:03 +00:00
paul-szczepanek-arm 6842c8718b revert macros 2019-02-25 09:52:21 +00:00
paul-szczepanek-arm 6a2b6b891a use existing macro names 2019-02-25 09:49:16 +00:00
Lei Zhang a47b365776 PSOC6: send HCI reset after patch RAM download
After the patch RAM download is completed, a HCI reset should be sent in order to initialize the registers. Some of the initialization won't be called if the HCI reset is not sent after firmware download.
2019-02-22 23:43:52 -08:00
paul-szczepanek-arm 4b0296a6e1 prepared writes options 2019-02-22 13:52:21 +00:00
paul-szczepanek-arm 4470f64581 mention config in readme 2019-02-22 11:33:23 +00:00
paul-szczepanek-arm 86546440d7 put cordio cfg in mbed_lib.json 2019-02-22 11:28:28 +00:00
Volodymyr Medvid b0a33273ff Correctly include EventQueue.h
There are two EventQueue.h in mbed-os codebase:
events/EventQueue.h
features/FEATURE_BLE/ble/pal/EventQueue.h

By accident, `mbed compile` generates includes.txt with the correct
order of include search paths. This is not the case for the CMake
exporter: targets with FEATURE_BLE enables fail to compile with errors:

mbed-os/features/cellular/framework/AT/ATHandler.h:99:60: error:
'events' has not been declared

Update all places to always include either "events/EventQueue.h"
or "ble/pal/EventQueue.h": to always find the correct header.
2019-02-21 17:59:05 +02:00
Cruz Monrreal b1d0d9e95c
Merge pull request #9776 from ConradBraam/adv_builder
adv builder helper now returns an object
2019-02-20 12:04:51 -06:00
Conrad Braam 57033ee91a adv builder helper now returns an object 2019-02-20 13:54:38 +00:00
Martin Kojtal 2d30d0ff99
Merge pull request #9762 from vmedcy/psoc6-target-updates
PSOC6: update the psoc6pdl and HAL to the latest version
2019-02-20 11:23:54 +01:00
paul-szczepanek-arm db4aecb275 fixed initialisation order 2019-02-19 17:26:43 +00:00
Volodymyr Medvid cefc7452c9 PSOC6: do not reconfigure BT GPIO pins in CYW43XXX HCIDriver 2019-02-19 17:59:04 +02:00
Desmond Chen 79e8bf4bc9 BLE:Cordio: ATTS setting for write cback should use bitwise or 2019-02-19 14:19:44 +08:00
paul-szczepanek-arm d801ed340e removed redundant qualifier tripping up GCC 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm cdd5c9f3b0 fix nrf52 mtu 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 193092f6d9 added spdx licence ident 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm f52b20c169 move cpp to sources 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 1cea53b6a7 use grandfathered convention for class members names and initialise them 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 3808db90b2 require pal event handler to be complete 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm de60b2a56a remove unused converter 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 03b747a6f6 Get the pal event handler from pal gattclient 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm b628285254 route mtu changed events to server and client instead of gap 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm a3f635eb88 fix type name 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm c10fc2eb8e add API to trigger MTU negotiation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm 02d5391cd0 fix possible truncation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm b6df6d54a1 change event names 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 356ec39d02 fix style 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 21ad886e9e handle mtu and data len events for softdevice 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 06a2a403e9 fix typos 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm 108d6908be route ble events to gap 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm c452d8ff0e add mtu events 2019-02-14 12:34:31 +00:00
Naveen Kaje 0563276466 btle: fix build warning about unused clockConfiguration
Fix the following build warning seen with both GCC and ARM_CC
[Warning] btle.cpp@115,0:  #177-D: variable "clockConfiguration"  was declared but never referenced
2019-02-13 10:42:48 -06:00
Cruz Monrreal 58cba25799
Merge pull request #9372 from pan-/fix-cryptotoolbox
BLE - Nordic: Release crypto cell when not in use.
2019-02-11 18:45:17 -06:00
Volodymyr Medvid a16811532b PSoC6: add implementation of BLE HCI driver for CYW4343W/CYW43012
Add Cypress HCI driver implementation in TARGET_Cypress directory.

Update targets.json to enable CORDIO stack for Cypress PSoC 6 boards
with CYW43XXX radios with compatible HCI driver implementation:
CYW4343W and CYW43012.
2019-02-07 18:24:56 +02:00
Volodymyr Medvid a304c2216a CYW4343X: move HCI driver to TARGET_STM
TARGET_CYW4343X Bluetooth HCI driver is specific to STM32 targets
derived from USI_WM_BN_BM_22. Move the driver implementation to
TARGET_STM folder to not interfere with Cypress implementation at
TARGET_Cypress/TARGET_CYW43XXX/HCIDriver.cpp that is enabled for
PSoC 6 targets which also include the CYW4343X label.
2019-02-07 18:24:55 +02:00
Senthil Ramakrishnan 2030d03590 Modified fixes with review comments 2019-02-01 17:49:49 -06:00
Senthil Ramakrishnan ea30ed7a36 Fix for ARMc6 compiler errors 2019-02-01 17:46:50 -06:00
paul-szczepanek-arm d9c919b7e1 review fixes 2019-01-30 12:19:04 +00:00
paul-szczepanek-arm e1a8fb5a7a check scanning status first 2019-01-30 11:45:26 +00:00
paul-szczepanek-arm 7f888f86bf scan timeout for 4.2 controllers using new API 2019-01-30 11:37:17 +00:00
Cruz Monrreal 66cda8a8fe
Merge pull request #9499 from bridadan/remove_yotta_modules
Remove unused yotta module metadata
2019-01-28 10:37:30 -06:00
Cruz Monrreal b49d949b50
Merge pull request #9393 from pan-/fix-safe-enum-type-safety
BLE: Fix SafeEnum type safety
2019-01-28 10:31:52 -06:00
Brian Daniels ee5281abef Remove unused yotta module metadata 2019-01-24 15:30:20 -06:00
Martin Kojtal 4019efb21d
Merge pull request #9399 from paul-szczepanek-arm/fix-null-check
BLE: fix missing null checks on Gap event handler
2019-01-21 13:43:16 +01:00
Martin Kojtal ad5bcfc1de
Merge pull request #9427 from paul-szczepanek-arm/fix-truncation
BLE: fix possible truncation
2019-01-21 13:42:07 +01:00
paul-szczepanek-arm 42e4290160 error when there is no handler 2019-01-18 14:55:38 +00:00
paul-szczepanek-arm 001919e81a fix truncation 2019-01-18 12:10:30 +00:00
Cruz Monrreal fd2a96e7ad
Merge pull request #9339 from costanic/fix_oob
Fix Out-Of-Band (OOB) data generation for BLE OOB pairing
2019-01-17 21:51:54 -06:00
Cruz Monrreal 3b43a2d976
Merge pull request #9333 from offirko/offir_doxygen
Minor Doxygen fixes for BufferedBlockDevice and iBeacon
2019-01-17 21:51:14 -06:00
Martin Kojtal 284781a565
Merge pull request #9096 from pan-/fix-enforce-size-limits
BLE: Enforce advertising data payload limits
2019-01-17 12:41:57 +01:00
Cruz Monrreal d0665c8458
Merge pull request #9365 from lrusinowicz/cordio_ble_fix
Fix for asserion failing in BLE::callDispatcher with gcc debug profile.
2019-01-16 22:03:16 -06:00
Vincent Coubard 79bd3ea982 BLE: Fix relationnal operator of SafeEnum
The relationnal operators were targeting the base class which defines an implicit constructor to an integral value. This is wrong as it allows SafeEnum instances to be compared against integers.

The fix is simple: define relationnal operators for the derived class. The derived class is known as it is passed as a template parameter of the base class.

For extra safety the SafeEnum constructor is now explicit and protected.
2019-01-16 16:06:21 +00:00
Vincent Coubard f8ef143ed7 BLE: Fix comparison expression between an integer and a SafeEnum 2019-01-16 16:06:21 +00:00
paul-szczepanek-arm fa36ed02ee add missing null checks 2019-01-16 14:56:54 +00:00
Vincent Coubard a10a10a3d7 BLE - Nordic: Release crypto cell when not in use.
Previously, the CryptoToolbox was allocated once as part of the security manager.
This was inneficient memory wise as it is only use to prepare key at initialization
and when we need to compute shared keys.
This was also inneficient power consumption wise as the Crypto cell was kept enabled even
when it wasn't used.

This fix creates a CryptoToolbox whenever it is needed and release it once it has fulfilled its
purpose. Note that CryptoToolbox allocation happens on the heap as mbed tls data structure are huge
and there's an high risk of crushing the stack.
2019-01-14 16:56:07 +00:00
Leszek Rusinowicz f294447c25 Moved nextTimeout variable out of critical section in BLE::callDispatcher.
Initialization of Timeout object contains critical section inside constructor. Initialization inside critical section caused assertion failing under "debug" profile.
2019-01-14 11:13:28 +01:00
Nic Costa 7795e30bce Remove own_oob and peer_oob flags from Nordic PAL
the own_oob and peer_oob flags were not being set to 1 even though
an OOB pairing request was in progress, which therefore prevented
OOB data from being passed down to the softdevice during a OOB
pairing operation, thus causing the OOB pairing process to fail.
2019-01-11 08:54:30 -06:00
Nic Costa 24d793ce5d Fix parameters provided to oob generator function
The function in the Nordic SDK for generating OOB data,
sd_ble_gap_lesc_oob_data_get, requires local LE Secure Connection
P256 Public Keys in {X,Y} format, but was being supplied with
the local secret key.  This caused the generated OOB data to
fail to correspond to the Public Keys, which caused a mismatch
during the OOB pairing phase of the OOB confirmation value by
a remote peer when attempting to verify the OOB data against
the Public Keys, ultimately causing the OOB pairing request to
fail with a Confirm Value Failed (0x04) error.
2019-01-11 08:54:30 -06:00
Nic Costa 55507eaf75 Fix race condition when generating OOB data
The GenericSecurityManager tracks the most recent OOB data generated
by the PAL and the PAL function to generate OOB data is expected to
be asynchronous such that the OOB data is returned via a callback.

There was a race condition on the security manager's oob data variable
because it was cleared (set to all zeros) after calling PAL generate.
The expectation was that the clear operation would occur before the
callback executed, but this is proving to not be the case.  Instead,
the callback is being executed as if it were syncronous with PAL
generate, then PAL generate returns and the oob data is cleared,
thereby losing the generated oob data that was set in the callback.

To fix the issue, clear the oob data variables before calling into
the PAL.
2019-01-11 08:54:30 -06:00
Guy Wild 9b3adc2795 Update iBeacon.h
Technical author review
2019-01-10 17:04:23 +02:00
Jarno Lamsa d9e24b25e4 Update and cleanup BLE.h doxygen 2019-01-10 16:12:56 +02:00
offirko b21576c8cf Review updates 2019-01-10 15:42:28 +02:00
offirko 61926092a2 Minor Doxygen fixes for BufferedBlockDevice and iBeacon 2019-01-10 14:35:09 +02:00
Cruz Monrreal 54f759176b
Merge pull request #9210 from AnttiKauppila/mbed_h_fix
mbed.h includes removed
2019-01-04 10:27:30 -06:00
Donatien Garnier 9dae672ac0 Fixes for features/FEATURE_BLE/ble/services/EddystoneConfigService.h 2019-01-04 09:54:14 +00:00
Donatien Garnier bc2bd89f83 Fixes for features/FEATURE_BLE/ble/services/EddystoneService.h 2019-01-04 09:50:24 +00:00
Martin Kojtal 0f7381d436
Merge pull request #9058 from pan-/fix-scan-timeout
BLE: suppress scan timeout if we disabled scanning
2019-01-04 08:41:36 +00:00
paul-szczepanek-arm 3be792a3b3 simplify for statement 2019-01-03 12:24:33 +00:00
Desmond Chen f281e06e46 BLE: NRF52 returns tx/rx phy on phy update callback 2019-01-03 10:11:14 +08:00
paul-szczepanek-arm dd1d473375 future proof return size 2019-01-02 15:42:14 +00:00
paul-szczepanek-arm a66ffa34be add constructor suggested by Vincent 2019-01-02 15:34:50 +00:00
paul-szczepanek-arm 8b39071cd8 make function name longer 2019-01-02 14:29:30 +00:00
Antti Kauppila 02b0f79e15 mbed.h includes removed 2018-12-28 14:36:10 +02:00
Desmond Chen 30ca813f07 Fix BLE long write execution failure 2018-12-19 08:08:16 -08:00
paul-szczepanek-arm 67db321500 check illegal adv params combimnation 2018-12-13 17:52:18 +00:00
paul-szczepanek-arm ff0a2a907e check connectible sizes 2018-12-13 17:52:00 +00:00
paul-szczepanek-arm c5bad804e2 add asserts for illegal compinations of adv params 2018-12-13 17:51:45 +00:00
paul-szczepanek-arm 7dd90e1810 Docuement active set length and add informative call for querying the limit 2018-12-13 17:51:10 +00:00
paul-szczepanek-arm e1cf516100 fix max payload and hci length values 2018-12-13 17:50:53 +00:00
paul-szczepanek-arm 50d1818d72 call advertising end even if stopped by us 2018-12-13 17:33:36 +00:00
Naveen Kaje 448c4d5d89 BLE: Update toolchain.h with mbed_toolchain.h
Fixes the following warning

[Warning] toolchain.h@24,0: #1215-D: #warning directive:
toolchain.h has been replaced by mbed_toolchain.h,
please update to mbed_toolchain.h [since mbed-os-5.3]
2018-12-10 13:57:52 -06:00
Cruz Monrreal 23022dd0f9
Merge pull request #8998 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-10 10:36:05 -06:00
paul-szczepanek-arm 13a10f3efa suppress scan timeout if we disabled scanning 2018-12-10 16:31:34 +00:00
paul-szczepanek-arm a545da7790 remove noreturn error function to avoid compilation issues 2018-12-10 13:54:09 +00:00
paul-szczepanek-arm c998287170 fixed ARM compilation problem caused by noreturn 2018-12-10 13:47:14 +00:00
paul-szczepanek-arm 97df8f5ed9 working ARM lib 2018-12-10 13:46:26 +00:00
paul-szczepanek-arm 642b2dfb57 working libs for GCC and IAR 2018-12-10 09:12:03 +00:00
Donatien Garnier 6f94339aed Replace ARMCC libs 2018-12-08 08:43:20 +00:00
Donatien Garnier db6b09a70f ARMCC only likes armar 2018-12-07 23:45:26 +00:00
Donatien Garnier 3f00595e62 Remove use of GPIOs (LEDs and diag pins) from Cordio LL for Nordic 2018-12-07 22:46:27 +00:00
Donatien Garnier 674ff288d6 Remove duplicate symbols in libcordio_stack.a 2018-12-07 22:04:19 +00:00
paul-szczepanek-arm a48369691e iar libs for cordio 2018-12-07 17:56:36 +00:00
paul-szczepanek-arm bdabada477 added arm version of libs 2018-12-07 17:41:50 +00:00
paul-szczepanek-arm c13dcf3387 baseband clock rate increased to 1 000 000 2018-12-07 17:12:58 +00:00
Vincent Coubard e7f81fe7e8 BLE: Fix the number of advertising sets supported
The number of advertising sets supported is the minimum of advertising sets supported beween the host and the controller.
2018-12-07 13:26:35 +00:00
Vincent Coubard 4e5240b743 BLE: Set the number of the advertising sets supported by the host to 3. 2018-12-07 13:24:52 +00:00
Vincent Coubard 57b79d9659 BLE: Set the number of supported phy by the host to 3. 2018-12-07 13:24:28 +00:00
Vincent Coubard 20e0cd1b0e BLE: Inject random static address during reset sequence. 2018-12-07 12:35:20 +00:00
Vincent Coubard a36b04fde5 BLE: Add an option to inject the random static address during the reset sequence. 2018-12-07 12:33:31 +00:00
Vincent Coubard 0d398bc8c8 BLE: Revert changes introduced by debugging. 2018-12-07 09:33:26 +00:00
Vincent Coubard 1c71713e1b BLE: Fix recursion in ble::advertising_data_status_t raw constructor. 2018-12-07 00:05:02 +00:00
Vincent Coubard 698447b622 BLE: Fix address type allowed to create a periodic sync. 2018-12-07 00:04:29 +00:00
Vincent Coubard df95a1f8bd BLE: Allow null value for periodic interval in advertising report event. 2018-12-07 00:03:50 +00:00
Amanda Butler aa4b5a5dc7
Edit PortingGuide.md
Edit file for active voice.
2018-12-06 13:24:10 -06:00
Amanda Butler 61c2599587
Edit CordioHCIDriver.h
Edit file for active voice.
2018-12-06 13:22:20 -06:00
paul-szczepanek-arm df443c20ca copy periodic payload 2018-12-06 17:54:13 +00:00
paul-szczepanek-arm 22a117a6e4 always set filter policy 2018-12-06 15:43:45 +00:00
paul-szczepanek-arm 5735456487 fix swapped errors 2018-12-06 15:05:35 +00:00
paul-szczepanek-arm 58c7c3868e check return value of DmSyncStart 2018-12-06 15:04:23 +00:00
paul-szczepanek-arm d372f16bc4 fix return value 2018-12-06 15:04:00 +00:00
Vincent Coubard c83dccf65c BLE: Set advertising random address when appropriate. 2018-12-06 11:25:50 +00:00
Vincent Coubard 0543442cc3 BLE: Fix conversion of advertising type
Previously, we were passing the event_properties as defined by the Bluetooth spec which is not what DmAdvConfig expect as the advertising type passed to DmAdvConfig is Cordio tailored (and incomplete).
2018-12-06 11:23:45 +00:00
Vincent Coubard d9d4a214b8 BLE: Revert change in stack setup initialisation.
While good this change breaks some old application that were adding GATT services before the initialisation of BLE.

This patch revert temporarily this change for now
2018-12-06 11:21:43 +00:00
Vincent Coubard e3d8b28483
Update features/FEATURE_BLE/targets/TARGET_CORDIO/driver/CordioHCIDriver.h
Fix doxygen as suggested by @pan-

Co-Authored-By: donatieng <donatien.garnier@arm.com>
2018-12-06 10:19:57 +00:00
Donatien Garnier 4485531173 Update Porting Guide with memory pool changes 2018-12-05 19:24:44 +00:00
Donatien Garnier 7e6efc2571 Cordio: Update CY8C63XX Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier f9b236184a Cordio: Update CYW4343X Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 218bf3f80c Cordio: Update ODIN-W2 Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 2978cd8404 Cordio: Make allocating too much memory for pool a warning, not a fatal assert 2018-12-05 19:24:44 +00:00
Donatien Garnier 101c5697e5 Cordio Nordic LL: Readjust memory pool requirements for NRF52840 2018-12-05 19:24:44 +00:00
Donatien Garnier c99f2497c3 Cordio Nordic LL: Optimize memory for smaller targets 2018-12-05 19:24:44 +00:00
Donatien Garnier 7a33feca23 Cordio: Split get_buffer_pool_description() in pure virtual + default implementation to avoid allocating two memory pools in a static fashion 2018-12-05 19:24:44 +00:00
Donatien Garnier b83c4fde66 Cordio: Assert if memory pool is not exactly the right size 2018-12-05 19:24:44 +00:00
Cruz Monrreal b3b050170e
Merge pull request #8879 from pan-/ble-extended-advertising-doc-fixes
Ble extended advertising doc fixes
2018-12-04 11:51:44 -06:00
Martin Kojtal 403405c44c
Merge pull request #8953 from ARMmbed/yennster-patch-1
Update FEATURE_BLE README
2018-12-04 14:32:14 +01:00
Mel W f92cc7b30b
Capitalization and punctuation 2018-12-04 12:34:48 +02:00
Martin Kojtal c1c94c83c5
Merge pull request #8904 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-04 09:50:36 +01:00
Jenny Plunkett fa191259b7
Update FEATURE_BLE README
Remove all outdated information including supported services and old documentation links
2018-12-03 13:09:01 -06:00
Vincent Coubard 472c57205b BLE: Fix doxygen parameter declaration order. 2018-12-03 18:03:30 +00:00
Vincent Coubard d1b0642ad2 BLE: rename AdvertisingReportEvent::getAdvertisingData into getPayload.
This change makes it consistent with PeriodicAdvertisingReportEvent.
2018-12-03 17:56:54 +00:00
Vincent Coubard ed426c5b45 BLE: rename ConnectionParameters::getFilterPolicy into getFilter for consistency. 2018-12-03 17:11:28 +00:00
Vincent Coubard 5abf2f08fa BLE: Reintroduce refactored type identifier in privacy configuration structures. 2018-12-03 17:04:38 +00:00