[Click] how can i measure MLFFR

Roman Chertov rchertov at purdue.edu
Fri Jun 30 11:18:37 EDT 2006


Eddie Kohler wrote:
> Hi,
> 
> The other thing you should do is add a "PollDevice(eth0)" to COMPUTER 1's
> configuration.  You want Computer 1 to use polling, so you can ensure that
> Computer 1 generates packets as fast as possible.  This might suffice:
> 
> PollDevice(eth0) -> Idle;
> 
> Also, I hope that your ethernets are gigabit.  100Mb/s Ethernet maxes out
> somewhere around 70000 p/s.

I have successfully done 150 Kpackets/sec on 100 Mbit Ethernet using
Intel Pro cards.

Roman

> 
> Eddie
> 
> 
> ˆÒ Ôø wrote:
> 
>>Hi everyone,
>>I am experimenting in measuring the maximum loss-free forwarding rate(MLFFR).MLFFR measured in the paper "The Click Modular Router,ACM Transactions on Computer Systems, Vol. 18, No. 3,pp.263-297" is 330,000 packets/s.
>>My experiement environment is like this:the computer 2 acts as a router.
>> computer 1<->computer 2<->computer 3
>>computer 1 eth0:ip  192.168.18.11 ethernet Address:00:10:5c:cd:7b:88
>>computer 2 eth0:ip  192.168.18.1  ethernet Address:00:02:2a:dc:44:d6
>>    eth1:ip  192.168.0.1   ethernet Address:00:10:5c:cd:7b:f5
>>computer 3 eth0:ip  192.168.0.11  ethernet Address:00:10:5c:cd:7b:9d
>>and the configuration of computer 1 :
>>/***********************************************/
>>FastUDPSource(100000,1000000,64,00:10:5c:cd:7b:88,192.168.18.11,50,
>>  00:10:5c:cd:7b:9d,192.168.0.11,50)
>> ->ctr::Counter
>> ->ToDevice(eth0);
>>  s::Script(
>>  label begin_loop,
>>  wait 1,
>>  read ctr.rate,
>>  goto begin_loop $(lt 1 2),
>>  stop);
>>/***************************************/
>>and the configuration of computer2 is:
>>/***************************************************/
>>// eth0, 00:02:2a:dc:44:d6, 192.168.18.1
>>// eth1, 00:10:5c:cd:7b:f5, 192.168.0.1
>>c0 :: Classifier(12/0806 20/0001,
>>                  12/0806 20/0002,
>>                  12/0800,
>>                  -);
>>c1 :: Classifier(12/0806 20/0001,
>>                  12/0806 20/0002,
>>                  12/0800,
>>                  -);
>>  FromDevice(eth0)->str1::Counter->c0;
>>FromDevice(eth1)->c1;
>>  q0::Queue(10000)-> ToDevice(eth0);
>>q1::Queue(10000)->str2::Counter-> ToDevice(eth1);
>>  arpr0 ::ARPResponder(192.168.0.1/24 00:10:5c:cd:7b:f5,
>>       192.168.18.1/24 00:02:2a:dc:44:d6,
>>       192.168.0.11/24 00:10:5c:cd:7b:9d,
>>       192.168.18.11/24 00:10:5c:cd:7b:88)->q0;
>>arpr1 ::ARPResponder(192.168.0.1/24 00:10:5c:cd:7b:f5,
>>       192.168.18.1/24 00:02:2a:dc:44:d6,
>>       192.168.0.11/24 00:10:5c:cd:7b:9d,
>>       192.168.18.11/24 00:10:5c:cd:7b:88)->q1;
>>  arpq0 ::ARPQuerier(192.168.18.1, 00:02:2a:dc:44:d6);
>>arpq1 ::ARPQuerier(192.168.0.1, 00:10:5c:cd:7b:f5);
>>  rt::StaticIPLookup(192.168.18.1/32 0,
>>     192.168.18.255/32 0,
>>     192.168.18.0/32 0,
>>     192.168.0.1/32 0,
>>     192.168.0.255/32 0,
>>     192.168.0.0/32 0,
>>     192.168.18.11/24 1,
>>     192.168.0.11/24 2,
>>     0.0.0.0/0 192.168.18.1 1);
>>  strip0::Strip(14);
>>strip1::Strip(14);
>>  // Deliver ARP responses to ARP queriers as well as Linux.
>>c0[0] -> arpr0;
>>c1[0] -> arpr1; 
>>t::Tee(2);
>>c0[1] -> t;
>>c1[1] -> t;
>>t[0] -> [1]arpq0[0]->q0;
>>t[1] -> [1]arpq1[0]->q1;
>>c0[2] -> strip0;
>>c1[2] -> strip1;
>>  strip0->CheckIPHeader->GetIPAddress(16)->rt;
>>strip1->CheckIPHeader->GetIPAddress(16)->rt;
>>  rt[0]->Discard;
>>  rt[1] -> DropBroadcasts
>>      -> gio1 :: IPGWOptions(192.168.18.1)
>>      -> dt1 :: DecIPTTL
>>      -> [0]arpq0;
>>rt[2] -> DropBroadcasts
>>      -> gio2 :: IPGWOptions(192.168.0.1)
>>      -> dt2 :: DecIPTTL
>>      -> [0]arpq1;
>>  
>>dt1[1] -> ICMPError(192.168.18.1, timeexceeded) -> [0]rt;
>>dt2[1] -> ICMPError(192.168.0.1, timeexceeded) -> [0]rt;
>>  
>>gio1[1] -> ICMPError(192.168.18.1, parameterproblem) -> [0]rt;
>>gio2[1] -> ICMPError(192.168.0.1, parameterproblem) -> [0]rt;
>>  
>>c0[3] -> Discard;
>>c1[3] -> Discard;
>>   
>>  s::Script( label begin_loop,
>>  wait 1,
>>  read str1.rate,
>>  read str2.rate,
>>  read str1.count,
>>  read str2.count,
>>  goto begin_loop $(lt 1 2),
>>  stop);
>>/****************************************************************/
>>  my experiment result is that the maximum of the input rate of computer 2 is 70,000 packets/s. How can I deal with it?
>>
>>
>> __________________________________________________
>>¸Ï¿ì×¢²áÑÅ»¢³¬´óÈÝÁ¿Ãâ·ÑÓÊÏä?
>>http://cn.mail.yahoo.com
>> __________________________________________________
>>¸Ï¿ì×¢²áÑÅ»¢³¬´óÈÝÁ¿Ãâ·ÑÓÊÏä?
>>http://cn.mail.yahoo.com
>>_______________________________________________
>>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