Add segments service plug-in devref
This commit adds a document to devref that explains the implementation of the segments plug-in Change-Id: I80928eac7a6cb051c3d6532d83c9d9ecd328cd18
This commit is contained in:
parent
cfb23d4e3e
commit
1994d180d0
@ -61,3 +61,4 @@ Neutron Internals
|
|||||||
retries
|
retries
|
||||||
l3_agent_extensions
|
l3_agent_extensions
|
||||||
live_migration
|
live_migration
|
||||||
|
segments
|
||||||
|
55
doc/source/contributor/internals/segments.rst
Normal file
55
doc/source/contributor/internals/segments.rst
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
..
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
|
||||||
|
Segments extension
|
||||||
|
==================
|
||||||
|
|
||||||
|
Neutron has an extension that allows CRUD operations on the ``/segments``
|
||||||
|
resource in the API, that corresponds to the ``NetworkSegment`` entity in the
|
||||||
|
DB layer. The extension is implemented as a service plug-in.
|
||||||
|
|
||||||
|
.. note:: The ``segments`` service plug-in is not configured by default. To
|
||||||
|
configure it, add ``segments`` to the ``service_plugins`` parameter in
|
||||||
|
``neutron.conf``
|
||||||
|
|
||||||
|
Core plug-ins can coordinate with the ``segments`` service plug-in by
|
||||||
|
subscribing callbacks to events associated to the ``SEGMENT`` resource.
|
||||||
|
Currently, the segments plug-in notifies subscribers of the following events:
|
||||||
|
|
||||||
|
* ``PRECOMMIT_CREATE``
|
||||||
|
* ``AFTER_CREATE``
|
||||||
|
* ``BEFORE_DELETE``
|
||||||
|
* ``PRECOMMIT_DELETE``
|
||||||
|
* ``AFTER_DELETE``
|
||||||
|
|
||||||
|
As of this writing, ``ML2`` and ``OVN`` register callbacks to receive events
|
||||||
|
from the ``segments`` service plug-in. The ``ML2`` plug-in defines the
|
||||||
|
callback ``_handle_segment_change`` to process all the relevant segments
|
||||||
|
events.
|
||||||
|
|
||||||
|
Segments extension relevant modules
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
* ``neutron/extensions/segment.py`` defines the extension
|
||||||
|
* ``neutron/db/models/segment.py`` defines the DB models for segments and for
|
||||||
|
the segment host mapping, that is used in the implementation of routed
|
||||||
|
networks.
|
||||||
|
* ``neutron/db/segments_db.py`` has functions to add, retrieve and delete
|
||||||
|
segments from the DB.
|
||||||
|
* ``neutron/services/segments/db.py`` defines a mixin class with the methods
|
||||||
|
that perform API CRUD operations for the ``segments`` plug-in. It also has a
|
||||||
|
set of functions to create and maintain the mapping of segments to hosts,
|
||||||
|
which is necessary in the implementation of routed networks.
|
||||||
|
* ``neutron/services/segments/plugin.py`` defines the ``segments`` service
|
||||||
|
plug-in.
|
Loading…
Reference in New Issue
Block a user