
On Tue, Jul 12, 2011 at 13:57:06 +0200, Michal Privoznik wrote:
This patch series add support for setting traffic shaping and policing on both domain's interface and network's virtual bridge. Basically, this is done via 'tc' from iproute2 package. For shaping is HTB used, for policing we need u32 match selector. Both should be available in RHEL-6 kernel.
How this works: On an virtual interface which has limits defined a root qdisc are replaced. Ingress root for outbound traffic shaping and egress for inbound. Basically, in inbound traffic policing is applied, on outbound shaping. New qdiscs are set to limit the traffic to rate set in XML. For shaping it is possible to set the size of buffer. Accepted values for rate, peak and burst have same format as 'tc' command and are documented.
Supported devices are VIR_DOMAIN_NET_TYPE_NETWORK, VIR_DOMAIN_NET_TYPE_BRIDGE and VIR_DOMAIN_NET_TYPE_DIRECT.
One more thing. Would it be possible to also implement new APIs to manage network bandwidth on-the-fly? It's not for this patchset but is does sound like a good idea to have the possibility to, for example, restrict bandwidth of a running domain since more domains need to use the network or increase the bandwidth because host's owner got more money from domain's owner :-) Jirka