All of lore.kernel.org
 help / color / mirror / Atom feed
* Unexpected result with PFIFO or PRIO queue disciplines
@ 2014-09-11  9:19 Miguel Ángel Bernabé
  2014-09-15  9:18 ` Andy Furniss
  0 siblings, 1 reply; 2+ messages in thread
From: Miguel Ángel Bernabé @ 2014-09-11  9:19 UTC (permalink / raw)
  To: lartc

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Unexpected result with PFIFO or PRIO queue disciplines
  2014-09-11  9:19 Unexpected result with PFIFO or PRIO queue disciplines Miguel Ángel Bernabé
@ 2014-09-15  9:18 ` Andy Furniss
  0 siblings, 0 replies; 2+ messages in thread
From: Andy Furniss @ 2014-09-15  9:18 UTC (permalink / raw)
  To: lartc

Miguel Ángel Bernabé wrote:

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

You need to use something like htb that rate limits and set the limit
for your wan speed.

dsl/atm have overheads so ideally you need to know exactly how you are
connecting (pppoa/pppoe/llc/vc mux/ipoa etc) to allow for these. Failing
that you will need to set speed somewhat below the sync speed.

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

Not broken, but without something rate limiting you need to be heavily
maxing the eth and even then there may be buffering in driver/somewhere
that can mess up some tests.



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-09-15  9:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-11  9:19 Unexpected result with PFIFO or PRIO queue disciplines Miguel Ángel Bernabé
2014-09-15  9:18 ` Andy Furniss

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.