lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] tcp_enqueue fills but won't empty


From: Matthew Yingling
Subject: [lwip-users] tcp_enqueue fills but won't empty
Date: Mon, 3 Apr 2006 13:12:09 -0400

I am using the Raw API in a MicroBlaze system in a loop containing something
similar to the following:

if(tcp_sndbuf(pcb)>4)
{
  while(tcp_write(pbc,vptr,4,1)==ERR_MEM)
  {
    tcp_output(pcb);
  }
}

If I run the loop longer than the maximum tcp queue length (lwipopts.h
(TCP_SND_QUEUELEN)), LwIP will not send any more data even when I call
tcp_output().  I can manually modify the queue length, but why won't it ever
decrease when I call tcp_output() explicitly?  However, I can run the loop
fewer than TCP_SND_QUEULEN iterations as much as I want without the queue
ever filling (with new pcbs each time).  What needs to happen for the tcp
queue to empty?

I also noticed that the UDP throughput has decreased in LwIP 1.1.1 vs.
1.1.0. Is there some change of option that changed that might account for
this or is it just a side effect of other modifications to the code?  I
haven't tested if this affects TCP as well.

Matthew Yingling





reply via email to

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