diff --git a/doc/source/configuration/settings.rst b/doc/source/configuration/settings.rst index 4fb6185d8..a8acc5a0a 100644 --- a/doc/source/configuration/settings.rst +++ b/doc/source/configuration/settings.rst @@ -1757,13 +1757,24 @@ supported_vnic_types .. versionadded:: 2015.1(Kilo) +.. versionchanged:: 12.0.0(Pike) + + Added ``virtio-forwarder`` VNIC type + Clarified VNIC type availability for users and operators + + Default ``['*']`` For use with the port binding extension. Use this to explicitly set which VNIC -types are supported; only those listed will be shown when creating or editing -a port. VNIC types include ``normal``, ``direct``, ``direct-physical``, -``macvtap`` and ``baremetal``. By default all VNIC types will be available to -choose from. +types are available for users to choose from, when creating or editing a port. +The VNIC types actually supported are determined by resource availability and +Neutron ML2 plugin support. +Currently, error reporting for users selecting an incompatible or unavailable +VNIC type is restricted to receiving a message from the scheduler that the +instance cannot spawn because of insufficient resources. +VNIC types include ``normal``, ``direct``, ``direct-physical``, ``macvtap``, +``baremetal`` and ``virtio-forwarder``. By default all VNIC types will be +available to choose from. Example: ``['normal', 'direct']`` diff --git a/openstack_dashboard/dashboards/admin/networks/ports/forms.py b/openstack_dashboard/dashboards/admin/networks/ports/forms.py index e3c29d9ac..f852cc625 100644 --- a/openstack_dashboard/dashboards/admin/networks/ports/forms.py +++ b/openstack_dashboard/dashboards/admin/networks/ports/forms.py @@ -32,7 +32,8 @@ VNIC_TYPES = [('normal', _('Normal')), ('direct', _('Direct')), ('direct-physical', _('Direct Physical')), ('macvtap', _('MacVTap')), - ('baremetal', _('Bare Metal'))] + ('baremetal', _('Bare Metal')), + ('virtio-forwarder', _('Virtio Forwarder'))] class CreatePort(project_forms.CreatePort): diff --git a/openstack_dashboard/dashboards/project/networks/ports/forms.py b/openstack_dashboard/dashboards/project/networks/ports/forms.py index 62dd9c4a0..e0ab20fde 100644 --- a/openstack_dashboard/dashboards/project/networks/ports/forms.py +++ b/openstack_dashboard/dashboards/project/networks/ports/forms.py @@ -30,7 +30,8 @@ VNIC_TYPES = [('normal', _('Normal')), ('direct', _('Direct')), ('direct-physical', _('Direct Physical')), ('macvtap', _('MacVTap')), - ('baremetal', _('Bare Metal'))] + ('baremetal', _('Bare Metal')), + ('virtio-forwarder', _('Virtio Forwarder'))] class CreatePort(forms.SelfHandlingForm): diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js index 9b527ea67..1a4cc4dd0 100644 --- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js +++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js @@ -49,7 +49,8 @@ 'direct': gettext('Direct'), 'direct-physical': gettext('Direct Physical'), 'macvtap': gettext('MacVTap'), - 'baremetal': gettext('Bare Metal') + 'baremetal': gettext('Bare Metal'), + 'virtio-forwarder': gettext('Virtio Forwarder') }; ctrl.tableDataMulti = { diff --git a/openstack_dashboard/local/local_settings.py.example b/openstack_dashboard/local/local_settings.py.example index 6b359eebc..86b6e0484 100644 --- a/openstack_dashboard/local/local_settings.py.example +++ b/openstack_dashboard/local/local_settings.py.example @@ -350,8 +350,8 @@ OPENSTACK_NEUTRON_NETWORK = { # Set which VNIC types are supported for port binding. Only the VNIC # types in this list will be available to choose from when creating a # port. - # VNIC types include 'normal', 'direct', 'direct-physical', 'macvtap' and - # 'baremetal' + # VNIC types include 'normal', 'direct', 'direct-physical', 'macvtap', + # 'baremetal' and 'virtio-forwarder' # Set to empty list or None to disable VNIC type selection. 'supported_vnic_types': ['*'], diff --git a/releasenotes/notes/add-virtio-forwarder-vnic-type-03eba218d36e2aae.yaml b/releasenotes/notes/add-virtio-forwarder-vnic-type-03eba218d36e2aae.yaml new file mode 100644 index 000000000..21360e37c --- /dev/null +++ b/releasenotes/notes/add-virtio-forwarder-vnic-type-03eba218d36e2aae.yaml @@ -0,0 +1,9 @@ +--- +features: + - The ``virtio-forwarder`` VNIC type has been added to the list of valid + types that may be set on a port. This requests a low-latency virtio port + inside the instance, likely backed by hardware acceleration and requires a + supporting Neutron mechanism driver. + - The configuration documentation for ``supported_vnic_types`` in + ``OPENSTACK_NEUTRON_NETWORK`` has been updated to help an operator decide + which VNIC types should be available for users to choose from.