Overall design
Gliffy | ||||
---|---|---|---|---|
|
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 Name | ModifyModification | status | owner | comments |
---|---|---|---|---|
SDC | Add SR-IOV NIC attributes. | Completed | Alex Lianhao | |
Policy | Add SR-IOV NIC attributes. | In Progress | ||
VF-C | Add create port process. | In Progress | Haibin | |
SO | Add create port process. | In Progress | ||
OOF | Add the process for cloud region HPA capabilities | In Progess | Ruoyu | |
AAI | Nothing, we just add one hpa-attribute-key and hpa-attribute-value | Completed | - | now [A] API can support. |
ESR | Add SR-IOV NIC info to cloud extra info. | In Progress | Haibin | |
Multi-cloud | Register SR-IOV info to AAI. | In Progress | Haibin | |
VIM | Config SR-IOV NIC and create network with SR-IOV NIC. | In Progress | Haibin |
[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
...