lwIP - A Lightweight TCP/IP stack - Tasks: task #7896, Support zero-copy drivers
You are not allowed to post comments on this tracker with your current authentication level.
task #7896: Support zero-copy drivers
Submitter: | Jonathan Larmour <jifl> | ||
Submitted: | Thu 27 Mar 2008 10:28:14 PM UTC | ||
Category: | Network drivers | Should Start On: | Thu 27 Mar 2008 12:00:00 AM UTC |
Should be Finished on: | Thu 26 Jun 2008 11:00:00 PM UTC | Priority: | 5 - Normal |
Status: | None | Privacy: | Public |
Percent Complete: | 50% | Assigned to: | None |
Open/Closed: | Open | Planned Release: | None |
Effort: | 0.00 |
Jump to the original submission
Wed 24 May 2017 05:15:54 PM UTC, comment #16: |
Daniel Elstner <danielk> |
Mon 22 May 2017 08:10:57 PM UTC, comment #15: ZeroCopyRx.c seems unfinished as it doesn't cover dma ring allocation. I think we should describe this. And the fact that using preallocated PBUF_POOL is the best way to try this... |
Simon Goldschmidt <goldsimon>![]() |
Sat 07 Jan 2017 07:53:33 PM UTC, comment #14: See also discussion in bug #49914 |
Dirk Ziegelmeier <dziegel>![]() |
Thu 01 Oct 2015 10:42:05 PM UTC, comment #13: I created task #13757 to investigate the resetting the RTO during a fast retransmit |
Joel Cunningham <jcunningham>![]() |
Thu 01 Oct 2015 06:48:35 PM UTC, comment #12:
|
Simon Goldschmidt <goldsimon>![]() |
Thu 01 Oct 2015 03:10:24 PM UTC, comment #11: I've actually encountered the TCP retransmission issue with another embedded stack that supported asynchronous zero-copy TX. That stack had a behavior where if a fast retransmit happened, it didn't restart the original RTO timer. This made it possible that if a fast retransmit happened within close succession to the original RTO timing out, we'd end up performing two retransmits of the same packet
|
Joel Cunningham <jcunningham>![]() |
Thu 01 Oct 2015 02:18:53 PM UTC, comment #10: It would be asynchronous zero-copy TX. And it already works if the assumption holds that TCP retransmission is only done when TX is long over. At least it works for me ;-)
|
Simon Goldschmidt <goldsimon>![]() |
Thu 01 Oct 2015 02:01:39 PM UTC, comment #9: For zero-copy TX into the driver, is the goal here to support a synchronous zero-copy output through the netif_output_fn()?
|
Joel Cunningham <jcunningham>![]() |
Wed 30 Sep 2015 02:23:03 PM UTC, comment #8: Using PBUF_REF for RX should now work.
|
Simon Goldschmidt <goldsimon>![]() |
Sun 22 Feb 2015 09:14:22 PM UTC, comment #7: We're actually working on this. It showed up that we still need to
|
Simon Goldschmidt <goldsimon>![]() |
Fri 07 Feb 2014 06:50:32 PM UTC, comment #6: And another user mail requesting support for this:
|
Simon Goldschmidt <goldsimon>![]() |
Tue 13 Mar 2012 04:39:26 PM UTC, comment #5: This isn't needed for 1.4.1 |
Kieran Mansley <kieranm>![]() |
Thu 29 Sep 2011 06:21:02 AM UTC, comment #4: Just a link to 2 mails on the mailing list from users using DMA:
|
Simon Goldschmidt <goldsimon>![]() |
Thu 24 Jun 2010 08:30:28 PM UTC, comment #3: I'm setting this to 1.4.1 (if not later): we need people with bug reports who can tell us in which way they need this fixed. For me, it just works (after the changes to IP_FRAG and to the docs that say applications may not reuse pbufs). |
Simon Goldschmidt <goldsimon>![]() |
Sat 22 May 2010 08:59:29 AM UTC, comment #2: I am wondering how zero-copy transmission could be implemented with Coldfire v2 Ethernet controller. The limitations of its DMA is that transmit buffers must be 32-bit aligned and each buffer's size must be a multiple of 16 bytes. The latter limitation is strange since in the very same microcontroller manual they suggest to allocate one buffer for IP header, another for TCP header and so on, but those headers' sizes are not multiples of 16 bytes...
|
Mike Kleshov <kleshov>![]() |
Tue 18 May 2010 07:32:43 PM UTC, comment #1: Ok, seems like this is one of the last tasks left before releasing 1.4.0 (together with bug #29361, which is kind of related to this one).
|
Simon Goldschmidt <goldsimon>![]() |
Thu 27 Mar 2008 10:28:14 PM UTC, original submission:
This is an off-shoot from task #6735 which is now invalid. Here's what I wrote there:
|
Jonathan Larmour <jifl>![]() |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
I'd be happy to help testing any changes. For my AVR32-based project I wrote my own MAC driver with both zero-copy RX and TX, without any problems so far. Luckily on this machine the DMA for TX does not require any special alignment, and the 2-byte RX padding to align the Ethernet header is implemented in hardware.