In some cases the OVS agent might end up wiring a port for a VM
several seconds after the VM has booted. As a result, there is a
risk that the VM won't receive an IP address from DHCP in time.
This patch changes the default value for agent.minimize_polling to
True. This change should reduce the time needed for configuring
an interface on br-int consistently.
Change-Id: I009f606fd34a132376f1d50f8ccda9d35d064bfa
Related-bug: 1224001
If minimize_polling=True and the ovsdb-client process died, the
default respawn interval of 0 would mean that we'd start polling
again. This patch adds the option ovsdb_monitor_respawn_interval and
defaults it to 30 seconds.
Change-Id: I12c1e05ec4d6d2bd4d84024a91116e2ac3974868
Close-Bug: 1243867
If the neutron server erroneously thinks than the l2 agent is down
it will fail to bind a port, which can lead to VM's spawn errors.
However, the issue is only transient because the agent effectively
is only 'late' in reporting back.
Best solution would be an alpha-count algorithm (so that we can detect
persistent failures more reliably), but for now let's be more tolerant
assuming that the agent is down by waiting at least twice the report
interval plus a tiny teeny bit.
Change-Id: I544135ce1f6b7eaefb34ac44af8f5844d92ddd95
Close-bug: #1244255
nvp_cluster_uuid is no longer used; it was missed
during the configuration file tweaks that was done
during Havana.
Change-Id: Id6dd684833c99453cd97d88584be04d99fd21550
Closes-bug: #1251086
Change https://review.openstack.org/#/c/34515 moved the database
config items to neutron.conf but left some commented out
[database] items. Remove them as well.
Closes-Bug: #1247589
Change-Id: I05913d0c27a683cec30cae31a1978612aa1e1360
Most of the OpenStack project makes use of lower case for
configuration group names. But, 'neutron' was having group
names in either cases. Bug states it is fine to have group
name in upper case for [DEFAULT] but needs to be changed
for others. It was noted that [PLUMgridDirector] was having
characters.
Change-Id: I95f2dad6d5ae17f722202f4917b6ef460cd41e15
Closes-Bug: #1176683
Removing workflows handling from the driver code.
Removing workflow related files
Modifying tests to support new behavior
Change-Id: Icbb6106db07e5b33c37192aa53d088e67bd4a795
Closes-bug: #1239288
The default for send_arp_for_ha was 3 and is now 0.
This patch changes the comment in l3_agent.ini to
show the new default.
Change-Id: I77370350ffee6ad7b94aa7db341c062ebc0b7d89
This change adds the ability to monitor the local ovsdb for
interface changes so that the l2 agent can avoid unnecessary
polling. Minimal changes are made to the agent so the risk
of breakage should be low. Future efforts to make the agent
entirely event-based may be able to use OvsdbMonitor as a
starting point.
By default polling minimization is not done, and can only be
enabled by setting 'minimize_polling = True' in the ovs
section of the l2 agent's config file.
Closes-Bug: #1177973
Change-Id: I26c035b48a74df2148696869c5a9affae5ab3d27
Fixes bug 1234826
This fix adds a "nexus_l3_enable" configuration boolean for the
Cisco Nexus plugin. When this config boolean is set to False (default),
then the Nexus switches are only used for L2 switching/segmentation, and
layer 3 functionality is deferred to the OVS subplugin / network
control node. If this config boolean is set to True, layer 3
functionality, e.g. switch virtual interfaces, are supported on
the Nexus switches. (Note that layer 3 functionality is not supported
on all versions/models Nexus switches.)
Some other things addressed with this fix:
- The l3_port_check keyword argument which is optionally passed to the
Cisco plugin's delete_port method was not being forwarded on to the
OVS (sub) plugin. This keyword argument needs to be forwarded to OVS
e.g. when the delete_port is being done in the context of a
router interface delete (whereby l3_port_check==False).
- UT test cases are added for new "nexus_l3_enable" config, which
exercise router interface add/delete.
- The Cisco test_network_plugin.py module is refactored/reorganized
in order to cleanly add a new router interface test class.
- The test_model_update_port_rollback test case was yielding a false
positive result (device_owner was not being passed to self.port).
Change-Id: I994b2b82769ea5e10e50dbe3a223d1518e99f714
Closes-Bug: #1189671
Quota driver is now loaded in lazy mode, i.e. the driver is loaded
the first time the driver is accessed. This is to make unit tests
work. Some unit tests like extension test cases need to use Config
Quota driver (previous default) but QuotaEngine is initialized
when quota.py is imported. Thus the unit tests had no chance to
specify quota_driver.
Change-Id: I9e20961d5a6322361e3c0284b3c2a7ca86755c70
Changes the rpc_support_old_agents config variable default value to
False, so that the vlan_id field (redundant with the segmentation_id
field) is no longer included in RPC messages from the linuxbridge and
mlnx plugins to their corresponding L2 agents. This can be set to True
if needed to support L2 agents older than midway through the havana
cycle.
Closes-Bug: 1235323
Change-Id: I919824c5b02e28e3563e64e98bb106bf722327ec
This commit adds portbinding extension support to
the cisco nexus mechanism driver.
Fixes bug: 1220878
Change-Id: I72003961b46190b82681b471f4f9cb5b11d3d068
In Havana, NVP configuration was simplified;
in the process a few options that existed
in Grizzly or older were deprecated. This
change removes those options from the Icehouse
tree.
Fixes bug #1221840
Change-Id: Id83a339c88ec2477718a350b6ac1678ccba01509
This patch adds an option for always synchronizing operational status
on a show operation; regardless of the synchronization thread, when
this option is enabled, the resource status is always fetched from
the backend.
The patch also fixes an issue observed when running test_nvp_sync
alone.
Bug #1229149
Bug #1229243
Change-Id: Ifef52ac1c48e32f413d51fc04fd926073335665d
This change to the WSGI code uses openstack.common.service to create
multiple worker processes to handle API load. The main process will
start up a configurable (workers=??) number of child processes which
will all listen on the bind port. The main process becomes the parent
and manages the children. The parent is not a worker.
Backwards compatibility is preserved by setting api_workers to 0, the
default. In this case, no separate worker processes are spawned and
the worker threads run in the main process.
Implement blueprint multi-workers-for-api-server
Change-Id: Iffa76041d0055840ccca852814b0e71f17a950ac
This change dynamically adjusts the maximum number of leases based on
the size of the subnets associated with a network. The upper bound is
limited by a configurable option to keep the max reasonable and prevent
denial of service.
Closes bug: 1225200
Change-Id: I75c3907bcf45cd991eadf5dd8c8ad7f1eaab3c85
Updated policy for firewall_policy and firewall_rule to allow sharing
among tenants. Added a new firewall sharing rule to enable this.
Change-Id: I5d4d9f94fb3abffe4d1b03c46fd5b13a8a4a4f09
Fixes: bug #1217103
This patch introduces VXLAN support for Linuxbridge agent alongside
with ml2 plugin support in linubridge mechnism driver.
A new vxlan configuration section is added for vxlan related parameters.
The agent also implements l2population RPC callbacks which allows ml2
plugin using l2population mechnism driver to populate vxlan forwarding
and neighbor tables following portbinding events. It allows agent to
respond locally to ARP requests for remote VMs and avoid dataplane based
learning. This should help limiting the use of multicast or flooding
for broadcast emulation in vxlan networks.
These changes should anyway have a limited risk, as agent behaviour
shouldn't be affected, except when vxlan is enabled alongside ml2 plugin.
Implements: blueprint l2-population
Change-Id: I99a961c53f9e451409f1affb079042936d8ae5c6
This patchset implements l2-population RPC callbacks in OVS agents,
it enables plugin to populate forwarding table following portbindings
events.
For now, it doesn't include ARP responder implementation which is
deferred to a future patchset (As this feature isn't yet supported by
OVS, it will require the use of an external responder such as ebtables)
It anyway brings some improvements in tunnelling management, as agent
will tear-down unecessary tunnels, and flood packets on a per-network
basis rather than to all other agents.
These changes should anyway have a limited risk, as tunnel management
won't be affected as long as l2_population option is not set. This
option must be used in conjonction with ml2 plugin using l2population
mechanism driver.
Implements: blueprint l2-population
Change-Id: I5185eefedb0ff392bc8b99d16f810813e26ff58d
Help text was added to the configuration options defined in the brocade neutron
plugin. This help text should assist users of the brocade plugin. The OSTYPE
configuration option was not used in the plugin and was labeled as such so a
user of the plugin would not worry about the meaning of it.
The example etc file /etc/neutron/plugins/brocade/brocade.ini has been updated
to share the same help values where applicable.
Fixes-Bug: #1157511
Change-Id: Ie068396e77902037a7a0b5334d4dfb0dcdd3575e
Some users of the Pidfile class don't specify root_helper,
which then defaults to 'sudo', which will generate an error.
Remove root_helper altogether since we actually don't need
root priveleges to read /proc/$pid/cmdline.
Changed code to use open.readline() instead of a shell, and
tweaked tests accordingly.
Also cleaned-up the rootwrap filters that allow it as they
are not used anymore.
Fixes bug 1218142
Change-Id: I6691feb1c9f7bfa261a7ec464fd8f3f92168c302
Allow for default network/policy profile to be used if
no network/policy profile is specified during network/port creation
in the Cisco N1KV plugin.
Change-Id: I6120abb5abb9a869eb7310453cf27dd8f72bfd1d
Closes-Bug: #1218588
Implement API/driver interface for configuring vShield Edge Appliance.
Currently implemented functions:
- Deploy an Edge
- Destroy an Edge
- Configuring interfaces
- Configuring SNAT/DNAT rules
- Configuring default gateway and static routes
- Query Edge status
- Task-based asynchronous model
- Allow old routes/nat config to be skipped if new updates are coming
Implements: blueprint vcns-driver
Change-Id: I881bde907f4c90de4c919d008b76b8c2a2d0e1fd
Port of the quantum/plugin/cisco/nexus plugin to run under the Modular
Layer 2 (ML2) infrastructure as defined in
https://blueprints.launchpad.net/quantum/+spec/ml2-mechanism-drivers
Implements blueprint ml2-md-cisco-nexus
Change-Id: Ifdd03bec554a08266de859387f1901858a3be4a1