Enable SR-IOV NIC offload feature discovery

Registered by Rodolfo Alonso

SRIOV NIC feature discovery

This functionality was added to libvirt repository in commit c9027d8f44f9f66a0aa98482258e88567fccb954 (5/3/2015) and released in libvirt version 1.2.14 (2/4/2015). It allows to query ethtool interface for the availability of certain NIC hardware offload features. For example:
<device>
<name>net_eth4_90_e2_ba_5e_a5_45</name>
  <path>/sys/devices/pci0000:00/0000:00:03.0/0000:08:00.1/net/eth4</path>
  <parent>pci_0000_08_00_1</parent>
  <capability type='net'>
    <interface>eth4</interface>
    <address>90:e2:ba:5e:a5:45</address>
    <link speed='10000' state='up'/>
    <feature name='rx'/>
    <feature name='tx'/>
    <feature name='sg'/>
    <feature name='tso'/>
    <feature name='gso'/>
    <feature name='gro'/>
    <feature name='rxvlan'/>
    <feature name='txvlan'/>
    <feature name='rxhash'/>
    <capability type='80203'/>
  </capability>
</device>

Tasks:
- This feature will parse this NIC features and store in the Scheduler host info structure.
- It will also modify the PCI filter to add the hability to filter by this new features, set in "pci_alias" config pamater.
- (optional) Add to Neutron port (type "direct", only for SR-IOV) definition a feature list parameter, to be compared with PCI/NIC device feature list.

Blueprint information

Status:
Started
Approver:
Sylvain Bauza
Priority:
Low
Drafter:
Rodolfo Alonso
Direction:
Needs approval
Assignee:
Rodolfo Alonso
Definition:
Pending Approval
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
Matt Riedemann

Whiteboard

This seems like something to handle with modeling resource provider traits. -- mriedem 20170210

I'm going to submit a spec today. There are, IMO, two alternatives:
- Create a table for these PCI NIC features,
- Create a set of resource providers per PCI devide.
In both cases, those resources should be checked in the PCI passthrough filte. -- ralonsoh 20170213

Gerrit topic: https://review.openstack.org/#q,topic:bp/enable-sriov-nic-features,n,z

Addressed by: https://review.openstack.org/435954
    Enable SR-IOV NIC offload feature discovery

Addressed by: https://review.openstack.org/444415
    [WIP] Read NIC features in libvirt

Addressed by: https://review.openstack.org/444946
    Modify PciPassthroughFilter to accept lists

Addressed by: https://review.openstack.org/449257
    Read Neutron port 'binding_profile' during boot

Addressed by: https://review.openstack.org/451777
    [WIP] Add Neutron port capabilities to devspec in request

Gerrit topic: https://review.openstack.org/#q,topic:bug/enable-sriov-nic-features,n,z

Gerrit topic: https://review.openstack.org/#q,topic:enable-sriov-nic-features,n,z

Addressed by: https://review.openstack.org/466051
    Format NIC features using os-traits definitions

We're past the Pike feature freeze so I'm deferring this to Queens. Please submit the spec to the queens release in the nova-specs repo for re-approval and update the spec for any necessary changes in design or details. -- mriedem 20170803

Addressed by: https://review.openstack.org/503001
    Intel Fortville Dynamic Device Personalization (DDP)

Addressed by: https://review.openstack.org/504895
    Enable SR-IOV NIC offload feature discovery

Addressed by: https://review.openstack.org/507481
    Read Neutron port 'binding_profile' during boot

Re-approved for Queens. -- mriedem 20171018

Sorry but we're now past feature freeze for Queens. Please re-propose the spec for Rocky and we'll try to get this merged early in the first milestone. -- 20180126

Re-approved for Rocky. -- mriedem 20180326

We're past feature freeze for Rocky, so this must be deferred. Please re-propose the spec for Stein if you'd like to work on it next cycle. -- melwitt 20180727

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.