Commit Graph

62 Commits (1ae48fcee97ccb70829a0d48a09122409d58a2e0)

Author SHA1 Message Date
Martin Kojtal a37ba4b3ab
Merge pull request #6614 from pauluap/compiler_warning_macro_expression
Macro expansion leads to a bare expression
2018-04-19 17:22:52 +02:00
Paul Thompson 8e7615087a Switch to using ip_addr_isany_val 2018-04-13 05:08:29 -07:00
Paul Thompson 449541c464 Explicitly ignore return value or bare expression (macro expands to a number)
Compile: lwip_stack.c
In file included from ../features/FEATURE_LWIP/lwip-interface/lwip_stack.c:41:0:
../features/FEATURE_LWIP/lwip-interface/lwip_stack.c: In function 'mbed_lwip_bringup_2':
../features/FEATURE_LWIP/lwip-interface/ppp_lwip.h:58:44: warning: statement with no effect [-Wunused-value]
 #define ppp_lwip_disconnect()              ERR_IF
                                            ^
../features/FEATURE_LWIP/lwip-interface/lwip_stack.c:858:21: note: in expansion of macro 'ppp_lwip_disconnect'
                     ppp_lwip_disconnect();
                     ^~~~~~~~~~~~~~~~~~~
../features/FEATURE_LWIP/lwip-interface/ppp_lwip.h:58:44: warning: statement with no effect [-Wunused-value]
 #define ppp_lwip_disconnect()              ERR_IF
                                            ^
../features/FEATURE_LWIP/lwip-interface/lwip_stack.c:875:21: note: in expansion of macro 'ppp_lwip_disconnect'
                     ppp_lwip_disconnect();

                     ^~~~~~~~~~~~~~~~~~~
2018-04-12 09:45:25 -07:00
Cruz Monrreal 57b48f6e05
Merge pull request #6416 from kjbracey-arm/lwip_netconntype_fix
lwIP: fix some IPv6 errors, eg TCP keepalive
2018-03-26 14:27:09 -05:00
Kevin Bracey b3eb51acef lwIP: fix some IPv6 errors, eg TCP keepalive
Glue code was inspecting lwIP's netconn "type", checking directly for
NETCONN_UDP and NETCONN_TCP.

Unfortunately the type byte has some flag bits like
"IPv6", which means the tests fail if it's an IPv6 socket. So, for
example, TCP socket options were rejected for IPv6.

Add the necessary NETCONNTYPE_GROUP macros to fix this.
2018-03-21 13:40:25 +02:00
Mika Leppänen af29734dd0 Corrected lwip adaptation TCP flagging 2018-03-13 09:47:11 +02:00
Teemu Kultala 34ef11630c fix issue 6150 by always setting net interface UP in mbed_set_dhcp 2018-02-22 13:00:46 +02:00
Jarno Lamsa 282f3c9da2 Add support for error cases for lwip and nanostack 2018-02-09 12:44:31 +02:00
Teemu Kultala 5a7482667e NSAPI status callback changes
This is the original content of feature-status-callbacks, reviewed in
https://github.com/ARMmbed/mbed-os/pull/5457
2018-02-09 12:44:31 +02:00
Juha Ylinen 32e64e7171 Fix build for IPv4+IPv6 config 2017-12-22 13:22:00 +02:00
Juha Ylinen 52353d2ede Add function to check if address is local
Update the code to check all addresses for all interfaces. Move
the code from mbed_lwip_socket_bind() to a new function called
mbed_lwip_is_local_addr()
2017-12-22 13:21:59 +02:00
Juha Ylinen 6d3e417eaa lwip: fix socket behaviour
Return NSAPI_ERROR_PARAMETER when:
Binding to a non-local address
Socket listen() is called without calling bind() first
Socket accept() is called without calling listen() first
2017-12-22 13:21:59 +02:00
Jimmy Brisson 41dcd255c3
Merge pull request #5196 from kegilbert/multicast-ipv6-2
Add IPv4 and IPv6 multicast implementation for UDPSocket
2017-11-20 10:51:07 -06:00
Kevin Gilbert 54980546ce Remove build warnings in LWIP 2017-11-01 08:47:58 -05:00
Kevin Gilbert b56ced249a Add multicast implementation for UDPSocket. IPv4 and IPv6 both supported. 2017-10-10 18:21:18 -05:00
Mika Leppänen 140f2b803c Mapped lwip buffer error to nsapi no memory error 2017-09-06 10:20:24 +03:00
Mika Leppänen 32131b61a8 Improved manual DNS address addition for dual stack case
If DHCP or PPP does not provide DNS addresses, for dual stack, adds both ipv4
and ipv6 DNS addresses to DNS list.
2017-08-23 16:47:17 +03:00
Mika Leppänen dd346ec5a8 Either ipv4 or ipv4v6 PPP and IP stacks are enabled based on 3GPP context 2017-08-22 13:14:41 +03:00
Mika Leppänen 457f940a7c Added Ipv4/Ipv6 stack stack support to lwip DNS queries
If both IPv4 and IPv6 are available, and DNS query fails for first system,
second system is tried.
2017-08-22 13:14:40 +03:00
Mika Leppänen 2adbf721d2 Added dual Ipv4/Ipv6 stack support to lwip address configuration
Added new configuration option "both-addr-timeout" that defines
how long to wait that addresses from both systems become available.
2017-08-22 13:14:40 +03:00
Mika Leppänen 23f8ac903e Removed random and tcp_isn modules header dependencies to lwip conf 2017-08-22 10:17:20 +03:00
Jimmy Brisson c08864b588 Merge pull request #4444 from Archcady/lwip_issue
resolve lwip init twice issue
2017-06-19 18:28:49 -05:00
Yuguo Zou b1ca77b6b8 A better approach to flip "netif_inited" 2017-06-13 18:04:00 +08:00
Christopher Haster f11f2b35e0 lwip: Increased DHCP timeout to 60 seconds
This matches the timeout used in linux:
https://linux.die.net/man/5/dhclient.conf

