Use VNIC_REMOTE_MANAGED instead of VNIC_SMARTNIC

After a round of reviews of Nova patches that utilized VNIC_SMARTNIC for
the off-path backend spec

https://review.opendev.org/q/topic:2021-09-10-off-path-net-backends-dep

it was determined that the Ironic's usage of VNIC_SMARTNIC would be
affected by how the decision is made whether a port is remote-managed or
not during the resource request creation.

https://review.opendev.org/c/openstack/nova/+/824835/13/nova/network/neutron.py#2325

See the following log for the relevant discussion:

https://meetings.opendev.org/irclogs/%23openstack-nova/%23openstack-nova.2022-02-07.log.html#t2022-02-07T15:49:56

Therefore, this change introduces a spec update to use a new VNIC
type.

Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/787458
Nova BP: https://blueprints.launchpad.net/nova/+spec/integration-with-off-path-network-backends

Partial-Bug: #1932154
Change-Id: I63f156c5bfb5a41e5ebf94dc8f069828569e270a
This commit is contained in:
Dmitrii Shcherbakov 2022-02-07 20:16:17 +03:00 committed by Frode Nordahl
parent 077328f988
commit 7795bbd62a
No known key found for this signature in database
GPG Key ID: 6A5D59A3BA48373F
1 changed files with 9 additions and 7 deletions

View File

@ -108,7 +108,7 @@ Some practical challenges are as follows:
VF PCI address assignment process governed by the PCI SIG SR-IOV
specification;
* During port binding, the OVN mechanism driver needs to handle the vnic type
VNIC_SMARTNIC which it currently does not.
VNIC_REMOTE_MANAGED which it currently does not.
The following diagram illustrates various components that play a role in the
context of this specification::
@ -262,13 +262,15 @@ This capability is discovered by Nova from PCI(e) endpoints via devlink -
when an NIC Switch is visible via a PF, the "switchdev" capability is added to
both PFs and VFs tracked in Nova. SmartNIC DPUs do not expose the NIC Switch to
the hypervisor host, therefore, this capability is not discovered. To address
that, the related Nova specification [7]_ relies on a different port type
(``VNIC_SMARTNIC`` already present in neutron-lib) for the purposes of working
with SmartNIC DPUs.
that, the related Nova specification [7]_ relies on a new port type for the
purposes of working with SmartNIC DPUs called ``VNIC_REMOTE_MANAGED``. The
``VNIC_SMARTNIC`` VNIC type already present in neutron-lib has been considered
but it was found later that the fact that scheduling happens after resource
request creation makes it to run into a conflict with the Ironic use-case).
The OVN mechanism driver needs to be extended to also handle ``VNIC_SMARTNIC``
ports. It will allow the port binding code to pick the right code-path and
trigger the representor port plugging logic in OVN.
The OVN mechanism driver needs to be extended to also handle
``VNIC_REMOTE_MANAGED`` ports. It will allow the port binding code to pick the
right code-path and trigger the representor port plugging logic in OVN.
Implementation
==============