22079 Commits

Author SHA1 Message Date
Slawek Kaplonski
579d70330e Switch neutron-tempest-dvr-ha-multinode-full job to Python 3
Change-Id: If24bf62ff32963e1ea62c59a261287e5ee095a8e
2019-05-01 14:47:12 +00:00
Slawek Kaplonski
70e5d9c343 Switch neutron-tempest-with-uwsgi job to python 3
Change-Id: Ifff3ebe1ce409e8fef59d0c86b796f5b193a8249
2019-05-01 05:43:47 -06:00
Kailun Qin
0dc730c7c0 Populate binding levels when concurrent ops fail
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
2019-05-01 15:50:48 +08:00
Zuul
f53df97e6a Merge "use trunk constants from neutron-lib" 2019-05-01 03:14:01 +00:00
Zuul
32b2d87ba0 Merge "Install doc: append provider network creation link" 2019-05-01 02:15:09 +00:00
Zuul
ef8e825e89 Merge "bump neutron-lib to 1.26.0" 2019-05-01 02:15:06 +00:00
Rodolfo Alonso Hernandez
3a4db946fd "add_tc_policy_class" must always assign a default value to "min_kbps"
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
2019-04-29 17:33:41 +00:00
Zuul
b43aad9d75 Merge "Add namespace support for "bridge" commands" 2019-04-29 15:59:37 +00:00
Boden R
130dad25b6 bump neutron-lib to 1.26.0
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
2019-04-29 09:44:54 -06:00
Rodolfo Alonso Hernandez
5d099f17eb Add namespace support for "bridge" commands
"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
2019-04-29 07:52:18 +00:00
Zuul
0fa2e3720f Merge "Only TC class "htb" is supported" 2019-04-28 10:40:58 +00:00
Zuul
806abfce34 Merge "Not process port forwarding if no snat functionality" 2019-04-28 10:40:55 +00:00
LIU Yulong
8f2fc1ee5e List ha router count should not include dvr local router
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
2019-04-28 11:43:22 +08:00
LIU Yulong
07b1a9a4b4 Trivalfix: set the right function to fip qos test
Change-Id: I4704d4a38902aee3af20a7cac3d789ea80f49d8c
2019-04-28 10:24:09 +08:00
Zuul
6f4962dcf8 Merge "Move subnet postcommit out of transaction for bulk create" 2019-04-27 19:14:25 +00:00
Gabriele Cerami
2b9655a784 Install doc: append provider network creation link
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
2019-04-27 16:32:48 +01:00
Zuul
07969cfe15 Merge "Don't add arp responder for non tunnel network port" 2019-04-27 12:42:51 +00:00
Zuul
554b7cd228 Merge "Add router_factory to l3-agent and L3 extension API" 2019-04-27 06:37:15 +00:00
Zuul
4063d6ecde Merge "Revert iptables TCP checksum-fill code" 2019-04-26 15:38:04 +00:00
LIU Yulong
4082e280c8 Not process port forwarding if no snat functionality
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
2019-04-26 15:26:51 +00:00
Rodolfo Alonso Hernandez
dbe8d33072 Only TC class "htb" is supported
In tc_lib.add_tc_policy_class [1], only "htb" type is supported.

[1]https://opendev.org/openstack/neutron/src/branch/stable/stein/neutron/agent/linux/tc_lib.py#L379

