Hi, * On Fri, Aug 29, 2003 at 10:54 PM (+0200), Emmanuel SIMON wrote: > When installing PRIO, it creates 3 "classes" with priority level according > to the TOS. > > That command line : > # tc qdisc add dev eth0 root handle 1: prio > give that result : > # tc qd sh > qdisc prio 1: dev eth0 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 > > How should i read that priomap, what does it mean and how to change it. As far as I understood it, it behaves the same like the classless qdisc "pfifo_fast" using its bands. The difference is that (when using the classful qdisc "prio") you have got real classes and you can also use classifiers to put packets into the classes. But, if there aren't any matching classifiers, the packets got distri- buted to their according classes using the values within their Type of Service field (TOS) and the given priomap. The default priomap is the one you've wrote above. What does the priomap "1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1" actually mean? As it is stated in chapter 9.2.1.1 of the LARTC howto, there are six- teen values for the TOS files (one byte): | TOS Bits Means Linux Priority Band | ------------------------------------------------------------ | 0x0 0 Normal Service 0 Best Effort 1 | 0x2 1 Minimize Monetary Cost 1 Filler 2 | 0x4 2 Maximize Reliability 0 Best Effort 1 | 0x6 3 mmc+mr 0 Best Effort 1 | 0x8 4 Maximize Throughput 2 Bulk 2 | 0xa 5 mmc+mt 2 Bulk 2 | 0xc 6 mr+mt 2 Bulk 2 | 0xe 7 mmc+mr+mt 2 Bulk 2 | 0x10 8 Minimize Delay 6 Interactive 0 | 0x12 9 mmc+md 6 Interactive 0 | 0x14 10 mr+md 6 Interactive 0 | 0x16 11 mmc+mr+md 6 Interactive 0 | 0x18 12 mt+md 4 Int. Bulk 1 | 0x1a 13 mmc+mt+md 4 Int. Bulk 1 | 0x1c 14 mr+mt+md 4 Int. Bulk 1 | 0x1e 15 mmc+mr+mt+md 4 Int. Bulk 1 Using the default priomap will send packets with a TOS value of 0x10, 0x12, 0x14 or 0x16 to class 0, packets with a TOS value of 0x0, 0x4, 0x6, 0x18, 0x1a, 0x1c, 0x1e to class 1 and packets with a TOS value of 0x2, 0x8, 0xa, 0xc and 0xe to class 2. The "prio" qdisc now will dequeue packets from class 0 with the highest priority. The higher the class numbers the lower the de- queue priority. If you would like to send packets with a TOS value of 0x0, 0x2, 0x4, 0x6, 0x8 to class 1 and packets with all other TOS values to class 0 you could change your priomap such (you have to state it when setting up the "prio" qdisc if you want to have something different from the default priomap): 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 The TOS bits have the following meaning: | Binary Decimcal Meaning | ----------------------------------------- | 1000 8 Minimize delay (md) | 0100 4 Maximize throughput (mt) | 0010 2 Maximize reliability (mr) | 0001 1 Minimize monetary cost (mmc) | 0000 0 Normal Service Of course, they can be combind, and so you can get these 16 values (2^4) which are stated in the upper table. You'll find very good documentation not only within the LARTC howto (chapters 9.2.1 [1] and 9.5.3 [2]) but also within [3]. HTH, Steffen [1] http://lartc.org/howto/lartc.qdisc.classless.html#AEN659 [2] http://lartc.org/howto/lartc.qdisc.classful.html#AEN899 [3] http://opalsoft.net/qos/DS-23.htm _______________________________________________ LARTC mailing list / LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/