[Click] Packet loss with PollDevice
rchertov
rchertov at cs.ucsb.edu
Thu Jan 19 13:59:14 EST 2012
What version of click are you running? Also, you can play around with
BURST parameter to PollDevice. So are you observing that
polldevice::count is smaller than the number of packets you sent to that
interface?
Roman
On 01.19.2012 10:45, Yu Chen wrote:
> Hi all,
>
> I am having an experiment with the following topology running on
> Deterlab. I
> am having a 4-core Xeon and modified e1000 driver running ore Xeon
> and modified
> e1000 driver running. The memory is 4GB.
>
> User1
> |
> User3-----Router------User4
> |
> User2
>
> User 1 is sending packet to User 2; User 3 is sending packets to User
> 4.
> The router only routes stuff with best effort. However, what I
> observed is
> very few losses, distributed on a small random set of rounds. What is
> surprising is that there are losses on one particular netcard when
> the sending
> rate is only 125,000 packets/second. The loss happens at the
> receiving phase.
>
> Below is what I have tried:
> 1' I am using 4 threads, each corresponding to one pair of PollDevice
> and
> ToDevice.
> 2' I have changed the queue length at the interface cards. I set
> txqueuelen=1
> for the senders to decrease the possible burstiness. By increasing
> the
> receiving queue length from 64 to 4096
> (the maximum queue length), the loss rate decreases.
> 3' I tried to discard the packets on their arrival at the router. In
> this case,
> there is no observed loss.
>
> I am kind of lost at the point. Any suggestions on what can be the
> possible
> reason and what I can try next?
>
> Attached is my code.
>
> Best Regards,
> Yu
>
> Router:
>
> -----------------------------------------------------------------------
> ddressInfo(router1-w1 10.0.1.1 00:15:17:5d:16:4a,
> //eth2
> user1-w1 10.0.1.2 00:15:17:5d:29:28, //eth0
> router1-w2 10.0.2.1 00:15:17:5d:16:48, //eth0
> user2-w2 10.0.2.2 00:15:17:57:ce:14, //eth0
> router1-w3 10.0.3.1 00:15:17:5d:16:4b, //eth3
> user3-w3 10.0.3.2 00:15:17:5d:27:e8, //eth0
> router1-w4 10.0.4.1 00:15:17:5d:16:49, //eth1
> user4-w4 10.0.4.2 00:15:17:5d:2a:3c, //eth0
> );
>
> 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 :: Discard;
> // Idle -> ToDevice(eth1);
> // Idle -> ToDevice(eth3);
> // Idle -> ToDevice(eth2);
> // Idle -> ToDevice(eth0);
> q1 :: CPUQueue(1000000) -> EtherEncap(0x0800, router1-w1, user1-w1)
> -> td1 :: ToDevice(eth2);
> q2 :: CPUQueue(1000000) -> EtherEncap(0x0800, router1-w2, user2-w2)
> -> td3 :: ToDevice(eth0);
> q3 :: CPUQueue(1000000) -> EtherEncap(0x0800, router1-w3, user3-w3)
> -> td2 :: ToDevice(eth3);
> q4 :: CPUQueue(1000000) -> EtherEncap(0x0800, router1-w4, user4-w4)
> -> td0 :: ToDevice(eth1);
>
> rt :: LookupIPRouteMP(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 0);
> rt[0] -> Discard;
> rt[1] -> q1;
> rt[2] -> q2;
> rt[3] -> q3;
> rt[4] -> q4;
>
> pd1 :: PollDevice(eth2) -> c1;
> c1[0] -> q0;
> c1[1] -> q0;
> c1[2] -> DropBroadcasts -> Strip(14) -> GetIPAddress(16) -> rt;
> c1[3] -> Discard;
>
> pd3 :: PollDevice(eth0) -> c2;
> c2[0] -> q0;
> c2[1] -> q0;
> c2[2] -> DropBroadcasts -> Strip(14) -> GetIPAddress(16) -> rt;
> c2[3] -> Discard;
>
> pd2 :: PollDevice(eth3) -> c3;
> c3[0] -> q0;
> c3[1] -> q0;
> c3[2] -> DropBroadcasts -> Strip(14) -> GetIPAddress(16) -> rt;
> c3[3] -> Discard;
>
> pd0 :: PollDevice(eth1) -> c4;
> c4[0] -> q0;
> c4[1] -> q0;
> c4[2] -> DropBroadcasts -> Strip(14) -> GetIPAddress(16) -> rt;
> c4[3] -> Discard;
>
> StaticThreadSched(pd2 0, td0 0, pd0 1, td2 1, pd3 2, td1 2, pd1 3,
> td3 3);
>
> User:
> //
> AddressInfo(router1-w1 10.0.1.1 00:15:17:5d:16:4a,
> //eth2
> user1-w1 10.0.1.2 00:15:17:5d:29:28, //eth0
> router1-w2 10.0.2.1 00:15:17:5d:16:48, //eth0
> user2-w2 10.0.2.2 00:15:17:57:ce:14, //eth0
> router1-w3 10.0.3.1 00:15:17:5d:16:4b, //eth3
> user3-w3 10.0.3.2 00:15:17:5d:27:e8, //eth0
> router1-w4 10.0.4.1 00:15:17:5d:16:49, //eth1
> user4-w4 10.0.4.2 00:15:17:5d:2a:3c, //eth0
> );
> //Send
> udp :: FastUDPSource(RATE 400000, LIMIT 20000000, LENGTH 78,
> SRCETH user1-w1, SRCIP user1-w1, SPORT 1,
> DSTETH router1-w1, DSTIP user2-w2, DPORT 1,
> CHECKSUM false, INTERVAL 0, ACTIVE false)
> -> ToDevice(eth0);
>
> s :: Script(TYPE ACTIVE, write ctr.reset, write udp.active false,
> wait 1, wait 9, write udp.active true);
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list