Commit Graph

81 Commits (tools-release-prep)

Author SHA1 Message Date
Martin Kojtal c1f1b2a609
Merge pull request #11339 from sathishm6/topic/pr-bct-auto-ip-fix
mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test
2019-08-29 08:38:32 +02:00
Martin Kojtal 95fc8cfa2c
Merge pull request #11322 from kyle-cypress/pr/lwip-buffer-size
Updated the LWIP buffer pool size for PSoC6
2019-08-28 19:05:55 +02:00
Tymoteusz Bloch 83aa8b038b Supressed coverity warnings for intentional NULL passing to ip_reass_dequeue_datagram 2019-08-28 13:12:07 +01:00
Sathish Kumar Mani a4aeee941d mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test
This PR is to fix the issues in LwIP for AutoIP which is required for passing Bonjour Conformance Test for mDNS. Following gives the summary of the changes/fixes added.

Changes:

1. Following issues are fixed in LwIP for AutoIP.
- Fixed bug in max conflict rate limiting: According to RFC section RFC 3927 Section 2.2.1 conflict probe interval should be increased to 60 seconds, once conflict count reaches after MAX_CONFLICTS (i.e., 10) counts. The initial value of 'autoip->tried_llipaddr' is 0. Hence the probe interval (i.e., autoip->ttw) should be increased to 60 secs when 'autoip->tried_llipaddr >= MAX_CONFLICTS'
- Added code to free 'autoip' client in autoip_stop() API: New 'autoip' client is allocated in autoip_start() API, and the client is not freed during autoip_stop(). This would result in memory leak, if not freed. Updated autoip_stop() API to take care of releasing the memory allocated for 'autoip' client.

2. Introduced a configurable macro "MBED_CONF_LWIP_DHCP_TIMEOUT" in "lwipopts.h" to configure DHCP timeout based on the usecase requirement. For example: bonjour conformance test would need a DHCP timeout value which is grater than 320 secs to run mDNS probing test to verify protocol compilance of the implementation.

Tested the fixes using Bonjour Conformance Test tool Version 1.5.0 for IPv4. It has successfully passed Bonjour Conformance Test.
2019-08-28 15:57:36 +05:30
Sathish Kumar Mani fe252a77c1 mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test.
Changes:
  1. Following issues are fixed in LwIP for AutoIP.
     a) Fixed bug in max conflict rate limitting.
        - According to RFC section RFC 3927 Section 2.2.1 conflict probe interval
          should be increased to 60 seconds, once conflict count reaches after
          MAX_CONFLICTS (i.e., 10) counts.
        - The initial value of 'autoip->tried_llipaddr' is 0. Hence the probe
          interval (i.e., autoip->ttw) should be increased to 60 secs
          when 'autoip->tried_llipaddr >= MAX_CONFLICTS'

     b) Added code to free 'autoip' client in autoip_stop() API.
        - New 'autoip' client is allocated in autoip_start() API, and the client
          is not freed during autoip_stop(). This would result in memory leak
          if not freed.
        - Updated autoip_stop() API to take care of releasing the memory allocated
          for 'autoip' client.
  2. Introduced a configurable macro "MBED_CONF_LWIP_DHCP_TIMEOUT" in "lwipopts.h"
     to configure DHCP timeout based on the usecase requirement. For example:
     bonjour conformance test would need a DHCP timeout value which is grater than
     320 secs to run mDNS probing test to verify protocol compilance of the implementation.
