[Click] how can i measure MLFFR
Eddie Kohler
kohler at cs.ucla.edu
Fri Jun 30 11:47:57 EDT 2006
Whoops, duh! Thanks for the correction.
Eddie
Roman Chertov wrote:
> 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