Comment 0 for bug 1813744

Revision history for this message
Yang Li (yang-li) wrote : Ingress qos will cause packets drop for other ports

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
# 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.