All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Furniss <adf.lists@gmail.com>
To: lartc@vger.kernel.org
Subject: Re: Can't get the ingress policer to work
Date: Thu, 09 May 2013 11:00:33 +0000	[thread overview]
Message-ID: <518B81D1.2040400@gmail.com> (raw)
In-Reply-To: <518B64EE.8060503@open-t.co.uk>

Sebastian Arcus wrote:
> I'm trying to limit the bandwidth on the ingress leg of my Internet
> connection. I'm using the code from lartc.org:
>
>
> tc qdisc add dev eth0 handle ffff: ingress
>
> tc filter add dev eth0 parent ffff: protocol ip prio 50 \
>      u32 match ip src 0.0.0.0/0 police rate 500kbit \
>      burst 10k drop flowid :1
>
>
> I've tried rates of 1Mbit, 10Mbit, 100Mbit. I've tried bursts of 1k,
> 10k, 100k, 1000k. Nothing seems to make any difference. The test
> download starts at about 20Mbytes/second - then keeps on slowing down
> and stalling intermittently all the way down to 6kbytes/second. Then it
> bobs up and down, stalling all the time, between 5kbytes/second and
> 17kbytes/second. There seems to be absolutely no relation between the
> rate I set and the resulting download rate.
>
> I'm testing on two VM's. With no traffic shaping on, I get about 36
> megabytes/second clean speed between the two vms. Kernel on both sides
> is 3.8.4. I'm only applying traffic shaping on one of the vm's.
>
> Any suggestions would be much appreciated. I ran out of ideas so far.
> I've reread the tc-htb man page, searched google on the ingress queue -
> but can't see what am I missing.


I've never tested with a virtual machine so don't know exactly what to 
do. The issue is that by default the kernel/driver will aggregate 
inbound packets into larger ones and this doesn't work well with 
policers default mtu setting as it drops them.

I have suggested mtu 3100 in the past as an extra parameter as it 
happened to work on a quick test on a real 100m nic - maybe for vm you 
need to go higher, or just turn off any sort of offload for the virtual 
device with ethtool and see if that helps.

ethtool -k <devname>

to see what the settings are (generic-receive-offload is likely the 
culprit) and eg.

ethtool -K <devname> gro off



      parent reply	other threads:[~2013-05-09 11:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-09  8:57 Can't get the ingress policer to work Sebastian Arcus
2013-05-09  9:39 ` Sebastian Arcus
2013-05-09  9:51 ` Ian Macintosh
2013-05-09 10:09 ` Sebastian Arcus
2013-05-09 10:21 ` Andy Furniss
2013-05-09 10:28 ` fanfei
2013-05-09 10:36 ` Sebastian Arcus
2013-05-09 10:41 ` Sebastian Arcus
2013-05-09 11:00 ` Andy Furniss [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=518B81D1.2040400@gmail.com \
    --to=adf.lists@gmail.com \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.