Re: Generic sk_buff contract documentation ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You're better off asking this on netdev or kernel-newbies.

regards,
dan carpenter

On Wed, Jan 15, 2025 at 08:34:55PM +0100, Alexandre Ferrieux wrote:
> Hi,
> 
> Recently digging into a driver-specific issue with sk_buff->protocol, I
> discovered (with surprise) that the computation of this field (which is *always*
> necessary for protocol handlers to kick in) was somehow "delegated" to
> individual network interface drivers. This can be seen by looking for callers of
> eth_type_trans(), e.g:
> 
> - tg3: called from tg3_poll_work
> - ixgbe: called from ixgbe_clean_rx_irq
> - veth: called from veth_xmit (though indirectly via __dev_forward_skb)
> 
> This is a surprise as one would naively expect this ubiquitous behavior to be
> triggered from generic code, depending only on the L2 header structure (but not
> on the specific NIC hardware at hand). Another surprise was *not* to find any
> mention of this "contract" in Documentation/*.
> 
> So, is it an unspoken tradition for NIC driver developers, to
> "just know" that prior to emitting an skb from the rx path, they must fill
> skb->protocol (along with who knows how many other metadata items) ?
> 
> Or, is there *somewhere* some reference documentation listing (exhaustively) the
> required metadata computations that fall within a NIC driver's responsibility ?
> 
> Thanks in advance,
> 
> -Alex




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux