Commit Graph

2391 Commits (d06ad9b83485167135909cb901b439a085be3633)

Author SHA1 Message Date
Teppo Järvelin dc87629641 Fixed unit test after removing mux. 2018-03-02 14:38:08 +02:00
Teppo Järvelin 7c9f5f3781 Removed mux. 2018-03-02 14:38:08 +02:00
Ari Parkkila bfed2baeb6 Changed cellular device as not static 2018-03-02 14:38:08 +02:00
Ari Parkkila e183923c0d Changed std::snprintf to sprintf in cellular ATHandler.cpp 2018-03-02 14:38:08 +02:00
Ari Parkkila b811f7e84d Fixed EasyCellularConnection to have debug flag 2018-03-02 14:38:08 +02:00
Teppo Järvelin 81738acfb4 Fixed unit tests. 2018-03-02 14:38:08 +02:00
Amanda Butler 63485bd846 Copy edit ATHandler.h
Copy edit for clarity, grammar and spelling.
2018-03-02 14:38:08 +02:00
Amanda Butler cc3835e356 Copy edit AT_CellularBase.h
Copy edit file for clarified phrasing.
2018-03-02 14:38:08 +02:00
Amanda Butler 68cac96042 Copy edit AT_CellularDevice.h
Copy edit for consistent phrasing across docs.
2018-03-02 14:38:08 +02:00
Amanda Butler 1d57299000 Copy edit AT_CellularSMS.h
Copy edit file for grammar.
2018-03-02 14:38:08 +02:00
Amanda Butler 3a57d507d9 Copy edit AT_CellularStack.h
Copy edit for American English.
2018-03-02 14:38:08 +02:00
Amanda Butler 6dd0723dff Copy edit CellularUtil.h
Copy edit file for consistent capitalization and correct which/that.
2018-03-02 14:38:08 +02:00
Amanda Butler 00b1341297 Copy edit cellular_mux.h
Copy edit, mostly for spelling.
2018-03-02 14:38:08 +02:00
Amanda Butler a302a4be6d Copy edit OnboardCellularInterface.h
Copy edit file for active voice and removal of Latin abbreviations.
2018-03-02 14:38:08 +02:00
Amanda Butler dce649c97d Copy edit README.md
Copy edit file for active voice and consistent capitalization.
2018-03-02 14:38:08 +02:00
Ari Parkkila e53b93114e Typedef OnboardCellularInterface to EasyCellularConnection 2018-03-02 14:38:07 +02:00
Teppo Järvelin c9c3f85311 Changed state machine class name and implementation. 2018-03-02 14:38:07 +02:00
Ari Parkkila b159a51821 Added mux-enabled flag in cellular mbed_lib.json 2018-03-02 14:38:07 +02:00
Antti Kauppila 020e15828d Unittests fixed + readme updated
- Unittests were broken and are now fixed
- README.md is updated to have small instructiopn how to run unittests
2018-03-02 14:38:07 +02:00
Ari Parkkila 6c6223ae25 Added use_apn_lookup in mbed_lib.json 2018-03-02 14:38:07 +02:00
Ari Parkkila 164e8fb717 Added modem_debug_on to cellular device 2018-03-02 14:38:07 +02:00
Teppo Järvelin a95d376820 review changes: take define MBED_CONF_PPP_CELL_IFACE_APN_LOOKUP in to use. 2018-03-02 14:38:07 +02:00
Teppo Järvelin 1fd9ba6caa APN lookup from database support. 2018-03-02 14:38:07 +02:00
Mirela Chirica 6670ebbc5f - PDP context creation fixes for stack type handling
- Delete created contexts that do not succed to activate
2018-03-02 14:38:07 +02:00
Teppo Järvelin 0c49b669b4 Fixed bug when copying apn, username and password. 2018-03-02 14:38:07 +02:00
Teppo Järvelin 9016ed5ed8 Don't allow zero length apn, password or username. 2018-03-02 14:38:07 +02:00
Teppo Järvelin 1a3b6e589c Doxygen update: removed documentation from inherited classes as INHERTIC_DOCS is enabled in doxygen config. Reduces copy-paste and eases maintenance. 2018-03-02 14:38:07 +02:00
Teppo Järvelin e99c18c233 Fixed SMS receive in PDU: certain length sms last char was missing. 2018-03-02 14:38:07 +02:00
Mirela Chirica 6ccbb59979 Mem_str comparation was too short 2018-03-02 14:38:07 +02:00
Teppo Järvelin e61411e60c Fixed travis-ci. 2018-03-02 14:38:07 +02:00
Teppo Järvelin 7a8da2244d Fixed SMS send in pdu mode could give wrong size as return value. 2018-03-02 14:38:07 +02:00
Antti Kauppila 427674d6ca IOTCELL-553 fixed
Unittests reports an error as there is no coverage file created for cellular_mux.
This is now fixed by running an init function.
2018-03-02 14:38:07 +02:00
Ari Parkkila fb25c600e7 Added cellular readme 2018-03-02 14:38:07 +02:00
Teppo Järvelin ef14aef823 review and dynamic alloc (#3)
* Review fixes. Changed apn, username and password to be dynamically allocated.
2018-03-02 14:38:07 +02:00
Mirela Chirica 4457e361ac Logging compile fix 2018-03-02 14:38:06 +02:00
Mirela Chirica 22e7fbd7e8 - BC95 socket creation bug fix
- Cellular information reading stopping on comma fixed
2018-03-02 14:38:06 +02:00
Ari Parkkila d2e8691754 Cellular stack listen and accept to return UNSUPPORTED 2018-03-02 14:38:06 +02:00
Ari Parkkila 09143da040 Changed APN initialization from CellularNetwork to application 2018-03-02 14:38:06 +02:00
Ari Parkkila 1df28b28c7 Changed UBLOX C027 to LISA-U 2018-03-02 14:38:06 +02:00
Teppo Järvelin b7bf83001d Removed unused include in QUECTEL_BC95_CellularPower.cpp. 2018-03-02 14:38:06 +02:00
Teppo Järvelin 3ff131be0a Doxygen update, missing class definitions from AT_ classes. 2018-03-02 14:38:06 +02:00
Ari Parkkila f2613a6154 Cellular logging to use mbed_trace 2018-03-02 14:38:06 +02:00
Juho Eskeli 331a27df63 Enable connection status callback with EasyCellularConnection 2018-03-02 14:38:06 +02:00
Teppo Järvelin 58c8176247 doxygen fixes. 2018-03-02 14:38:06 +02:00
Teppo Järvelin e41c551468 Doxygen warnings fixes. 2018-03-02 14:38:06 +02:00
Ari Parkkila bc67100dcf Added const in AT_CellularNetwork::set_registration 2018-03-02 14:38:06 +02:00
Jari Poyhonen cd486f2624 Pull request feedback fix: add poll support to multiplexer 2018-03-02 14:38:06 +02:00
Ari Parkkila 0c8c41ff5f Added static const to AT_CellularNetwork.cpp 2018-03-02 14:38:06 +02:00
Teppo Järvelin 0e20e49ef7 review fixes to athandler: changing int16/8 to int's and some minor issues. 2018-03-02 14:38:06 +02:00
Jari Poyhonen 0ee265110a Pull request feedback fix: user_data_tx accepts arbitary size 2018-03-02 14:38:06 +02:00
Ari Parkkila 88398bf141 Changed include brackets to double quotes 2018-03-02 14:38:06 +02:00
Ari Parkkila 7545a459d6 Added cellular greentea tests 2018-03-02 14:38:06 +02:00
Mirela Chirica 1825c999a9 Removed unnecessary memsets of ATHandler's receving buffer 2018-03-02 14:38:06 +02:00
Mirela Chirica d15801d893 PR review fix:
- bind behaviour to not change existing port or address if the requested ones are 0
- removed temporary array setting to zero
2018-03-02 14:38:06 +02:00
Juho Eskeli 71f54bc2d4 Deactivate PDP context on disconnect when using AT stack. 2018-03-02 14:38:06 +02:00
Juho Eskeli 66aca1fddf Connection status callback added. 2018-03-02 14:38:06 +02:00
Mirela Chirica a35e1f8d6c - Removed extra whitespaces from AT prefix definitions. The format is modem specific and AT handler is handling whitespaces in case they are present
- Reverted the "smaller thread stack size for dispatcher thread". 1KB is not enough, was causing CMSIS-RTOS error: Stack underflow.
2018-03-02 14:38:05 +02:00
Mirela Chirica 4a3541ef60 Device info buffer moved from stack to static 2018-03-02 14:38:05 +02:00
Teppo Järvelin 9e85767c80 PR review fixed: removed dead code, removed magic numbers. 2018-03-02 14:38:05 +02:00
Ari Parkkila ea41e18aa0 Fixed IAR 7.8 compile 2018-03-02 14:38:05 +02:00
Teppo Järvelin 952ca8729f Smaller thread stack size for dispatcher thread to save memory. 2018-03-02 14:38:05 +02:00
Teppo Järvelin 4a6bcc4a0a Fixed doxygen warning. 2018-03-02 14:38:05 +02:00
Ari Parkkila e8a26f3f54 Removed mbed.h 2018-03-02 14:38:05 +02:00
Ari Parkkila 065326135e Change cellular socket port 0 to dynamic range 2018-03-02 14:38:05 +02:00
Ari Parkkila 934a93151a Changed requested stack for new pdp context 2018-03-02 14:38:05 +02:00
Teppo Järvelin 67740f73bd Removed ASSERT from mux. 2018-03-02 14:38:05 +02:00
Teppo Järvelin ea6d59ff19 Updated license texts. 2018-03-02 14:38:05 +02:00
Antti Kauppila 1a44c4e5b1 Update AT_CellularPower.cpp 2018-03-02 14:38:05 +02:00
Antti Kauppila bfbd3e42af more unittests added 2018-03-02 14:38:05 +02:00
Teppo Järvelin bf3d587571 Removed dead code from athandler. 2018-03-02 14:38:05 +02:00
Ari Parkkila 30a3ec8e0d Updated cellular doxygen 2018-03-02 14:38:05 +02:00
Teppo Järvelin 819a9a0da5 Changed register to accept only roaming and homenetwork as registered success. 2018-03-02 14:38:05 +02:00
Ari Parkkila db2c5cff20 Added cellular stack API 2018-03-02 14:38:05 +02:00
Teppo Järvelin 60f7054a45 Fixed to call callback when connected... 2018-03-02 14:38:05 +02:00
Teppo Järvelin 1dcc6684bf working example? 2018-03-02 14:38:05 +02:00
Antti Kauppila fbfbdc9718 renamed mbed_mux to cellular_mux 2018-03-02 14:38:05 +02:00
Antti Kauppila 217271b156 Unittests added 2018-03-02 14:38:03 +02:00
Teppo Järvelin 1cbddfbc10 Changed to use platform baudrate to uart. 2018-03-02 14:38:02 +02:00
Ari Parkkila ccd9dc3892 Smoke test changes with easy-connect 2018-03-02 14:38:02 +02:00
Ari Parkkila 5b70492c64 Updated cellular 2018-03-02 14:38:02 +02:00
Ari Parkkila 863ec3c3cc Initial cellular feature 2018-03-02 14:38:02 +02:00
Anna Bridge 6e1cd9b5aa
Merge pull request #6210 from k-stachowiak/mbed-tls-2.7.1-update
Update Mbed TLS to version 2.7.1
2018-03-02 10:20:12 +00:00
Anna Bridge ed17033928
Merge pull request #6188 from paul-szczepanek-arm/master
BLE: Security Manager
2018-03-02 10:15:26 +00:00
Deepak Venugopal 4a3160f442 Merge commit '41d7448660fb20d72ab17615e23c9e64005934e3'
* commit '41d7448660fb20d72ab17615e23c9e64005934e3':
  Squashed 'features/nanostack/FEATURE_NANOSTACK/coap-service/' changes from f6281ed..f40072f
2018-03-02 09:49:36 +02:00
Cruz Monrreal 25321961fb
Merge pull request #5900 from davidsaada/david_sotp_cpp
Add NVStore (A.K.A SOTP) feature
2018-03-01 19:38:28 -06:00
Donatien Garnier a3383c139b Addressed Vincent's comments 2018-03-01 20:32:37 +00:00
paul-szczepanek-arm ded1403399 security manager overview doc fixes 2018-03-01 19:55:44 +00:00
Cruz Monrreal c4354fa645
Merge pull request #6179 from geky/lfs-update
littlefs: Update to version 1.3
2018-03-01 13:42:47 -06:00
paul-szczepanek-arm 371f183a6a added one more sequence diagram 2018-03-01 18:49:43 +00:00
paul-szczepanek-arm 1f52e42bcf more detailed comment for confirmation request 2018-03-01 18:31:16 +00:00
paul-szczepanek-arm 8347e76bf4 Merge https://github.com/ARMmbed/mbed-os 2018-03-01 18:11:41 +00:00
paul-szczepanek-arm 68f25611d5 no need to ask for encryption after pairing, fold deref under the null check 2018-03-01 17:47:18 +00:00
paul-szczepanek-arm e706b41ccf removed redundant event for SC OOB request, fixed comments 2018-03-01 16:39:44 +00:00
Vincent Coubard f0405690b7 BLE: Resolve issue with address type in advertising report. 2018-03-01 15:48:21 +00:00
Vincent Coubard 8e21b5391a Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os into pr-sm 2018-03-01 15:39:56 +00:00
Vincent Coubard 03f79eec39 BLE: Remove Nordic Pal SM draft. 2018-03-01 15:39:51 +00:00
paul-szczepanek-arm 392ee6ec7c removed get encryption key size from API 2018-03-01 15:29:52 +00:00
paul-szczepanek-arm 0870b30aa6 Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os 2018-03-01 15:18:00 +00:00
paul-szczepanek-arm b89f9f2482 added callback on encryption request even if lower and restructured for clarity 2018-03-01 15:17:36 +00:00
Donatien Garnier 00df64b26c Fixed PasskeyAscii constructor 2018-03-01 15:16:47 +00:00
Vincent Coubard e8f29f7327 BLE - Cordio - PAL SM: refine comments and formating. 2018-03-01 14:59:06 +00:00
Vincent Coubard 36247b32b8 BLE - Cordio PAL SM: Implement Keypress notification 2018-03-01 14:58:01 +00:00
Vincent Coubard 56af3cb1be CBLE - Cordio PAL SM: Implement slave security request notification 2018-03-01 14:57:05 +00:00
Vincent Coubard da6ede34a8 BLE - Cordio PAL SM: Select correct on_ltk_request overload. 2018-03-01 14:56:30 +00:00
Vincent Coubard 628ffea6de BLE - Cordio PAL SM: Forward local keys 2018-03-01 14:55:45 +00:00
Vincent Coubard 18c93990b6 BLE - Cordio PAL Sm: generate random passkey displayed. 2018-03-01 14:55:12 +00:00
Vincent Coubard ecc7118490 BLE - Cordio PAL SM: Implement send_keypress_notification 2018-03-01 14:54:06 +00:00
Vincent Coubard 9043714443 BLE - Cordio PAL SM: Select correct security level in enable_encryption 2018-03-01 14:53:33 +00:00
Vincent Coubard 79db2af488 BLE - Cordio PAL SM: Choose correct security level in set_ltk 2018-03-01 14:53:00 +00:00
Vincent Coubard 4858388672 BLE - Cordio PAL SM: comment get_authentication_timeout 2018-03-01 14:52:09 +00:00
Vincent Coubard 054b7808b4 BLE - Cordio PAL SM: implement set_authentication_timeout 2018-03-01 14:51:43 +00:00
Vincent Coubard a057e5c0d2 BLE - Cordio PAL SM: Fix force secure connection. 2018-03-01 14:50:31 +00:00
Vincent Coubard cd7d9c551c Cordio pal SM: comment appropriately privacy related functions. 2018-03-01 14:47:46 +00:00
Vincent Coubard 1170b3132d BLE: Remove useless pal sm API 2018-03-01 14:46:12 +00:00
Vincent Coubard e29ea95fc9 BLE: Return error when security deascalation is requested. 2018-03-01 14:44:18 +00:00
paul-szczepanek-arm 7e2f5ee008 fix not setting the mitm performed state correctly 2018-03-01 14:25:22 +00:00
paul-szczepanek-arm bc11834125 fix not setting encryption state in generic 2018-03-01 13:59:19 +00:00
paul-szczepanek-arm d5b8439bae removed redundant check
we already checked the current encryption and it is encrypted
2018-03-01 13:03:49 +00:00
paul-szczepanek-arm 179ad1626f Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os 2018-03-01 12:56:33 +00:00
paul-szczepanek-arm cebc0f8fd7 create encryption result event even when nothing changes 2018-03-01 12:56:29 +00:00
Vincent Coubard c00ae29ca7 Cordio: Update stack binaries.
New binaries contains a fix in configuration handling.
2018-03-01 11:01:19 +00:00
Vincent Coubard d050c4e4af BLE: Fix CordioPalSM set_io_capability 2018-03-01 10:24:13 +00:00
Vincent Coubard dbf4a8da49 BLE: Implement CordioSM get_secure_connection_support. 2018-03-01 10:22:42 +00:00
Vincent Coubard 766b8765ad BLE: Accept pairing request when the user authorization is not required. 2018-03-01 10:21:35 +00:00
Christopher Haster 687304455e littlefs: Updated error codes in tests to match version update 2018-02-28 19:56:13 -06:00
Amanda Butler f078124bae
Edit README.md
Edit README with changes from docs site and minor formatting changes.
2018-02-28 18:59:20 -06:00
Amanda Butler 6ddff638d4
Copy edit nvstore.h
Copy edit for typos and minor spelling nits.
2018-02-28 18:47:17 -06:00
paul-szczepanek-arm f9a79bed15 fixed initiator distribution bug and setting LINK distribution field based on SC 2018-02-28 17:43:54 +00:00
paul-szczepanek-arm d20c4efbf3 documentation overview for securitymanager 2018-02-28 17:00:56 +00:00
Bartek Szatkowski 4cb47df40a Add system_reset() function to Mbed OS 2018-02-28 16:42:34 +00:00
Krzysztof Stachowiak 6370a3500d Correct typos and code alignment 2018-02-28 17:03:47 +01:00
paul-szczepanek-arm 701c18b428 missing documentation, removed privacy call from api 2018-02-28 13:49:51 +00:00
paul-szczepanek-arm c52d324dab pass in information about the mitm and sc quality of the ltk to the pal 2018-02-28 12:02:54 +00:00
paul-szczepanek-arm abcc5db44b fix setting default values which were overriding even when unset 2018-02-28 10:00:58 +00:00
Krzysztof Stachowiak 9d5d60b62e Adjust partner code for MD HW acceleration to new MD API 2018-02-28 10:02:56 +01:00
Krzysztof Stachowiak 947275036c Update Mbed TLS to version 2.7.1 2018-02-28 10:02:30 +01:00
daid 62599a97f7 Add support for STEVAL-3DP001V1 board, which has an STM32F401VE chip. This support is based on the NUCLEO-F401RE board. Which has the same amount of flash/ram but less pins available on the chip. 2018-02-28 09:37:39 +01:00
paul-szczepanek-arm 975544f274 link key distribution decision made in generic security manager 2018-02-27 23:26:34 +00:00
Cruz Monrreal 21483cd59d
Merge pull request #6167 from hug-dev/cm3ds-bug-fix
CM3DS Maintenance Pull Request: Bug fixes (1/4)
2018-02-27 13:44:05 -06:00
Cruz Monrreal 478fda70e0
Merge pull request #6166 from u-blox/apn_default
Make APN lookup the default behaviour for PPPCellularInterface
2018-02-27 13:43:32 -06:00
paul-szczepanek-arm 96de1c2752 header guards renamed 2018-02-27 17:25:57 +00:00
paul-szczepanek-arm 8e41de2e25 Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os 2018-02-27 17:23:25 +00:00
paul-szczepanek-arm e186985b26 addressing PR review: added documentation, moved code and renamed vars 2018-02-27 17:22:13 +00:00
Tero Jääskö f0cc00ef3b nanostack-hal: add alternative critical section implementation
The nanostack hal's critical section uses a mutex for mutual exclusion,
which is nice for many use cases. But when one needs to use the critical
section from interrupts, the RTX will have a assertion failure and panic.

Add a configurable for mbed_lib, which can be used to enable a alternative
version of critical section, which uses the underlying OS primitives, which
disables the interrupts.

Note: the default behavior is not changed, one needs to override the
"nanostack-hal.critical-section-usable-from-interrupt" to have "true".

Reason for this change is that there is a need for sending events using
nanostack event queue from interrupt context, eg. from a socket callback.
2018-02-27 17:12:55 +02:00
Vincent Coubard 81126ad7ce BLE: remove draft of nordic pal security manager. 2018-02-27 14:35:56 +00:00
Vincent Coubard e568aa47ba Merge branch 'master' of https://github.com/ARMmbed/mbed-os into pr-sm 2018-02-27 14:33:35 +00:00
Vincent Coubard bf8204a21b BLE: remove host testing from sm pr 2018-02-27 13:42:03 +00:00
paul-szczepanek-arm fc01cff1b3 removed using statements from header 2018-02-27 12:25:01 +00:00
paul-szczepanek-arm d264512c8c remove virtual as per review request 2018-02-27 12:15:40 +00:00
paul-szczepanek-arm 536f541b93 mic event no longer present in user api, removing call 2018-02-27 12:13:48 +00:00
Vincent Coubard 928dbcf325
BLE: Fix prefix of BLEProtocol::AddressType 2018-02-27 12:12:17 +00:00
Kevin Bracey d24c7c454b
Merge pull request #6186 from TeroJaasko/eventloop_in_main_thread_to_master
Eventloop in main thread to master
2018-02-27 14:01:40 +02:00
paul-szczepanek-arm 957cee39fe Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os 2018-02-27 11:57:20 +00:00
paul-szczepanek-arm 0f1fd58c38 removed MIC related functions and events from the user API 2018-02-27 11:57:16 +00:00
Vincent Coubard 0b0d614787 Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os into pr-sm 2018-02-27 11:54:32 +00:00
paul-szczepanek-arm 62e9011525 public key renaned (added coord), also contains missing commit for oob_rand rename 2018-02-27 11:50:04 +00:00
Vincent Coubard 361ae8c7a3 BLE: fix references to oob_rand_t. 2018-02-27 11:48:21 +00:00
paul-szczepanek-arm 4010bade89 reanmed type as per review request 2018-02-27 11:43:46 +00:00
paul-szczepanek-arm 4fd29630b3 removed redundant type 2018-02-27 11:23:22 +00:00
Vincent Coubard 871ebb6708 BLE: Add host test instructions. 2018-02-27 11:19:59 +00:00
Vincent Coubard c6bca57633 BLE: Improve generic gatt client tests documentation. 2018-02-27 11:15:48 +00:00
paul-szczepanek-arm 8142cb5131 redundant call removed 2018-02-27 10:45:31 +00:00
paul-szczepanek-arm 5de1979f5c types renamed as per review requests 2018-02-27 10:33:35 +00:00
David Saada e891d6abf0 NVStore: Use wait_ms to delay instead of Thread::wait. 2018-02-27 12:33:27 +02:00
paul-szczepanek-arm b0c7d729fc variable name updated in the undefed cmac blocks 2018-02-27 10:00:07 +00:00
paul-szczepanek-arm 55106362f0 removed redundant type 2018-02-27 09:59:35 +00:00
paul-szczepanek-arm c9690c9f59 upate doxygen since passkey is no longer a pointer 2018-02-27 09:22:36 +00:00
Vincent Coubard 47eea76c03 BLE: Test db entry open and close in the generic security manager. 2018-02-27 09:00:26 +00:00
Vincent Coubard 7833d798da BLE: Fix security manager mocks 2018-02-27 09:00:26 +00:00
Vincent Coubard b939721421 BLE: Ensure passkey is not null before integer conversion 2018-02-27 09:00:26 +00:00
David Saada f43e7b1301 NVStore: Calling thread wait doesn't depend on RTOS being defined any more. 2018-02-26 23:17:59 +02:00
Cruz Monrreal b7c2b1f510
Merge pull request #6120 from ARMmbed/g-fat-errors
fatfs: Update error code mapping
2018-02-26 14:46:33 -06:00
Cruz Monrreal a93342f70b
Merge pull request #6151 from pan-/fix-generic-gap-connect
BLE: Fix generic gap connect
2018-02-26 14:39:25 -06:00
Cruz Monrreal 7f812807a9
Merge pull request #6177 from geky/fix-littlefs-mkdir-root
littlefs: Fix handling of root as target for create operations
2018-02-26 14:37:54 -06:00
David Saada 2b7766a73b Add NVStore (A.K.A SOTP) feature 2018-02-26 15:57:32 +02:00
Rob Meades 2fe3223612 Make MBED_CONF_PPP_CELL_IFACE_APN_LOOKUP default in mbed_lib.json while
ensuring that, if there is a user-specified APN, it is still used.
2018-02-26 11:33:40 +00:00
Vincent Coubard 3554a63dc8
BLE: Add default addressType to processAdvertisementReport
This patch should be reverted once the ST shield library and mbed-os-cliapp have been updated to support this change in the porting API.
2018-02-26 09:59:17 +00:00
Christopher Haster 436e4706ed littlefs: Add littlefs.intrinsics to override intrinsics support
Enables intrinsics for bit operations such as ctz, popc, and le32
conversion. Can be disabled to help debug toolchain issues. Has
proven to be surprisingly useful.
2018-02-23 17:51:42 -06:00
Christopher Haster afc3306d25 littlefs: Adopted MBED_ASSERT and littlefs.enable_assert
Much like the logging functions, assertions can be enabled, disabled
and forced with the littlefs.enable_assert config option. Integrates
with the new LFS_ASSERT macro.
2018-02-23 17:45:24 -06:00
Vincent Coubard 1f4e2b1820
BLE: Fix Gap::processAdvertisementReport documentation 2018-02-23 17:32:22 +00:00
Cruz Monrreal II b40ff8af15 Moved return statements to their own line 2018-02-23 11:23:13 -06:00
Vincent Coubard 47e005e14c
BLE: Fix address report in Maxim port. 2018-02-23 15:50:34 +00:00
Vincent Coubard d586f7f9d2 BLE: update SecurityDB comments. 2018-02-23 13:54:41 +00:00
Tero Jääskö 09b8245cba nanostack-hal: remove connection from event loop init and dispatch thread
The thread flag signaling mechanism is problematic if a separate event
loop thread is not used. The problem is, that one needs to know the
thread id of the loop dispathcer, and that knowledge can be derived
only from the caller thread of the initialization function.

Remove the magic connection from caller thread to dispatcher thread
by using event flags instead of thread flags on signaling. As the
event flags require the massive amount 20 bytes of RAM whereas
thread flags requires none, keep the code behind flag.
2018-02-23 15:37:33 +02:00
Tero Jääskö aed2a0cd9f nanostack-hal: modify eventloop to allow running it in a main thread
The separate eventloop thread may not be necessary on all uses, as one
can use the existing main thread for event dispatching. Add a
conditional nanostack-hal.event-loop-dispatch-from-application, which
disables the thread creation.

Note: the ns_hal_init must be ran from the same thread which will be
used to execute the event loop later.
2018-02-23 15:37:32 +02:00
Vincent Coubard e91570e4ba
BLE: Fix default connection params type. 2018-02-23 13:30:16 +00:00
Paul Szczepanek 268655a028
Merge pull request #17 from pan-/security-db-rework
Security db rework
2018-02-23 13:24:15 +00:00
Vincent Coubard 11a809ee1c BLE: remove MorySecurityDb include from generic security manager. 2018-02-23 11:19:21 +00:00
Vincent Coubard 1ded0d7198 BLE: Split security manager control block from the secure DB. 2018-02-23 11:15:08 +00:00
Vincent Coubard 52910af33e BLE: Add mock for SecurityManagerEventHandler. 2018-02-23 11:13:42 +00:00
Vincent Coubard 7db6aeb19b BLE: Add mock and stub for ConnectionEventMonitor. 2018-02-23 11:13:42 +00:00
Vincent Coubard 2bb73fd8bb BLE: Cleanup includes of pal::ConnectionEventMonitor. 2018-02-23 11:13:42 +00:00
paul-szczepanek-arm c8f77259ed Merge https://github.com/ARMmbed/mbed-os 2018-02-23 10:11:49 +00:00
Cruz Monrreal 1d1eef47ff
Merge pull request #6160 from TeemuKultala/status_callback_fix
fix issue 6150
2018-02-22 21:56:42 -06:00
Christopher Haster 453a1b6815 Merge commit '451c3d137fbd49ce5e00e765af66c16bb5169ee9' into lfs-update 2018-02-22 18:43:04 -06:00
Christopher Haster f67a795ef0 littlefs: Fixed handling of root as target for create operations
Before this patch, when calling lfs_mkdir or lfs_file_open with root
as the target, littlefs wouldn't find the path properly and happily
run into undefined behaviour.

The fix is to populate a directory entry for root in the lfs_dir_find
function. As an added plus, this allowed several special cases around
root to be completely dropped.
2018-02-22 15:56:24 -06:00
Antti Yli-Tokola 1b27317e6c Update mbed-coap to version 4.3.0
Add new api to clear whole sent blockwise message list
2018-02-22 17:57:12 +02:00
paul-szczepanek-arm 02f01f0e1d Merge branch 'palsm' of https://github.com/paul-szczepanek-arm/mbed-os into palsm 2018-02-22 11:53:00 +00:00
Vincent Coubard 1698c2d5be BLE: Add missing encryption implementation in cordio pal SM. 2018-02-22 11:51:02 +00:00
paul-szczepanek-arm 1da5d74470 temporary key encryption mitm quality reflected 2018-02-22 11:50:11 +00:00
Martin Kojtal 414b2d971d
Revert "Update Mbed TLS HW acceleration partner code to new hashing API" 2018-02-22 11:20:35 +00:00
Teemu Kultala 34ef11630c fix issue 6150 by always setting net interface UP in mbed_set_dhcp 2018-02-22 13:00:46 +02:00
Brendan McDonnell 7094e13891 revert typos in external sources 2018-02-21 19:08:28 -05:00
paul-szczepanek-arm 6b0ba64ee2 SM fixes to init and register the event handler correctly 2018-02-21 18:35:44 +00:00
Hugues de Valon ef7b16d9c5 CM3DS: fix non aligned access in Ethernet driver
This patch changes the way data is put in the TX_DATA_PORT register when
sending packet over Ethernet.
When this driver is compiled with release compilation profile
(space optimization compiler options) with Arm compiler version 5,
the line:
SMSC9220->TX_DATA_PORT = *pktptr;
generates the assembly instruction to get the pktptr pointed value:
LDM r2!, {r3}
with pktptr = r2
However, the code does not prevent the pktptr value from being unaligned
(to a 32 bits boundary) in that zone and the LDM instruction causes a
HardFault if this is the case. When the compiler option is not activated
(debug and develop compilation profiles), the compiler generates LDR
instruction instead which does not cause a HardFault.
The ARM v7-M states page B3-601: "Unaligned load-store multiples and
word or halfword exclusive accesses always fault."

To face that problem, we check if the data pointer is aligned or not. If
it is, we apply the same algorithm than before. If not, a local variable
is created and we copy in it, byte per byte, the contents at the
unaligned pointer. However, it will impact performances adding 8
instructions (one LD and one ST for each copied byte).

Change-Id: I11f6e82ce5521960d2ecf499f718f76fec29c0b0
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2018-02-21 17:54:12 +00:00
Galanakis, Minos 5b8ff81e02 CM3DS: fix a minor bug in the ethernet LWIP driver
This patch fixes a memory bug. `eth_arch_enetif_init` method call
would attempt to write to un-initialized area of memory.

Change-Id: I9881de71d58fa14db609fe3e24617a210b896471
Signed-off-by: Galanakis, Minos <minos.galanakis@arm.com>
2018-02-21 17:51:09 +00:00
Vincent Coubard 9e98a72198 BLE: Move cordio default scan and connection params in global memory. 2018-02-21 17:43:39 +00:00
Vincent Coubard ad78b3e023 BLE: Handle NULL parameters in Gap::connect. 2018-02-21 17:43:38 +00:00
Vincent Coubard 9c6f44de91 BLE: Force stop scan before connection initiation. 2018-02-21 17:43:38 +00:00
Vincent Coubard c5be493bb7 BLE: Add address type in AdvertisementCallbackParams_t. 2018-02-21 17:41:14 +00:00
Vincent Coubard 0158971387 BLE: Move cordio default scan and connection params in global memory. 2018-02-21 15:00:17 +00:00
Martin Kojtal 5c7cd1f689
Merge pull request #6139 from VeijoPesonen/eth_n_wifi-drv_n_tc_fixes
LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header
2018-02-21 15:19:55 +01:00
Vincent Coubard e3d7f2bb05 BLE: Add address type in AdvertisementCallbackParams_t. 2018-02-21 14:14:31 +00:00
Vincent Coubard f3c453b077 BLE: Handle NULL parameters in Gap::connect. 2018-02-21 12:42:54 +00:00
Vincent Coubard 7941a6fcc7 BLE: Force stop scan before connection initiation. 2018-02-21 12:13:24 +00:00
Veijo Pesonen a7ef67a92a fixup! LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header 2018-02-21 08:25:46 +02:00
Brendan McDonnell 085c045fda a few grammar corrections 2018-02-20 20:33:53 -05:00
Brendan McDonnell c4f10aafee typos 2018-02-20 20:11:19 -05:00
Cruz Monrreal 24a3acd647
Merge pull request #6141 from hasnainvirk/dr_bug_fix
Verifying datarate bug fix
2018-02-20 13:44:51 -06:00
Cruz Monrreal e66cc74b8f
Merge pull request #6046 from geky/fix-lookahead-noack-pop
littlefs: Fix incorrect lookahead population before ack
2018-02-20 13:19:13 -06:00
paul-szczepanek-arm c65419239f fixed compiler errors for pal after its update 2018-02-20 18:01:21 +00:00
Cruz Monrreal 817f9a569c
Merge pull request #5812 from OpenNuvoton/nuvoton_crypto
M487: Support ECP H/W accelerator
2018-02-20 11:53:23 -06:00
Veijo Pesonen e1d9d8783d LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header
IPv6 header requires 20 more bytes compared to IPv4 header.
2018-02-20 15:45:44 +02:00
Hasnain Virk b163057da7 Verifying datarate bug fix
A patch was missed from the feature PR.
verify_channel_DR() in LoRaPHY class had a loop with uninitialized
loop counter.
2018-02-20 15:08:04 +02:00
Vincent Coubard 4ce0ed9c0c BLE: Remove dependency of GenericSecurityManager towards gap. 2018-02-19 17:46:41 +00:00
Vincent Coubard 28f2f46974 BLE: Hide event monitor inside pal. 2018-02-19 17:41:18 +00:00
Vincent Coubard 8b9e08e128 BLE tests: Add stub for device.h . 2018-02-19 17:32:10 +00:00
Vincent Coubard bcea06fb32 BLE: Fix inclusion of mbed_error.h 2018-02-19 17:32:10 +00:00
Vincent Coubard cc896f1b52 BLE: Add mock for the security db. 2018-02-19 17:32:10 +00:00
paul-szczepanek-arm 396ca2ca20 removed redundant cast 2018-02-19 17:29:45 +00:00
paul-szczepanek-arm 990e21247c pull in cordio security manager into BLE 2018-02-19 17:26:24 +00:00
paul-szczepanek-arm dd7bc50e4b Merge branch 'master' into palsm 2018-02-19 16:39:10 +00:00
paul-szczepanek-arm ecacbda507 compiler errors fixed after the merge 2018-02-19 16:28:01 +00:00
Martin Kojtal 3fec23e505
Merge pull request #6115 from andrewleech/nRF5XPalGattClient_include_new
NRF5x: Fix `error_t` conflict with gcc std>=gnu++11
2018-02-19 17:19:09 +01:00
paul-szczepanek-arm 8cf7b3b06f Merge branch 'palsm' of https://github.com/paul-szczepanek-arm/mbed-os into palsm 2018-02-19 15:35:39 +00:00
paul-szczepanek-arm d9156a28e2 connection monitor 2018-02-19 15:32:07 +00:00
Vincent Coubard 9b12c6b11d BLE: Add SecurityManager tests to the build script. 2018-02-19 14:44:30 +00:00
Vincent Coubard 15cfcba16a BLE: Move security DB into PAL. 2018-02-19 14:43:56 +00:00
Vincent Coubard c7672994d2 BLE tests: Mock pal::SecurityManager. 2018-02-19 14:34:07 +00:00
Vincent Coubard 6529d677c1 BLE: Fix include prefixes. 2018-02-19 13:46:46 +00:00
Vincent Coubard 863bdfbb75 BLE: Add unit test for the Generic GattClient.
These tests are build around gtest and gmock and solely run on a host; cmake is
used as a build system:

- cd features/FEATURE_BLE/tests
- mkdir build
- cd build
- cmake ..
- make
- ./gatt-client-tests
2018-02-19 13:23:23 +00:00
Cruz Monrreal 1e1a1787d4
Merge pull request #6087 from ARMmbed/feature-lorawan
Integrating Mbed LoRaWAN Stack in Mbed-OS 5.8
2018-02-16 10:46:53 -06:00
Christopher Haster b548fd8a39 fatfs: Update error code mapping
A lot of the error codes in fatfs were mapped incorrectly. This patch
revisits the error code mapping to try to correct these mistakes
2018-02-16 00:29:22 -06:00
Andrew Leech d001fb1c66 Avoid importing <memory> as this causes a typedef conflict on `error_t` whien compiling with gcc "-std=gnu++11" or above 2018-02-16 12:10:44 +11:00
Kevin Bracey d5dc655a6d Correct LoRaWAN license header 2018-02-15 15:40:18 +02:00
Kevin Bracey 984cc1ab50
Merge pull request #6032 from jarlamsa/status-callbacks
Status callbacks
2018-02-15 13:02:10 +02:00
Cruz Monrreal f9cd95f30d
Merge pull request #6095 from ARMmbed/g-note-mbr-limits
mbr: Add note about limitations
2018-02-14 14:10:41 -06:00
Cruz Monrreal 06b618447f
Merge pull request #5973 from k-stachowiak/IOTSSL-1727-update-to-new-md-api
Update Mbed TLS HW acceleration partner code to new hashing API
2018-02-14 12:58:08 -06:00
Cruz Monrreal 975b940001
Merge pull request #6053 from deepakvenugopal/master
Nanostack release for Mbed OS 5.8
2018-02-14 12:44:53 -06:00
Christopher Haster db965c1652
mbr: Added note about limitations 2018-02-14 10:31:14 -06:00
Krzysztof Stachowiak 2e9243f2e1 Expand guards for conditional compilation of ALT MD API 2018-02-14 16:33:58 +01:00
Kevin Bracey d07b9f30eb mbed-mesh-api: add JSON help 2018-02-14 14:29:10 +02:00
Christopher Haster 5b09daf0f9 mbr: Added checks for extended partitions 2018-02-13 14:03:02 -06:00
Vincent Coubard aeb992ee3c BLE: Add unit test for the Generic GattClient.
These tests are build around gtest and gmock and solely run on a host; cmake is
used as a build system:

- cd features/FEATURE_BLE/tests
- mkdir build
- cd build
- cmake ..
- make
- ./gatt-client-tests
2018-02-13 17:01:25 +00:00
paul-szczepanek-arm 2f1e211da1 set entry state on connect 2018-02-13 16:41:36 +00:00
Hasnain Virk d7c22a6b09 A few Cosmetics & methods for mask manipulation
LoRaMacChannelPlan class provides APIs which are not usable for
PHY layer implementations who do not support custom channel plans.
So we had some code in APIs which was explicitely using magic numbers
for the channel mask. Although it turned out to be not a bug as a layer
down we were checking for custom channel support. However, we now
check for custom channel support before going deep into PHY layer that will
make the code run faster and we have done some cosmetics to the code for
readability.

Channel mask is manipulated with inline methods
2018-02-13 15:09:58 +02:00
paul-szczepanek-arm d44af8c40a don't handle event handler memory by the SM 2018-02-13 12:11:17 +00:00
paul-szczepanek-arm 55045010d6 fixed all the compilation errors and recent pal changes 2018-02-13 11:01:30 +00:00
Krzysztof Stachowiak 8c412ed886 Resolve compiler and linker issues in MD APIs
The features/mbedtls/targets/TARGET_STM/* files include constant needed
for the error codes returned from the MD functions.

The features/mbedtls/targets/hash_wrappers.c provides thin redirection
layer for the hardware accelerated MD implementations that rely on the
old API.

The TESTS/mbedtls/multi/main.cpp has been changed to use the new API
as its build environment does not rely on the translation unit
containing the necessary wrappers.
2018-02-13 10:07:28 +01:00
Christopher Haster fd9e4c12fd Added test to catch multiple nested MBRs 2018-02-12 18:57:41 -06:00
Christopher Haster 70cfef8630 fatfs: Removed extra MBR block
Regression after ChanFS update: Due to parameter changes in the f_mkfs
function, the option to use a separate block for MBR (FDISK) was turned
back on. This should be off as it conflicts with an explicit MBR when
using the MBRBlockDevice.
2018-02-12 17:16:10 -06:00
Cruz Monrreal cf60266584
Merge pull request #6058 from pan-/fix-gap-type-static
Ble: fix size function in advertising_data_t and address_t.
2018-02-12 10:28:32 -06:00
Cruz Monrreal bab8cc4de7
Merge pull request #6018 from bmcdonnell-ionx/fix-dir_seek-warn
fix compiler warning
2018-02-12 10:25:54 -06:00
paul-szczepanek-arm 35b4ae4bc7 typos 2018-02-12 14:42:31 +00:00
paul-szczepanek-arm 581b5755b8 removed duplicate event handler, removed redundant using statements 2018-02-12 13:40:04 +00:00
paul-szczepanek-arm 2c1fcc7235 style 2018-02-12 10:27:27 +00:00
Kimmo Vaisanen 90c02f2843 Check correct return value
mib_get_request() returns lorawan_status_t value so comparing
return value to boolean is incorrect.
2018-02-12 12:09:16 +02:00
Jarno Lamsa 8bea5ef438 Add some documentation for the callback 2018-02-12 11:02:07 +02:00
ccli8 03f0ea1117 [M487] Refine internal_mpi_write_eccreg in ECP alter. 2018-02-12 14:11:15 +08:00
paul-szczepanek-arm 90c30c9022 typo 2018-02-11 18:19:56 +00:00
paul-szczepanek-arm c93e800eea missing ref 2018-02-11 18:13:54 +00:00
paul-szczepanek-arm 934d8f9235 pointers changed to references for a consistent PAL 2018-02-11 18:08:21 +00:00
paul-szczepanek-arm 68db4dd52f avoiding compiler issues 2018-02-11 15:37:23 +00:00
Hasnain Virk 7224fbae1c Style Changes in MAC layer
Style changed according to Mbed-OS guidelines.
2018-02-11 00:31:47 +02:00
Hasnain Virk 20bce2f21c Style changes for LoRaWANTimer & a warning fix
Method naming, doxygen style etc are made to follow Mbed-OS guidelines.
A warning fix in LoRaWANstack.
2018-02-11 00:31:47 +02:00
Hasnain Virk f0fe1229cf Moving LoRaRadio and LoRaWANBAse to lorawan
LoRaRadio and LoRaWANBase use to exist under netsocket/.
However, their logical location should be where the actual stack exists.
2018-02-11 00:31:47 +02:00
Hasnain Virk 4432ad9ae7 Major PHY layer modifications
The PHY layer had a lot of duplicated code in various geographic regions.
In this commit we have tried to concentrate all common functionaliy into
one single class which LoRaPHY that provides three kind of methods:

i) Non virtual base methods which are there for upper layer use, e.g.,
   providing access to driver or generic PHY layer functionality which
   needs to be exposed to upper layers.

ii) Virtual methods (no hard limit on implementation) that can be overriden
    in derived classes. Some PHY implementations will need that as they may
    come with very peculiar channel schemes, e.g., dynamic channel schemes
    in US bands.

iii) Protected methods which are only available for the derived PHYs

We have adopted a mechanism for the dervied PHYs to announce their differenmtiating
parameters in their constructors by filling up a data structure known as lora_phy_params_t
which exists at base level. Access modifier for this data structure is protected so it can only be
used by the base or derived classes, i.e., no exposure to upper layers.

For extra functionality and differentiating controls, a derived PHY can override any virual method as necessary.

In addition to that we have adopted the Mbed-OS style guide and have changed data structures and code to reflect that.
Some data structures are removed.

* Algorithm to get alternate DR is modified. Current scheme, works as multiples of 6 as EU and EU like PHYs
provide 6 datarates. We make sure that we try a datarate at least once. If nuber of join retries is a multiple
of 6, we may try multiple times on each data rate.

* Most of the PHYs with dynamic channel plans, always override the above mentioned algorithm as the rules governing
  this algorithm do not hild in their case.

* band_t data structure is enhanced with lower band frequency and higher band frequency. That enables us to validate
  frequency based upon the band and hence we can have a single function for all PHYs to validate frequency.

* In some PHYs, there were some extra channel masks were defined which were not being used. Hence removed.

* EIRP table corrected in some PHYs based upon spec.

* PHY functions in response to Mac commands are renamed to reflect what they exactly do.
  for example accept_rx_param_setup_req() because that's what they do. they can either accept
  the mac command or reject it.# Please enter the commit message for your changes.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen 5d98839092 Improve error handling & robustness
This commit also introduces API change for disconnect(). disconnect() will
now return LORAWAN_STATUS_DEVICE_OFF for successfull disconnect.

 * LoRaWANStack::handle_tx() can be called with NULL buffer when length is 0.
   This commit fixes the case where user has provided NULL buffer and length
   is > max_possible_size.

handle_tx() now always returns LORAWAN_STATUS_PARAMETER_INVALID if given
buffer is NULL pointer and length > 0.

General error checking is added and some asserts are added for events.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen 35045f19cc Implement LoRaMac::disconnect
In order to reset LoRaMac's state in disconnect, we need to implement
an API which can be used to cancel all outstanding requests and reset
LoRaMac's internal state to idle.

This commit introduces LoRaMac::disconnect() which can be used for
this purpose.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen 44bca596c5 Use EventQueue for timers
Instead of initiating own timer objects we can use EventQueue::call_in() method
as we already have handle to EventQueue object.

Also setting timeout and starting timer has been combined to TimerStart method.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen f2bdef8543 Add includes for used data types 2018-02-11 00:31:47 +02:00
Hasnain Virk 7369cbd649 [IOTCELL-346] Removing default value storage
We now save roughly 500 bytes by removing storage of default
parameters in the loramac_params_t data structure. We use Mib to
get default values from PHY whenever needed instead.

loramac_sys_arams_t now contains only the runtime values set during operation
whenever defaults are needed we directly query the PHY layer or via Mib as the
need maybe.
2018-02-11 00:31:47 +02:00
Hasnain Virk c02774343a [IOTCELL-282] Code cleanup/simplification and rules
Baseline is changed to use a single set of data structures that simplifies the
code in the LoRaWANStack and Mac layer. We are now following certian rules for naming
data structures.

- All structures visible outside their domain are prefixed as 'lorawan_'
- All mac structures are prefixed as 'loramac_'
- All subsystem or module strucutures carry their name in prefix, like 'mcps_'

PHY layer still have legacy camel case data structures which will be entertained
later while we will be simplifying PHY layer.
Test cases are also updated with the new data structure naming conventions.

One major difference from the previous baseline is the removal of static buffer
from mcps indication. And we do not copy data from stack buffer to rx_msg buffer.
This saves at least 512 bytes.

It may look like now that if we have received something but the user have not read
from the buffer, then the buffer will be overwritten and we will lose previous frame.
Yes, we will. But the same will happen even if we would have copied the buffer into rx_msg
because then the rx_msg gets overwritten. So we decide to abandon copying the buffer at
multiple locations. We inform the user about reception, if the user doesn't read and
the data gets overwritten, then so be it.
2018-02-11 00:31:47 +02:00
Hasnain Virk 6ea541c054 [IOTCELL-286] Adding Channel Plan subsystem
Channel planning was distributed over LoRaWANStack and LoRaMac previously.
We now centralize it by allocating the service to its own class.

Thus making the workflow consistent, i.e.,

Request for channel plan = Application->Interface->stack->Mac->ChannelPlan

Major change apart from adding the channel plan subsystem are the API changes
in LoRaMac class.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen 34c034dfff Remove duplicate configuration flags
This commit changes code to use directly mbed os configuration system generated
compilation flags.
2018-02-11 00:31:47 +02:00
Hasnain Virk b47c59ce2a [IOTCELL-288] Adding MIB subsystem
As a part of MAC layer breakdown into independent subsystems, we have
introduced a class for MIB service.

Major changes from the baseline are:

- making OpenRxWindow() public in LoRaMac.cpp
- Moving various data structures to central protocol data structure
2018-02-11 00:31:47 +02:00
Hasnain Virk 49885d2bba Changing MLME data access methods to inline
As indicated in one of the reveiws, it makes more sense
to change the data access methods to inline as they are
just one liners.
2018-02-11 00:31:47 +02:00
Hasnain Virk 255bd30a48 [IOTCELL-290] Adding MCPS subsystem
Like MLME, MCPS has also been alloted its own class. This is the
2nd stage of breaking down the MAC services into subsystems.
2018-02-11 00:31:47 +02:00
Hasnain Virk a100ab0226 [IOTCELL-289] Adding Mlme class handle
MAC layer will services will be broken down into independent
subsystems. This is the first of those efforts. We have introduced
LoRaMacMlme class that handles everything related to MLME subsystem or
subservice. To accomodate subsystems we have grouped all protocol level
variables into one big data structure. A pointer to that data structure
will be passed around the subsystems in order to regulate the entire
system.

LoRaMac::Send() and LoRaMac::SetTxContWave*() APIs are made public as
they are needed to be accessed by the subsystems.
2018-02-11 00:31:47 +02:00
Hasnain Virk a3106d2fe6 Timer SingletonPtr & mac protocol data structure
Ticker objects embeded in TimerEvent_t data structure were getting constructed
even for the non LORAWAN builds. And that's what was bloating the builds.
We now lazy initialize them using Mbed-OS utility clas SingletonPtr.

A central data structure has been created that carries all the protocol level
variables for the Mac layer. This is important as we are going to break down
MAC services into subsystems and we will pass around common data using that data structure.
2018-02-11 00:31:47 +02:00
Hasnain Virk f62253ca0e Changing Timer callback to Mbed Callback
Time handler class had a c style callback attached to it which
had been hampering us to be fully object oriented.
That particular callback is changed to Mbed Callback which is attatched
to a specific object hence allowing us to be fully object oriented.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen e18d76aa7e Change LoRaWANTimer to a C++ class
LoRaWANTimer is now called as LoRaWANTimeHandler class as this class handles both
current time and timer functionalities.

Some refactoring on how LoRa objects are created was needed:
- LoRaWANTimeHandler object is created by LoRaWANStack and shares with LoRaMac and PHY.
- LoRaPHY object is now member of LoRaWANStack class instead of static variable in source file.
2018-02-11 00:31:47 +02:00
Hasnain Virk b634ca49dd Architecture rework, bug fixing & missing features
MAC layer is now a class rather than being a blob.
In addition to that Mac commands are now being handled in
a seperate subsystem (a class of its own). In future we
will do the same with othe sublayers of MAC like MLME, MCPS etc.

The drive behind this exercise is to make MAC and supporting layers
into an object oriented system.

Major bug fixes include:

- last join time inclusion in band parameters
- disabling rx2 window if we missed the slot already
- MLME uplink schdule hook
- nbRep according to spec
- maintaining datarate after successful joining
- suppressing MLME requests if MAC is in TX_DELAYED state
- Uplink dwell time verification

Some missing features are implemented. Details are as follows.

Support for LinkCheckRequet:

An application API is added, add_link_check_request() to delegate a
request for Link Check Request MAC command.

* Application provides a callback function that needs to be called on reception of
  link check response.

* Mac command is piggybacked with data frames.

This API makes the sticky MAC command stick with the application payloads until/unless
the application un-sticks the said mac command using remove_link_check_request() API.

Handling fPending bit:

If in the Downlink, we get the fPending bit set in fctrl octet,
we attempt to send an empty message back to Network Server to
open additional Receive windows. This operation is independent
of the application. An RX_DONE event is queued bedore generating
the said empty message. Specification does not mention what can be the
type of that empty message. We have decided it to be of CONFIRMED
type as it gives us an added benefit of retries if the corresponding
RX slots are missed.

Radio event callbacks as Mbed callbacks:

radio_events_t structure has been carrying C-style callbacks which was
inherited from the legacy code. These callbacks has now been changed to
Mbed Callbacks that makes sure that we can be object oriented from now
on.
2018-02-11 00:31:47 +02:00
Kimmo Vaisanen 1eedadd52d Change region configuration help format
New mbed os configuration parser no longer seems to allow multiline help description.
2018-02-11 00:31:47 +02:00
Hasnain Virk 5e8d8e1c08 Bug fix in setting data rate
Setting up user defined data rate was found broken maybe because of
some rebase issue. Code has been setting always the default data rate
and ignoring used defined values.
2018-02-09 11:00:56 -06:00
Hasnain Virk f7c0ce6221 Making static objects SingletonPtr
We had a lot of static objects which would get constructed and hence
pull in some of the LoRaWAN code into the builds for other technologies.
Such objects have been now lazily initialized using utility class
SingletonPtr.
2018-02-09 11:00:56 -06:00
Kimmo Vaisanen 7872b6a29c Use EventQueue for elapsed time
Current implementation uses high resolution timers to calculate elapsed time.
This prevents for example deep sleep completely and causes unnecessary timer
events.

This commit changes implamentation to use EventQueue::tick() to get elapsed time.
2018-02-09 11:00:56 -06:00
Kimmo Vaisanen b0889f7d21 Move all compliance test code inside compilation flag
All compliance test related codes are now inside LORAWAN_COMPLIANCE_TEST
build flag. This will reduce memory usage in when compliance test codes
are not needed.
2018-02-09 11:00:56 -06:00
Hasnain Virk 97f1680586 [IOTCELL-270] Detaching TxNextPacketTimer
TxNextPacketTimer callback was being used for testing only (compliance testing to be precise).
Now there are independent methods and direct calls to automatic timers for the
compliance testing so there is no particular need for this timer anymore.
2018-02-09 11:00:56 -06:00
Hasnain Virk 05e2d29238 Reworking callback API
Application should be able to add some optional callbacks if it needs to.
Ofcourse there is a penalty of 8-12 bytes per callback, but there can be
certain needs of the application that needs to be met for example setting
up a link check request etc.

We have introduced a structure that contains callbacks for the application use.

 - 'events' callback is mandatory, user must assign it. Because this callback brings
   state changes for the application. We cannot segregate this into individual handlers
   because of RAM penalty.
- Other calbacks (none of them are implemented yet are optional).

Example of using the API is provided with doxygen
2018-02-09 11:00:56 -06:00