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