[Click] FromDevice->Todevice Loop

Eddie Kohler kohler at cs.ucla.edu
Sat Jul 9 19:06:43 EDT 2011


Thanks, guys, for reporting this bug.  I believe the code is now fixed so that 
even METHOD PCAP will work as expected -- outbound packets won't be emitted 
from FromDevice.

Eddie


On 7/9/11 3:02 PM, Robert Sombrutzki wrote:
> Hi,
> i discovered the same behavior. It's seem to be related to the usage of pcap.
> If i use the following example, it works (no loop).
> FromDevice(eth0,  METHOD LINUX, PROMISC true)->Queue->ToDevice(eth0, METHOD
> LINUX );
>
> The next script causes the loop:
> FromDevice(eth0,  METHOD PCAP, PROMISC true)->Queue->ToDevice(eth0);
>
> You didn't use the param METHOD, but in the git PCAP is the default capture
> method. Can you please check, whether you script causes a loop, if you
> use "METHOD LINUX" ?
>
> Best regards,
> Robert
>
> On Samstag, 9. Juli 2011, Antonie Henning wrote:
>> 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
>> _______________________________________________
>> 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