Concurrent calls to _bind_port_if_needed may lead to a missing RPC
notification which can cause a port stuck in a DOWN state. If the only
caller that succeeds in the concurrency does not specify that an RPC
notification is allowed then no RPC would be sent to the agent. The
other caller which needs to send an RPC notification will fail since the
resulting PortContext instance will not have any binding levels set.
The failure has negative effects on consumers of the L2Population
functionality because the L2Population mechanism driver will not be
triggered to publish that a port is UP on a given compute node. Manual
intervention is required in this case.
This patch proposes to handle this by populating the PortContext with
the current binding levels so that the caller can continue on and have
an RPC notification sent out.
Closes-Bug: #1755810
Story: 2003922
Change-Id: Ie2b813b2bdf181fb3c24743dbd13487ace6ee76a
This method calls Pyroute2 library. This library needs always a defined
value for "rate" (minimum bandwidth). The default value assigned should
be 1 (kbps).
Change-Id: I07a8e70248892b7fb4590fdec232fa24d8a937e6
Closes-Bug: #1826565
Bump up the required and lower constraint for neutron-lib to use the
latest release 1.26.0. Also see https://review.opendev.org/#/c/653887/
Change-Id: I55344c117793ddce91ad95401e1306d6605ee586
"bridge" commands executed inside a namespace will be needed
initially to test the TC filter for VXLAN traffic. Those tests
will create two namespaces with VXLAN interfaces in order to check
the functionality of this new TC filter.
Related-Bug: #1560963
Change-Id: I3553b89fc0436c9cf83c66ab447ba4b4a6268ee1
Due to the class inheriting order the dvr local router will
be counted to the l3 agent restart query. This will cause
l3 agent run the ha port down action. This patch renames
the function to avoid that.
Closes-Bug: #1825787
Change-Id: Id965a6140ae9a06e0b6707800933cbc14bf5bf3f
Creating the provider network is a necessary step for option 1. The step
is only described in a document in the general installation guide.
This patch links this document at the end of every option1 controller
installation document
Change-Id: I33713aec50e0646a3b42b9d202ac730d3a0578a5
Close-Bug: #1824788
If dvr router is processed on a 'dvr_snat' node but without snat
functionality, the port forwarding should not be processed on
this host since the snat-namespace will never be created. For
instance, the isolated DHCP node which only have the namespace
of qrouter. The l3 agent will process this router, but should
not do any port forwarding actions.
Change-Id: I6ecd86089643f4eb98865a8d8d0dec4359564026
Closes-Bug: #1825088
Currently, most implementations override the L3NatAgent class itself
for their own logic since there is no proper interface to extend
RouterInfo class. This adds unnecessary complexity for developers
who just want to extend router mechanism instead of whole RPC.
Add a RouterFactory class that developer can registers RouterInfo class
and delegate it for RouterInfo creation. Seperate functions and variables
which currently used externally to abstract class from RouterInfo, so that
extension can use the basic interface.
Provide the router registration function to the l3 extension API so that
extension can extend RouterInfo itself which correspond to each features
(ha, distribtued, ha + distributed)
Depends-On: https://review.openstack.org/#/c/620348/
Closes-Bug: #1804634
Partially-Implements: blueprint openflow-based-dvr
Change-Id: I1eff726900a8e67596814ca9a5f392938f154d7b
_get_ports_query add filters after a get_collection. If limits are
passed to applied to the query, then no additional filter is allowed.
This patch extracts an eventual limit argument, to apply it only after
the additional filters.
Change-Id: I83394394860d10e27379efe0356d0fa9c567140e
Closes-Bug: #1826186
When the vlan and vxlan both exist in env, and l2population
and arp_responder are enabled, if we update a port's ip address
from vlan network, there will be arp responder related flows
added into br-tun, this will cause too many arp reply for
one arp request, and vm connections will be unnormal.
Closes-Bug: #1824504
Change-Id: I1b6154b9433a9442d3e0118dedfa01c4a9b4740b
Add a unique id for resource update, then we can calculate
the resource processing time and track it.
Related-Bug: #1825152
Related-Bug: #1824911
Related-Bug: #1821912
Related-Bug: #1813787
Change-Id: Ib4d197c6c180c32860964440882393794aabb6ef
The dhcp-agent is initializing the iptables 'nat' table even
though it is never inserting any rules there besides the
ones being done at init time. Since this table is really
intended for the l3-agent, add an argument so we can control
the initialization.
Change-Id: Iebda49e7da99bd3bc8c985132516ae5edafdfe20
To fix bug 1722584 we inserted a checksum-fill rule for
metadata proxy replies. Recent kernels have disabled
this support for TCP because it was invalid, and
supposedly not doing anything, so let's get ahead of
things and remove the code.
Kernel mailing list discussion is at
https://lore.kernel.org/patchwork/patch/824819/
Partially reverts ed1c3b021751273e427d47fcf544c56bdabf97bb
Change-Id: Ib7cc8f82a91972f17987fb95130edc4069d9423f
Related-bug: #1722584
There is a lock synchronized created by Neutron IpsetManager
with common name 'neutron-ipset'. Some deployments
could use multiple IpsetManagers object in separated
namespaces. Because of this on heavy-loaded environments
with a lot of ports and related security groups
it could end with not-consumed rabbitmq queue on security
groups notification. To prevent that this lock should be
parametrized by namespace name.
Change-Id: I319cbd9b3b9713340859f362913ceb21ff514cb0
Since WSGI is more important, we should be collecting data on
compatibility more consistently. So we shall move the WSGI jobs from
the experimental queue to the check queue, while maintaining their
nonvoting status.
Change-Id: I24aa7a0c2245973327e4d74039f96a7efb2a8988
Rehomed provider_network_attribute_updates_supported to
plugins.ml2.api.MechanismDriver, in order to be inherited in other
mechanism drivers.
Related-Bug: #1823865
Change-Id: I9be175aa2334111a17d8fec874d2331e23923837
Now all floating IPs will have QoS functionality, so
adds the doc to users/operators.
Change-Id: I39c6bfe5c3ee5d0937c5b19deada0a8dcf1716df
Related-Bug: #1796925
The trunk constants now live in neutron-lib. This patch consumes them
by removing neutron.services.trunk.constants and using them from
neutron-lib instead.
Depends-On: https://review.opendev.org/#/c/650372/
NeutronLibImpact
Change-Id: I4445c44c7e321d0fc35976d4d855c148bb9a3b18
Today all the code for SUBNETPOOL_ADDRESS_SCOPE callback events uses
the payload style kwargs, however 1 use still calls notify() rather
than publish() which should be used for the payload style callbacks.
This patch fixes the issue.
NeutronLibImpact
Change-Id: Icc598169cc07db7270d452834439953b3bf273c2
For auto-address IPv6 subnets postcommit has update port action
if the net already has ports. This results in
"cannot be called within a transaction" error for bulk IPv6 subnet
create.
Closes-Bug: #1822582
Change-Id: Ia32ec4c11c0793e7df07dcce19c122b3c7f865e1