Let's make TCP/IP really work on mbed!

13 Jul 2012

Hello,

I am getting lwIp compile errors recently. The projects used to work w/o problems. All my projects are not compiling. What could be the reasons?

it says IPV4addr not found. any lib issue or revision etc?

03 Aug 2012

The work on the new official networking stack based on the RTOS is completed:

The performance improvement is astonishing: Networking Libraries Benchmark

Cheers, Emilio

03 Aug 2012

just a simple question. I get short of RAM. The version without RTOS any thought about that? And i cannot access the high 32K bank with the old commands attribute((section("AHBSRAM1"))); has this been changed or is that not possible anymore? if can locate my vars in the highbank i loved to implement the new stack

03 Aug 2012

Hi Bert,

Gyro Gearloose wrote:

The version without RTOS any thought about that? And i cannot access the high 32K bank with the old commands attribute((section("AHBSRAM1"))); has this been changed or is that not possible anymore?

We are using both AHBSRAM0 and AHBSRAM1 for the networking stack:

lwIP can be used also without operating system. You need to change its configuration:

#define NO_SYS                      0

Of course, without an operating system you are limited to the polling paradigm and you lose both the Berkeley sockets API and our Socket API.

Cheers, Emilio

03 Aug 2012

The latest EthernetInterface seems to be still not fully working to me. I'm unable to send more than one packet on a single connection.

See: http://mbed.org/forum/mbed/topic/3812/

Can anyone confirm I'm doing it right?

04 Aug 2012

Hi Sheldon,

Sheldon Cooper wrote:

Can anyone confirm I'm doing it right?

You may be doing it wrong, at the server side :-)

The mbed client you have written is sending correctly all the packets, but apparently your server is failing to receive them.

In this forum comment I have written a server that can receive correctly all the packets sent by your mbed.

HTH, Emilio

04 Aug 2012

Hi Emilio,

Emilio Monti wrote:

I can confirm you are doing it wrong: at the server side. :-)

No I don't. :) See my reply in the original thread.

10 Oct 2012

Could someone please make available a simple html web server project that uses the new Ethernet interface?

I got a sample of the EthernetIf one working but It keeps crashing the mbed controller if there are two simultaneous http file requests.

13 Nov 2013

Benoît Locher wrote:

Hi 'Quantum' (sorry, can't find your given name),

I've been playing with the latest CMSIS-2.0 from NXP and lwip-1.4.0 since more than one week now. First I started to integrate all drivers I could find. So far I had some success with the driver found on CoOS website (http://www.coocox.org/EXAMPLE/NXP_LPC1766_ARMCC.htm). The problem I have so far is that the driver hangs the complete micro-controller and stops receiving data.

I feel that, apart from the ethernet driver, the correct setting of all lwIP options (from lwipopts.h / opt.h) is also tricky.

So after all this frustration, today I started to write a simple application from scratch using interrupts and lpx17xx_emac sublayer from pure CMSIS drivers and using CoOS for the moment. So far so good, the reception of packets is very stable. I resist to the temptation of writing my own IP stack (with arp, icmp and UDP to begin)...

My general feelings are that I really feel frustrated with all the broken implementation of tcp/ip on mbed, it could be a show stopper for me, as I started to use the easy programming provided by all the available classes, and now that I move back to CMSIS, I must rewrite almost everything (the most time consuming for me being the LocalFilesystem, so I postpone it for later).

Best Regards,

Benoît.

31 Dec 2013

How's this for an MBED... over 2700 requests per second, this was done at a concurrency of 10... 98% of the requests were returned in less than 1ms... Test done using Apache Benchmark

Concurrency Level:      10
Time taken for tests:   0.037 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      13400 bytes
HTML transferred:       7100 bytes
Requests per second:    2724.94 [#/sec] (mean)
Time per request:       3.670 [ms] (mean)
Time per request:       0.367 [ms] (mean, across all concurrent requests)
Transfer rate:          356.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.2      0       1
Processing:     0    1   0.2      1       1
Waiting:        0    1   0.2      1       1
Total:          1    1   0.2      1       2
ERROR: The median and mean for the initial connection time are more than twice the standard
       deviation apart. These results are NOT reliable.

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      1
  95%      1
  98%      1
  99%      2
 100%      2 (longest request)

with UDP streaming I was able to achieve 80 Mbps with very average CPU usage...

You can try the server at http://162.216.184.190 http://162.216.184.190/outputs http://162.216.184.190/inputs until I change the ip :)

our ISP here is wireless so any inconstancy's are usually related to it...