[dpdk-dev] [PATCH] mbuf: remove redundant line in rte_pktmbuf_attach

Olivier MATZ olivier.matz at 6wind.com
Tue Jan 24 17:19:18 CET 2017


On Tue, 24 Jan 2017 19:57:13 +0400, Ilya Matveychikov
<matvejchikov at gmail.com> wrote:
> > On Jan 24, 2017, at 4:56 PM, Olivier MATZ <olivier.matz at 6wind.com>
> > wrote:
> > 
> > Hi,
> > 
> > On Sat, 21 Jan 2017 16:28:29 +0000, "Ananyev, Konstantin"
> > <konstantin.ananyev at intel.com> wrote:  
> >>> -----Original Message-----
> >>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ilya
> >>> Matveychikov Sent: Saturday, January 21, 2017 3:08 PM
> >>> To: Yigit, Ferruh <ferruh.yigit at intel.com>
> >>> Cc: dev at dpdk.org
> >>> Subject: Re: [dpdk-dev] [PATCH] mbuf: remove redundant line in
> >>> rte_pktmbuf_attach
> >>> 
> >>>   
> >>>> On Jan 20, 2017, at 4:08 PM, Ferruh Yigit
> >>>> <ferruh.yigit at intel.com> wrote:
> >>>> 
> >>>> On 1/20/2017 12:19 AM, Ilya Matveychikov wrote:    
> >>>>> mi->next will be assigned to NULL few lines later, trivial patch
> >>>>> 
> >>>>> Signed-off-by: Ilya V. Matveychikov <matvejchikov at gmail.com>
> >>>>> ---
> >>>>> lib/librte_mbuf/rte_mbuf.h | 1 -
> >>>>> 1 file changed, 1 deletion(-)
> >>>>> 
> >>>>> diff --git a/lib/librte_mbuf/rte_mbuf.h
> >>>>> b/lib/librte_mbuf/rte_mbuf.h index ead7c6e..5589d54 100644
> >>>>> --- a/lib/librte_mbuf/rte_mbuf.h
> >>>>> +++ b/lib/librte_mbuf/rte_mbuf.h
> >>>>> @@ -1139,7 +1139,6 @@ static inline void
> >>>>> rte_pktmbuf_attach(struct rte_mbuf *mi, struct rte_mbuf *m)
> >>>>> mi->buf_addr = m->buf_addr; mi->buf_len = m->buf_len;
> >>>>> 
> >>>>> -	mi->next = m->next;    
> >>>>   
> > 
> > Fixes: ea672a8b1655 ("mbuf: remove the rte_pktmbuf structure")
> > 
> > Acked-by: Olivier Matz <olivier.matz at 6wind.com>
> > 
> >   
> >>>> Do you know why attaching mbuf is not supporting
> >>>> multi-segment?    
> >> 
> >> This is supported, but you have to do it segment by segment.
> >> Actually  rte_pktmbuf_clone() does that.
> >> Konstantin
> >> 
> >>   
> >>>> Perhaps this can be documented in function comment, as one of the
> >>>> "not supported" items.    
> >>> 
> >>> No, I don’t know. For my application I’ve found that nb_segs with
> >>> it’s limit in 256 segments is very annoying and I’ve decided not
> >>> to use DPDK functions that dealt with nb_segs… But it is not
> >>> about the rte_pktmbuf_attach() function and the patch.   
> > 
> > 
> > Out of curiosity, can you explain why your application needs more
> > than 256 segments? When we were discussing the possibility of
> > extending this field to 16 bits, Konstantin convinced me that it
> > was not so useful.  
> 
> In my application I need to do IPv4 fragments reassembly. There is no
> explicit limit of number of fragments in datagram, so I’m trying to
> avoid any limitations and `nb_segs` here is a constraint for me.
> Expanding it from 8-bit to 16-bit can solve that issue for me. But I
> don’t remember are there any  other places in DPDK where we need to
> know how many segments are in the packet? I mean that is `nb_segs`
> required at all?
> 

Yes, it is used for instance in some PMDs to know how many tx ring
descriptors are needed to send a packet.

Thank you for the explanation. As you probably seen, I'm proposing to
extend the nb_segs to 16 bits in my latest RFC patchset.

Regards,
Olivier


More information about the dev mailing list