Change-Id: I2cb809c069c0e8cdd289b9977cb335ef3e2e3931
Closes-Bug: #1826557
2019-04-26 15:03:26 +00:00
Zuul
ad028b55ca Merge "Add update_id for ResourceUpdate" 2019-04-26 10:44:45 +00:00
Zuul
3749340b59 Merge "Get ports query: extract limit and use it only at the end." 2019-04-26 10:26:57 +00:00
Zuul
7dc958a642 Merge "Do not initialize the iptables nat table in the dhcp-agent" 2019-04-26 06:42:34 +00:00
Zuul
3e265616b3 Merge "Move wsgi jobs from experimental to check queue" 2019-04-26 05:06:57 +00:00
Zuul
bd250f9dcf Merge "Rehome provider_network_attribute_updates_supported to API definition" 2019-04-26 05:06:00 +00:00
Yang Youseok
ec875b42b6 Add router_factory to l3-agent and L3 extension API
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
2019-04-26 10:22:50 +09:00
Gabriele Cerami
cf8f3326be Get ports query: extract limit and use it only at the end.
_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
2019-04-25 18:50:15 +01:00
Zuul
c24c85c441 Merge "Fix some formatting issues in TESTING.rst" 2019-04-25 12:10:35 +00:00
Zuul
3a387051db Merge "Parametrize ipset locking with network namespace" 2019-04-25 12:03:59 +00:00
Zuul
fb518b1cb9 Merge "Replace git.openstack.org URLs with opendev.org URLs" 2019-04-25 03:08:34 +00:00
Yang Li
5301ecf41b Don't add arp responder for non tunnel network port
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
2019-04-25 02:34:42 +00:00
Zuul
0018e1b08e Merge "Check in "_update_segmentation_id" that the mech_driver has an agent" 2019-04-25 02:12:09 +00:00
LIU Yulong
9d60716cf1 Add update_id for ResourceUpdate
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
2019-04-25 09:09:27 +08:00
Brian Haley
5e9f298c97 Do not initialize the iptables nat table in the dhcp-agent
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
2019-04-24 20:56:03 -04:00
Zuul
7088f14ef4 Merge "[Doc] Add note for port forwarding floating IP QoS" 2019-04-25 00:51:07 +00:00
Brian Haley
b1b8a438fe Revert iptables TCP checksum-fill code
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
2019-04-25 00:39:11 +00:00
Maciej Józefczyk
2e6f6bf759 Parametrize ipset locking with network namespace
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
2019-04-24 20:05:28 +00:00
Zuul
540449cfbd Merge "Add log file for neutron-keepalived-state-change" 2019-04-24 19:04:47 +00:00
Zuul
dfb06533ef Merge "delete common_db_mixin" 2019-04-24 17:04:58 +00:00
Brian Haley
733d12991a Fix some formatting issues in TESTING.rst
Noticed when I copied a lot of this content over to
the networking-ovn repo.

Change-Id: I4e06cc15e4a30bf66c181d5ac729263b1efd605a
2019-04-24 11:36:01 -04:00
Nate Johnston
a97a8ee605 Move wsgi jobs from experimental to check queue
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
2019-04-24 15:26:20 +00:00
Rodolfo Alonso Hernandez
cfaf5cc1e1 Rehome provider_network_attribute_updates_supported to API definition
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
2019-04-24 14:21:13 +00:00
Zuul
ec71c0bd24 Merge "use publish for SUBNETPOOL_ADDRESS_SCOPE callback events" 2019-04-24 11:02:17 +00:00
LIU Yulong
d20c73cd2c [Doc] Add note for port forwarding floating IP QoS
Now all floating IPs will have QoS functionality, so
adds the doc to users/operators.

Change-Id: I39c6bfe5c3ee5d0937c5b19deada0a8dcf1716df
Related-Bug: #1796925
2019-04-24 10:23:26 +00:00
Rodolfo Alonso Hernandez
749b33e41b Check in "_update_segmentation_id" that the mech_driver has an agent
In [1] it is assumed that all mechanism drivers have an agent, but the
mech driver API [2] doesn't enforce it. VIF types will be retrieved
only from those mechanism drivers with an associated agent.

[1]https://review.openstack.org/#/c/633165/20/neutron/plugins/ml2/plugin.py@814
[2]https://github.com/openstack/neutron-lib/blob/stable/stein/neutron_lib/plugins/ml2/api.py#L37

Change-Id: I5c334f31259871ed5251d5d4a2ba8cae36bd2355
Closes-Bug: #1824346
2019-04-24 07:39:15 +00:00
Zuul
4765708ec7 Merge "Packets getting lost during SNAT with too many connections" 2019-04-24 03:13:18 +00:00
Boden R
88cca4cabe use trunk constants from neutron-lib
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
2019-04-23 13:54:11 -06:00
Boden R
018ed70d23 use publish for SUBNETPOOL_ADDRESS_SCOPE callback events
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
2019-04-23 10:33:02 -06:00
Oleg Bondarev
14c76d3181 Move subnet postcommit out of transaction for bulk create
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
2019-04-23 07:55:22 +04:00