This resolves several issues noticed during testing when we
have a very large number of devices that try to get an IP address
around the same time.
2017-06-10 15:14:28 +01:00
Yuguo Zou a812696c1d replace tab with space 2017-06-07 12:04:36 +08:00
Yuguo Zou ef1ddae694 resolve lwip init twice issue
resolve wifi example test fail before lwip is init
2017-06-07 12:04:36 +08:00
Kevin Bracey 284843fdb3 Restore mbed OS 5.4 mbed_lwip_ function prototypes
External EMAC drivers are currently directly attaching to lwip_stack.c
via mbed_lwip_bringup et al. Restore the original prototypes to avoid
compatibility breakage.
2017-06-02 14:30:25 +03:00
Kevin Bracey 42cd1e1fac Make lwip_stack.c include its header
Fix some type mismatches that this revealed.
2017-06-02 14:29:34 +03:00
Hasnain Virk b51fbe817b mbedtls md5 or lwip internal crypt Fudge
Some targets define MBEDTLS_md5_C in targets.json in order to force the system to use
external mbedtls instead of lwip internal crypt, i.e.,  polarssl.
LWIP's internal md5 mechanism is tied to PPP  for some reason. In a previosly merged commit
an attempt was made to steal md5 functions by faking that PPP was turned on. However
that solution was broken in case of really turning on PPP  functionality.

This commit fixes the breakage and also corrects the logic in case a target decides to use
external md5 implementation from mbedtls or otherwise (i.e, wants to stick to the internal
implementation).
2017-05-31 15:02:11 +03:00
Hasnain Virk 658ddf7c30 ARMCC link errors fixed, nsapi_ppp glue layer changed
GCC have not been capable enough to catch some linker errors which arose when
ethernet support for LWIP was disabled. Checks have been added to make sure that
unrefrenced code is not linked in.

nsapi_ppp glue layer is made more transparent to public cellular API. Storage of IP
addresses is removed. PPP layer already stores the addresses, so we pass the pointer back
to the upper layers.

