Commit Graph

144 Commits (bad51a56a11b803ca93bb51d9bdd136681727f74)

Author SHA1 Message Date
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
Sam Grove 20133688f0 Revert "[STM32 NUCLEO] Init MAC address" 2016-09-25 16:53:00 -05:00
Sam Grove 363c041c53 Merge pull request #2743 from jeromecoutant/PR_STM32_MAC
[STM32 NUCLEO] Init MAC address
2016-09-24 16:40:13 -05:00
Sam Grove e0bf4153a4 Merge pull request #2739 from jeromecoutant/PR_Update_IPV4
STM32 / IPV4: #2685 has been forgotten with #2731
2016-09-24 16:39:58 -05:00
Sam Grove 29b0551eb7 Merge pull request #2728 from andreaslarssonublox/eth_fix
Added ethernet and enabled IPV4 feature for the EVK-ODIN-W2/C029 target
2016-09-24 16:35:49 -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 64ac2105a3 lwip - Added option to set static IP addresses
Provided through the config options added to the network interface:
- EthernetInterface::set_network(ip_address, netmask, gateway)
- EthernetInterface::set_dhcp(dhcp)
2016-09-23 04:41:37 -05: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 4a6728cb2a EMAC: Add LWIP adaptation layer 2016-09-23 10:34:26 +01:00
Bartek Szatkowski ac8c2f96c0 EMAC: Add emac_stack_t implementation for LWIP 2016-09-23 10:34:25 +01:00
Bartek Szatkowski ed0dfb48ea HAL: Add Emac interface 2016-09-23 10:34:21 +01:00
Sam Grove c1c1492fa7 Merge pull request #2744 from jeromecoutant/PR_STM32_IPV4
FEATURE_IPV4/TESTS: result status could be wrong
2016-09-22 01:21:35 -05:00
jeromecoutant 257c3678da tcp_client_hello_world K&R style 2016-09-20 14:09:53 +02:00
jeromecoutant b7caa5448f tcp_client_hello_worldminor update 2016-09-20 09:40:48 +02:00
jeromecoutant 11d0f51bc4 FEATURE_IPV4/TESTS: result status could be wrong
result status should be set to false by default before starting test execution.
2016-09-19 16:05:29 +02:00
Milosch Meriac d389f65cf2 Don't disable the MPU for ENET when uVisor is around 2016-09-19 11:38:06 +01:00
jeromecoutant f05e6200d3 [STM32 NUCLEO] Init MAC address 2016-09-19 11:51:42 +02:00
jeromecoutant 79cacd6c77 STM32 / IPV4: #2685 has been forgotten with #2731 2016-09-19 11:19:53 +02:00
Sam Grove ff89555f45 Merge pull request #2731 from jeromecoutant/PR_STM32_IPV4
[TARGET_STM] IPV4 feature hal files factorisation
2016-09-18 17:47:53 -05:00
Sam Grove 3c33e4f9e3 Merge pull request #2722 from geky/nsapi-rst
lwip - Fixed error code on disconnect TCP socket
2016-09-18 17:47:34 -05:00
Sam Grove e6dace5d18 Merge pull request #2720 from yogpan01/mbed-os.5.2-rc1
Removing mbed-client and other fix commits.
2016-09-16 17:37:08 -05: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
Sam Grove 1a91c1cc1d Merge pull request #2561 from geky/nsapi-network-state
lwip - Add checks for invalid state of network
2016-09-16 17:20:34 -05:00
Sam Grove c940d0e20a Merge pull request #2551 from ARMmbed/runtime_configuration
Remove IPv6 link time dependency on an RF phy
2016-09-16 17:17:51 -05:00
jeromecoutant acbc3e1e09 [TARGET_STM] IPV4 feature hal files factorisation
Same code was duplicated for all STM32 targets
2016-09-16 16:21:59 +02:00
andreas.larsson 7661fe5719 Replaced GCC specific __packed__ with generic MBED_PACKED 2016-09-16 15:23:41 +02:00
andreas.larsson eacccddaa2 Added mbed_mac_address 2016-09-16 13:58:29 +02:00
andreas.larsson 0e5a0d68b3 Enabled feature IPV4 for C029 2016-09-16 11:31:33 +02:00
Christopher Haster b7d9b28bc4 lwip - Fixed error code on disconnect TCP socket
Fixed to return 0 on successful shutdown
2016-09-15 15:19:40 -05:00
Yogesh Pande 86e0841f04 Removing mbed-client and other fix commits.
**FEATURE_CLIENT**
Removing FEATURE_CLIENT from mbed-os source tree.

This commit removes FEATURE_CLIENT from mbed-os source tree
Applications using mbed-client now have to explicitly add
mbed-client.lib in addition to mbed-os.lib.

