VF-C Casablanca HPA Design
- 1 HPA VF-C External Sequence Flow for Casablanca
- 2 HPA VF-C External API Interaction for Casablanca
- 2.1 SDC
- 2.2 OOF
- 2.2.1 VFC send out homing request to OOF
- 2.2.1.1 VFC-OOF API
- 2.2.2 OOF retrieve the requirements(policies) for that service/VNF inside Policy
- 2.2.3 OOF check AAI database for existing instances/available cloud regions
- 2.2.3.1 Data inside AAI
- 2.2.4 OOF process homing allocation and return homing placement to VF-C
- 2.2.4.1 Sample OOF-VFC response
- 2.2.5 MultiCloud
- 2.2.5.1 OpenStack Config SRIOV
- 2.2.5.2 Multi-cloud discovery
- 2.2.5.3 Multi-cloud API
- 2.2.5.3.1 Multi-cloud network API for VF-C
- 2.2.5.3.2 Multi-cloud subnet API for VF-C
- 2.2.5.3.3 Multi-cloud Port API for VF-C
- 2.2.5.3.4 Multi-cloud server API for VF-C
- 2.2.1 VFC send out homing request to OOF
- 3 HPA VF-C Casablanca Stories
DRAFT
This is a work in progress. Comments and suggestions gladly accepted. Draft will be removed once this is finalized.
HPA VF-C External Sequence Flow for Casablanca
vCPE use case workflow through VF-C
HPA VF-C External API Interaction for Casablanca
SDC
Supported HPA Capability Requirements(DRAFT)#LogicalNodei/ORequirements is referred.
SDC will provide below HPA information to VF-C
Logical Node i/O Requirements
Capability Name | Capability Value | Descriptiopn |
|---|---|---|
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. |
OOF
A. VFC-NSLCM calls VFC-GVNFM driver through RESTful api to create VNF.
B. VFC-GVNFM invokes VFC-VNFLCM through RESTful api to do the
creation(which requires bunch of time) and returns the VNF information(Almost synchronous).
( I. VFC-LCM calls VFC-GVNFM to apply for grant.
J. VFC-GVNFM driver invokes VFC-NSLCM to provide the grant info.
K. VFC-NSLCM provides grant info along with placement from OOF to VFC-GVNFM driver
L. VFC-GVNFM transmits the information to VFC-VNFLCM to go through
the following steps for instantiation.)
During the creation period(Step B.):
C. VFC-NSLCM calls OOF for homing allocation service using the VNF information returned.
D. OOF calls POLICY to retrieve related policies for such service/VNF.
E. OOF calls AAI to get all available cloud regions or existing instances inside the database.
F. OOF processes the homing allocation.
G. OOF respond to VFC-NSLCM with the optimal placement.
H. VFC-NSLCM stores the data returned by OOF into its database.
The integration between OOF and VFC can be divided into 4 phases:
VFC send out homing request to OOF(Step C.)
OOF retrieve the requirements(policies) for that service/VNF inside Policy(Step D.)
OOF check AAI database for existing instances/available cloud regions(Step E.)
OOF process homing allocation and return homing placement to VFC (Step F. and G.)
VFC send out homing request to OOF
A module inside NSLCM will call OOF to get homing allocation placement. And it will use the same API using by SO. Sample request using these API:
VFC-OOF API
{
"requestInfo": {
"transactionId": "2441780a-2710-4169-91ee-a9f52a705bb3 //UUID",
"requestId": "2441780a-2710-4169-91ee-a9f52a705bb3 //UUID",
"callbackUrl": "<callback URL from VFC>",
"sourceId": "vfc",
"requestType": "create",
"numSolutions": 1,
"optimizers": [
"placement"
],
"timeout": 600
},
"placementInfo": {
"placementDemands": [
{
"resourceModuleName": "vBRG //<VNF name from CSAR>",
"serviceResourceId": "<vnfInstanceId used inside VFC>",
"resourceModelInfo": {
"modelInvariantId": "no-resourceModelInvariantId",
"modelVersionId": "no-resourceModelVersionId"
}
}
]
},
"serviceInfo": {
"serviceInstanceId": "9fd24064-a335-478c-bbb0-3b71b7fbc55f",
"serviceName": "vcpe",
"modelInfo": {
"modelInvariantId": "31390ef2-94a9-4cef-a09a-08f7d66540c9 //Id get from CSAR",
"modelVersionId": "1a32426f-3616-47d0-96eb-b20cc7fff9be //Id get from CSAR"
}
}
}