Thanks for the prompt reply, Stephen. Yes that does the trick. I've read your documentation but somehow missed that section (probably because of the title "How to reorder pkts" rather than "How to NOT reorder pkts...".) Jerry On 10/18/06, Stephen Hemminger <shemminger@xxxxxxxx> wrote:
On Wed, 18 Oct 2006 14:06:28 -0700 "H.K. Jerry Chu" <hkjerry.chu@xxxxxxxxx> wrote: > Hello, > > I'm running a 2.6.18 kernel and using netem to inject delay to simuliate a > long haul network in order to evaluate the performance of various TCP > congestion control algorithms. netem works well when using a constant delay. > But when I added variation to the delay, e.g., > > tc qdisc add dev eth0 root netem delay 100ms 10ms distribution normal > limit 1000000 > > The throughput performance precipiated due to pkt reordering. > > I can imagine a naive implementation of adding variation to delay can > easily cause > pkts to be reordered. Is this the case (bug or feature)? Is there a > way to preserve > ordering while having delay variation? > > Thanks, > > Jerry It will reorder packets because you asked for jitter (10ms). Imagine: Packet A: delay = 100ms + 10ms Packet B: delay = 100ms - 10ms B will go out before A. If you want strict FIFO you need to reset the internal qdisc. This is in the documentation http://linux-net.osdl.org/index.php/Netem --------- How to reorder packets based on jitter? Starting with version 1.1 (in 2.6.15), netem will reorder packets if the delay value has lots of jitter. If you don't want this behaviour then replace the internal queue discipline tfifo with a pure packet fifo pfifo. The following example has lots of jitter, but the packets will stay in order. # tc qdisc add dev eth0 root handle 1: netem delay 10ms 100ms # tc qdisc add dev eth0 parent 1:1 pfifo limit 1000
- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html