simulating RED using tcsim question

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm trying to setup a bottlekneck scenario so I can see the effects of the RED qdisc on a congested interface.
My example simulation code is at the bottom of this email if someone wants to see it.


The following is a snippet form TCSIMs output.

0.602000 E : 0x80bc080 40 : inputB_eth0: 45000028 00000000 40060000 ...
0.602000 D : 0x80bc080 40 : inputB_eth0: 45000028 00000000 40060000 ...
0.602003 E : 0x80bbfd8 40 : router_eth2: 45000028 00000000 40060000 ...
0.602003 * : 0x80bbfd8 40 : router_eth2: enqueue returns CN (2)
0.602003 E : 0x80bc080 40 : router_eth2: 45000028 00000000 40060000 ...
0.602003 * : 0x80bc080 40 : router_eth2: enqueue returns CN (2)
0.604000 E : 0x80bbfd8 40 : inputA_eth0: 45000028 00000000 40060000 .

As I hoped, packets seem to get dropped as marked by '*' when the interface gets congested.

On closer inspection (with -v) tcsim output is:

0.182000 D : 0x80bc0a0 40 : inputB_eth0: 45000028 00000000 40060000 ...
0.182003 E : 0x80bbff8 40 : router_eth2: 45000028 00000000 40060000 ...
0.182003 e : 0x80bbff8 40 : <1> red (2:0) returns CN (2)
0.182003 e : 0x80bbff8 40 : <0> dsmark (1:0) returns CN (2)
0.182003 * : 0x80bbff8 40 : router_eth2: enqueue returns CN (2)
0.182003 E : 0x80bc0a0 40 : router_eth2: 45000028 00000000 40060000 ...
0.182003 e : 0x80bc0a0 40 : <1> red (2:0) returns CN (2)
0.182003 e : 0x80bc0a0 40 : <0> dsmark (1:0) returns CN (2)
0.182003 * : 0x80bc0a0 40 : router_eth2: enqueue returns CN (2)
0.184000 E : 0x80bbff8 40 : inputA_eth0: 45000028 00000000 40060000 ...

I was exspecting the '*' to now print as 'x' to indicate a dropped packet rather than some error occuring!

The network setup looks something like this

|inputA_eth0|--100 Mbs------]
]----|router_eth2|---10 Bs------|output_eth1| |inputB_eth0|--100 Mbs------]
RED is added router_eth2, router_eth2 is set as a 10 Bs interface to force some congestion.



Anyone know what's going on? What does "router_eth2: enqueue returns CN (2)" mean?
Any help is much appreciated.


Stephen.


bottleneck.tcsim ----------------- //inputA to router host { dev inputA_eth0 100 Mbps }

//inputB to router
host {
       dev inputB_eth0 100 Mbps
}


//the router host { dev router_eth0 100 Mbps dev router_eth1 100 Mbps dev router_eth2 10 //the bottleneck { egress { red( min 150 B, max 450 B, burst 200 B, limit 600 B, bandwidth 100 bps, probability 0.4, avpkt 80 B ); } }

       route 10.0.0.0 netmask 255.0.0.0 router_eth2

}

//output destination from router
host {
       dev output_eth0 10 Mbps
       dev output_eth1 100 Mbps
       route 10.0.0.2 netmask 255.0.0.0 output_eth1
}

connect inputA_eth0 router_eth0
connect inputB_eth0 router_eth1
connect router_eth2 output_eth0


every 0.002s until 5s send inputA_eth0 TCP_PCK($tcp_sport = PORT_HTTP);

every 0.002s until 5s send inputB_eth0 TCP_PCK($tcp_sport = PORT_SSH);

time 6s
end



_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux