There are 2 instances(A:192.168.100.22, B:192.168.100.25) in a compute nodes, and they are in a same subnet. When I set a qos policy(with egress and ingress bandwidth 1Mb) to an instance A, if there is heavy traffic in instance B, the packets through instance A will be dropped.
Step:
1.Create qos policy egress and ingress
# openstack network qos policy create test
2.Update instance B's port with qos policy
# neutron port-list | grep af693927-8fff-4c73-b2cf-0341a31589c9
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
| af693927-8fff-4c73-b2cf-0341a31589c9 | | ce87e33e1cf145a89ecf8e3a2e19f9d9 | fa:16:3e:53:49:8d | {"subnet_id": "83dbc649-eb2d-418d-a6f0-6b33aa5a5752", "ip_address": "192.168.100.25"}
# neutron port-update --qos-policy test af693927-8fff-4c73-b2cf-0341a31589c9
3. start heavy traffic to instance A
# ip netns exec qdhcp-c0206319-d8ba-43af-b96c-54a188bc82fc ssh cirros@192.168.100.22
$ nc -l -p 10000 > /dev/null
# ip netns exec qdhcp-c0206319-d8ba-43af-b96c-54a188bc82fc nc 192.168.100.22 10000 < /dev/zero
4.start to ping instance B
# ip netns exec qdhcp-c0206319-d8ba-43af-b96c-54a188bc82fc ping 192.168.100.25
PING 192.168.100.25 (192.168.100.25) 56(84) bytes of data.
64 bytes from 192.168.100.25: icmp_seq=8 ttl=64 time=1031 ms
64 bytes from 192.168.100.25: icmp_seq=9 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=17 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=18 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=19 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=33 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=34 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=35 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=37 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=47 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=48 ttl=64 time=1002 ms
The result shows that 30+ packets are dropped, it looks like B's qos will cause A dropping packet.
But when I remove ingress rule, only egress rule exists, the packets drop won't happen.
There are 2 instances( A:192.168. 100.22, B:192.168.100.25) in a compute nodes, and they are in a same subnet. When I set a qos policy(with egress and ingress bandwidth 1Mb) to an instance A, if there is heavy traffic in instance B, the packets through instance A will be dropped.
Step:
1.Create qos policy egress and ingress
# openstack network qos policy create test
# openstack network qos rule create --max-kbps 1024 --max-burst-kbits 1024 --ingress --type bandwidth-limit test
# openstack network qos rule create --max-kbps 1024 --max-burst-kbits 1024 --egress --type bandwidth-limit test
2.Update instance B's port with qos policy 8fff-4c73- b2cf-0341a31589 c9 8fff-4c73- b2cf-0341a31589 c9 | | ce87e33e1cf145a 89ecf8e3a2e19f9 d9 | fa:16:3e:53:49:8d | {"subnet_id": "83dbc649- eb2d-418d- a6f0-6b33aa5a57 52", "ip_address": "192.168.100.25"} 8fff-4c73- b2cf-0341a31589 c9
# neutron port-list | grep af693927-
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
| af693927-
# neutron port-update --qos-policy test af693927-
3. start heavy traffic to instance A d8ba-43af- b96c-54a188bc82 fc ssh cirros@ 192.168. 100.22
# ip netns exec qdhcp-c0206319-
$ nc -l -p 10000 > /dev/null
# ip netns exec qdhcp-c0206319- d8ba-43af- b96c-54a188bc82 fc nc 192.168.100.22 10000 < /dev/zero
4.start to ping instance B d8ba-43af- b96c-54a188bc82 fc ping 192.168.100.25
# ip netns exec qdhcp-c0206319-
PING 192.168.100.25 (192.168.100.25) 56(84) bytes of data.
64 bytes from 192.168.100.25: icmp_seq=8 ttl=64 time=1031 ms
64 bytes from 192.168.100.25: icmp_seq=9 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=17 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=18 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=19 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=33 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=34 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=35 ttl=64 time=514 ms
64 bytes from 192.168.100.25: icmp_seq=37 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=47 ttl=64 time=515 ms
64 bytes from 192.168.100.25: icmp_seq=48 ttl=64 time=1002 ms
The result shows that 30+ packets are dropped, it looks like B's qos will cause A dropping packet.
But when I remove ingress rule, only egress rule exists, the packets drop won't happen.