lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY


From: Jared Grubb
Subject: [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY
Date: Fri, 10 Aug 2007 15:20:04 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6

Follow-up Comment #22, task #6735 (project lwip):

> But that would mean copying also for MACs that would support zero-copy
sending (like mine, currently!). I'd rather leave it with PBUF_REF and let the
driver copy everything but PBUF_RAM_NOCOPY. Which of course gives the problem
with chained pbufs containing e.g. PBUF_REF and PBUF_RAM_NOCOPY, but still,
some MACs would support zero-copy sending for UDP sockets.

I am suggesting that drivers, ARP, and IP protocols are completely zero-copy
-- and dont even check for it. TCP and UDP will be zero-copy as well, *except*
they will initially accept pbuf's from the user that require a copy. The
TCP/UDP output functions will check if any of the pbuf's submitted require a
copy, and will do a copy only if necessary. 

If your application never asks for a copy (for example, uses a no-copy pbuf
type), then no copies are ever made.

In my opinion, the best place to copy is at the "top" of the stack right away
and never again. This is how BSD IPv6 works. This makes it much easier on the
driver.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?6735>

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





reply via email to

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