Commit Graph

14 Commits (55b992f130b847d2851a978e55a53de7930d4be5)

Author SHA1 Message Date
Hasnain Virk 1ac5700eb6 [ONME-2953 ]Minor glitch in error handling
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
2017-02-13 16:37:12 +02:00
Hasnain Virk 1f24533847 Minor amendments
NanostackLockGuard usage is now consistent throughout.
Missing Lock assertion added at a few locations in the code
2017-02-13 11:13:56 +02:00
Hasnain Virk e4f91cd0dc [ONME-2927] Socket adaptation layer for nanostack
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.
2017-02-12 22:05:26 +02:00
Seppo Takalo 3d5962db48 Return localhost from NanostackInterface::get_ip_address()
For NetworkStack::gethostbyname() to properly validate the
IP address version, we must return a valid address from
Networkstack::get_ip_address().
2016-11-16 19:07:23 +02:00
Seppo Takalo 6ba755e444 Move MeshInterfaceNanostack to own file.
+Also nanostack_lock() moved to mesh_system.h
+Added includes into NanostackInterface.h to be backward
compatible
2016-11-15 13:12:18 +02:00
Seppo Takalo 27cced74fb Get rid of Mesh6LoWPAN_ND and MeshThread classes.
* 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
2016-11-15 13:12:18 +02:00
Seppo Takalo 154d66404a Get rid of MeshInterfaceFactory. 2016-11-15 13:12:18 +02:00
Seppo Takalo c71abfed26 Update NanostackSocket to match API changes in v5.0.7 2016-11-09 16:07:13 +02:00
Martin Kojtal 7eaf32baa0 Merge pull request #3075 from geky/nsapi-error-size-types-2
nsapi - Add standardized return types for size and errors
2016-11-07 11:13:40 +00:00
Christopher Haster 00458c391c nsapi - Adopted standardized return types in the Nanostack interfaces 2016-11-02 15:55:42 -05:00
Kevin Bracey 2135c8f368 NanostackInterface: Remove string round-trips
Older versions of SocketAddress required conversion via string - this is
no longer the case.
2016-10-31 10:20:24 +02:00
Kevin Bracey b2834b9aa6 NanostackInterface: Allow binding to address
These days Nanostack does let you bind to an address - permit this.
(Remembering to check it is an IPv6 address).
2016-10-31 10:20:24 +02:00
Kevin Bracey 8e5391ab85 NanostackInterface: Check input address is IPv6
For the two calls that use the address - sendto and connect, check that it
actually is an IPv6 address.
2016-10-31 10:20:18 +02:00
Christopher Haster ba99a1f31d restructure - Restructured features/net directory
features/net/network-socket -> features/netsocket
features/net/FEATURE_IPV4 -> features/FEATURE_LWIP
features/net/nanostack-binaries -> features/nanostack
features/net/FEATURE_NANOSTACK -> features/nanostack/FEATURE_NANOSTACK
2016-09-30 19:18:09 -05:00