2019-08-27 08:17:43 +05:30
midd 2168b40948 Updated the LWIP buffer pool size for PSoC6
Increase size to 14 for all devices to increase heap availability.
2019-08-23 17:54:14 -07:00
Martin Kojtal d0c917cb32
Merge pull request #11274 from VVESTM/vve_eth_h7
Add ethernet support on NUCLEO_H743ZI board
2019-08-22 09:42:45 +02:00
Vincent Veron 93b8164830 lwip: STM32H7: specify heap location
Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 11:41:37 +02:00
Mika Leppänen 4e60d2f39c Corrected PPP thread stack sizes and network interface
Corrected PPP thread stack size for RZ_A1_EMAC, CYW943012P6EVB_01,
CY8CPROTO_062_4343W, CY8CKIT_062_WIFI_BT and CY8CKIT_062S2_43012
that have special configuration for PPP thread size. Removed
pppInterface() helper call from network interface. It causes binary
compatibility break with precompiled network interface classes. Call
is helper function to check network interface type in case it is
unknown, and is not mandatory or used with PPP.
2019-08-20 13:37:13 +03:00
Mika Leppänen 3951422824 lwIP adds now PPP DNS servers to default interface
If PPP interface is the lwIP default interface, adds the PPP DNS
servers to default DNS server storage. If PPP is not default
interface, then adds DNS servers to interface specific storage.
2019-08-20 13:37:12 +03:00
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
Kari Haapalehto c518319fa3 Moved PPP from lwip directory to under netsocket
Moved PPP and renamed files and constants.
2019-08-20 13:27:54 +03:00
Martin Kojtal 083824807c
Merge pull request #11239 from Patater/import-mbedtls-crypto-from-mbedcrypto
crypto: Copy legacy crypto from Mbed Crypto
2019-08-20 10:24:41 +02:00
Jaeden Amero 82927057b9 lwip: Use correct include path for mbedtls
The portable and correct way to include Mbed TLS header files is
"mbedtls/someheader.h". It's Mbed OS specific, unecessary, and incorrect
to use "mbedtls/inc/mbedtls/someheader.h".
2019-08-16 09:20:03 +01:00
Antti Kauppila 84063bf222 Coverity issues fixed 2019-08-14 16:22:05 +03:00
Seppo Takalo 937e791ae0
Merge pull request #10980 from vmedcy/tcpip-thread-priority
LwIP: make TCPIP_THREAD_PRIO configurable
2019-08-05 16:12:01 +03:00
Kyle Kearney 40557cefeb Add target for CY8CKIT_062S2_43012 2019-07-19 15:44:27 -07:00
Balaji 69782a4ca6 LwIP: make TCPIP_THREAD_PRIO configurable 2019-07-17 18:51:45 +03:00
Volodymyr Medvid 579cd9a355 PSOC6: add LwIP configuration for Cypress boards 2019-07-11 15:47:38 +01:00
Martin Kojtal 755c6b8c2f
Merge pull request #10861 from pauluap/lwip_use_recursive_mutex
Make the sys_arch_protect() mutex be recursive.
2019-07-01 09:19:29 +01: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
Paul Thompson 91402f4d77 Make the sys_arch_protect() mutex be recursive.
Fixes #9744

Appears to be a lwIP porting bug. Comments in our porting layer say:

    This function should support recursive calls from the same task or interrupt. In other words, sys_arch_protect() could be called while already protected.
2019-06-19 21:49:33 -07:00
Anna Bridge 5b0f45f685
Merge pull request #10807 from kjbracey-arm/lwip_tcp_pbuf
NSAPI/lwIP: Use netconn_recv_tcp_pbuf
2019-06-19 14:57:18 +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
Tymoteusz Bloch 4005c77f21 LWIP DNS servers setting/getting fixed. 2019-06-07 18:58:05 +02:00
Martin Kojtal f0696417c5
Merge pull request #10647 from tymoteuszblochmobica/coverity
Fix LWIP warning issues found by Coverity scan

