Commit Graph

219 Commits (1ae48fcee97ccb70829a0d48a09122409d58a2e0)

Author SHA1 Message Date
Kevin Bracey ec2db62fe5 lwIP: Enable TCP out-of-order processing
Our config file for lwIP had TCP_QUEUE_OOSEQ disabled - this can
cause significant performance problems, as observed during testing.

One lost packet can lock an input stream into a mode where the
transmitter keeps thinking packets are being lost, so keeps slowing
down. This caused test failures - a transfer that would normally
take 10s hit a 60s timeout.

Turning this on increases code size, but doesn't significantly increase
static memory use. The memory used for out-of-order packets comes from
the same pbuf pool as for outgoing TCP segments, so there is contention
when running bidirectionally.

Out-of-order processing is on by default for lwIP - this seems to be
another example of us excessively paring it back.
2018-05-11 17:12:00 +03:00
Cruz Monrreal 5038135c7d
Merge pull request #6577 from SeppoTakalo/remove_features
Get rid of FEATURE_COMMON_PAL and FEATURE_NANOSTACK
2018-05-07 10:44:50 -05:00
Martin Kojtal 2729c7aa23
Merge pull request #6780 from bmcdonnell-ionx/fix-lwip-compiler-warning
resolve LWIP compiler warning
2018-05-03 16:24:31 +01:00
Brendan McDonnell 33a2116042 reduce variable scope 2018-05-02 11:17:25 -04:00
Brendan McDonnell ba29bd9315 use separate variable to resolve compiler warning 2018-05-02 09:33:24 -04:00
Seppo Takalo d1c6bc0913 Get rid of FEATURE_COMMON_PAL
Nanostack related files moved under 'feature/nanostack'
Common libraries moved to 'features/frameworks'

Allow FEATURE_COMMON_PAL still to be defined in the build so
that we don't break any builds.
2018-04-27 14:38:43 +03:00
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
Martin Kojtal c0f0a8e61f
Merge pull request #6653 from kjbracey-arm/lwip-ticks
Stop lwIP using us_ticker
2018-04-18 14:17:54 +02:00
Kevin Bracey e7206cdc8e Stop lwIP using us_ticker
lwIP was using us_ticker unnecessarily, complicating the code and
potentially causing grief with power saving, and possible glitches
on timer wrap. Switch it to use the RTOS tick count.
2018-04-17 12:40:04 +03:00
Cruz Monrreal e2567e5dad
Merge pull request #6599 from jeromecoutant/PR_WARNING
STM32 compilation warning issues
2018-04-16 10:41:36 -05: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
jeromecoutant 2d0dce1db5 STM32F7 : correct compilation warnings 2018-04-12 10:55:02 +02:00
jeromecoutant 2fcf8d8990 STM32F4 : correct compilation warnings 2018-04-12 10:52:21 +02:00
jeromecoutant 4e9e9f5c62 STM32F2 : correct compilation warnings 2018-04-12 10:51:18 +02: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
Cruz Monrreal 21483cd59d
Merge pull request #6167 from hug-dev/cm3ds-bug-fix
CM3DS Maintenance Pull Request: Bug fixes (1/4)
2018-02-27 13:44:05 -06: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
Hugues de Valon ef7b16d9c5 CM3DS: fix non aligned access in Ethernet driver
This patch changes the way data is put in the TX_DATA_PORT register when
sending packet over Ethernet.
When this driver is compiled with release compilation profile
(space optimization compiler options) with Arm compiler version 5,
the line:
SMSC9220->TX_DATA_PORT = *pktptr;
generates the assembly instruction to get the pktptr pointed value:
LDM r2!, {r3}
with pktptr = r2
However, the code does not prevent the pktptr value from being unaligned
(to a 32 bits boundary) in that zone and the LDM instruction causes a
HardFault if this is the case. When the compiler option is not activated
(debug and develop compilation profiles), the compiler generates LDR
instruction instead which does not cause a HardFault.
The ARM v7-M states page B3-601: "Unaligned load-store multiples and
word or halfword exclusive accesses always fault."

To face that problem, we check if the data pointer is aligned or not. If
it is, we apply the same algorithm than before. If not, a local variable
is created and we copy in it, byte per byte, the contents at the
unaligned pointer. However, it will impact performances adding 8
instructions (one LD and one ST for each copied byte).

Change-Id: I11f6e82ce5521960d2ecf499f718f76fec29c0b0
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2018-02-21 17:54:12 +00:00
Galanakis, Minos 5b8ff81e02 CM3DS: fix a minor bug in the ethernet LWIP driver
This patch fixes a memory bug. `eth_arch_enetif_init` method call
would attempt to write to un-initialized area of memory.

