[Click] FromDevice->Todevice Loop

Antonie Henning antoniehenning at yahoo.com
Sat Jul 9 17:09:43 EDT 2011


Hi,

Something I discovered with the latest git pull code:

Using the same interface in a fromdevice and todevice element, seems to cause a loop e.g.

Eth0 receives 1 pps but transmits e.g. 80k pps @ 1500bytes or line rate 1gbps. This can be replicated with the config below:

FromDevice(eth0, PROMISC true)->Queue->ToDevice(eth0);

To test this the following example can be used at the source of the packets:

// Where ethX is connected to eth0:
RatedSource(DATA \<DATA>, RATE 1, LIMIT 10, ACTIVE true, STOP true) -> Queue -> ToDevice(ethX);
FromDevice(ethX, PROMISC true)
-> c::Counter -> Queue -> Discard;


Script(
    wait 1,
    print c.rate,
    loop
);

Changing the interface in the ToDevice to a different interface e.g. eth1 solves the problem...

When adding another fromdevice and todevice pair even with different interfaces (as long as a fromdevice interface and todevice interface match somewhere in the config) the problem returns e.g
FromDevice(eth0, PROMISC true)->Queue->ToDevice(eth1);
FromDevice(eth1, PROMISC true)->Queue->ToDevice(eth0);

I have checked whether this is because of promiscuous mode but found the same result when removing promisc and using EtherEncap.

A


More information about the click mailing list