Commit Graph

24 Commits (mbed-os-5.15.3-rc1)

Author SHA1 Message Date
Kevin Bracey 99344963d2 LWIP: don't pbuf_free(NULL) on socket close
`pbuf_free(NULL)` causes an `LWIP_ASSERT`. Make the call conditional.

Fixes #12184
2020-04-27 13:32:23 +03:00
Arun S dc7178f176 Modified LwIP stack and LwIP mbed-os wrapper to support sending IPv6
UDP packets when IPv4 and IPv6 dual mode stack is enabled and the IPv6
packet is sent over link-local inerface.
2019-11-18 17:18:50 +05:30
Balaji 6905b1b547 Incorporate review comments from @kjbracey-arm 2019-10-25 10:51:50 -07:00
Balaji ab883350a0 Incorporate review comments from @kjbracey-arm 2019-10-25 10:48:12 -07:00
Balaji b91836a94d fix astyle convention 2019-10-25 10:48:12 -07:00
Balaji 1a7288d220 fix astyle convention 2019-10-25 10:48:12 -07:00
Balaji d92a946b78 fix astyle convention 2019-10-25 10:48:12 -07:00
Balaji 0b5dea5f99 Changes to the PR 10978 (LWIP: Add RAWIPSocket support) 2019-10-25 10:48:12 -07:00
Sathish Kumar Mani 5b791a4345 Fixes IPv6 multicast join issue
Problem Statement:
During multicast join sequence, InternetSocket::join_multicast_group() calls InternetSocket::modify_multicast_group(). modify_multicast_group() sets up the multicast group address (i.e., mreq.imr_multiaddr) to be joined and the interface address (i.e., mreq.imr_interface) to be used for the multicast join request. The interface address is initialized with the default value, which sets the version of interface address to NSAPI_UNSPEC. This results in LWIP::setsockopt() API to attempt IPv6 multicast join on the IPv4 interface address, hence IPv6 multicast join always fails with the protocol error.

Fix:
Initialize interface address version based on the multicast address version in LWIP::setsockopt(), before attempting multicast join operation.
2019-10-14 17:41:27 +05:30
Mika Leppänen 3864e12172 lwIP changes for PPP service
Created (a new) PPP interface for PPP service. Removed lwip
dependencies to PPP (memory allocations etc.). Moved PPP
configuration options away from lwIP mbed_lib.json to new
PPP service. For backwards compatibility, using the old
options is also currently supported.
2019-08-20 13:37:12 +03:00
Antti Kauppila 84063bf222 Coverity issues fixed 2019-08-14 16:22:05 +03:00
Kimmo Vaisanen ff88a751f7 Fix netconn_recv_tcp_pbuf ARMC6 linker error
If "lwip.tcp-enabled" is set to false, ARMC6 compilation fails to error
Error: L6218E: Undefined symbol netconn_recv_tcp_pbuf

LWIP::socket_recv() is TCP socket specific method so implementation can be
enabled only when LWIP_TCP flag is set.
2019-06-27 14:18:07 +03:00
Martin Kojtal 4b438ac1de
Merge pull request #10834 from tymoteuszblochmobica/udp
Fixed UDP sendto if IP version not match
2019-06-25 11:03:03 +01:00
Tymoteusz Bloch b272c5f149 Fixed LWIPStack socket_sendto member to fail if interface IP4/6 version differ from destination adress IP version 2019-06-19 14:03:48 +02:00
Kevin Bracey 3b178a08ef NSAPI/lwIP: Use netconn_recv_tcp_pbuf
Slight RAM+speed efficiency improvement - read the TCP implementation's
native pbufs, rather than forcing netconn_recv to generate netbuf
wrappers for us. Saves one small lwIP heap allocation per TCP packet
received.
2019-06-11 16:00:11 +03:00
Kevin Bracey 2fbbd9d2ca Introduce Semaphore::acquire methods
Deprecate wait() in favour of acquire(), try_acquire(),
try_acquire_for() and try_acquire_until().

Brings Semaphore more into line with CMSIS-RTOS 2 (which uses "acquire"),
itself (as it has "release"), and other classes having "try", "try for"
and "try until".

Also steps away from vague "wait" term - the primary operation here is
to acquire the semaphore, and this will of course sleep.
2019-05-28 17:02:06 +03:00
Martin Kojtal 06cf7871b9
Merge pull request #10602 from tymoteuszblochmobica/dns
Runtime DNS server addition implement
2019-05-22 08:51:54 +01:00
Tymoteusz Bloch cdd31a5fc7 Runtime DNS server addition implement 2019-05-20 14:21:25 +02:00
Tymoteusz Bloch 51610cc90c Fixed TCP connection close.
If TCP FSM is in ESTABLISHED state,  waits  for TCP close handshaking until TIME_WAIT
The purpose is to prevent eth/wifi driver stop and  FIN ACK corrupt.
This may happend if network interface disconnect follows immediately after socket_close.
2019-05-10 17:00:38 +02:00
Tymoteusz Bloch 42b5680697 Multihoming fixed according to new LWIP implementation. 2019-04-11 20:54:48 -05:00
Tymoteusz Bloch 646c925d60 Fixed compilation error in LWIPStack class if lwip tcp is disabled. 2019-03-21 17:58:31 +01:00
Tymoteusz Bloch 49141376ee Multihoming initial release
Added Multihoming feature to LWIP (ability to use more than one network interfaces) for increasing networking reliability.
This involves:

    LWIP interface
    LWIP IP routing
    DNS storage
    Sockets (bind to interface name possibility)
    possibility to add non default network interface
    cellular middleware modifications if cellular connection is used
2019-02-19 17:39:46 +02:00
Martin Kojtal 41c1901318 lwipstack: fix astyle coding style 2018-11-07 08:56:35 +00:00
Seppo Takalo e4d1a9a85a Remove FEATURE_LWIP. The LwIP stack is enabled on all builds now
Leave the FEATURE_LWIP enabled in build scripts so that it does
not break any builds.

Removed 'feature_add: ["LWIP"]' on all targets.
2018-06-21 11:00:00 +03:00