[Top][All Lists]
[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
- [lwip-users] tcp_enqueue fills but won't empty,
Matthew Yingling <=