SR-IOV VFs as network interface

Registered by Karthik S

As of today the datacenter have complex network wiring to connect the various networks of the nodes. In order to simply the network wiring its possible to make a SR-IOV based deployment and the VFs could be partitioned between kernel interfaces, DPDK interfaces and guests. Using this setup, a pair of network cables could be used to connect all the nodes, there by reducing the cabling complexity in the datacenter and still achieve qos. We propose that the smart NIC shall be configured as a set of VFs and each of the openstack networks available can be mapped to the VFs of the SR-IOV nic. Also the other VFs could be used with DPDK driver or directly associated with guests.

The nic configuration template shall have a new network config for sriov_pf and sriov_vf.

os-net-config shall also configure the numvfs for the SR-IOV port.
The nic configuration for sriov_pf shall look like
- type: sriov_pf
  name: sriov_pf0
  use_dhcp: false
  numvfs: <number of vfs>
  members:
  - type: interface
    name: <interface name, like nic3>

The nic configuration for DPDK over VF shall look like
- type: sriov_pf
  name: sriov_pf0
  use_dhcp: false
  numvfs: <number of vfs>
  members:
  - type: interface
    name: <interface name, like nic3>

- type: ovs_user_bridge
  name: br-dpdk
  use_dhcp: false
  members:
  - type: ovs_dpdk_port
    name: dpdk0
    members:
    - type: sriov_vf
      name: sriov_vf3
      parent: sriov_pf0
      vf_id: 3 # vf number

The nic configuration for a network over VF shall look like
- type: sriov_pf
  name: sriov_pf0
  use_dhcp: false
  numvfs: <number of vfs>
  members:
  - type: interface
    name: <interface name, like nic3>

- type: sriov_vf
  name: sriov_vf0
  parent: sriov_pf0
  vf_id: 0 # vf number
  use_dhcp: false
  addresses:
  - ip_netmask:
      get_param: InternalApiIpSubnet

The nic configuration for vlan network over VF shall look like
- type: sriov_pf
  name: sriov_pf0
  use_dhcp: false
  numvfs: <number of vfs>
  members:
  - type: interface
    name: <interface name, like nic3>

- type: sriov_vf
  name: sriov_vf0
  parent: sriov_pf0
  vf_id: 0 # vf number
  use_dhcp: false
  defroute: false

- type: vlan
  vlan_id:
    get_param: InternalApiNetworkVlanID
  device: sriov_vf0
  addresses:
  - ip_netmask:
      get_param: InternalApiIpSubnet

Blueprint information

Status:
Complete
Approver:
Saravanan KR
Priority:
Medium
Drafter:
Karthik S
Direction:
Approved
Assignee:
Karthik S
Definition:
Approved
Series goal:
Accepted for rocky
Implementation:
Implemented
Milestone target:
milestone icon rocky-3
Started by
Saravanan KR
Completed by
Alex Schultz

Related branches

Sprints

Whiteboard

[2018-07-24] (aschultz) Listed patches have been merged, marking as implemented. Feel free to reopen if this is not the case.
[2018-07-11] Looks like there has been some progress but there are patches still open

https://review.openstack.org/#/q/topic:bp/sriov-vfs-as-network-interface+(status:open+OR+status:merged)

(?)

Work Items

Work items:
Identify Configuration Parameters (e.g. ifcfg files): INPROGRESS
Implement SR-IOV PF/VF Support in os-net-config: INPROGRESS
Create Sample Environment Templates in tripleo-heat-templates: TODO
Document Configuration of PF/VF in tripleo-docs: TODO

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.