
finally, I have found that it is ovs bug. when reboot vm, libvirt will call ovs-vsctl del-port, this cmd will cause other port's tc ingress rule automatically remove. http://openvswitch.org/pipermail/discuss/2015-July/018318.html I have reported a bug for ovs, and they have admitted it. anyway, thank you for your reply. At 2015-08-03 15:34:11, "Michal Privoznik" <mprivozn@redhat.com> wrote:
On 20.07.2015 10:43, ychen wrote:
hi: when I use openstack devstack to test QOS, wired phenomenon appeared, I set qos ingress rule in tapB, but when I reboot tapA, the ingress rule of tapB automatically removed, but the egress rule is still exist. Test enviroment: Linux: ubuntu 14.04.1 LTS kernel: 3.13.0-32-generic libvirt: 1.2.2 openstack: havana
1. use nova to create vm A and vm B. for the configuration of the libvirt xml, see the last paragraph in the end. 2. use tc cmd to create qos rule for vm A and vm B tc qdisc add dev tap3d0d2c4a-0b ingress //vmA tc qdisc add dev tap896d5066-69 ingress //vmB
3. then use cmd "sudo virsh destory 142a08db-6e25-4a03-be13-7073104b0745 " to first shutdown vm1 then I see ingress rule of vmB disappeared :(
Interesting. With the latest libvirt I am unable to reproduce - there's a check and QoS is cleared out only if set in domain XML. Since your domain XML lacks it, I guess it's either already fixed or not libvirt fault.
Michal