Query on Rx Frame processing

amit mehta gmate.amit at gmail.com
Sat Oct 15 10:15:26 EDT 2011


I'm trying to understand Linux Network subsystem and after
reading some documents, my broad level understanding for
Rx Path is as follows:

1: Card receives the packet.
2: Assume everything is fine, the card DMAs the frame for
the driver to process it further.
3: Driver allocate an skb buffer, adjusts the headroom.
4: Fills the buffer and pass it to the Network layer.

Now in step 4 above, driver passes this packet to the
network layer by calling netif_receive_skb()  which may return
NET_RX_DROP (packet was dropped), but most
(I checked some of the network driver code) of the network
drivers do not do this check.
Hence,
Q1: Shouldn't drivers be doing that ?

Q2: Suppose the Card keeps pushing the frames at very high rate
(10 Gig adapters are already in the market and maybe in near future
we might have even faster ethernet adapters) then how the driver
and the networking stack will handle such rapid frames arrivals?
Will NAPI, interrupt coalescing be enough ?

I'm referring kernel version 2.6.31

-Amit



More information about the Kernelnewbies mailing list