Commit Graph

17 Commits (e7979d06224e1dbeaa45c66678da0031f92553c4)

Author SHA1 Message Date
Mika Leppänen 7303d446ad Replaced new calls with nothrow version of the call on mesh api
Replaced new calls with nothrow version of the call.
2020-11-20 14:08:32 +02:00
Arto Kinnunen 69720f1068 Use macro for isdigit 2020-09-02 15:15:45 +03:00
Arto Kinnunen 7b775632f1 Follow Mbed OS coding style 2020-09-02 12:41:14 +03:00
Arto Kinnunen 58136e93d8 Review corrections
-Check address version NSAPI_UNSPEC
-Disable traces
-More specific interface ID parsing
-Harmonize return values
2020-09-02 12:41:14 +03:00
Arto Kinnunen 24aaba0eca Mesh: Enable Nanostack DNS cache usage
Inherit methods gethostbyname, gethostbyname_async and get_dns_server
to Nanostack class. Methods will try to find DNS server address
or DNS query results from Nanostack DNS cache.
2020-09-02 12:41:14 +03:00
Arto Kinnunen 4d8af9f333 Add getsockopt option to read network property
Add getsockopt options NSAPI_LATENCY and NSAPI_STAGGER to read
network specific timing constraints from socket.
-NS_LATENCY returns estimated latency to given address.
-NSAPI_STAGGER returns estimated initial delay that application
 should wait before transmitting data to network.

Application can use the new options to avoid network congestion by
adjusting transmission delays and retry timeouts.

Add wrappers to make API usage easier:
-get_rtt_estimate_to_address
-get_stagger_estimate_to_address

This is backport of the https://github.com/ARMmbed/mbed-os/pull/12522
2020-04-29 13:20:42 +03:00
Mika Tervonen 86e3a5a021 Modified Wi-SUN tasklet to return correct status when calling connect twice
When calling mesh connect method twice NSAPI_ERROR_IS_CONNECTED is returned
instead of NSAPI_ERROR_DEVICE_ERROR Following the mesh API documentation.
2019-09-30 14:15:14 +03:00
Michal Paszta d1d0118752 Nanostack: translate errors from sendmsg
Translate errors to NSAPI_ERROR_*, instead of always returning
NSAPI_ERROR_DEVICE_ERROR
2019-04-16 15:03:50 +03:00
Arto Kinnunen f0d7e205ff Update nanostack-interface error mapping
Use status NSAPI_ERROR_PARAMETER instead of NSAPI_ERROR_UNSUPPORTED
when error is caused by parameter.
2019-03-08 16:28:20 +02:00
Martin Kojtal eec4e1329a nanostack interface: fix coding style 2018-11-15 07:20:12 +00:00
Deepika a47c6b8139 Nanostack: Add required header file and namespace element instead add all 2018-10-15 10:57:21 -05:00
Juha Ylinen b8a7e25e84 Nanostack: Fix return code for unsupported socket options 2018-08-20 16:30:19 +03:00
Juha Ylinen 942b77255b Nanostack: fix error code
Return NSAPI_ERROR_NO_MEMORY if socket->open() fails
2018-08-03 12:13:21 +03:00
Kevin Bracey e06923c64a Make Nanostack C++ constructor initialise Nanostack
Nanostack object constructor didn't actually initialise Nanostack.
Nanostack initialisation was deferred until an interface was actually
attached to the stack, which generally happened at first interface
connect.

Not normally a problem, unless you're trying to make direct Nanostack
setup calls prior to connect - some applications do this, and were
relying on ThreadInterface::initialise to do Nanostack
initialisation.

Unfortunately in 5.9 ThreadInterface::initialise no longer does
initialise Nanostack immediately, because the mesh interfaces were
aligned and integrated with the Ethernet interfaces, which did
initialisation on connect().

Make the Nanostack object constructor initialise Nanostack (as the LWIP
constructor does for lwIP), so calling Nanostack::get_instance() is the
5.9 API for Nanostack initialisation.

For future work, APIs like ns_file_system_set_root_path should be
exposed as methods of Nanostack, so everything happens with a single
Nanostack::get_instance().file_system_set_root_path().
2018-06-08 13:00:58 +03:00
Mika Leppänen 1c01f5dda4 Corrected defects
- Changed call_in/call methods of the stack to callback provided by the stack
- Specified what are limitations for operations that are made in callback
- Added pure virtual class DNS that defines DNS operations
- Added cancel operation and unique ID to DNS request used in cancel
- Added DNS configuration options to netsocket/mbed_lib.json for retries,
  response wait time and cache size
- Changed host name to use dynamic memory in DNS query list and cache,
  set maximum length for the name to 255 bytes.
- Added mutex to asynchronous DNS
- Reworked retries: there is now total retry count and a server specific count
- Ignores invalid incoming UDP socket messages (DNS header is not valid), and retries DNS query
- Reworked DNS module asynchronous operation functions
- Corrected other review issues (nothrow new, missing free, missing mutex unlock etc.)
2018-05-23 12:24:10 +03:00
Mika Leppänen b7e8400c2c Added non-blocking DNS functionality to network interface
- Added non-blocking DNS interface to network interface and
  network stack.
- Added caching of DNS replies.
- Added a network stack function to get DNS addresses from stack.
- Added call and call_in hooks to onboard network stack to
  allow calling functions from onboard stack context.
- Added support to call and call_in functions to LWIP and
  Nanostack.
- Disabled LWIP DNS translator with the exception of DNS
  address storage used in DNS address get.
2018-05-23 12:24:10 +03:00
Kevin Bracey 3c83c62ff7 Nanostack EMAC implementation
Make Nanostack an OnboardNetworkInterface, implementing
add_ethernet_interface so it can use EMAC drivers.

Can now be used via EthernetInterface, and be the system's default
network stack.

Legacy support for NanostackEthernetInterface retained. Some
restructuring of mesh interface code to fit into the
OnboardNetworkStack:::Interface system.
2018-05-23 12:24:04 +03:00