...
- Retrieve the policies for that service/VNF
- Check AAI database for existing instances/available cloud regions.
- OOF do homing placement
- Return homing placement to VFC
Retrieve the policies for that service/VNF
OOF need to retrieve policies for that VNF/service. Sample Policy schema will look like this:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# #Example 1: vCPE, Basic Capability and pciePassthrough #one VNFC(VFC) with one basic capability requirement and two pciePassthrough 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_label'>", "attribute_value": "<Blank>" } ] } ], "flavorProperties": [ { "hpa-feature": "basicCapabilities", "mandatory": "True", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" } ] }, { "hpa-feature": "basicCapabilities", "mandatory": "True", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" }, ] }, { "hpa-feature": "pciePassthrough", "mandatory": "True", "architecture": "generic", "directives" : [ { "directive_name": "pciePassthrough_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": "pciePassthrough", "mandatory": "True", "architecture": "generic", "directives" : [ { "directive_name": "pciePassthrough_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": "" } ] } ] } ] } } |
Check AAI database for existing instances/available cloud regions
The data in AAI still follows the routine schema designed inĀ HPA Policies and Mappings. The only part has been changed is inside pciePassthrough. 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:"MB"} hpa-capability-id="f453fd3d-0b15-11w4-81b2-6210efc6dff9", hpa-feature= "pciePassthrough", architecture= "intel64", version= "v1", hpa-attribute-key hpa-attribute-value pciCount {value: 1} pciVendorId {value: "8086"} pciDeviceId {value: "0443"} directive {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 {value: "3440"} directive {value: "[{"attribute_name"="vnic_type", "attribute_value"="direct"}, {"attribute_name"="physical_network", "attribute_value"="physnet2"}]"} |
Return homing placements to VF-C
After OOF gives out the most appropriate placement for that VNF/services, it will respond the solution back to VF-C with schema like this:
...