> -----Original Message-----
> From: Pranay Srivastava [mailto:[email protected]]
> Sent: Thursday, May 01, 2014 8:17 PM
> To: Jeff Haran
> Cc: [email protected]; kernelnewbies
> Subject: Re: Regarding skb and skb_frags
> 
> On Thu, May 1, 2014 at 9:50 PM, Jeff Haran <[email protected]> wrote:
> >> -----Original Message-----
> >> From: [email protected]
> >> [mailto:[email protected]] On Behalf Of Pranay
> >> Srivastava
> >> Sent: Thursday, May 01, 2014 7:10 AM
> >> To: [email protected]
> >> Cc: kernelnewbies
> >> Subject: Re: Regarding skb and skb_frags
> >>
> >> On Thu, May 1, 2014 at 7:29 PM,  <[email protected]> wrote:
> >> > On Thu, 01 May 2014 16:12:43 +0530, Pranay Srivastava said:
> >> >
> >> >> My question is that an Ethernet frame won't be bigger than 1500
> >> >> bytes [correct?]
> >> >
> >> > Incorrect.  10G and faster ethernet support jumbograms.  We run our
> >> > HPC 10G network with an MTU of 9000 (which is 2 pages and a bit more).
> >> >
> >> Ok. So in any case the driver won't poke past ethernet header to look
> >> for the size [Correct?].
> >> So it means only when MTU is bigger than page size would there be a
> >> possibility of skb_frags [Correct?].
> >
> > I'm not sure what kernel version you are looking at, but when I do a search
> for skb_frags in the latest kernel sources at http://lxr.linux.no, I don't 
> see any
> variables or structure members named skb_frags, though it shows up in
> comments in one driver.
> >
> > That being said, I believe skb fragments are also used to implement
> scatter/gather lists of packet payload data, even in packets less than or 
> equal to
> the usual 1500 bytes.
> >
> > On the systems I work with, I've seen this happening in packets originating
> from the target system, i.e. egress path of local traffic.
> I think i get it with egress path since you are actually sending out packet
> possible via scatter/gather. But this skb won't be allocated by the driver, 
> it'll be
> given to the driver by upper networking subsystem. I'm confused about the
> inbound packets, would they ever be having skb fragments [sorry to confuse
> with skb_frags i wasn'
> reffering to structure]?
> 
> I'm more inclined to know from a device driver's perspective if it'll have to
> create an skb when a packet arrives which is non-linear.

I suppose that will be up to the driver and the hardware it supports. I've 
never worked with a driver that delivers non-linear packets on ingress, but I 
don't know of any requirement that they not do so. There's also the case of GRO 
where multiple ingress packets get combined into a single large skb. In that 
case it might make perfect sense to deliver non-linear skbs on ingress since 
the original frames may have been DMA'ed into different memory buffers, though 
I have to admit I don't know the details of the GRO implementation well enough 
to say whether this in fact happens.

Jeff Haran

_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to