pfifo_fast behavior.

Linux Advanced Routing and Traffic Control

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

 



Hello everyone!

I was trying to do some traffic shaping to make http pages more responsive while torrenting. So I decided to modify TOS value of packets to have an affect on the default pfifo_fast qdisc.

I've the following iptable rules --

#DNS request
iptables -t mangle -A OUTPUT -o eth1 -p udp -m multiport --dports 53 -j TOS --set-tos 0x10

#DNS response
iptables -t mangle -A PREROUTING -i eth1 -p udp -m multiport --sports 53 -j TOS --set-tos 0x10

#Incoming torrent connections
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --dports 2000 -j TOS --set-tos 0x2 iptables -t mangle -A PREROUTING -i eth1 -p udp -m multiport --dports 2000,1900,2001 -j TOS --set-tos 0x2

#Mail server
iptables -t mangle -A OUTPUT -o eth1 -p tcp -d imap.googlemail.com -m multiport --dports 993 -j TOS --set-tos 0x10

#HTTP(S)
iptables -t mangle -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443 -j TOS --set-tos 0x14 #iptables -t mangle -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443 -j TOS --set-tos 0x10 iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --sport 80,443 -j TOS --set-tos 0x14 #iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --sport 80,443 -j TOS --set-tos 0x10

There is an improvement, but it's so little that it feels like placebo, making me doubt the above action. So are the actions correct?

man tc-prio has a table --

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

But is there a difference between all TOS values which fall in a single band?

I mean, does the behavior of pfifo_fast change if I change from 0x12 to 0x16? Cause I thought the qdisc to be simple, and a different behavior for all of the above TOS values means pfifo_fast does a lot more than just placing packets in 3 different queues.

Another question -- how do you get these TOS values? and what does -j TOS --set-tos <HEX/DEC> do? Does it modify the 4 bits or the whole 8 bit TOS value in the header, or does something completely different?

I'm running a custom kernel with Gentoo OS.
--
To unsubscribe from this list: send the line "unsubscribe lartc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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