[Click] Linux integration diagram?

rchertov@purdue.edu rchertov at purdue.edu
Mon Jul 23 12:55:40 EDT 2007


Quoting Beyers Cronje <bcronje at gmail.com>:

In addition to this I also recommend to take a look at the device driver itself.
If you scroll down the e1000_main.c you will see the click functions at the
bottom.  When the driver gets initialized, the netdev structure gets filled out
with Click's functions instead of the driver default ones.  Essentially
ToDevice/PollDevice call functions in the netdev structure for a particular
device.  

Roman



> 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
> >
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> 




More information about the click mailing list