[Click] using DelayShaper
Eddie Kohler
kohler at CS.UCLA.EDU
Wed Sep 15 17:17:50 EDT 2004
Hi Lan,
Sorry for not replying to you earlier. Did you ever analyze this
problem further?
I think that 128ms latencies might be due to ARP queries. Machine A
sends a ping; to get the right Ethernet address, it sends an ARP query;
the "router" delays that ARP query by 64ms, then responds; so after
64ms, the ping packet is sent; it is delayed an additional 64ms, for a
total of 128ms; and there you go. You could avoid this by moving the
DelayShaper inside the IP path.
But I don't immediately see why you'd ever see a latency lower than
64ms.
Eddie
On Aug 17, 2004, at 12:19 AM, Lan Xue wrote:
> Hi,
>
> I found this very confusing problem regarding to DelayShaper element. I
> used it to inject latencies to traffic passing through the router.
> Please
> see the click configuration file below. Most of the time, ping-ing two
> machines interconnected by click gives response time as desired.
> However,
> it happens(not very rarely) that the response time is far away
> different
> from what is set. For example, I set a 64ms latency injected into all
> packets receiving from eth0, which connected to machine A, and no
> latency to traffic from eth1. NOrmally, ping
> machine A and B would return 64ms roundtrip time. But it does happen
> that
> ping time is just a few ms(2.xms, or sometimes 128ms) between A and B
> with
> the same config file.
>
> Please help, thanks!
>
> Lan
>
> ================= CONFIG FILE
> // eth0 connects to 10.1.4.10
> // eth1 connects to 10.1.3.10
>
> tol :: Discard;
>
> rt :: StaticIPLookup(10.1.4.10/32 10.1.4.1 1,
> 10.1.3.10/32 10.1.3.1 2,
> 10.1.4.255/32 0,
> 10.1.3.255/32 0,
> 10.1.4.1/24 10.1.4.1 0,
> 10.1.3.1/24 10.1.3.1 0,
> 0.0.0.0/0 10.1.1.1 0);
>
> ip :: Strip(14)
> //-> CheckIPHeader(0.0.0.0 255.255.255.255 127.0.0.0, VERBOSE
> true,
> DETAILS true) -> [0]rt;
> -> CheckIPHeader(0.0.0.0 255.255.255.255 127.0.0.0) -> [0]rt;
>
> input0 :: FromDevice(eth0, FORCE_IP true)
> input1 :: FromDevice(eth1, FORCE_IP true)
>
>
> arp0 :: EtherEncap(0x0800, 00:02:55:C6:00:A8, 00:02:55:C6:A6:C2)
> arp1 :: EtherEncap(0x0800, 00:02:55:C6:00:A9, 00:02:55:C6:A9:CC)
>
> pt0 :: PullTee()
> pt1 :: PullTee()
>
> pt0[0] -> Discard;
> pt1[0] -> Discard;
>
> input0 -> Paint(1) -> SimpleQueue(200) -> DelayShaper(0.064) ->
> [0]pt0[1]
> -> ip;
> input1 -> Paint(2) -> SimpleQueue(200) -> DelayShaper(0) -> [0]pt1[1]
> ->
> ip;
> //input1 -> Paint(2) -> ip;
>
>
> //discard the packets to the machine itself
> rt[0] -> tol;
>
> rt[1] -> DropBroadcasts
> -> cp1 :: PaintTee(1)
> -> dt1 :: DecIPTTL
> -> arp0 //add the ARP header
>
> arp0 -> ToDevice(eth0);
>
> rt[2] -> DropBroadcasts
> -> cp2 :: PaintTee(2)
> -> dt2 :: DecIPTTL
> -> arp1
>
> arp1 -> ToDevice(eth1);
>
> ...
> ...
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list