Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overall design

Gliffy
nameSRIOV-modules
pagePin21


1. SR-IOV NIC related Capability in Data model

This is refer to Supported HPA Capability Requirements(DRAFT)#LogicalNodei/ORequirements

Logical Node i/O Requirements

Capability Name

Capability Value

Descriptiopn

pciVendorId


PCI-SIG vendor ID for the device

pciDeviceId


PCI-SIG device ID for the device

pciNumDevices


Number of PCI devices required.

pciAddress


Geographic location of the PCI device via the standard PCI-SIG addressing model of Domain:Bus:device:function

pciDeviceLocalToNumaNode

required

notRequired

Determines if I/O device affinity is required.

Network Interface Requirements

Capability Name

Capability Value

Description

nicFeature

LSO, LRO, RSS, RDMA

Long list of NIC related items such as LSO, LRO, RSS, RDMA, etc.

dataProcessingAccelerationLibray

Dpdk_Version

Name and version of the data processing acceleration library required. Orchestration can match any NIC that is known to be compatible with the specified library.

interfaceType

Virtio,

PCI-Passthrough,

SR-IOV, E1000, RTL8139, PCNET

Network interface type

vendorSpecificNicFeature

TBA

List of vendor specific NIC related items.

2. Openstack Config SRIOV

We can refer to https://docs.openstack.org/neutron/pike/admin/config-sriov.html

...

Note: VF-C will execute four steps call four times to multi-cloud. SO will execute four steps just call one times to multi-cloud. 


3. AAI Presentation

PUT /cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}

...

architecture=”{hw_arch}",

version=”v1”,

hpa-attribute-key

hpa-attribute-value

pciCount

{value: 1}

pciVendorId

{value: "15B3"}

pciDeviceId{value: "1003"}
interfaceType{value: "SR-IOV"}
providerPhyNetwork{value: "physnet"}
vnicType{value: "direct"}
availabilityZone{value: "sriov-zone"}


4. ONAP Module Modify 

Module NameModifyModificationstatusownercomments
SDCAdd SR-IOV NIC attributes.Completed

Alex

Lianhao


PolicyAdd SR-IOV NIC attributes.In Progress

VF-CAdd create port process.In ProgressHaibin
SOAdd create port process.In Progress

OOFAdd the process for cloud region HPA capabilitiesIn ProgessRuoyu
AAINothing, we just add one hpa-attribute-key and hpa-attribute-valueCompleted-now [A] API can support.
ESRAdd SR-IOV NIC info to cloud extra info.In ProgressHaibin
Multi-cloudRegister SR-IOV info to AAI.In ProgressHaibin
VIMConfig SR-IOV NIC and create network with SR-IOV NIC.In ProgressHaibin


[A] PUT /cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}


4.1 Multi-cloud Modification


4.2 VF-C Modification


4.3 SO Modification

Please Marcus Williams helps to update it.

4.4 OOF Modification

As we known OOF just check /cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities

Now, we need OOF also check and match /cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}

Seond,  we need to add some attributes in the response returning to SO and VF-C like below.

   "transactionId":"xxx-xxx-xxxx",
   "requestId":"
yyy-yyy-yyyy",
   "
requestStatus":"completed",
   "
statusMessage":"",
   "solutions":{  
      "
placementSolutions":[  
         [  {  "
resourceModuleName":"vG",
               "
serviceResourceId":"<copy from Req.>",
               "solution":{  
                  "
identifierType":"cloudRegionId",

                  "identifiers":[  "DLLSTX1A“ ]   },
               "
assignmentInfo":[  
                  {  "key":"
locationId",
                     "value":"DLLSTX1A“    },
                  {  "key":"
locationType",
                     "value":"
openstack-cloud“   },
                  {  "key":"
vimId",
                     "value":"rackspace_DLLSTX1A"  },
                  {  "
key":"flavors",

                     "value":{ 

                        "flavorLabel1xxx":"vimFlavorxxx",

                        "flavorLabel2xxx":"vimFlavorxxx" }}

                  { "key": "SRIOV-NIC"

                    "value":{

                        "interfaceType": "SR-IOV",

                        "providerPhyNetwork": "physnet",

                        "vnicType": "direct",

                        "availabilityZone": "sriov-zone"

                      }
               ] } ] ],
                  }

Reference

https://docs.openstack.org/neutron/pike/admin/config-sriov.html

...