From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yossi Barshishat" Subject: zero copy of received segmented IP packet Date: Sun, 30 Mar 2014 09:52:22 +0300 Message-ID: <02a701cf4be4$a8f3a440$fadaecc0$@imvisiontech.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Return-path: Content-Language: he List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Hi, Assuming I know ahead that all IP segments related to one single IP packet ID arrive consequently and I need to forward the entire IP payload toward the application layer. One way to handle this is using a hash table for reassembly of the packet data (like the ipv4_reassembly example), another way would be to assume one single bucket (following the above assumption). However any means the DPDK provides doesn't enable a zero copy mechanism (it will be required to copy the segments payloads into one larger buffer). Does anybody has any idea regarding a method to control the place where each part of the packet will be written to? e.g. allocating the first segment regularly while the packet data buffer is set to the maximum packet length (rather than to MTU size), and then reading n bytes after the start of each following segment into the data buffer. That way I can forward the app layer the buffer without copying it. Thanks,