OpenStack Networking (Neutron)
Go to file
Kevin Benton a2bd0b4b53 LinuxBridge: Use ifindex for logical 'timestamp'
With Xenial (and maybe older versions), the modified timestamps
in /sys/class/net/(device_name) are not stable. They appear to
work for a period of time, and then when some kind of cache clears
on the kernel side, all of the timestamps are reset to the latest
access time.

This was causing the Linux Bridge agent to think that the interfaces
were experiencing local changes much more frequently than they actually
were, resulting in more polling to the Neutron server and subsequently
more BUILD->ACTIVE->BUILD->ACTIVE transitions in the logical model.

The purpose of the timestamp patch was to catch rapid server REBUILD
operations where the interface would be deleted and re-added within
a polling interval. Without it, these would be stuck in the BUILD
state since the agent wouldn't realize it needed to wire the ports.

This patch switches to looking at the IFINDEX of the interfaces to
use as a sort of logical timestamp. If an interface gets removed
and readded, it will get a different index, so the original timestamp
comparison logic will still work.

In the future, the agent should undergo a larger refactor to just
watch 'ip monitor' for netlink events to replace the polling of the
interface listing and the timestamp logic entirely. However, this
approach was taken due to the near term release and the ability to
back-port it to older releases.

This was verified with both Nova rebuild actions and Nova interface
attach/detach actions.

Change-Id: I016019885446bff6806268ab49cd5476d93ec61f
Closes-Bug: #1622833
2016-09-14 17:02:46 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Close XenAPI sessions in neutron-rootwrap-xen-dom0 2016-03-18 13:05:09 -05:00
devstack devstack: finally fix the is_kernel_supported_for_ovs25 condition 2016-09-09 07:21:38 +00:00
doc Prepare retry decorator to move to plugin level 2016-09-08 14:07:08 -07:00
etc Remove FWaaS policy.json entries 2016-09-06 21:30:41 +00:00
neutron LinuxBridge: Use ifindex for logical 'timestamp' 2016-09-14 17:02:46 +00:00
rally-jobs Increase rally network/port count and add quotas 2016-08-18 10:51:46 +00:00
releasenotes Accept and return project_id for API calls 2016-09-12 19:23:53 +00:00
tools Merge "Make milestone-review-dash script pull all Stadium projects" 2016-09-01 11:37:44 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:31:29 +00:00
.gitignore Automatically generate neutron core configuration files 2015-11-27 15:22:59 +00:00
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc pylint: remove 'openstack' from ignore list 2016-09-08 16:39:02 +00:00
.testr.conf .testr.conf: revert workaround of testtools bug 2016-02-19 14:29:07 +01:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst Add a hacking rule for string interpolation at logging 2016-07-11 22:54:56 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
MANIFEST.in Include alembic versions directory to the package 2015-10-21 07:26:24 +00:00
README.rst corrected the link in README.rst 2016-08-01 23:48:05 +08:00
TESTING.rst Add information about using file based sqlite for unit tests 2016-07-25 23:54:38 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
requirements.txt Updated from global requirements 2016-09-09 23:48:20 +00:00
run_tests.sh Remove check for bash usage 2015-04-07 15:15:33 +00:00
setup.cfg Remove FWaaS entries from neutron setup.cfg 2016-08-29 19:09:07 +00:00
setup.py Updated from global requirements 2015-09-21 18:56:49 +00:00
test-requirements.txt Updated from global requirements 2016-09-01 04:58:44 +00:00
tox.ini Add tool to list moved globals 2016-08-18 10:14:42 -04:00

README.rst

Welcome!

You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!

External Resources:

The homepage for Neutron is: http://launchpad.net/neutron. Use this site for asking for help, and filing bugs. Code is available on git.openstack.org at <http://git.openstack.org/cgit/openstack/neutron>.

The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:

Neutron Administrator Guide

http://docs.openstack.org/admin-guide/networking.html

Neutron Developer Guide

http://docs.openstack.org/developer/neutron/devref/

Networking Guide

http://docs.openstack.org/networking-guide/

Neutron API Reference:

http://developer.openstack.org/api-ref/networking/v2/

Current Neutron developer documentation is available at:

http://wiki.openstack.org/NeutronDevelopment

For help on usage and hacking of Neutron, please send mail to <mailto:openstack-dev@lists.openstack.org>.

For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.