Change-Id: I9881de71d58fa14db609fe3e24617a210b896471
Signed-off-by: Galanakis, Minos <minos.galanakis@arm.com>
2018-02-21 17:51:09 +00:00
Veijo Pesonen a7ef67a92a fixup! LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header 2018-02-21 08:25:46 +02:00
Veijo Pesonen e1d9d8783d LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header
IPv6 header requires 20 more bytes compared to IPv4 header.
2018-02-20 15:45:44 +02:00
Kevin Bracey 984cc1ab50
Merge pull request #6032 from jarlamsa/status-callbacks
Status callbacks
2018-02-15 13:02:10 +02:00
andreas.larsson 34099ba294 Added missing lwip_md5_init and lwip_md5_free as suggested by:
https://github.com/ARMmbed/mbed-os/issues/6003#issuecomment-364127671
2018-02-09 12:55:10 +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 38ceb9339e lwip: enable EMAC IPv6 support 2018-02-09 10:11:44 +02:00
TomoYamanaka 0d00be3a60 Add the function declarations of WEAK attribute to use LWIP on GR-LYCHEE
I added the function declarations of Ethernet functions that have a WEAK attribute. Although several Ethernet functions was called in rza1_emac.c, GR-LYCHEE don't have Ethernert feature. But there may be case that GR-LYCHEE uses LWIP feature.
In this case, since GR-LYCHEE will occur the build error, I addressed the error by defining the functions with a WEAK attribute. For reason of WEAK attribute, there is no influence in GR-PEACH and VK_RZ_A1H that have Ethernet feature.
2018-01-11 18:11:37 +09:00
TomoYamanaka 9cbd678049 Modify the TYPO of debug info when using LWIP in RZ/A1 related
I modified the debug message when using LWIP in RZ/A1 related mbed boards.
In eth_arch_enetif_init(), sys_thread_new() was called and task name is appeared as debug information, but task name for debug was a mistake.
2018-01-09 18:30:07 +09:00
TomoYamanaka 285c259472 Performance improvement of LWIP communication in RZ_A1 related
For LWIP communication speedup in RZ_A1 related, I changed the below macro value and added the definition processing in RZ/A1 related header file(lwipopts_conf.h). For this reason, those macros are overrode by RZ/A1 related values, not default values.
2018-01-09 18:28:39 +09:00
TomoYamanaka 2e7d6df775 Commonize RZ_A1 related folders placed in "FEATURE_LWIP" directory
In the below "features/FEATURE_LWIP" folders, same as Cortex-M targets, I changed the folder structure to combine files that can be shared as RZ/A1 related. And I renamed the folder name to "TARGET_RZ_A1XX" in order to make commonality explicit.
- "features/FEATURE_LWIP" folder
  <before>
  \features\FEATURE_LWIP\lwip-interface\lwip-eth\arch\TARGET_RZ_A1H
  \features\FEATURE_LWIP\lwip-interface\lwip-eth\arch\TARGET_VK_RZ_A1H
  <after>
  \features\FEATURE_LWIP\lwip-interface\lwip-eth\arch\TARGET_RZ_A1XX
2018-01-09 16:48:39 +09:00
Jimmy Brisson cef1cc26d8
Merge pull request #5651 from gorazdko/ff_lpc546xx-add-ethernet
ff_lpc546xx: add enet, change led1 and led3 pins
2018-01-08 10:35:56 -06:00
Jimmy Brisson af9e07357a
Merge pull request #5740 from ashok-rao/master
Adding MTB ublox ODIN W2 as a new target.
2018-01-04 10:05:02 -06:00
gorazd f6283f5b03 ff_lpc546xx: add enet
fsl_phy.c/.h move to ../drivers to reuse it
lwip: add hardware_init.c
2018-01-01 15:55:24 +01:00
Cruz Monrreal II 5a19f6dcf5
Merge pull request #5684 from juhaylinen/lwip-socket-fix
lwip: fix socket behaviour
2017-12-28 20:40:14 +00:00
Ashok Rao c849db2dab Adding license info 2017-12-22 13:54:22 +00: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
Ashok Rao 9556736411 Add new line to EOF 2017-12-21 16:14:00 +00:00
Kevin Bracey 9daf450eb3 K64F Ethernet: avoid using NULL thread during init
The K64F Ethernet driver installs an interrupt handler that sets thread
flags, and this could be called before the thread was initialised, so it
would use a NULL thread ID.

This triggers an RTX error-checking trap in debug builds, and could also
lead to other problems with received packets not being processed.

Adjusted so the RX interrupt handler does nothing if the thread isn't
initialised yet, and manually trigger a RX event flag after initialising
the thread in case any interrupts were ignored.

An alternative would have been to implement eth_arch_enable_interrupts,
but this mechanism is not present in the EMAC world - drivers will have
to start returning interrupts in their power up.

Fixes #5680
2017-12-21 11:14:08 +02:00
Ashok Rao dc3c7fc11e Adding MTB ublox ODIN W2 2017-12-20 18:52:04 +00:00
Mika Leppänen 7f6a6323cd Fixed lwip k64f ethernet driver ipv6 multicast groups
Work around for problem in:
https://github.com/ARMmbed/mbed-os/issues/4372
2017-12-14 11:05:05 +02:00
Mahadevan Mahesh f2d2ed44cd LPC546XX: Add ENET support
Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
2017-11-28 16:18:36 +00: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
Martin Kojtal 47bae16a5c
Merge pull request #5305 from andcor02/master
New Target: Mbed Connect Cloud board
2017-11-10 08:43:29 +00:00
Martin Kojtal 8acf00a370
Merge pull request #5319 from kegilbert/fix-build-warnings
Remove build warnings in LWIP
2017-11-09 16:51:55 +00:00
Martin Kojtal c67d91a4fc
Merge pull request #5322 from chrissnow/LPC1768_LWIP
LPC1768: Fix ETHMEM_SECTION placement for ARM
2017-11-09 16:51:13 +00:00