From mboxrd@z Thu Jan 1 00:00:00 1970 From: pranjas@gmail.com (Pranay Srivastava) Date: Fri, 2 May 2014 08:46:36 +0530 Subject: Regarding skb and skb_frags In-Reply-To: <4E5779AD88B2F040B8A7E83ECF544D1A508E7B@SJCPEX01CL02.citrite.net> References: <30835.1398952794@turing-police.cc.vt.edu> <4E5779AD88B2F040B8A7E83ECF544D1A508E7B@SJCPEX01CL02.citrite.net> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On Thu, May 1, 2014 at 9:50 PM, Jeff Haran wrote: >> -----Original Message----- >> From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Pranay >> Srivastava >> Sent: Thursday, May 01, 2014 7:10 AM >> To: Valdis.Kletnieks at vt.edu >> Cc: kernelnewbies >> Subject: Re: Regarding skb and skb_frags >> >> On Thu, May 1, 2014 at 7:29 PM, 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. > > Jeff Haran > Thanks again! -- ---P.K.S