Commit Graph

50 Commits (0fe1246bf4fab40d96fe5616b19da174eeaf362d)

Author SHA1 Message Date
Martin Kojtal 0fe1246bf4 WiFiInterface - remove data arguments
Callback class provides API to support class callbacks.
2016-09-30 18:47:07 +01:00
Martin Kojtal e7b7fecc47 NetworkInterface: fix start_dhcp argument type 2016-09-30 11:33:35 +01:00
Martin Kojtal ebe02274ff NetworkInterface- fix comments for dhcp and ip methods 2016-09-30 11:10:59 +01:00
Martin Kojtal 961cde39af WiFiInterface: change variables to protected
A wifi instance should be able to set those data.
2016-09-30 08:51:21 +01:00
Martin Kojtal 7c8afa91fb IPStackInterface: removal of this layer
Use NetworkInterface that defines the same API (extended to cover some additional
requirements that comes from wifi).
2016-09-30 08:48:09 +01:00
Bartek Szatkowski f122695fd3 WiFi: Decuple IP stack bringup and IP address provisioning 2016-09-29 11:54:10 +01:00
Bartek Szatkowski c80641fe11 EMAC: Fix "#if DEVICE_EMAC " usage 2016-09-29 11:52:43 +01:00
andreas.larsson 40cd23c4f7 Added pointer for wifi_ap_t in wifi_connect_cb_t to be able to use NULL 2016-09-29 11:51:35 +01:00
Martin Kojtal 5ed97d5cca nsapi: error no ssid name correction 2016-09-29 10:46:51 +01:00
Martin Kojtal da7529801a WiFiInterface: change scope of wifi_ap_t structure 2016-09-29 10:44:43 +01:00
Martin Kojtal 33d95654df WifiInterface - use Callback class for callbacks 2016-09-29 10:41:43 +01:00
Martin Kojtal 517f0509ca IPStackInterface - add ip address
Currently only for IPv4. lwip was updated to accept 2 arguments for getting
the ip address (buffer and length).
2016-09-29 09:50:11 +01:00
Martin Kojtal f12676dfc7 Merge branch 'master' into feature_wifi
Conflicts:
	features/net/FEATURE_IPV4/lwip-interface/lwip_stack.c
	hal/targets.json
2016-09-29 09:20:46 +01:00
Martin Kojtal 3d14c20224 WiFiInterface: remove connect implementation
We do not want to mix Ethernet and Wifi at the moment, thus WiFiInterface
should implement own connect using emac.
2016-09-28 09:54:59 +01:00
Martin Kojtal b256b2fdc7 network-sockets: revert API for static configuration
WifiInterface - add set_credentials
2016-09-28 09:24:56 +01:00
Mika Leppänen e5c291d347 Added version to nsapi get host by name 2016-09-28 08:48:45 +03:00
Mika Leppänen 95383dde32 Added ipv6 support to lwip dns adaptation and updated dchp functionality 2016-09-28 08:48:45 +03:00
0xc0170 20f5adbab2 Merge branch 'master' into feature_wifi
Conflicts:
	features/net/FEATURE_IPV4/lwip-interface/EthernetInterface.cpp
	features/net/FEATURE_IPV4/lwip-interface/lwip_stack.c
	features/net/FEATURE_IPV4/lwip-interface/lwip_stack.h
	features/net/network-socket/WiFiInterface.h
2016-09-26 16:36:17 +01:00
Christopher Haster 4f7b10f433 nsapi - Moved literal ip parsing out of dns-query
- Not inherently a dns operation
- Able to reuse SocketAddress provided to the NetworkInterface
2016-09-25 22:19:18 -05:00
Christopher Haster 2194ca1c1e nsapi - Increased DNS buffer size to 512 bytes per spec 2016-09-25 22:19:18 -05:00
Christopher Haster 370afe5d82 nsapi - Folded IP parsing logic into SocketAddress
Merged duplicated logic into the SocketAddress class. Based
on parallel work by @mkaleppanen and @kjbracey-arm.

