[Click] Packet loss even at low sending rate

Bingyang LIU bjornliu at gmail.com
Sat Dec 3 23:49:58 EST 2011


Hi Cliff,

Thank you very much for your help. I followed your suggestion and got some
results.

1. It turned out that "PollDevice" failed to get all the packets from NIC,
even if the packet sending rate is only 200kpps with the packet size of
64B.
2. I used "grep . /click/.e/*/drops", all of them reported 0 drops.
3. I put a counter between every two connected elements, to determine which
element dropped packet. Finally I found a queue dropped packets, because
the downstream counter reported less "count" than the upstream one.
However, it was straight that this queue still reported 0 drops. I think
there might be some bug with the element, or I mis-used the elements.

So I have two questions. First, how can I make PollDevice work better,
which means that it won't drop packets at low rate. (Should I use Stride
Scheduler?) Second, is there any bug with Queue in Click 1.8.0, in terms of
dropping packets without reporting the drops?

My experiment environment and configuration:
* Hardware: CPU Inter Xeon X3210 (quad core at 2.13Ghz), 4GB RAM. (a
server on deterlab)
* Software: Ubuntu8.04 + Click1.8, with PollDevice and multi-thread enabled.
* Configuration: ./configure
--with-linux=/usr/src/linux-2.6.24.7 --enable-ipsec --enable-warp9
--enable-multithread=4
* Installation: sudo click-install --thread=4 site7_router1.click

thanks!
best
Bingyang

On Sat, Dec 3, 2011 at 12:42 PM, Cliff Frey <cliff at meraki.com> wrote:

> you should be able to see where the packets are getting dropped.  Look for
> error counters from ifconfig, and look at the drops handlers of each
> different element.  If any of those is going up, that can point to what the
> problem is.
>
> you can actually try just running 'grep . /click/.e/*/drops' to quickly
> print out the drops handler result for all of your elements.
>
> If it is somehow from polldevice, then I'm less sure.  I don't have any
> direct experience with PollDevice.
>
> Cliff
>
> On Fri, Dec 2, 2011 at 9:14 PM, Bingyang LIU <bjornliu at gmail.com> wrote:
>
>> Hi all,
>>
>> I'm trying to evaluate packet forwarding speed of Click. I found that the
>> router can forward up to 1200kpps (64B packets). But it was strange that
>> at
>> low packet sending rate (200kpps), the router dropped some packet (0.05%).
>> Is there any problem with my router configuration or scheduling issue?
>>
>> * Hardware: CPU Inter Xeon X3210 (quad core at 2.13Ghz), 4GB RAM. (a
>> server
>> on deterlab)
>> * Software: Ubuntu8.04 + Click1.8, with PollDevice and multi-thread
>> enabled.
>> * Configuration: ./configure --with-linux=/usr/src/linux-2.6.24.7
>> --enable-ipsec --enable-warp9 --enable-multithread=4
>> * Installation: sudo click-install --thread=4 site7_router1.click
>>
>> The router config file is as follows:
>> ==========================
>> AddressInfo(router1-w1       10.0.1.1        00:15:17:57:c7:4d,
>> //eth1
>>            router1-w2       10.0.2.1        00:15:17:57:c7:4f,
>> //eth3
>>            router1-w3       10.0.3.1        00:15:17:57:c7:4c,
>> //eth0
>>            router1-w4       10.0.4.1        00:15:17:57:c7:4e,
>> //eth2
>>            user1-w1         10.0.1.2        00:15:17:57:c8:06,
>> //eth2
>>            user2-w2         10.0.2.2        00:15:17:57:c2:1a,
>> //eth2
>>            user3-w3         10.0.3.2        00:15:17:57:c6:7a,
>> //eth2
>>            user4-w4         10.0.4.2        00:15:17:57:c7:d6);
>>  //eth2
>>
>> c1 :: Classifier(12/0806 20/0001,
>>                 12/0806 20/0002,
>>                 12/0800,
>>                 -);
>> c2 :: Classifier(12/0806 20/0001,
>>                 12/0806 20/0002,
>>                 12/0800,
>>                 -);
>> c3 :: Classifier(12/0806 20/0001,
>>                 12/0806 20/0002,
>>                 12/0800,
>>                 -);
>> c4 :: Classifier(12/0806 20/0001,
>>                 12/0806 20/0002,
>>                 12/0800,
>>                 -);
>>
>> q0 :: ToHost;
>> q1 :: Queue(10000) -> EtherEncap(0x0800, router1-w1, user1-w1) -> td1 ::
>> ToDevice(eth1);
>> q2 :: Queue(10000) -> EtherEncap(0x0800, router1-w2, user2-w2) -> td2 ::
>> ToDevice(eth3);
>> q3 :: Queue(10000) -> EtherEncap(0x0800, router1-w3, user3-w3) -> td3 ::
>> ToDevice(eth0);
>> q4 :: Queue(10000) -> EtherEncap(0x0800, router1-w4, user4-w4) -> td4 ::
>> ToDevice(eth2);
>>
>> rt :: StaticIPLookup(10.0.1.0/32 0, 10.0.1.1/32 0, 10.0.1.255/32 0,
>>                     10.0.2.0/32 0, 10.0.2.1/32 0, 10.0.2.255/32 0,
>>                     10.0.3.0/32 0, 10.0.3.1/32 0, 10.0.3.255/32 0,
>>                     10.0.4.0/32 0, 10.0.4.1/32 0, 10.0.4.255/32 0,
>>                     10.0.1.0/24 1, 10.0.2.0/24 2, 10.0.3.0/24 3,
>>                     10.0.4.0/24 4, 0.0.0.0/0 4);
>> rt[0] -> Discard;
>> rt[1] -> q1;
>> rt[2] -> q2;
>> rt[3] -> q3;
>> rt[4] -> q4;
>>
>> pd1 :: PollDevice(eth1) -> c1;
>> c1[0] -> q0;
>> c1[1] -> q0;
>> c1[2] -> Strip(14) -> CheckIPHeader() -> rt;
>> c1[3] -> Discard;
>> pd2 :: PollDevice(eth3) -> c2;
>> c2[0] -> q0;
>> c2[1] -> q0;
>> c2[2] -> Strip(14) -> CheckIPHeader() -> rt;
>> c2[3] -> Discard;
>> pd3 :: PollDevice(eth0) -> c3;
>> c3[0] -> q0;
>> c3[1] -> q0;
>> c3[2] -> Strip(14) -> CheckIPHeader() -> rt;
>> c3[3] -> Discard;
>> pd4 :: PollDevice(eth2) -> c4;
>> c4[0] -> q0;
>> c4[1] -> q0;
>> c4[2] -> Strip(14) -> CheckIPHeader() -> rt;
>> c4[3] -> Discard;
>>
>> StaticThreadSched(pd1 0, pd2 1, pd3 2, pd4 3,
>>                  td2 0, td1 1, td4 2, td3 3);
>>
>>
>> --
>> Bingyang Liu
>> Network Architecture Lab, Network Center,Tsinghua Univ.
>> Beijing, China
>> Home Page: http://netarchlab.tsinghua.edu.cn/~liuby
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>
>
>


-- 
Bingyang Liu
Network Architecture Lab, Network Center,Tsinghua Univ.
Beijing, China
Home Page: http://netarchlab.tsinghua.edu.cn/~liuby


More information about the click mailing list