Re: Packet loss with PollDevice

Yu Chen <[email protected]>
Newsgroups gmane.network.routing.click
Message-ID <[email protected]>
1.8.0 on Linux 2.6.24.7. Yes, I played with it(from 1 to 8). However, 
it does not seem to help much. Yes, polldevice::count is smaller than 
the packets I sent to that interface. Also, the packet size 64B. I forgot 
to mention it in the previous emails.

Best Regards and Thanks,
Yu 

On Thu, Jan 19, 2012 at 10:59:14AM -0800, rchertov wrote:
> 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
> > [email protected]
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> 
> _______________________________________________
> click mailing list
> [email protected]
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.