> -----Original Message----- > From: Pranay Srivastava [mailto:pranjas@xxxxxxxxx] > Sent: Thursday, May 01, 2014 8:17 PM > To: Jeff Haran > Cc: Valdis.Kletnieks@xxxxxx; kernelnewbies > Subject: Re: Regarding skb and skb_frags > > On Thu, May 1, 2014 at 9:50 PM, Jeff Haran <Jeff.Haran@xxxxxxxxxx> wrote: > >> -----Original Message----- > >> From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx > >> [mailto:kernelnewbies-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Pranay > >> Srivastava > >> Sent: Thursday, May 01, 2014 7:10 AM > >> To: Valdis.Kletnieks@xxxxxx > >> Cc: kernelnewbies > >> Subject: Re: Regarding skb and skb_frags > >> > >> On Thu, May 1, 2014 at 7:29 PM, <Valdis.Kletnieks@xxxxxx> 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 Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies