lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] Re: Help in getting maximum throughput with LWIP.


From: Dany Thiffeault
Subject: [lwip-users] Re: Help in getting maximum throughput with LWIP.
Date: Mon, 22 Mar 2010 15:57:00 -0400

I just tried a 2024 bytes packet and it hangs after the 1st send. Using Wireshark, I see this

...
18645 4376.725146 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=329 Ack=169 Win=23832 Len=16
18648 4377.732420 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=345 Ack=177 Win=23824 Len=16
18653 4378.738753 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=361 Ack=185 Win=23816 Len=16
[those above are keep-alive answers]
18656 4379.495149 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=377 Ack=241 Win=23760 Len=20
[this one above is a init answer]
18660 4379.925913 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [ACK] Seq=397 Ack=249 Win=23752 Len=0
[I have no idea what is this one above]
18661 4380.125090 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=397 Ack=249 Win=23752 Len=16
[this one above is a arm answer]
18663 4380.135588 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=413 Ack=257 Win=23744 Len=16
18667 4381.152788 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=429 Ack=265 Win=23736 Len=16
[those 2 above are keep-alive answers]
18668 4381.156040 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [ACK] Seq=445 Ack=265 Win=23736 Len=1460
18670 4381.158091 192.168.0.72 192.168.0.68 TCP 1008 > redstone-cpss [PSH, ACK] Seq=1905 Ack=265 Win=23736 Len=564
[those 2 above are my first data packet, MSS being 1500]
[nothing else]

It stops there, I don't know why.

When I pause the debugging, I breaks at this line in the "tcp_in.c" file, line 875.
if (pcb->snd_queuelen != 0) {
          LWIP_ASSERT("tcp_receive: valid queue length", pcb->unacked != NULL ||
                      pcb->unsent != NULL);
        }

For some reason, I can't stream.




On Mon, Mar 22, 2010 at 2:43 PM, Dany Thiffeault <address@hidden> wrote:
Hi,

I'm currently coding an application on a AVR32 UC3 board. The board is actually an acquisition platform that's using Ethernet (lwip 1.3.1 currently). I'm using FreeRTOS and the Atmel framework 1.4.

My connection is working great with my Windows application. There are two modes to my AVR32 application:

1- Idle mode where there are only keep-alive packets every 1 second, of 8bytes each.
2- Streaming mode, where the AVR32 (so LWIP) send data as fast as possible to the Win application.

What is important to me is to get maximum speed in Streaming mode, where packets are Header(24bytes) + Data(?Bytes). I'm currently playing with the data size to see what I can achieve. Ideally, the maximum size I would like is about 35KBytes. Right now, I'm not sure what's going on, but the Ethernet seems to hang after a few seconds of streaming. Haven't found the problem so far.

So, what are the important parameters for maximum thoughput in the lwipopts.h file dans other #defines like ETHERNET_CONF_NB_TX_BUFFERS, etc.
I'm kind of lost in all those parameters.

Thanks a lot!!
Dany


reply via email to

[Prev in Thread] Current Thread [Next in Thread]