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.
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.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.