Add support for recently introduced NSAPI generic socket options to
control group membership. Previously applications using Nanostack would
have had to use Nanostack's native socket options.
When specifying a full channel mask in .lib and setting the channel
to zero, device does proper channel scan.
For Thread, channel must be specified for router.
Sleepy devices don't respect the channel settings but do a full channel
scan at the start.
+ Modified the channel mask print to use hex.
Need to avoid a TX packet error from messing up the TX FIFO. Since this API will return busy if a packet is in transmission anyways, this is acceptable.
Updated NanostackRfPhyEfr32 with a receive queue.
Cleaned up debug messages, re-added to non-threaded calls.
Removed debug print override
Removed tr_debug override
Removed normal-operation prints that could have timing implications if enabled
Removed dead NVIC code (and a couple of dead log outputs)
d65b6b0 Update unittests for nsdynmemlib API change (#71)
bc69b8b Disable CoAP duplicate message detection (#69)
ccb65f8 Change year 2017 to copyright (#68)
76490a7 Add option to join COAP multicast group (#67)
381d910 Register to multicast groups (#66)
dce323c Add transaction delete to CoAP service (#65)
feea33e Add option to select used socket interface (#63)
5a5c0f9 Merge pull request #62 from ARMmbed/coap_separation
0d26c00 Modifying file headers and Makefile to adapt from libcoap to mbed-coap
d323c3a Fixing unit tests based on new coap library
d1a3d25 Modifying Makefile and source file based on new coap library
git-subtree-dir: features/nanostack/FEATURE_NANOSTACK/coap-service
git-subtree-split: d65b6b0eb890be93f667debe8da83aa498021ccf
Some devices have RAM memory split into two sections.
This becames a problem for GCC based toolchains as they don't
support splitting .bss or .data sections into two memory parts.
When we run out of memory from .bss sections, allocating the stack
by malloc() allows it to be moved to .data section which might already
be in the second memory section. For example KW24D platform.
Warning #1300-D: inherits implicit virtual
- Adding the virtual keyword in the derived class prevents the warning
Warning #1-D: last line of file ends without a newline
- New line added at the end of file
Warning #997-D:
function "MeshInterfaceNanostack::initialize(NanostackPhy *)" is hidden
by "ThreadInterface::initialize" -- virtual function override intended?
- virtual keyword removed from "MeshInterfaceNanostack::initialize"
Warning #1300-D: inherits implicit virtual
- Adding the virtual keyword in the derived class prevents the warning
Device needs to wait for connectivity:
-routers will create new network and get local connectivity
-end device will get connectivity once attached to existing network
-devices without network settings gets connectivity once
commissioned and attached to network
Signed-off-by: Kari <kari.haapalehto@arm.com>
Thread device needs to wait for connectivity:
-routers will create new network and get local connectivity
-end device will get connectivity once attached to existing network
-devices without network settings gets connectivity once
commissioned and attached to network
As asked by @0xc0170 in PR #3934, we won't be using device_has for indicating RF/Crypto features any longer. RF config options moved to the SL_RAIL lib.json, crypto config options will come with mbedTLS integration.
This commit includes
- Removing CoAP sources from mbed-client-c to its own repository.
- mbed-client-c is moved outside of mbed-os source tree because it is used by mbed-client, so
it will be part of mbed-client offering.
- CoAP sources are used by coap-service which is a part of nanostack deliveries hence coap now existing
as independent module under mbed-coap.
- Commit handles the interdepdency of coap-service with mbed-client-c because of coap sources, coap-service
header files are now fixed to point to right header directory.
In sendto(), memory allocation failures were mistakenly being treated as
would blocks (assumption was that the device might be able to recover).
However, that put the blocking socket into deep sleep and there was no mechanism to wake it up
ever again. Somehow that got slipped through testing. Fixed in this amenment
As a result of major overhaul in Nanostack generally for socket API and especially
for TCP, the adaptation layer for mbed-OS is being upgraded.
Previously, as nanostack was not able to provide receive queue, adaptation layer had been
faking it. Now with Stream Socket by default Nanostack provides 2K receive queue and 2K send queue.
Receive queue size can be changed using setsockopt(). Batre metal nanostack would not provide with any
receive queues with Datagram Socket, however in this adaptation layer we introduce a 2K receive queue size
for the Datagram Socket as well.
Layer state machine handling is polished to ensure robustness.
::socket_connect() will can return 2 new error codes now. NSAPI_ERROR_ALREADY (like posix EALREADY) in case
if the connection is in progress or NSAPI_ERROR_IS_CONNECTED (like posix EISCONN) if already connected.
NSAPI_ERROR_WOULDBLOCK is now mapped directly to nanostack NS_WOULDBLOCK.
NanostackLockGaurd class is introduced which enables us to claim and release mutex using RAII style.
mbed compile doesn't support two different FEATURE_X folders being merged, so we'll have to move our nanostack driver into the Nanostack folder for the time being.
This is to allow other types of PHY drivers than just RF.
Mesh-API does not actually care about driver type, it is drivers
responsibility to register right handlers with Nanostack.
* Implement a wrapper class NanostackRfPhy to ensure backward
compatibility.
* Remove mesh_connect()/disconnect() functions from MeshInterface
This job is already done in inherited classes.
* LoWPANNDInterface and ThreadInterface should only be used with
NanostackRfPhy.
* Move all the functionality to LoWPANNDInterface and
ThreadInterface classes.
* AbstractMesh class modified to be pure virtual
* Thread/6LoWPAN specific functionality totally separated.
Now linker will drop the unreferenced classes.
* MeshInterfaceNanostack now inherits from AbstractMesh
* Binary build script is modified to follow currebt mbedOS baseline structure
* License files are moved to the correct location.
* Contribution.md is also moved to the correct location.