[RFE] neutron ovs agent support baremetal port using smart nic

Bug #1785608 reported by Moshe Levi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Hamdy Khader

Bug Description

Problem description
===================

While Ironic today supports Neutron provisioned network connectivity for
Bare-Metal servers through ML2 mechanism driver, the existing support
is based largely on configuration of TORs through vendor-specific mechanism
drivers, with limited capabilities.

Proposed change
===============

There is a wide range of smart/intelligent NICs emerging on the market.
These NICs generally incorporate one or more general purpose CPU cores along
with data-plane packet processing accelerations, and can efficiently run
virtual switches such as OVS, while maintaining the existing interfaces to the
SDN layer.

The goal is to enable
running the standard Neutron Open vSwitch L2 agent, providing a generic,
vendor-agnostic bare metal networking service with feature parity compared
to the virtualization use-case.

* Neutron ml2 ovs changes:
  Update the neuton ml2 ovs to bind bare metal port with smartNIC flag in the
  binding profile.

* Neutron ovs agent changes:

Example of SmartNIC model::

  +---------------+
  | Server |
  | |
  | +A |
  +------|--------+
         |
         |
  +------|--------+
  | SmartNIC |
  | +-+B-+ |
  | |OVS | |
  | +-+C-+ |
  +------|--------+
         |

  A - port on the baremetal
  B - port that represent the baremetal port in the SmartNIC
  C - port to the wire

  Add/Remove Port B to the ovs br-int with external-ids
  This part is mimc the nova-compute that plug the port to the ovs bridge.
  The external-ids information is:

    'external-ids:iface-id=%s' % port_id
    'external-ids:iface-status=active'
    'external-ids:attached-mac=%s' % ironic_port.address
    'external-ids:node-uuid=%s' % node_uuid

Tags: rfe-approved
Moshe Levi (moshele)
description: updated
Revision history for this message
Miguel Lavalle (minsel) wrote :

@Moshe,

Is this something you plan to help implementing?

Changed in neutron:
importance: Undecided → Wishlist
tags: added: rfe
Revision history for this message
Moshe Levi (moshele) wrote :

@Miguel,

yes we are working on the ironic-spec [1] and code [2]
Also we posted neutron POC code [3] and [4].

[1] - https://review.openstack.org/#/c/582767/
[2] - https://review.openstack.org/#/c/583573/
[3] - https://review.openstack.org/#/c/586252/
[4] - https://review.openstack.org/#/c/586253/

Changed in neutron:
assignee: nobody → Moshe Levi (moshele)
Changed in neutron:
assignee: Moshe Levi (moshele) → Hamdy Khader (hamdyk)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron-specs (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/619920

Changed in neutron:
assignee: Hamdy Khader (hamdyk) → Moshe Levi (moshele)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron-specs (master)

Reviewed: https://review.openstack.org/619920
Committed: https://git.openstack.org/cgit/openstack/neutron-specs/commit/?id=33d4d845f130ccb391f72d75b22906e9b6b38d75
Submitter: Zuul
Branch: master

commit 33d4d845f130ccb391f72d75b22906e9b6b38d75
Author: Moshe Levi <email address hidden>
Date: Sun Nov 25 11:39:38 2018 +0200

    Add Support for Smart NIC in OVS ML2 mech driver

    This spec is the Neutron side changes to support
    smart NICs with Neutron OVS ML2 mechanism driver
    and Neutron OVS Agent.

    Related-Bug: #1785608

    Change-Id: I658754f7f8c74087b0aabfdef222a2c0b5698541

Changed in neutron:
assignee: Moshe Levi (moshele) → Adrian Chiris (adrian.chiris)
Moshe Levi (moshele)
Changed in neutron:
assignee: Adrian Chiris (adrian.chiris) → Moshe Levi (moshele)
Changed in neutron:
assignee: Moshe Levi (moshele) → Hamdy Khader (hamdyk)
Revision history for this message
Miguel Lavalle (minsel) wrote :

The spec for this RFE was merged recently, as can be seen in note #4 above. So marking the rfe as approved for consistency

tags: added: rfe-approved
removed: rfe
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/586252
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b4243ad3f72b3dc7ef5f291a85a3dd084d6c1c00
Submitter: Zuul
Branch: master

commit b4243ad3f72b3dc7ef5f291a85a3dd084d6c1c00
Author: Hamdy Khader <email address hidden>
Date: Thu Jul 26 17:40:53 2018 +0300

    Add Smart NIC representor port to integration bridge

    In case of Smart NIC vNIC type neutron should mimic nova-compute
    that plug the port to the ovs bridge.

    Extend the Neutron OVS mechanism driver and Neutron OVS Agent to bind
    the Neutron port for the baremetal host with Smart NIC. This will allow
    the Neutron OVS Agent to configure the pipeline of the OVS running on
    the Smart NIC and leverage the pipeline features such as: VXLAN,
    Security Groups and ARP Responder.

    Story: #2003346
    Closes-Bug: #1785608
    Change-Id: I6d520d3bac2e9ceb30b5b6197c6eb0f958cc3659

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 15.0.0.0b1

This issue was fixed in the openstack/neutron 15.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.