lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [bug #11400] ARP multi-packet-queue modifies TCP unsent/una


From: Kieran Mansley
Subject: [lwip-devel] [bug #11400] ARP multi-packet-queue modifies TCP unsent/unacked segment packet pbuf chain into packet queue
Date: Mon, 26 Mar 2007 10:43:27 +0000
User-agent: Opera/8.02 (X11; Linux i686; U; en)

Follow-up Comment #22, bug #11400 (project lwip):

To summarise (please correct where wrong, some of this is based on what
others have written, rather than my own investigations):

 - TCP won't result in a PBUF_REF pbuf getting as far as ARP as it's either
copied (into a PBUF_RAM), or PBUF_ROM is used.  ROM is OK because it will
exist until ACKed, which is much more than the ARP requirements.

 - UDP may result in a PBUF_REF pbuf getting to the ARP layer, and in this
case it is necessary to do something about it because as soon as the call
returns to the app it can reuse the memory.  If this wasn't the case a
PBUF_ROM would have been used (as that's essentially the difference between
them).

 - As a result we need to preserve any PBUF_REF pbufs, and the easiest thing
to do seems to be to copy them.  It shouldn't happen often, so overhead isn't
great.

I'm still happy to take this approach (from comment #18):
"How about we have two paths: if there are any REF pbufs in the chain, we do
pbuf_copy() as per your new patch. If it doesn't have any REF pbufs, we can
just do pbuf_ref() and put it in the arp queue. Makes the code a bit more
complex, but more efficient (both less memory and faster) for the case where
not using PBUF_REF, which will be quite common."

Any objections?  If not, I suggest Simon takes this (and the associated purge
of the related but now unnecessary code) as he's nearly there already.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?11400>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

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