...
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
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# #Example 1: vCPE, Basic Capability and pciePassthroughsriovNICNetwork #one VNFC(VFC) with one basic capability requirement and two pciePassthroughsriovNICNetwork requirements # { "service": "hpaPolicy", "policyName": "oofCasablanca.hpaPolicy_vFW", "description": "HPA policy for vFW", "templateVersion": "0.0.1", "version": "1.0", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { "resources": "vG", "identity": "hpaPolicy_vG", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vG"], "policyType": "hpaPolicy", "flavorFeatures": [ { "id" : "<vdu.Name>", "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute", "directives":[ { "directive_name":"flavor_directive", "attributes":[ { "attribute_name":"<Blank, or use Default value String 'flavor_name'>", "attribute_value": "<Blank>" } ] } ], "flavorProperties": [ { "hpa-feature": "basicCapabilities", "mandatory": "True", "architecture": "generic", "directives": [], "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" } ] }, { "hpa-feature": "basicCapabilities", "mandatory": "True", "architecture": "generic", "directives": [], "hpa-feature-attributes": [ { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" }, ] }, { "hpa-feature": "pciePassthroughsriovNICNetwork", "mandatory": "True", "architecture": "generic", "directives" : [ { "directive_name": "pciePassthroughsriovNICNetwork_directive", "attributes": [ { "attribute_name": "<Blank>", "attribute_value": "<Blank>" }, { "attribute_name": "<Blank>", "attribute_value": "<Blank>" } ] } ], "hpa-feature-attributes": [ { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "1234", "operator": "=", "unit": "" }, { "hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "5678", "operator": "=", "unit": "" }, { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" } ] }, { "hpa-feature": "pciePassthroughsriovNICNetwork", "mandatory": "True", "architecture": "generic", "directives" : [ { "directive_name": "pciePassthroughsriovNICNetwork_directive", "attributes": [ { "attribute_name": "<Blank>", "attribute_value": "<Blank>" } { "attribute_name": "<Blank>", "attribute_value": "<Blank>" } ] } ], "hpa-feature-attributes": [ { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "3333", "operator": "=", "unit": "" }, { "hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "7777", "operator": "=", "unit": "" }, { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" } ] } ] } ] } } |
...
The data in AAI still follows the routine schema designed in HPA Policies and Mappings. The only part has been changed is inside pciePassthroughsriovNICNetwork. We added one 'directive' attributes to contain the 'vnic_type' and 'physicalNetwork' that needed by VF-C.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
hpa-capability-id="b369fd3d-0b15-44e1-81b2-6210efc6dff9", hpa-feature= "basicCapabilities", architecture= "generic", version= "v1", hpa-attribute-key hpa-attribute-value numVirtualCpu {value:6} virtualMemSize {value:6, unit:"GB"} hpa-capability-id="f453fd3d-0b15-11w4-81b2-6210efc6dff9", hpa-feature= "pciePassthroughsriovNICNetwork", architecture= "intel64", version= "v1", hpa-attribute-key hpa-attribute-value pciCount {value: 1} pciVendorId {value: "8086"} pciDeviceId {value: "0443"} directive hpa-capability-id="f453fd3d-0b15-11w4-81b2-873hf8oo98s0", hpa-feature= "sriovNICNetwork", architecture= "intel64", {value: "[{"attribute_name"="vnic_type", "attribute_value"="direct"}, {"attribute_name"="physical_network", "attribute_value"="physnet1"}]"} hpa-capability-id="f453fd3d-0b15-11w4-81b2-873hf8oo98s0", hpa-feature= "pciePassthrough", architecture= "intel64", version= "v1", hpa-attribute-key hpa-attribute-value pciCount {value: 1} pciVendorId {value: "6808"} pciDeviceId version= "v1", hpa-attribute-key {value: "3440"} directivehpa-attribute-value pciCount {value: "[{"attribute_name"="vnic_type", "attribute_value"="direct"}, 1} pciVendorId {value: "6808"} pciDeviceId {"attribute_name"="physical_network", "attribute_value"="physnet2"}]"}value: "3440"} |
OOF process homing allocation and return homing placement to VF-C
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "requestId": "xxxx", "transactionId": " xxxx ", "statusMessage": " xxxx ", "requestStatus": "completed", "solutions": { "placementSolutions": [ [ { "resourceModuleName": " vG ", "serviceResourceId": " xxxx ", "solution": { "identifierType": "serviceInstanceId", "identifiers": [ " xxxx " ], "cloudOwner": " xxxx " }, "assignmentInfo": [ { "key":"isRehome", "value":"false" }, { "key":"locationId", "value":"DLLSTX1A" }, { "key":"locationType", "value":"openstack-cloud" }, { "key":"vimId", "value":"rackspace_DLLSTX1A" }, { "key":"physicalLocationId", "value":"DLLSTX1223" }, { "key":"oofDirectives", "value": { "directives":[ { "id":"<vdu.name>", "type":"vnfc", "directives":[ { "type":"flavor_directive", "attributes":[ { "attribute_name":"flavor_name", //just a string 'flavor_name' "attribute_value":"<flavor_name>" #VIM Flavor, which oof seleted. } ] }, { "type": "pciePassthroughsriovNICNetwork_directive", "attributes":[ {"attribute_name":"vnic_type", "attribute_value":"direct"}, {"attribute_name":"provider_network", "attribute_value":"physnet1"} ] }, { "type": "pciePassthroughsriovNICNetwork_directive", "attributes": [ {"attribute_name":"vnic_type", "attribute_value":"direct"}, {"attribute_name":"provider_network", "attribute_value":"physnet2"} ] } ] } ] } } ] } ] ], "licenseSoutions": [ { "resourceModuleName": "string", "serviceResourceId": "string", "entitlementPoolUUID": [ "string" ], "licenseKeyGroupUUID": [ "string" ], "entitlementPoolInvariantUUID": [ "string" ], "licenseKeyGroupInvariantUUID": [ "string" ] } ] } } |
...