Traditional Method

Currently the kernel provides two frameworks for packet reception. One of them has been in the kernel for a long time, and thus is referred to as the traditional method. This API suffers from problems with very-high-speed network adapters, though, and thus a new API (which is commonly referred to as NAPI11) has been devised by the network developers. Let us first start with the traditional methods since they are easier to understand. Besides, more adapters use the old instead of the new variant. This is fine since their physical transmission speed is not so high as to require the new methods. NAPI is discussed afterward.

11While the name describes precisely that the API is new in contrast to the old API, the naming scheme does not really scale well. Since NNAPI seems rather out of question, it remains interesting to see how the next new revision will be named. However, it might take a while until this problem becomes pressing since the current state of the art does not expose any severe problems that would justify the creation of another API.

Figure 12-10 shows an overview of the path followed by a packet through the kernel to the network layer functions after it arrives at the network adapter.

f-:-ft net_rx_action

)

k

\

do_softirq

dev.c

f

per-CPU wait queue

v

y

s

netif_rx

\

Driver specific code net_interrupt, net_rx

dev.c dev.c

Continue reading here: Figure 1210 Path of an incoming packet through the kernel

Was this article helpful?

0 0