Unexpected result with PFIFO or PRIO queue disciplines

Linux Advanced Routing and Traffic Control

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

 



Using Ubuntu 12.10 (Linux version 3.5.0), i would like to do some basic QoS on an ethernet interface. This ethernet interface is the default route to the internet.

As i concern, the default Linux queue discipline configured for network devices is the `pfifo_fast` queue discipline that gives priority regarding TOS mark in the IP datagram header.

To test this queue discipline i am using `ping` with the option `-Q` to set the DSCP value of the packets.

$ ping -Q 184 www.google.com

I start with a round-trip time about 50ms but as soon i start to upload a file to Dropbox service via HTTP the ping time increases up from 50ms to 1500ms and it becomes very unstable. I have checked that TOS mark for Dropbox traffic is 0x0.

Then I am trying to accomplish the same task using `PRIO` queue discipline. To test this queue discipline i create the root PRIO queue discipline associated to the ethernet interface. Then i add a filter to send ICMP traffic to the most priority queue:

# tc qdisc add dev eth0 root handle 1: prio
# tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip protocol 1 0xff flowid 1:1

After configuring `PRIO` queue discipline i am failing with the same result, ping time increases much again as soon i upload a file to any hosting service.

I have checked tc statistics and i see that ICMP packets are already sent to the band 0 while dropbox traffic is queued in a less priority queue.

$ tc -s class show dev eth0
class prio 1:1 parent 1:
 Sent 7486 bytes 74 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
class prio 1:2 parent 1:
 Sent 863935 bytes 1956 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
class prio 1:3 parent 1:
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0

My gateway is connected to the internet via ATM/DSL connection, upstream speed is 0.6Mbps and downstream speed is 10Mbps. If i configure the router as a bridge between LAN/ATM ports and I try to connect via PPPoE from LAN (so i configure the Qdisc for ppp0 interface) I get the same unexpected result, so the bottleneck is not in my router.

Are `prio` or `pfifo_fast` queue disciplines broken in the Linux kernel?.

--
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