Re: having trouble getting the echo client to work using TCP/uIP on K64F

Paul Sokolovsky

On Thu, 1 Sep 2016 14:47:41 +0000
Rohit Grover <Rohit.Grover(a)> wrote:

Jukka, Paul,

I believe we should go ahead and fix tcpip_poll_tcp() according to
the patch I submitted previously. This fix can supersede, and we can pause on that
particular pull request for now.
+1. Would you submit it to Gerrit?

We should also avoid regressing on
any IPv6 functionality, so if there are tests we could use to
evaluate IPv6 then we should employ them to validate changes to
I believe running echo_server/echo_client should be a good first step,
I'll look into that.

Fixing tcpip_poll_tcp() isn't the complete answer. With changes to
tcpip_poll_tcp(), I can get simple request-response transactions, but
sustained/multiple transactions don't work; so there is still reason
to suspect that TCP support is unreliable.
As I mentioned, multiple (well, up to 5-6) packets work for me with
QEMU. I'll try it with FRDM-K64F Ethernet driver soon.

The bigger problem appears to be that the uIP port for Z has grown
unmaintainable. I can sympathize with Jukka when he says that TCP
support on uIP "is very cryptic and difficult to follow." It is not
clear to me if uIP is tricky to port in general, or that Z poses a
special challenge. Does Zephyr intend to switch from uIP to YAIP? If
so, then perhaps one strategy would be to wait for YAIP to catch up.
If Zephyr wishes to maintain support for TCP/uIP, then someone needs
to take a fresh look at the current uIP port, possibly from the point
of view of a porter of uIP.
My understanding is that yes, YAIP is intended to replace IP stack
implementation in Z, though maybe exact timeline isn't known yet. My
current task is to prepare a proof-of-concept demo of a scripting
language running on top of Zephyr, so I'd be interested to follow route
of trying to fix up the current uIP implementation, though probably not
go too deep with that.


Best Regards,
Paul | Open source software for ARM SoCs
Follow Linaro:!/linaroorg -

Join { to automatically receive all group messages.