librelist archives

« back to archive

Click Router, Bridging and Virtual Interfaces

Click Router, Bridging and Virtual Interfaces

From:
Onur
Date:
2014-10-03 @ 21:13
I have a click kernel module element that reads packets from a virtual 
interface using the fromDevice element and uses toHost to hand packets 
to Linux via tohost element.

Our configuration with bridged interfaces is as follows:

       +---------------------------+
       |        br-eth1 (bridge)   |
       +------+----------+---------+
       | eth1 | veth1.0  |  veth2.0| 
       +--+---+-----+----+----+----+
          |         |         |
                    |         |    
                veth1.1     veth2.1  
                +-----+        |
                |click|     open Vswitch
                +-----+  

Here eth1 is the physical interface and veth1.* are virtual interface pairs.
eth1, veth1.0 and veth2.0 are bridged together.

Our click configuration is:

FromDevice(veth1.1)->MyElement

MyElement currently passes the incoming ping packets directly to the 
toHost element, 
which in turn calls netif_receive_skb() to pass the packets to Linux. 
However, this call returns 1, which seems to indicate that the Linux Protocol 
stack is dropping the ping packets. As a result the host does not respond to 
in-coming ping packets. 

I have tried modifying the device name parameter in toHost to veth1.1 but 
that also did 
not help. Without bridging and virtual interfaces (i.e., when fromDevice 
reads from eth1), 
MyElement works fine and the host responds to ping packets.

Is Click, in particular the FromDevice (kernel module) element, compatible
with virtual 
interfaces and bridging? 

Any insight or suggestion would be greatly appreciated. 

Thank you,
Onur



-- 
Onur <onur@netlab.uky.edu>