View file | ||||
---|---|---|---|---|
|
...
Elite soft json viewer | ||||
---|---|---|---|---|
| ||||
{ "requestInfo": { "transactionId": "xxx-xxx-xxxxe576c75e-7536-4145-a1c0-d60b65bb1bb8", "requestId": "yyy-yyy-yyyyde4f04e3-0a65-470b-9d07-8ea6c2fb3e10", "callbackUrl": "httpshttp://wiki0.0.onap0.org0:50009000/callbackUrlosdfCallback/", "sourceId": "SO", "requestType": "create", "numSolutions": "N100", "optimizers": [ "placement" ], "timeout": 6001200 }, "placementInfo": { "requestParameters": { "sourceVnfIdchosenRegion": "GUIDRegionOne", }, "subscriberInfochosenCustomerId": "DemoCust_8b908ab3-b9e6-41a9-a4e2-31cc9c5114a2" }, "subscriberInfo": { "globalSubscriberId": "xxx-xx-xxxdbc2c763-6383-42d6-880a-b7d5c5bc84d9", "subscriberName": "subscriber_xoof-so-chm" }, "placementDemands": [ { "resourceModuleName": "vFWSNKvFW-SINK", "serviceResourceId": "vFW-xxSINK-XX", "resourceModelInfo": { "tenantId "modelInvariantId": "vFW-yyfda3c1e8-7653-4acd-80ef-f5755c1d3859", "modelVersionId": "a6906768-1cae-4e78-acd1-d753ac61f3e8" "resourceModelInfo": { }, "modelInvariantIdexcludedCandidates": "vFW-modelInvariantId",[ "modelVersionId": "vFW-versionId",{ "modelNameidentifierType": "vFW-modelvfmodule", "modelType": "resource", "identifiers": [ "modelVersion": "1.0", "modelCustomizationName": "vFW-customeModelName" "4d944b8f-557a-4fe7-bcb3-aec65927a065" }, ] "requiredCandidates": [{ } "identifierType": "vfModuleId", ] }, "cloudOwner": "", { "identifiersresourceModuleName": ["requiredvFWVfModuleId-GUIDvPGN"], "serviceResourceId": "vPGN-XX", } ]"unique": "false", "excludedCandidatesresourceModelInfo": [{ "identifierTypemodelInvariantId": "vfModuleIdf2f88e29-d571-49ef-aea3-b8d13900c16f", "cloudOwner "modelVersionId": "",3ccebc76-66e1-47c8-aee9-98f30d08db97" } "identifiers": ["excludedvFWVfModuleId-GUID"] } ] }, "serviceInfo": { "serviceInstanceId": ]"209fb01e-60ca-4325-b074-c5ad4e0499f8", }"serviceName": "vFW_TD", { "modelInfo": { "resourceModuleNamemodelInvariantId": "vPGNTD-invariantId", "serviceResourceIdmodelVersionId": "vPGNTD-xxversionId", } } "tenantId": "vPGN-yy",} |
AFFINITY POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "service": "affinityPolicy", "policyName": "OSDF_DUBLIN.Affinity_vFW_TD", "resourceModelInfodescription": {"Affinity policy for vPGN Anchor and vFW destination point", "templateVersion": "OpenSource.version.1", "modelInvariantIdversion": "vPGN-modelInvariantIdoofDublin", "priority": "3", "riskType": "test", "modelVersionIdriskLevel": "vPGN-versionId2", "guard": "False", "content": { "modelNameidentity": "vPGN-modelaffinity_vFW_TD", "policyScope": [ "modelType": "resourceTD", "modelVersion": "1.0", "vFW-SINK", "modelCustomizationName": "vPGN-customeModelName" ], }, "affinityProperty": { "requiredCandidatesqualifier": [{ "same", "identifierType"category": "vfModuleIdregion", }, "cloudOwnerpolicyType": "zone", "resources": [ "identifiers": ["requiredvPGNVfModuleId-GUID"]"vFW-SINK", "vPGN" } ] } } |
VFW VNF POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ ]"service": "vnfPolicy", "policyName": "OSDF_DUBLIN.vnfPolicy_vFW_TD", "description": "vnfPolicy", "excludedCandidatestemplateVersion": [{ "OpenSource.version.1", "version": "oofDublin", "priority": "6", "riskType": "test", "riskLevel": "3", "identifierTypeguard": "vfModuleIdFalse", "content": { "identity": "vnf_vFW_TD", "cloudOwnerpolicyScope": ["TD", "vFW-SINK"], "policyType": "vnfPolicy", "identifiersresources": ["excludedvPGNVfModuleIdvFW-GUIDSINK"], "applicableResources": "any", "vnfProperties": [{ } "inventoryProvider": "aai", ] "serviceType": "", } "inventoryType": "vfmodule", ] } } |
OOF - SO:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "trafficDistributionDecisionscustomerId": [{ { "anchorPoint": { "nfTypeget_param": "vnf", //[pnf, vnf] - depends on the API used to tretrieve object -> A&AI generic-vnf or pnf "nfId": "515e7c01-de6f-4cd5-8e2a-e11565ca6709",//vnf-id or pnf-id -> A&AI generic-vnf or pnf "nfName": "Ete_vPKG_7fa9e563-bf0f-4b4c-966c-0f2179105c1c",//vnf-name or pnf-name -> A&AI generic-vnf or pnf "ipv4OamAddress": "10.12.0.6", // -> A&AI generic-vnf or pnf "ipv6OamAddress": "", // -> A&AI generic-vnf or pnf //"pnfIpv4Address": "10.100.1.30",// -> A&AI pnf //"pnfIpv4Address": "",// -> A&AI pnf "vnfType": "demoVFWCL/3c04ffd1-3ff5-4a14-8c59 0", // -> A&AI generic-vnf "vfModuleId": "f6c6c2bf-4765-4fb1-875d-b1ee40d5282b", // -> A&AI generic-vnf/vf-module "vfModuleName": "vpkg-dt-module-1", // -> A&AI generic-vnf/vf-module "vServers": [ // -> A&AI cloud-inf/v-server { "vServerId": "65ebad74-801b-4546-820b-2d84c1460a82", // -> A&AI cloud-inf/v-server "vServerName": "vpkg-dt-1", // -> A&AI cloud-inf/v-server "lInterfaces": [ // -> A&AI cloud-inf/v-server l-interface { "interfaceName": "eth1", // -> A&AI cloud-inf/v-server l-interface "macAddr": "37-78-15-9A-28-4B", // -> A&AI cloud-inf/v-server l-interface "networkName": "unprotected", // -> A&AI cloud-inf/v-server l-interface "ipv4Addresses": ["192.168.20.200"], // -> A&AI cloud-inf/v-server l-interface "ipv6Addresses": [], // -> A&AI cloud-inf/v-server l-interface "vlans": [] // -> A&AI cloud-inf/v-server l-interface/vlan } ] } ], "lInterfaces" : [], //-> A&AI generic-vnf/l-interface "lagInterfaces": [], //-> A&AI generic-vnf or pnf/l-interface "pInterfaces": [] //-> A&AI pnf/l-interface }, chosen_customer_id" }, "equipmentRole": "", "attributes": { "orchestrationStatus": ["active"], "provStatus": "ACTIVE", "cloudRegionId": { "get_param": "chosen_region" }, "service_instance_id": { "get_param": "service_id" } } }] } } |
VPGN VNF POLICY:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"service": "vnfPolicy",
"policyName": "OSDF_DUBLIN.vnfPolicy_vPGN_TD",
"description": "vnfPolicy",
"templateVersion": "OpenSource.version.1",
"version": "oofDublin",
"priority": "6",
"riskType": "test",
"riskLevel": "3",
"guard": "False",
"content": {
"identity": "vnf_vPGN_TD",
"policyScope": ["TD", "vPGN"],
"policyType": "vnfPolicy",
"resources": ["vPGN"],
"applicableResources": "any",
"vnfProperties": [{
"inventoryProvider": "aai",
"serviceType": "",
"inventoryType": "vfmodule",
"customerId": {
"get_param": "chosen_customer_id"
},
"equipmentRole": "",
"attributes": {
"orchestrationStatus": ["active"],
"provStatus": "ACTIVE",
"cloudRegionId": {
"get_param": "chosen_region"
},
"service_instance_id": {
"get_param": "service_id"
}
}
}]
}
} |
QUERY POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"service": "queryPolicy",
"policyName": "OSDF_DUBLIN.QueryPolicy_vFW_TD",
"description": "Query policy for vFW TD",
"templateVersion": "OpenSource.version.1",
"version": "oofDublin",
"priority": "3",
"riskType": "test",
"riskLevel": "2",
"guard": "False",
"content": {
"queryProperties": [
{"attribute":"customerLatitude", "attribute_location": "customerLatitude", "value": 1.1},
{"attribute":"customerLongitude", "attribute_location": "customerLongitude", "value": 2.2},
{"attribute":"chosen_region", "attribute_location": "chosenRegion"},
{"attribute":"chosen_customer_id", "attribute_location": "chosenCustomerId"}
],
"policyScope": [
"TD",
"vFW-SINK",
"vPGN"
],
"policyType": "request_param_query",
"serviceName": "vFW_TD",
"identity": "vFW_TD_Query_Policy",
"resources": [
"vFW-SINK",
"vPGN"
]
}
} |
OSDF - HAS:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"name": "distribute_traffic_test",
"files": {},
"limit": 100,
"num_solution": 100,
"timeout": 1200,
"template": {
"homing_template_version": "2018-02-01",
"demands": {
"vFW-SINK": [{
"inventory_provider": "aai",
"inventory_type": "vfmodule",
"region": "RegionOne",
"placement_role": "destination",
"attributes": {
"orchestration-status": "active",
"prov-status": "ACTIVE",
"service_instance_id": "b73bed51-63a4-4660-8a2d-b8d4625b2cc0",
"global-customer-id": "Demonstration",
"model-invariant-id": "7e12b0e6-de72-45ee-8811-cce6fc31f65d",
"model-version-id": "90ce273d-463d-4a54-90fa-db8e90a0f2e2"
},
"excluded_candidates": [{
"candidate_id": "e765d576-8755-4145-8536-0bb6d9b1dc9a",
"inventory_type": "vfmodule"
}]
}],
"vPGN": [{
"inventory_provider": "aai",
"inventory_type": "vfmodule",
"region": "RegionOne",
"placement_role": "anchor",
"attributes": {
"orchestration-status": "active",
"prov-status": "ACTIVE",
"service_instance_id": "b73bed51-63a4-4660-8a2d-b8d4625b2cc0",
"global-customer-id": "Demonstration",
"model-invariant-id": "1dc4fcc4-0895-4b76-8126-34ebfe875859",
"model-version-id": "b99f698c-130a-4141-82c9-dbabaed7581d"
}
}]
},
"constraints": {
"vf_module_affinity": {
"type": "zone",
"demands": ["vFW-SINK", "vPGN"],
"properties": {
"qualifier": "same",
"category": "region"
}
}
}
}
} |
HAS - OSDF:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"plans": [{
"status": "done",
"name": "distribute_traffic_test",
"links": [
[{
"href": "http://advnet:8091/v1/plans/f75253b2-5501-4d6b-a269-be65730feec4",
"rel": "self"
}]
],
"recommendations": [{
"vPGN": {
"attributes": {
"nf-type": "vnf",
"nf-name": "vFW_PKG_F_CL_AD",
"vnf-type": "vFW_CL_AD/vFW PKG VSP CL AD 0",
"service_instance_id": "b73bed51-63a4-4660-8a2d-b8d4625b2cc0",
"physical-location-id": "clli1",
"nf-id": "94203b3a-2aa5-4526-b31a-5b8425e21573",
"aic_version": "1",
"ipv4-oam-address": "",
"host_id": "vFW_PKG_F_CL_AD",
"ipv6-oam-address": "",
"cloud_owner": "CloudOwner",
"vservers": [{
"vserver-name": "zdfw1fwl01pgn01",
"vserver-id": "9ec2105b-3910-4841-a7e8-2270f385e7dd",
"l-interfaces": [{
"macaddr": "fa:16:3e:17:8c:fd",
"interface-name": "vpkg-cl-module-1-vpg_0_unprotected_private_port_0-l2z5ofjvhjme",
"ipv4-addresses": [
"192.168.10.200"
],
"interface-id": "5b42c4d4-0a69-48ef-b72c-1d305e7acdf8",
"network-name": "",
"network-id": "6ffc5a18-ef93-4fe6-a1eb-ea4f114a48f5",
"ipv6-addresses": []
},
{
"macaddr": "fa:16:3e:8d:d8:da",
"interface-name": "vpkg-cl-module-1-vpg_0_onap_private_port_0-hqtjjcwi57vl",
"ipv4-addresses": [
"10.0.100.2"
],
"interface-id": "983e876f-f3fa-48ed-976d-8d1c2ae4450b",
"network-name": "",
"network-id": "3f95c73f-dd4e-4344-8ca6-f78d8484c330",
"ipv6-addresses": []
}
]
}]
},
"inventory_provider": "aai",
"service_resource_id": "",
"candidate": {
"is_rehome": "false",
"placement_role": "anchor",
"location_id": "RegionOne",
"inventory_type": "vfmodule",
"vim-id": "CloudOwner_RegionOne",
"candidate_id": "7039cca0-440a-4570-82bb-a4bc169f5eae",
"host_id": "vFW_PKG_F_CL_AD",
"cloud_owner": "CloudOwner",
"location_type": "att_aic"
}
},
"vFW-SINK": {
"attributes": {
"nf-type": "vnf",
"nf-name": "vFW_SNK_F_CL_AD",
"vnf-type": "vFW_CL_AD/vFW SNK VSP CL AD 0",
"service_instance_id": "b73bed51-63a4-4660-8a2d-b8d4625b2cc0",
"physical-location-id": "clli1",
"nf-id": "deecf762-c7b8-437c-930c-dd53b2d216c3",
"aic_version": "1",
"ipv4-oam-address": "",
"host_id": "vFW_SNK_F_CL_AD",
"ipv6-oam-address": "",
"cloud_owner": "CloudOwner",
"vservers": [{
"vserver-name": "vfw-vsn-1-dt_cl",
"vserver-id": "37a5f7cf-598d-4079-8944-55930f3c88b7",
"l-interfaces": [{
"macaddr": "fa:16:3e:f3:a3:de",
"interface-name": "vfw-cl-module-1-vsn_0_int_protected_private_port_0-d4w4exacitlv",
"ipv4-addresses": [
"192.168.20.250"
],
"interface-id": "234622c6-999d-4a36-a5ca-5811f07f7cad",
"network-name": "",
"network-id": "ba42a380-1e9d-4500-b6fa-ec3d1c6ab8fd",
"ipv6-addresses": []
},
{
"macaddr": "fa:16:3e:9b:44:32",
"interface-name": "vfw-cl-module-1-vsn_0_onap_private_port_0-rq6r3zyempgg",
"ipv4-addresses": [
"10.0.100.3"
],
"interface-id": "930df5d5-3069-4030-bc99-24c47c68211f",
"network-name": "",
"network-id": "3f95c73f-dd4e-4344-8ca6-f78d8484c330",
"ipv6-addresses": []
}
]
},
{
"vserver-name": "vfw-vfw-1-dt_cl",
"vserver-id": "e2db5188-2592-4326-9712-375e7c578e78",
"l-interfaces": [{
"macaddr": "fa:16:3e:ac:8d:cb",
"interface-name": "vfw-cl-module-1-vfw_0_int_protected_private_port_0-m65ztjxw2ev5",
"ipv4-addresses": [
"192.168.20.100"
],
"interface-id": "f51304b9-b925-4201-a641-d7ce922166f5",
"network-name": "",
"network-id": "ba42a380-1e9d-4500-b6fa-ec3d1c6ab8fd",
"ipv6-addresses": []
},
{
"macaddr": "fa:16:3e:08:b1:c6",
"interface-name": "vfw-cl-module-1-vfw_0_onap_private_port_0-jl4g5tvettac",
"ipv4-addresses": [
"10.0.100.1"
],
"interface-id": "bbe3979a-a17e-4155-8dc3-692618d48a35",
"network-name": "",
"network-id": "3f95c73f-dd4e-4344-8ca6-f78d8484c330",
"ipv6-addresses": []
},
{
"macaddr": "fa:16:3e:47:c0:d9",
"interface-name": "vfw-cl-module-1-vfw_0_int_unprotected_private_port_0-7okssf24mgsl",
"ipv4-addresses": [
"192.168.10.100"
],
"interface-id": "545adb7d-6cf0-41f5-8cb9-42fa64221da4",
"network-name": "",
"network-id": "6ffc5a18-ef93-4fe6-a1eb-ea4f114a48f5",
"ipv6-addresses": []
}
]
}
]
},
"inventory_provider": "aai",
"service_resource_id": "",
"candidate": {
"is_rehome": "false",
"placement_role": "destination",
"location_id": "RegionOne",
"inventory_type": "vfmodule",
"vim-id": "CloudOwner_RegionOne",
"candidate_id": "e765d576-8755-4145-8536-0bb6d9b1dc9e",
"host_id": "vFW_SNK_F_CL_AD",
"cloud_owner": "CloudOwner",
"location_type": "att_aic"
}
}
}]
}
} |
OOF - SO:
OOF returns to SO structure with Anchor point and related with them destination points. Each candidate is vFModule with extra information required or for filtering or for traffic configuration. For each destination point there is only one anchor point - both have to be located in the same cloud region. OOF firstly selects destinationPoints base on vFModule model name and by belonging to the same virtual service instance. Then such candidates are filtered on required or excluded candidate basis. Anchor candidates are filtered by the same criteria with such difference that for whole group of destination points that come from the same cloud region only one anchor point is selected - the response should refelct this relation and proposed response is a structure where under each anchor point candidate there are all selected destinations from the same region.
Level of lInterfaces, lagInterfaces and pInterfaces () as well as pnf support can be a stretch goal for Dublin release. Obligatory is VNF support with lInterfaces information under vServers what is required for vFW-DT Traffic Distribution use case.
Below is the example for the data snapshot that can be found in vFW-DT-AAI.7z. The format of the response is a compilation of data from different data structures - it is explained in the comments for each parameter. For better understanding most of identifiers are kept in the body, however in the final response format they would be removed to keep only data meaningful from configuration point of view.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"traffic-distribution-decisions": [
{
"anchor-point": {
"nf-type": "vnf", //[pnf, vnf] - depends on the API used to tretrieve object -> A&AI generic-vnf or pnf
"nf-id": "ffe99e79-5860-44d7-a56a-a5d21cfbdc21",//vnf-id or pnf-id -> A&AI generic-vnf or pnf
"nf-name": "vfw-dt-pkg-0",//vnf-name or pnf-name -> A&AI generic-vnf or pnf
"ipv4-oam-address": "10.0.110.2", // -> A&AI generic-vnf or pnf
"ipv6-oam-address": "", // -> A&AI generic-vnf or pnf
"vnf-type": "vfw-dt-service/vFW-PKG-DT-VF 0", // -> A&AI generic-vnf
"vf-module-id": "a114e77b-709f-4a5f-a802-6f66bc620848", // -> A&AI generic-vnf/vf-module
"vf-module-name": "vpkg-dt-module-1", // -> A&AI generic-vnf/vf-module
"vf-module-model-invariant-id": "344e26f1-ff29-4570-98fd-2f607b79e609", // -> A&AI generic-vnf/vf-module
"vf-module-model-version-id": "a8ad1d21-5e9d-4a91-b155-19c5ce5fbe17", // -> A&AI generic-vnf/vf-module
"vf-module-model-name": "VfwPkgDtVf..base_vpkg..module-0", // -> A&AI sdc model/vf-module
"cloud-region": "RegionOne", // -> A&AI cloud-inf/v-servers
"cloud-owner": "RegionOne", // -> A&AI cloud-inf/v-servers
"vservers": [ // -> A&AI cloud-inf/v-server
{
"vserver-id": "7f237078-c830-4d98-b8e9-0efc8ca36427", // -> A&AI cloud-inf/v-server
"vserver-name": "vpg-vf", // -> A&AI cloud-inf/v-server
"l-interfaces": [ // -> A&AI cloud-inf/v-server l-interface
{
"interface-name": "vpkg-dt-module-1-vpg_private_2_port-xan5gtbmgd74", // -> A&AI cloud-inf/v-server l-interface
"macaddr": "fa:16:3e:53:a5:b2", // -> A&AI cloud-inf/v-server l-interface
"network-id": "828b9558-b107-4b5e-8272-20744dac6885", // -> A&AI cloud-inf/v-server l-interface
"ipv4-addresses": ["10.100.100.2"], // -> A&AI cloud-inf/v-server l-interface
"network-name": "onap_oam_ext", //A&AI network
"ipv6-addresses": [] // -> A&AI cloud-inf/v-server l-interface
},
{
"interface-name": "vpkg-dt-module-1-vpg_private_1_port-w6av354etjpj", // -> A&AI cloud-inf/v-server l-interface
"macaddr": "fa:16:3e:dc:60:d3", // -> A&AI cloud-inf/v-server l-interface
"network-id": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb", // -> A&AI cloud-inf/v-server l-interface
"network-name": "oam_network_WVly",
"ipv4-addresses": ["10.0.110.2"], // -> A&AI cloud-inf/v-server l-interface
"ipv6-addresses": [] // -> A&AI cloud-inf/v-server l-interface
},
{
"interface-name": "vpkg-dt-module-1-vpg_private_0_port-fvlhoybxja7p", // -> A&AI cloud-inf/v-server l-interface
"macaddr": "fa:16:3e:96:59:0f", // -> A&AI cloud-inf/v-server l-interface
"network-id": "676a05c4-65ab-46c7-86a8-6d748e9089c1", // -> A&AI cloud-inf/v-server l-interface
"network-name": "unprotected_net_dt",
"ipv4-addresses": ["192.168.10.200"], // -> A&AI cloud-inf/v-server l-interface
"ipv6-addresses": [] // -> A&AI cloud-inf/v-server l-interface
}
]
}
]
},
"destination-points": [
{//format is the same like for anchorPoint
"nf-type": "vnf",
"nf-id": "7dad5e9c-7639-454f-8568-e68b52149127",
"nf-name": "vfw-dt-snk-1",
"ipv4-oam-address": "10.0.110.4",
"ipv6-oam-address": "",
"vnf-type": "vfw-dt-service/vFW-SNK-DT-VF 1",
"vf-module-id": "63ee489f-8e02-4b7b-a49a-8587445c1b1a",
"vf-module-name": "vfw-dt-module-2",
"vf-module-model-invariant-id": "b50a101d-dbe3-41b1-a04b-3c44b0ec9d94", // -> A&AI generic-vnf/vf-module
"vf-module-model-version-id": "d23ad900-9920-49da-94e3-78c76cbdf331", // -> A&AI generic-vnf/vf-module
"vf-module-model-name": "VfwSnkDtVf..base_vfw..module-0", // -> A&AI sdc model/vf-module
"cloud-region": "RegionOne", // -> A&AI cloud-inf/v-servers
"cloud-owner": "RegionOne", // -> A&AI cloud-inf/v-servers
"vServers": [
{
"vserver-id": "b1b43d9b-dd47-42b2-979a-9c6ce9ac431e",
"vserver-name": "vfw-vfw-2-dt",
"l-interfaces": [
{
"interface-name": "vfw-dt-module-2-vfw_private_0_port-gn4ev6oxvvj6",
"macaddr": "fa:16:3e:ec:39:c3",
"network-id": "676a05c4-65ab-46c7-86a8-6d748e9089c1",
"network-name": "unprotected_net_dt",
"ipv4-addresses": ["192.168.10.110"],
"ipv6-addresses": []
},
{
"interface-name": "vfw-dt-module-2-vfw_private_3_port-cozwyppibrh2",
"macaddr": "fa:16:3e:a1:18:84",
"network-id": "828b9558-b107-4b5e-8272-20744dac6885",
"network-name": "onap_oam_ext",
"ipv4-addresses": ["10.100.100.4"],
"ipv6-addresses": []
},
{
"interface-name": "vfw-dt-module-2-vfw_private_1_port-cu5rvzfeqsaq",
"macaddr": "fa:16:3e:97:09:70",
"network-id": "0fe48f60-1738-4fd3-941f-63a2c958b9ec",
"network-name": "protected_net_dt",
"ipv4-addresses": ["192.168.20.110"],
"ipv6-addresses": []
},
{
"interface-name": "vfw-dt-module-2-vfw_private_2_port-v4lpjnglwdbp",
"macaddr": "fa:16:3e:25:a5:9d",
"network-id": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb",
"network-name": "oam_network_WVly",
"ipv4-addresses": ["10.0.110.4"],
"ipv6-addresses": []
}
]
},
{
"vserver-id": "9a3c21ba-4bcd-42bc-a4da-882d9c2183d0",
"vserver-name": "vfw-vsn-2-dt",
"l-interfaces": [
{
"interface-name": "vfw-dt-module-2-vsn_private_0_port-ctmh5td6ybkf",
"macaddr": "fa:16:3e:76:31:07",
"network-id": "0fe48f60-1738-4fd3-941f-63a2c958b9ec",
"network-name": "protected_net_dt",
"ipv4-addresses": ["192.168.20.240"],
"ipv6-addresses": []
},
{
"interface-name": "vfw-dt-module-2-vsn_private_1_port-nkosg44b6zn6",
"macaddr": "fa:16:3e:67:b5:db",
"network-id": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb",
"network-name": "oam_network_WVly",
"ipv4-addresses": ["10.0.110.5"],
"ipv6-addresses": []
},
{
"interface-name": "vfw-dt-module-2-vsn_private_2_port-7svzynbtnh66",
"macaddr": "fa:16:3e:10:20:82",
"network-id": "0fe48f60-1738-4fd3-941f-63a2c958b9ec",
"network-name": "onap_oam_ext",
"ipv4-addresses": ["10.100.100.5"],
"ipv6-addresses": []
}
]
}
]
}
]
}
]
}
|
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "trafficDistributionDecisions": [ { "anchorPoint": { "nfType": "vnf", //[pnf, vnf] - depends on the API used to tretrieve object -> A&AI generic-vnf or pnf "nfId": "ffe99e79-5860-44d7-a56a-a5d21cfbdc21",//vnf-id or pnf-id -> A&AI generic-vnf or pnf "nfName": "vfw-dt-pkg-0",//vnf-name or pnf-name -> A&AI generic-vnf or pnf "ipv4OamAddress": "oam_network_WVly", // -> A&AI generic-vnf or pnf "ipv6OamAddress": "", // -> A&AI generic-vnf or pnf //"pnfIpv4Address": "",// -> A&AI pnf //"pnfIpv6Address": "",// -> A&AI pnf "vnfType": "vfw-dt-service/vFW-PKG-DT-VF 0", // -> A&AI generic-vnf "vfModuleId": "a114e77b-709f-4a5f-a802-6f66bc620848", // -> A&AI generic-vnf/vf-module "vfModuleName": "vpkg-dt-module-1", // -> A&AI generic-vnf/vf-module "vfModuleModelInvariantId": "344e26f1-ff29-4570-98fd-2f607b79e609", // -> A&AI generic-vnf/vf-module "vfModuleModelVersion": "a8ad1d21-5e9d-4a91-b155-19c5ce5fbe17", // -> A&AI generic-vnf/vf-module "vfModuleModelName": "VfwPkgDtVf..base_vpkg..module-0", // -> A&AI sdc model/vf-module "vServers": [ // -> A&AI cloud-inf/v-server { "vServerId": "7f237078-c830-4d98-b8e9-0efc8ca36427", // -> A&AI cloud-inf/v-server "vServerName": "vpg-vf", // -> A&AI cloud-inf/v-server "cloudRegionId": "RegionOne", // -> A&AI cloud-inf/v-server "lInterfaces": [ // -> A&AI cloud-inf/v-server l-interface { "interfaceName": "vpkg-dt-module-1-vpg_private_2_port-xan5gtbmgd74", // -> A&AI cloud-inf/v-server l-interface "macAddr": "fa:16:3e:53:a5:b2", // -> A&AI cloud-inf/v-server l-interface "networkId": "828b9558-b107-4b5e-8272-20744dac6885", // -> A&AI cloud-inf/v-server l-interface "ipv4Addresses": ["10.100.100.2"], // -> A&AI cloud-inf/v-server l-interface "networkName": "onap_oam_ext", //A&AI network "ipv6Addresses": [], // -> A&AI cloud-inf/v-server l-interface "vlans": [] // -> A&AI cloud-inf/v-server l-interface/vlan }, { "interfaceName": "vpkg-dt-module-1-vpg_private_1_port-w6av354etjpj", // -> A&AI cloud-inf/v-server l-interface "macAddr": "fa:16:3e:dc:60:d3", // -> A&AI cloud-inf/v-server l-interface "networkId": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb", // -> A&AI cloud-inf/v-server l-interface "networkName": "oam_network_WVly", "ipv4Addresses": ["10.0.110.2"], // -> A&AI cloud-inf/v-server l-interface "ipv6Addresses": [], // -> A&AI cloud-inf/v-server l-interface "vlans": [] // -> A&AI cloud-inf/v-server l-interface/vlan }, { "interfaceName": "vpkg-dt-module-1-vpg_private_0_port-fvlhoybxja7p", // -> A&AI cloud-inf/v-server l-interface "macAddr": "fa:16:3e:96:59:0f", // -> A&AI cloud-inf/v-server l-interface "networkId": "676a05c4-65ab-46c7-86a8-6d748e9089c1", // -> A&AI cloud-inf/v-server l-interface "networkName": "unprotected_net_dt", "ipv4Addresses": ["192.168.10.200"], // -> A&AI cloud-inf/v-server l-interface "ipv6Addresses": [], // -> A&AI cloud-inf/v-server l-interface "vlans": [] // -> A&AI cloud-inf/v-server l-interface/vlan } ] } ], "lInterfaces" : [], //-> A&AI generic-vnf/l-interface "lagInterfaces": [], //-> A&AI generic-vnf or pnf/l-interface "pInterfaces": [] //-> A&AI pnf/l-interface }, "distributionPolicy": "equal", //-> OOF algorithm TBD in El Alto "destinationPoints": [ {//format is the same like for anchorPoint "nfType": "vnf", "nfId": "7dad5e9c-7639-454f-8568-e68b52149127", "nfName": "vfw-dt-snk-1", "vnfType": "vfw-dt-service/vFW-SNK-DT-VF 1", "vfModuleId": "63ee489f-8e02-4b7b-a49a-8587445c1b1a", "vfModuleName": "vfw-dt-module-2", "vfModuleModelInvariantId": "b50a101d-dbe3-41b1-a04b-3c44b0ec9d94", // -> A&AI generic-vnf/vf-module "vfModuleModelVersion": "d23ad900-9920-49da-94e3-78c76cbdf331", // -> A&AI generic-vnf/vf-module "vfModuleModelName": "VfwSnkDtVf..base_vfw..module-0", // -> A&AI sdc model/vf-module "vServers": [ { "vServerId": "b1b43d9b-dd47-42b2-979a-9c6ce9ac431e", "vServerName": "vfw-vfw-2-dt", "cloudRegionId": "RegionOne", // -> A&AI cloud-inf/v-server "lInterfaces": [ { "interfaceName": "vfw-dt-module-2-vfw_private_0_port-gn4ev6oxvvj6", "macAddr": "fa:16:3e:ec:39:c3", "networkId": "676a05c4-65ab-46c7-86a8-6d748e9089c1", "networkName": "unprotected_net_dt", "ipv4Addresses": ["192.168.10.110"], "ipv6Addresses": [], "vlans": [] }, { "interfaceName": "vfw-dt-module-2-vfw_private_3_port-cozwyppibrh2", "macAddr": "fa:16:3e:a1:18:84", "networkId": "828b9558-b107-4b5e-8272-20744dac6885", "networkName": "onap_oam_ext", "ipv4Addresses": ["10.100.100.4"], "ipv6Addresses": [], "vlans": [] }, { "interfaceName": "vfw-dt-module-2-vfw_private_1_port-cu5rvzfeqsaq", "macAddr": "fa:16:3e:97:09:70", "networkId": "0fe48f60-1738-4fd3-941f-63a2c958b9ec", "networkName": "protected_net_dt", "ipv4Addresses": ["192.168.20.110"], "ipv6Addresses": [], "vlans": [] "distributionPolicy": "equal", //-> OOF algorithm TBD in El Alto "destinationPoints": [}, {//format is the same like for anchorPoint "nfType": "vnf", { "nfId": "c360cd53-0ba8-4986-8f80-cf1257cf603b", "nfName": "Ete_vFWSNK_7fa9e563-bf0f-4b4c-966c-0f2179105c1c", "vnfType": "demoVFWCL/e8dd5878-bd48-4f3f-948f 0", "interfaceName": "vfw-dt-module-2-vfw_private_2_port-v4lpjnglwdbp", "vfModuleId "macAddr": "f6c6c2bf-4765-4fb1-875d-b1ee40d5282bfa:16:3e:25:a5:9d", "vfModuleNamenetworkId": "vfw848e3e94-d6f8-dt46b1-modulebf72-1c8477f9a42cb", "vServers": [ "networkName": "oam_network_WVly", { "ipv4Addresses": ["10.0.110.4"], "ipv6Addresses": [], "vlans": [] "vServerId": "37f5c62d-2d6c-4bd4-b421-26331c6c6423 ", } "vServerName": "vfw-dt-1", ] "lInterfaces": [ }, { { "interfaceNamevServerId": "eth1", "macAddr": "B7-B9-4F-AD-DD-05", "networkName": "unprotected", 9a3c21ba-4bcd-42bc-a4da-882d9c2183d0", "ipv4AddressesvServerName": ["192.168.10.100"], "vfw-vsn-2-dt", "ipv6AddressescloudRegionId": [], "vlans": [] "RegionOne", // -> A&AI cloud-inf/v-server },"lInterfaces": [ { "interfaceName": "eth2vfw-dt-module-2-vsn_private_0_port-ctmh5td6ybkf", "macAddr": "fa:16:3e:76:31:07", "networkId": "FD0fe48f60-981738-194fd3-11941f-C7-8863a2c958b9ec", "networkName": "protected_net_dt", "ipv4Addresses": ["192.168.20.200240"], "ipv6Addresses": [], "vlans": [] }": [], "vlans": [] ] }, }, { { "interfaceName": "vfw-dt-module-2-vsn_private_1_port-nkosg44b6zn6", "macAddr": "vServerId"fa:16:3e:67:b5:db", "networkId": "362d35e1848e3e94-bb7ed6f8-410846b1-9d61-1bd6f9ab7c62",bf72-c8477f9a42cb", "networkName": "oam_network_WVly", "vServerNameipv4Addresses": "vsink-dt-1", ["10.0.110.5"], "ipv6Addresses": [], "vlans": [] "lInterfaces": [ }, { "interfaceName": "eth1vfw-dt-module-2-vsn_private_2_port-7svzynbtnh66", "macAddr": "1C-A7-34-17-D1-44fa:16:3e:10:20:82", "networkNamenetworkId": "protected0fe48f60-1738-4fd3-941f-63a2c958b9ec", "networkName": "onap_oam_ext", "ipv4Addresses": ["19210.168100.20100.2015"], "ipv6Addresses": [], "vlans": [] } ] } ], "lInterfaces" : [], "lagInterfaces": [], "pInterfaces": [] } ] } ] } //vlan { "interfaceName": "", //-> A&AI vlan "vlanIdInner": "", //-> A&AI vlan "vlanIdOuter": "", //-> A&AI vlan "vpnKey": "", //-> A&AI vlan "ipv4Addresses": [], "ipv6Addresses": [], } //p-interface { "interfaceName": "", //-> A&AI p-interface "type": "", //-> A&AI p-interface "role": "", //-> A&AI p-interface "macAddr": "1C-A7-34-17-D1-44", //-> A&AI p-interface "lInterfaces" : [] //-> A&AI p-interface/l-interfaces } //lag-interface { "interfaceName": "", //-> A&AI lag-interface "role": "", //-> A&AI lag-interface "lInterfaces" : [] //-> A&AI l-interface } |
...
The following REST calls to retrieve topology and VNF candidates from AAI:
- GET /aai/v14/network/generic-vnfs/
- GET /aai/v14/network/generic-vnfs/generic-vnf/e529455a-e50f-4fe2-b170-ec498ba1f75c
- GET /aai/v14/network/generic-vnfs/generic-vnf/e529455a-e50f-4fe2-b170-ec498ba1f75c/vf-modules
- GET /aai/v14/network/generic-vnfs/generic-vnf/e529455a-e50f-4fe2-b170-ec498ba1f75c/vf-modules/vf-module/0c3e0afe-9af4-4d92-bf3f-a8e20f5c093a
- GET /aai/v14/service-design-and-creation/models/model/d7b903e7-a4d5-4ed1-898f-6174a7a88762/model-vers/model-ver/7f9bd514-bb18-431e-9696-794f70c0b66d
- GET /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/bc43d50ffcb84750bac0c1707a9a765b/vservers
- GET /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/bc43d50ffcb84750bac0c1707a9a765b/vservers
- GET /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/bc43d50ffcb84750bac0c1707a9a765b/vservers/vserver/bf5f089c-0632-48dd-814c-2dfa4095f2ac
- GET /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/bc43d50ffcb84750bac0c1707a9a765b/vservers/vserver/bf5f089c-0632-48dd-814c-2dfa4095f2ac/l-interfaces/l-interface/Vfmodule_Demo_vFWSNK_7fa9e563-bf0f-4b4c-966c-0f2179105c1c-vsn_private_0_port-ovft6nu22dz4/l3-interface-ipv4-address-list
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
GET /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
- GET /aai/v14/network/pnfs
- GET /aai/v14/network/pnfs/pnf/{pnf-name}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
- GET /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
...