Merge "docs: Add API docs for profile, datapath offload types"

This commit is contained in:
Zuul 2019-02-26 16:45:51 +00:00 committed by Gerrit Code Review
commit ca847da7a1
1 changed files with 69 additions and 37 deletions

View File

@ -236,21 +236,25 @@ class VIFNestedDPDK(VIFBase):
@base.VersionedObjectRegistry.register
class DatapathOffloadBase(osv_base.VersionedObject,
base.ComparableVersionedObject):
# Base class for all types of datapath offload
base.ComparableVersionedObject):
"""Base class for all types of datapath offload."""
# Version 1.0: Initial release
VERSION = '1.0'
@base.VersionedObjectRegistry.register
class DatapathOffloadRepresentor(DatapathOffloadBase):
# Offload type for VF Representors conforming to the switchdev model
"""Offload type for VF Representors conforming to the switchdev model."""
# Version 1.0: Initial release
VERSION = '1.0'
fields = {
# Name to set on the representor (if set)
#: Name to set on the representor (if set).
'representor_name': fields.StringField(nullable=True),
# The PCI address of the Virtual Function
#: The PCI address of the Virtual Function.
'representor_address': fields.StringField(nullable=True),
}
@ -258,16 +262,17 @@ class DatapathOffloadRepresentor(DatapathOffloadBase):
@base.VersionedObjectRegistry.register
class VIFPortProfileBase(osv_base.VersionedObject,
base.ComparableVersionedObject):
# Base class for all types of port profile
"""Base class for all types of port profile."""
# Version 1.0: Initial release
# Version 1.1: Added 'datapath_offload'
VERSION = '1.1'
fields = {
# Datapath offload type of the port
#: Datapath offload type of the port.
'datapath_offload': fields.ObjectField('DatapathOffloadBase',
nullable=True,
subclasses=True),
nullable=True,
subclasses=True),
}
obj_relationships = {
@ -277,7 +282,8 @@ class VIFPortProfileBase(osv_base.VersionedObject,
@base.VersionedObjectRegistry.register
class VIFPortProfileOpenVSwitch(VIFPortProfileBase):
# Port profile info for OpenVSwitch networks
"""Port profile info for Open vSwitch networks."""
# Version 1.0: Initial release
# Version 1.1: Added 'datapath_type'
# Version 1.2: VIFPortProfileBase updated to 1.1 from 1.0
@ -285,13 +291,17 @@ class VIFPortProfileOpenVSwitch(VIFPortProfileBase):
VERSION = '1.3'
fields = {
#: A UUID to uniquely identify the interface. If omitted one will be
#: generated automatically.
'interface_id': fields.UUIDField(),
#: The OpenVSwitch port profile for the interface.
'profile_id': fields.StringField(),
# Datapath type of the bridge
#: Datapath type of the bridge.
'datapath_type': fields.StringField(nullable=True),
# If set, the os-vif plugin should add the port to the bridge
#: Whether the os-vif plugin should add the port to the bridge.
'create_port': fields.BooleanField(default=False),
}
@ -311,7 +321,8 @@ class VIFPortProfileOpenVSwitch(VIFPortProfileBase):
@base.VersionedObjectRegistry.register
class VIFPortProfileFPOpenVSwitch(VIFPortProfileOpenVSwitch):
# Port profile info for OpenVSwitch networks using fastpath
"""Port profile info for Open vSwitch networks using fastpath."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1 from 1.0
# Version 1.2: VIFPortProfileOpenVSwitch updated to 1.2 from 1.1
@ -319,10 +330,10 @@ class VIFPortProfileFPOpenVSwitch(VIFPortProfileOpenVSwitch):
VERSION = '1.3'
fields = {
# Name of the bridge (managed by fast path) to connect to
#: Name of the bridge (managed by fast path) to connect to.
'bridge_name': fields.StringField(),
# Whether the OpenVSwitch network is using hybrid plug
#: Whether the OpenVSwitch network is using hybrid plug.
'hybrid_plug': fields.BooleanField(default=False),
}
@ -346,10 +357,12 @@ class VIFPortProfileFPOpenVSwitch(VIFPortProfileOpenVSwitch):
category=PendingDeprecationWarning)
@base.VersionedObjectRegistry.register
class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):
# Port profile info for OpenVSwitch networks using a representor
# This class is now frozen and retained for backwards compatibility. The
# 'datapath_offload' field in port profiles should be used instead.
#
"""Port profile info for OpenVSwitch networks using a representor.
This class is now frozen and retained for backwards compatibility. The
``datapath_offload`` field in port profiles should be used instead.
"""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileOpenVSwitch updated to 1.1 from 1.0
# Version 1.2: VIFPortProfileOpenVSwitch updated to 1.2 from 1.1
@ -357,10 +370,10 @@ class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):
VERSION = '1.3'
fields = {
# Name to set on the representor (if set)
#: Name to set on the representor (if set).
'representor_name': fields.StringField(nullable=True),
# The PCI address of the Virtual Function
#: The PCI address of the Virtual Function.
'representor_address': fields.PCIAddressField(nullable=True),
}
@ -382,14 +395,14 @@ class VIFPortProfileOVSRepresentor(VIFPortProfileOpenVSwitch):
@base.VersionedObjectRegistry.register
class VIFPortProfileFPBridge(VIFPortProfileBase):
# Port profile info for LinuxBridge networks using fastpath
#
"""Port profile info for LinuxBridge networks using fastpath."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileBase updated to 1.1 from 1.0
VERSION = '1.1'
fields = {
# Name of the bridge (managed by fast path) to connect to
#: Name of the bridge (managed by fast path) to connect to.
'bridge_name': fields.StringField(),
}
@ -405,14 +418,14 @@ class VIFPortProfileFPBridge(VIFPortProfileBase):
@base.VersionedObjectRegistry.register
class VIFPortProfileFPTap(VIFPortProfileBase):
# Port profile info for Calico networks using fastpath
#
"""Port profile info for Calico networks using fastpath."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileBase updated to 1.1 from 1.0
VERSION = '1.1'
fields = {
# The mac address of the host vhostuser port
#: The MAC address of the host vhostuser port.
'mac_address': fields.MACAddressField(nullable=True),
}
@ -428,16 +441,31 @@ class VIFPortProfileFPTap(VIFPortProfileBase):
@base.VersionedObjectRegistry.register
class VIFPortProfile8021Qbg(VIFPortProfileBase):
# Port profile info for VEPA 802.1qbg networks
#
"""Port profile info for VEPA 802.1qbg networks."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileBase updated to 1.1 from 1.0
VERSION = '1.1'
fields = {
# TODO(stephenfin): Apparently the value 0 is reserved for manager_id,
# so should we set 'minimum=1'?
# https://libvirt.org/formatdomain.html#elementsNICS
#: The VSI Manager ID identifies the database containing the VSI type
#: and instance definitions.
'manager_id': fields.IntegerField(),
#: The VSI Type ID identifies a VSI type characterizing the network
#: access. VSI types are typically managed by network administrator.
'type_id': fields.IntegerField(),
#: The VSI Type Version allows multiple versions of a VSI Type.
'type_id_version': fields.IntegerField(),
#: The VSI Instance ID Identifier is generated when a VSI instance
#: (i.e. a virtual interface of a virtual machine) is created. This is
#: a globally unique identifier.
'instance_id': fields.UUIDField(),
}
@ -453,13 +481,17 @@ class VIFPortProfile8021Qbg(VIFPortProfileBase):
@base.VersionedObjectRegistry.register
class VIFPortProfile8021Qbh(VIFPortProfileBase):
# Port profile info for VEPA 802.1qbh networks
#
"""Port profile info for VEPA 802.1qbh networks."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileBase updated to 1.1 from 1.0
VERSION = '1.1'
fields = {
#: The name of the port profile that is to be applied to this
#: interface. This name is resolved by the port profile database into
#: the network parameters from the port profile, and those network
#: parameters will be applied to this interface.
'profile_id': fields.StringField()
}
@ -475,21 +507,21 @@ class VIFPortProfile8021Qbh(VIFPortProfileBase):
@base.VersionedObjectRegistry.register
class VIFPortProfileK8sDPDK(VIFPortProfileBase):
# Port profile info for Kuryr-Kubernetes DPDK ports
#
"""Port profile info for Kuryr-Kubernetes DPDK ports."""
# Version 1.0: Initial release
# Version 1.1: VIFPortProfileBase updated to 1.1 from 1.0
VERSION = '1.1'
fields = {
# Specify whether this vif requires L3 setup.
#: Specify whether this vif requires L3 setup.
'l3_setup': fields.BooleanField(),
# String containing URL representing object in Kubernetes API.
#: String containing URL representing object in Kubernetes v1 API.
'selflink': fields.StringField(),
# String used in Kubernetes v1 API to identifies
# the server's internal version of this object.
#: String used in Kubernetes v1 API to identify the server's internal
#: version of this object.
'resourceversion': fields.StringField()
}