If PPP is not used, we provide dummy functions.
2017-05-31 15:02:11 +03:00
Hasnain Virk 01088647b9 Finalizing the public API for Cellular
* state machine corrections
* adding various standard API methods
* Addition/revision/enhancement of the nsapi_ppp glue layer
* Turning off debug by default
2017-05-31 15:02:11 +03:00
Hasnain Virk 87a4580e5f Bug fixes & state machine corrections
In case of carrier lost, we would like to inform PPP data pump.
That involved setting up link status flag down semaphores.
mbed_lwip_bringup() and mbed_lwip_bringdown() had been Ethernet specific only.
We extend these routines to support PPP as well. Currently we support only one interface
at a time. However, future enhancement to multi interface support should be trivial.
2017-05-31 15:02:11 +03:00
Kevin Bracey 7e3c529d21 Unify LWIP Ethernet and PPP initialisation 2017-05-31 15:02:11 +03:00
Kevin Bracey be00c1720b Separate LWIP core and Ethernet interface initialisation
Will allow LWIP to be initialised for PPP use.
2017-05-31 15:02:11 +03:00
Kevin Bracey d0820d1ed3 Cope with different LWIP configurations 2017-05-31 15:02:11 +03:00
Mika Leppänen 55753be8ef lwip corrected coverity and compiler warnings
Coverity ids: 1373147 and 1374442.
2017-05-10 10:20:44 +03:00
Mika Leppänen 053139b85d lwip added support for random library and TCP ISN initialisation
lwip now uses mbed client random library under common pal when available.
Ported lwip reference TCP initial sequence number handling to mbed-os
lwip stack. Handling is based on RFC 6528.
2017-05-10 10:20:44 +03:00
Tony Wu 0b2bfca6da lwip - delay mbed_lwip_set_mac_address until device is inited
mbed_lwip_set_mac_address calls mbed_mac_address to get hwaddr
from device, but device may not be accessible until it is powered
up and initialized.

This patch delays mbed_lwip_set_mac_address call until device is
ready.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2017-04-28 00:30:40 +08:00
Anna Bridge ebfe04a841 Merge pull request #3975 from kjbracey-arm/lwip_buf_free
NSAPI/lwIP: Free held netbuf on close
2017-03-23 15:39:52 +00:00
Kevin Bracey 2f056f2814 NSAPI/lwIP: Free held netbuf on close
mbed_lwip_socket_recv() takes one netbuf at a time from the netconn API,
and it holds a partially-read netbuf if necessary in order to present as
a stream for TCP.

This held netbuf was not being freed when the socket was closed.
2017-03-21 11:14:39 +02:00
Mika Leppänen 30b6d2304d Set TCP socket created by accept to non-blocking mode 2017-02-21 14:31:10 +02:00
Mika Leppänen 93f02e4fed Renamed filter constant 2017-02-21 14:30:45 +02:00
Mika Leppänen 46396da1cf Added filter to send minus events to lwip adaptation 2017-02-13 09:50:38 +02:00
Anna Bridge 9e24117b68 Merge pull request #3403 from geky/lwip-fix-tcp-connect-error
lwip - Fixed error codes for failed TCP connect
2017-01-10 10:43:37 +00:00
Christopher Haster 6f375d20f8 lwip - Fixed missing dns servers after bringup with static ipv4 address
Generalized handling of dns servers when brought up with both ipv4 and
ipv6 addresses. Falls back to google dns servers if not dns server is
found through dhcp.

Also added support for the `add_dns_server` method to lwip to support
custom servers.
2017-01-04 12:12:16 -06:00
Christopher Haster 146577731e lwip - Fixed lwip connected state after bringup with static ips
Thanks to @YixiaoLi for noting this was incorrect
2017-01-04 12:10:47 -06:00
Christopher Haster 9b2a02f9ec lwip - Fixed error codes for failed TCP connect
condition               posix error     mbed error
good host, closed port  ECONNREFUSED    NSAPI_ERROR_NO_CONNECTION
bad host                EHOSTUNREACH    NSAPI_ERROR_NO_CONNECTION
bad network             ENETUNREACH     NSAPI_ERROR_NO_CONNECTION
2016-12-08 16:46:21 -06:00
Martin Kojtal e261e30d05 Merge pull request #3193 from mikaleppanen/lwip_ipv6_eth_down_supp
Added clearing of ipv6 addresses to lwip bringdown function
2016-11-29 18:13:35 +01:00
Anna Bridge 405f8937a7 Merge pull request #3191 from tung7970/fix-mbedos
Fix lwip_mac_address buffer overflow and set_ip_bytes out of bound access
2016-11-10 17:05:38 +00:00
Mika Leppänen 4babe02b62 Added clearing of ipv6 addresses to lwip bringdown function 2016-11-10 09:07:35 +02:00