Also added small ipv6 parsing fix by @mikaleppanen
2016-09-25 22:19:18 -05:00
Christopher Haster d237ee8722 nsapi - Reversed arguments to gethostbyname
Updated to match prior conventions
- netconn_gethostbyname
- gethostbyname_r
- gethostbyname2_r
- gethostbyaddr_r
2016-09-25 22:19:18 -05:00
Christopher Haster 3858a13b75 nsapi - Added access to gethostbyname and add_dns_server
For performing DNS resolution explicitly through the network-socket
user API.

This interface does not require implementation changes and can rely
entirely on the dns query library in the network-socket API.
2016-09-25 22:16:52 -05:00
Martin Kojtal 8bfd108aa5 Merge pull request #2729 from bulislaw/feature_wifi
HAL: Add Emac interface
2016-09-23 12:52:13 +01:00
Bartek Szatkowski aad3e1f6c5 WiFi: Extend WiFiInterface API and documentation
* Add details to documentation
* Add timeout for async functions
* Add channel parameter to connect
* Add wifi_ap_t to connection cb function
2016-09-23 10:43:36 +01:00
Bartek Szatkowski ddd65b4089 WiFi: Add IPStackInterface abstraction for IP stacks 2016-09-23 10:43:32 +01:00
Christopher Haster f0934fd0f1 nsapi - Added optional API for static configuration of network interfaces
This accomplishes two things:
1. Provides a simple route for adding static IP address support to the
   base NetworkInterface
2. Provides a simple route for adding configurability to network
   interfaces and unifies the network interface to consistent connect
   call, allowing network interfaces to be passed around abstractly

NetworkInterface
 - set_network
 - set_dhcp

WiFiInterface
 - set_credentials

CellularInterface
 - set_credentials
2016-09-23 04:39:13 -05:00
Bartek Szatkowski ed0dfb48ea HAL: Add Emac interface 2016-09-23 10:34:21 +01:00
Sam Grove 6bfcb3cff0 Merge pull request #2665 from geky/nsapi-socketaddress-equality
nsapi - Add equality operators to SocketAddress class
2016-09-16 17:28:01 -05:00
Martin Kojtal 4fde794572 Merge pull request #2627 from bulislaw/feature_wifi
Extend and rework WiFi interface
2016-09-15 11:53:03 +02:00
Bartek Szatkowski f9f1f44a35 Extend and rework WiFi interface
General refactoring of the API and new methods added:
  * get_rssi() - measures radio signal strenght
  * get_state() - returns current state (not connected,
   		 connecting, connected, error)
  * scan() - scans for available networks sync and async versions
  * connect_async() - connect to a network without blocking
2016-09-14 12:57:22 +01:00
Christopher Haster e3037ef7b0 nsapi - Added equality operators to SocketAddress class 2016-09-11 20:48:01 -05:00
Sam Grove 5c30c0f166 Merge pull request #2594 from svastm/fix_tcp_server_constructor
Fix TCPServer constructor
2016-09-10 13:04:55 -05:00
Sam Grove a35cd7f81f Merge pull request #2579 from geky/nsapi-max-socket-accept
lwip - Fix handling of max sockets in socket_accept
2016-09-10 07:11:20 -05:00
Sam Grove a6b27319ec Merge pull request #2496 from geky/callback-cv
Add cv-qualifiers to Callback and deprecate combinatorial explody functions
2016-09-09 01:45:25 +02:00
svastm b56201c8c4 Fix TCPServer constructor
- Avoid a call to the protected method `get_stack()` which cause a build fail.
 - Remove the constructor definition `TCPServer(NetworkStack *stack)`
   because it has no implementation.
2016-08-31 17:35:10 +02:00
Christopher Haster db2738f850 nsapi - Corrected handling of errors in TCPServer accept
- Corrected handling, before errors would forcibly restart the
  accept loop without checks for timeouts
- Rearranged accept logic to match the logic of
  recv/send/recvfrom/sendto
2016-08-29 17:38:06 -05:00
Christopher Haster 4ffeec1797 [nsapi] Restructured nsapi_dns.h to have clear separation between C/C++
- Separated overloads based on language
- Removed NSAPI_C_LINKAGE definition
2016-08-26 12:39:52 -05:00
Christopher Haster f9552ddbbe [nsapi] Add support for implementation-provided DNS servers
Support intended for DNS servers provided by DHCP requests.
2016-08-26 12:16:41 -05:00
Christopher Haster dc9ddd42ef [nsapi] Removed unnecessary dns_query functions 2016-08-26 12:16:41 -05:00
Christopher Haster 08584916a5 [nsapi] Added IPv6 support to DNS query
To avoid complications with unexpected IP versions, the wanted
IP version was added as an extra argument to DNS query functions
(defaults to NSAPI_IPv4).