**mbed-client-c**
 -  [v3.0.1](https://github.com/ARMmbed/mbed-client-c/releases/tag/v3.0.1) (15-Sep-2016)
[Full Changelog](ARMmbed/mbed-client-c@mbed-os-5.0-rc1...v3.0.1)

**New features**

- Creates a new sn_nsdl_put_resource function, which takes ownership of sn_nsdl_resource_info_s resource object (not members) instead of creationg copy of it
- Rearranged struct member variable to pack better into memory
- Refactored coap_options_list to treat number members as numbers instead of strings
- Add option to pass incoming blocks to application instead storing them internally
- Added API for deleting one message from resending

**Closed issues:**

- IOTCLT-1001 - mDS does not sent RST anymore for Client after DELETE /subscriptions

**coap-service**
 -  [v4.0.3](https://github.com/ARMmbed/coap-service/releases/tag/v4.0.3) (15-Sep-2016)
[Full Changelog](ARMmbed/coap-service@mbed-os-5.0-rc1...v4.0.3)

**New features**

- Updated coap-service to use new structure from mbed-client-c
- Set link layer security when opening socket.
2016-09-15 20:42:06 +03: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
andreas.larsson 189d932169 Replaced usage of vendor specific register with basic registers when checking link status 2016-09-13 12:04:04 +02: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 c1ee7fb494 Merge pull request #2504 from ohagendorf/disco_f769_ii
[Disco_F769NI] adding new target
2016-09-10 07:16:21 -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 fb7ffcb5a3 Merge pull request #2580 from geky/nsapi-bind-again
lwip - Add check for previously-bound socket
2016-09-10 07:10:45 -05:00
Sam Grove b10e3a9163 Merge pull request #2578 from c1728p9/fix_double_free
Fix double free in NanostackInterface
2016-09-09 18:00:09 -05:00
Olaf Hagendorf 765aeb0dc6 disco_f769ni adding ethernet init
the IPV4 feature was already enabled in an earlier commit but the mbed 5 ethernet initialisation was missing
2016-09-09 14:21:55 +02: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
Russ Butler 126c8be053 Remove IPv6 link time dependency on an RF phy
Create a Nanostack rf phy class to wrap various rf physical interfaces.
Allow this phy to be set at runtime rather than compile time.
2016-08-31 15:24:51 -05: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 c3130e51e4 lwip - Added check for previously-bound socket
Avoids what turns into an infinite loop in lwip's internals
2016-08-29 18:47:30 -05: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 506aa3d4ea lwip - Fixed handling of max sockets in socket_accept 2016-08-29 17:37:13 -05:00
Russ Butler dd07c522c9 Fix double free in NanostackInterface
When freeing all memory in the rx buffer chain set the head pointer to
NULL. This prevents the head rx buffer from getting freed twice.
2016-08-29 17:14:16 -05:00
Christopher Haster 98ec80c484 lwip - Added checks for invalid state of network
- Check if disconnected in socket open
- Check if connected in interface connect
- Check if disconnected in interface disconnect
2016-08-26 15:35:26 -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 a3ecdf3b71 [nsapi] Adopted netconn_gethostbyname in the lwip interface
Provides proper integration with DHCP through lwip
2016-08-26 12:16:41 -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
Sam Grove 9d3557fbcc Merge pull request #2541 from cyliangtw/master
Fix NUC472 Ethernet wrong INT status in RX_Action
2016-08-26 09:26:51 -05:00
Sam Grove 2ecb560eb7 Merge pull request #2502 from c1728p9/fix_lwip_blocking_recv
LWIP - fix recv blocking send on accepted sockets
2016-08-25 09:25:01 -05:00
cyliangtw 0441707d4e Fix NUC472 Ethernet wrong INT status in RX_Action 2016-08-25 15:06:52 +08:00
Christopher Haster 47018fe1ac Added check for packet address in ipv4 nist test 2016-08-23 18:45:57 -05:00
Christopher Haster 1826978e8c Fixed recvfrom address in ipv4 nist tests
Previous behaviours overwrote server address on failures
2016-08-23 14:47:43 -05:00
Sam Grove eb3b99ac0b Merge pull request #2404 from bridadan/retry-nist-udp-test
Adding retries to the NIST test.
2016-08-22 22:42:10 -05:00
Russ Butler 2c02e58853 LWIP - fix recv blocking send on accepted sockets
When a socket is created via accept set the mode to nonblocking -
a timeout of 1ms. This allows send and recv to occur at the same time.
2016-08-19 16:23:12 -05:00
Martin Kojtal 133f16aa5d Merge pull request #2473 from svastm/ethernet_mbed_5
[STM32] Add ethernet and feature IPV4
2016-08-19 11:40:33 +01:00
Martin Kojtal da69629cd8 Merge pull request #2434 from infinnovation/socket-accept-address
network-socket: Optionally return peer address from accept().
2016-08-19 11:31:17 +01:00
svastm 43be3b403e [STM32] Add ethernet and feature IPV4
This commit refactor the `lwip-eth/arch/TARGET_STM` folder and add the IPV4 feature for the
following targets:

 - NUCLEO_F207ZG
 - NUCLEO_F429ZI
 - NUCLEO_F767ZI
 - DISCO_F746NG
2016-08-17 10:27:32 +02:00
Christopher Haster de9e221775 [nsapi] Added support for NSAPI_REUSEADDR to the lwip interface 2016-08-12 18:43:42 -05:00
Christopher Haster 1929c5b0ca network-socket: Support for returning peer address from Nanostack accept 2016-08-12 12:57:26 -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
Brian Daniels 114efcf753 Adding retries to the NIST test.
A UDP request to the NIST servers can fail to return data due to UDP
packet loss. Since packets are not guaranteed with UDP, this is a valid
failure and should not be treated as a test failure. The test should retry
the request in this case. This commit adds those retries.
2016-08-10 09:25:04 -05:00
Russ Butler 8b40b38e11 Add Cortex-M7 Nanostack binaries
Add binaries for the Cortex-M7 architecture. These binaries are identical
the the Cortex-M3 versions.
2016-08-05 16:08:18 -05: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
Sam Grove 34caf43f5a Merge pull request #2238 from OpenNuvoton/nuc472
[NUC472] Add NUMAKER-PFM-NUC472
2016-08-04 10:37:31 -05:00
Russ Butler 607ade0596 Adding error message for unsupported platforms
* Error message for unsupported platforms
2016-08-02 22:45:46 -05:00
Sam Grove 8c3c98b644 Merge pull request #2332 from bridadan/add-net-test
Patch of #2318
2016-08-02 18:57:12 -05:00
Christopher Haster 06826a935d Fixed issue with reconnecting the ethernet interface
Previously the EthernetInterface class was unable to be connected
after being brought down. The core issue is that lwip was not designed
to be completely brought down due once initialized.

To work around this, the ethernet interface only initializes once and
leaves itself up after a disconnect call. The DHCP lease is still
released/acquired on disconnect/connect.
2016-08-02 13:33:13 -05:00
Brian Daniels c355fb16d4 Restricting IPV4 echo tests to chars 0-9.
Having the echo tests generate any random character
caused issues serializing the test output into an
xml file. This change limits the characters generated
by the device to '0' - '9'.
2016-08-01 16:48:21 -05:00
Hasnain Virk 8f7e57919b Updating Nanostack Binary for ARMCC
* No code change.
* Binary built and fetched from Jenkins.
* Tested with mbed-os-example-mesh-minimal
2016-08-01 21:47:53 +03:00
Sam Grove 5f43f18ba3 adding tests for net/IPV4 2016-07-29 16:10:36 -05:00
cyliangtw 5710178afb Add NUC472 eth and entropy 2016-07-28 10:00:49 +08:00
Sam Grove 5d7317626c Merge pull request #2249 from c1728p9/client_nanostack_and_seperated
Client nanostack and seperated
2016-07-26 14:30:33 -05:00
Russ Butler 9c01bbc199 Update client and nanostack to include mbed.h
Include mbed.h rather than mbed-drivers/mbed.h.
2016-07-26 10:33:43 -05:00
Russ Butler cef844f6bf Break apart client and nanostack dependencies
Move the library files used by both nanostack and client into a common
location.  This allows both client and nanostack to be built stand-alone.

The patch moves the following libraries into a common location:
-mbed-client-c
-mbed-client-randlib
-mbed-trace
-nanostack-hal-mbed-cmsis-rtos
-nanostack-libservice
-sal-stack-nanostack-eventloop

And moves the library 'coap-service' from client into nanostack.
2016-07-26 00:00:20 -05:00
Seppo Takalo 359dc05f28 Move FEATURE_IPV6 under features/net 2016-07-25 21:49:07 -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
Sam Grove db99e726e0 Merge pull request #2231 from geky/nsapi-lwip
Introduce the lwip-interface into the core mbed repo
2016-07-22 23:19:37 -05:00
Russ Butler ebf42f02e9 Add includes so lwip compiles 2016-07-22 18:35:37 -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 1fcc02318a Add 'features/net/FEATURE_IPV4/lwip-interface/' from commit '63e816f0858cf3de3678aea4deec941add516790'
git-subtree-dir: features/net/FEATURE_IPV4/lwip-interface
git-subtree-mainline: 83f24fb0bd
git-subtree-split: 63e816f085
2016-07-22 02:04:56 -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