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/