Internal API changes:
m nsapi_dns_query
m nsapi_dns_query_multiple

Interestingly, though multiple questions can be encoded in a single
DNS packet, few, if any, nameservers respect any but the first
question. This makes support for coelescing DNS queries useless.
2016-08-26 12:16:41 -05:00
Christopher Haster 665309986e [nsapi] Added support for multiple results in a dns-query
Internal API changes:
+ nsapi_dns_query_multiple

Note, dns_query_multiple takes a buffer of nsapi_addr_t to fill. This is
less dynamic than the linked-list method used in linux's gethostbyname,
but is easier to manage and more constrained.
2016-08-26 12:16:41 -05:00
Christopher Haster 126df2b4a9 [nsapi] Refactored dns-query to match style of the rest of the nsapi
Internal API changes:
dnsQuery -> nsapi_dns_query

Additionally restructured query code to emit/parse network structures
in stream form to hopefully document the underlying structure more
explicitly.
2016-08-26 12:16:41 -05:00
Christopher Haster 45d25ed493 Added support for cv-qualifiers in Callback class
Additionally, the following changes were don to avoid combinatorial
explosion in function overloads as a result of adding cv-qualifiers:
- Added convenience function for inferred type
- Deprecated callback overloads qhere cv-qualifiers are not scalable

Supported overloads:
callback(void (*f)(A...));
callback(const Callback<R(A...)> &);
callback(T *t,                void (*f)(T*, A...));
callback(const T *t,          void (*f)(const T*, A...));
callback(volatile T *t,       void (*f)(volatile T*, A...));
callback(const volatile T *t, void (*f)(const volatile T*, A...));
callback(T *t,                void (T::*f)(A...));
callback(const T *t,          void (T::*f)(A...) const);
callback(volatile T *t,       void (T::*f)(A...) volatile);
callback(const volatile T *t, void (T::*f)(A...) const volatile);
2016-08-26 09:40:22 -05:00
Colin Hogben 4f731e6b17 network-socket: Re-order args of NetworkStack::accept
Make the argument order more sensible, in line with nsapi.
2016-08-12 17:22:17 +01:00
Colin Hogben 36bf4827c7 network-socket: Optionally return peer address from accept().
Fixes issue #2399 by optionally returning a SocketAddress from
TCPServer::accept().

This entails changes to underlying NetworkStack and nsapi.  This
commit deals only with lwip and higher level APIs; other users of
NetworkStack and nsapi may be affected.  Currently lwip is the only
in-tree user of nsapi.
2016-08-12 10:50:52 +01:00
Christopher Haster 75a57ad797 Exposed the network-socket API through mbed.h
Currently this uses the same mechanism used by the rtos to conditionally
include the network-socket API. Perhaps this should be builtin to the
config system?

Note: this does require that the bug-compatible inclusion of mbed.h
be removed to avoid include-order issues.

per @sg-
2016-08-04 11:07:33 -05:00
Christopher Haster 8f2ca2bc63 Fixed missing port assignment in DNS constructor for SocketAddress
_stack->gethostbyname looks deceptively like it completely sets the
socket address value, however port is not provided via DNS resolution.
2016-07-25 17:46:15 -05:00
Christopher Haster ec993319a9 [nsapi] Fixed iar compilation issue with value initializer
Expression needed to init to zero a simple POD struct

Before (valid in C99/C++11/G++): 	(nsapi_addr_t){}
After (valid in C++03, invalid in C):	nsapi_addr_t()
2016-07-22 15:42:57 -05:00
Christopher Haster 03c5855496 Add 'features/net/network-socket/' from commit 'e09565474188b905cada21166118a82e66359217'
git-subtree-dir: features/net/network-socket
git-subtree-mainline: db60d6a7f7
git-subtree-split: e095654741
2016-07-21 18:30:42 -05:00