Date
1 - 4 of 4
Network buffer fragmentation support
Jukka Rissanen
Hi All,
I just uploaded net_buf fragmentation support to gerrit. https://gerrit.zephyrproject.org/r/#/c/1648/ The fragmentation support allows the network stack to use smaller buffer fragments to support bigger IP buffers. So instead of allocating full IPv6 buffer (1280 bytes) we can allocate smaller fragments instead. This is useful as typically network packets are quite small and always allocating full buffer wastes memory. This patchset is just an enabler, it does not implement the fragmentation in the IP stack. Please review the patchset if this topic interests you. Cheers, Jukka |
|
Joakim Eriksson
Hi!
toggle quoted message
Show quoted text
Quick question without a deep dive in the code. Is it intended to create consecutive fragments to allow using the packet/network memory directly (e.g. to will a fragmentet buffer look the same as one big buffer)? In Contiki we have quite often used structs to access data in the network buffer which more or less requires consecutive buffers. Best regards, — Joakim On 25 Apr 2016, at 15:56, Jukka Rissanen <jukka.rissanen(a)linux.intel.com> wrote: |
|
Jukka Rissanen
Hi Joakim,
toggle quoted message
Show quoted text
the fragments will be individual small buffers with possibly some link level layer space reserved before the actual data. This way it is possible to avoid memory copy in lower network levels. If the buf size is carefully selected for a given bearer technology like 802.15.4, then we can use the same buffer from application level to the device driver. Cheers, Jukka On Mon, 2016-04-25 at 16:43 +0200, Joakim Eriksson wrote:
Hi! |
|
Joakim Eriksson
Ok, so then throwing the memory at a struct and play around with it will not
toggle quoted message
Show quoted text
be a good option. I guess most of this memory will then be accessed by strict APIs and not as plain bytes. It sounds like a good plan to get in this direction - will create some work porting code that access bytes immediately but I guess having a copy-to-consecutive memory is an option for enabling code that make that assumption (but then you also get the copying again). Best regards, — Joakim Eriksson On 25 Apr 2016, at 17:15, Jukka Rissanen <jukka.rissanen(a)linux.intel.com> wrote: |
|