Neutron has an extension that allows CRUD operations on the
resource in the API, that corresponds to the
NetworkSegment entity in the
DB layer. The extension is implemented as a service plug-in.
Details about the DB models, API extension, and use cases can be found here: routed networks spec
segments service plug-in is not configured by default. To
configure it, add
segments to the
service_plugins parameter in
Core plug-ins can coordinate with the
segments service plug-in by
subscribing callbacks to events associated to the
Currently, the segments plug-in notifies subscribers of the following events:
As of this writing,
OVN register callbacks to receive events
segments service plug-in. The
ML2 plug-in defines the
_handle_segment_change to process all the relevant segments
Segments extension relevant modules¶
neutron/extensions/segment.pydefines the extension
neutron/db/models/segment.pydefines the DB models for segments and for the segment host mapping, that is used in the implementation of routed networks.
neutron/db/segments_db.pyhas functions to add, retrieve and delete segments from the DB.
neutron/services/segments/db.pydefines a mixin class with the methods that perform API CRUD operations for the
segmentsplug-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.