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@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/