lwip_dns.c in function: dns_add_interface_server
CID 1399051 (#1 of 1): Buffer not null terminated (BUFFER_SIZE_WARNING)10. buffer_size_warning: Calling strncpy with a maximum size argument of 6 bytes on destination array new_interface_server->interface_name of size 6 bytes might leave the destination string unterminated.
line 434 strncpy(new_interface_server->interface_name, interface_name, INTERFACE_NAME_MAX_SIZE);

lwip_ip4_frag.c in function: ip_reass_free_complete_datagram

CID 1373164 (#1 of 1): Dereference after null check (FORWARD_NULL)7. var_deref_model: Passing null pointer prev to ip_reass_dequeue_datagram, which dereferences it. [show details]
line 209 ip_reass_dequeue_datagram(ipr, prev);

lwip_ip4_frag.c in function: ip_reass

CID 1373163 (#1-2 of 2): Dereference after null check (FORWARD_NULL)38. var_deref_model: Passing null pointer ipr_prev to ip_reass_dequeue_datagram, which dereferences it. [show details]
line 663 ip_reass_dequeue_datagram(ipr, ipr_prev);

lwip_api_msg.c in function: lwip_netconn_do_connected

CID 1373162 (#1 of 1): Explicit null dereferenced (FORWARD_NULL)10. var_deref_model: Passing null pointer op_completed_sem to sys_sem_signal, which dereferences it. [show details]
line 1336 sys_sem_signal(op_completed_sem);
2019-06-03 08:41:53 +01: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
Tymoteusz Bloch c1b72a71b5 Fixed LWIP warning issues found by Coverity scan 2019-05-23 18:53:44 +02:00
Martin Kojtal 06cf7871b9
Merge pull request #10602 from tymoteuszblochmobica/dns
Runtime DNS server addition implement
2019-05-22 08:51:54 +01:00
Martin Kojtal 02eaad45a4
Merge pull request #10476 from tymoteuszblochmobica/closetcp
LWIP TCP socket close - disconnecting fix
2019-05-21 09:34:45 +01:00
Tymoteusz Bloch cdd31a5fc7 Runtime DNS server addition implement 2019-05-20 14:21:25 +02:00
Andrew Chong 67f8e35201 This allows CPP application to use the functions from cc.h. 2019-05-20 13:32:58 +08:00
Martin Kojtal 1aa95c017b
Merge pull request #10456 from tymoteuszblochmobica/multihoming
LWIP 2.1.2 tcpip thread stack overflow fix.
2019-05-13 14:17:36 +01:00
Martin Kojtal 03cda262c3
Merge pull request #10500 from andrewc-arm/patch-2
This removes many const char* warnings related with LWIP_ASSERT()
2019-05-12 20:07:52 +01:00
Anna Bridge 97e1c9cbaf
Merge pull request #10287 from linlingao/pr10177
Enable MTS_DRAGONFLY_F411RE to register with Pelion
2019-05-10 16:21:46 +01: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 461efaae0a LWIP 2.1.2 tcpip thread stack overflow fix.
Applied missing LWIP patch to PPP/utils.c
"Major Refactoring & extensions" commited on May 23, 201 by hasnainvirk
LWIP 2.1.2 tcpip thread stack is restored to 1200 bytes
2019-05-07 15:19:41 +02:00
Lin Gao 84b8517905 Increase tcpip thread size for MTS_DRAGONFLY_F411RE 2019-05-02 11:34:30 -05:00
Lin Gao 2c22f549e9 Add option to keep post_binary_hook and make it default. It can be disabled by setting it to null 2019-05-02 11:25:20 -05:00
Andrew Chong aba02273ea This removes many const char* warnings related with LWIP_ASSERT() 2019-04-27 22:47:00 +08:00
Andrew Chong 058f07452a
Allow application to override LWIP_RAW 2019-04-27 00:22:00 +09:00
Martin Kojtal 7392d51460
Merge pull request #10394 from kjbracey-arm/networking_warnings
Networking: Fix some ARMC6 warnings
2019-04-18 13:15:45 +01:00
Kevin Bracey 69c6cc341b Networking: Fix some ARMC6 warnings
Some int-versus-long and signed-versus-unsigned format string
mismatches, and missing `class` keyword.
2019-04-17 16:03:44 +03:00
Tymoteusz Bloch 42b5680697 Multihoming fixed according to new LWIP implementation. 2019-04-11 20:54:48 -05:00
Tymoteusz Bloch 1632cc9ee4 Initial version of LWIP 2.1.2 2019-04-11 20:54:48 -05:00
Tymoteusz Bloch 7d13b758cb L3IP input now use tcpip_input instead of ip_input 2019-04-10 17:49:04 +02:00
Tymoteusz Bloch 646c925d60 Fixed compilation error in LWIPStack class if lwip tcp is disabled. 2019-03-21 17:58:31 +01:00
Cruz Monrreal e697d3770d
Merge pull request #9935 from jarvte/lwip_timeout_bringup_link
Increased timeout for lwip waiting netif_is_link_up
2019-03-16 22:54:57 -05:00