yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #88628
[Bug 1962465] Re: [L3][QoS] FIP QoS extension cannot handle duplicated FIP addresses
Reviewed: https://review.opendev.org/c/openstack/neutron/+/831238
Committed: https://opendev.org/openstack/neutron/commit/132905d81f8799f249936ecb9d56641749df8724
Submitter: "Zuul (22348)"
Branch: master
commit 132905d81f8799f249936ecb9d56641749df8724
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date: Mon Feb 28 17:56:33 2022 +0000
[L3][QoS] L3 agent QoS extension to handle duplicated FIPs
The L3 agent QoS extension should be able to handle duplicated floating
IP addresses from different registers. Those floating IP addresses can
be hosted in different networks and routers but the same compute node
and L3 agent.
Now, instead of using the IP address as unique identifier, this patch
stores the (ID, IP address) tuple. This tuple is unique per floating IP
register and holds the IP address, needed by the "tc" library to set
the QoS rules.
Closes-Bug: #1962465
Change-Id: I3a09718c6e79fd1f37eb75264389c4e5043076a7
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1962465
Title:
[L3][QoS] FIP QoS extension cannot handle duplicated FIP addresses
Status in neutron:
Fix Released
Bug description:
The classes "RouterFipRateLimitMaps" and "RateLimitMaps" (the child
and parent classes), cannot handle the case when two FIP addresses,
from different networks and routers, are the same.
Steps to reproduce:
- It is needed a compute node with access to two public networks (for example, two VLAN networks connected to the same physical network).
- Each network will have one subnet, both with the same CIDR.
- Create private networks, two routers and connect each router to a private and a public network.
- Create two FIPs, each one in a different public network. Both FIPs must have the same IP address.
- Create two QoS policies with one max-bw rule.
- Assign each QoS policy to each FIP
--> the members to store the QoS information in the related classes use the FIP address (the IP address string) to identify uniquely the FIP resources. With the explained reproducer, the second FIP will overwrite the first one.
For example, if the both QoS policies are detached from the FIPs, we'll have the following message in the L3 agent:
DEBUG neutron.agent.l3.extensions.qos.base [-] L3 QoS extension did not have information on floating IP 192.168.20.202 {{(pid=213406) _clean_by_resource /opt/stack/neutron/neutron/agent/l3/extensions/qos/base.py:129}}
This is because when the first FIP address is removed from "RouterFipRateLimitMaps.qos_policy_resources", the second one cannot be find.
A new way to identify unambiguously the FIPs in the L3 agent QoS
extension is needed.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1962465/+subscriptions
References