[Click] Linux integration diagram?

Beyers Cronje bcronje at gmail.com
Mon Jul 23 12:44:17 EDT 2007


Hi Adam,

I haven't seen a diagram as such. I can try and give you a simple overview
of how it works (on the receive side of things). Click kernel module
ethernet integration works on two methods depending on whether you use
PollDevice or FromDevice.

PollDevice - You can only use PollDevice if you have an Intel e1000 NIC with
the Click polling patch applied. This polling patch modifies the e1000
driver and in short does the following, it disables interrupts on the NIC
which in turn means that Linux will not process any packets from the NIC.
Then Click through PollDevice continually polls the receive queue of the NIC
and receives any packets on the NIC's rx queue. It also supplies the driver
with clean SKBs after it has received packets. Once the packet is inside
Click it follows the push/pull processing of Click.

FromDevice - FromDevice works with any Linux NIC driver. The Click kernel
patch modifies the Linux netif_receive_skb() function to intercept packets
before Linux process them. This means interrupts are still in play. See
netif_receive_skb() in the kernel patch along with FromDevice element code.

See https://pdos.csail.mit.edu/pipermail/click/2005-April/003845.html for an
overview on how Click's push/pull packet processing operates.

Hope this helps a bit.

Beyers



On 7/23/07, Adam M <click at irotas.net> wrote:
>
> Hi,
>
> I'm trying to find a diagram that explains how Click integrates with
> Linux, especially with respect to the Ethernet interface and kernel
> networking stack. I've found lots of vague references to how the
> integration works, but nothing very concrete.
>
> Does such a diagram exist? Something visual would really help me
> understand how all this plumbs together.
>
> Thanks,
> Adam
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>


More information about the click mailing list