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", }, "chosenCustomerId": "DemoCust_8b908ab3-b9e6-41a9-a4e2-31cc9c5114a2" " }, "subscriberInfo": { "globalSubscriberId": "xxx-xx-xxxdbc2c763-6383-42d6-880a-b7d5c5bc84d9", "subscriberName": "subscriber_xoof-so-chm" }, "placementDemands": [{ { "resourceModuleName": "vFWSNK", "serviceResourceIdresourceModuleName": "vFW-xxSINK", "tenantIdserviceResourceId": "vFW-SINK-yyXX", "resourceModelInfo": { "modelInvariantId": "fda3c1e8-7653-4acd-80ef-f5755c1d3859", "modelVersionId": "a6906768-1cae-4e78-acd1-d753ac61f3e8" "modelInvariantId": "vFW-modelInvariantId", }, "modelVersionIdexcludedCandidates": "vFW-versionId", [ { "modelName": "vFW-model", "modelTypeidentifierType": "resourcevfmodule", "modelVersionidentifiers": "1.0",[ "modelCustomizationName": "vFW-customeModelName" "4d944b8f-557a-4fe7-bcb3-aec65927a065" }, ] "requiredCandidates": [{ } "identifierType": "vfModuleId", ] }, "cloudOwner": "", { "identifiersresourceModuleName": ["requiredvFWVfModuleId-GUIDvPGN"], "serviceResourceId": "vPGN-XX", } ]"unique": "false", "excludedCandidatesresourceModelInfo": [{ "modelInvariantId": "f2f88e29-d571-49ef-aea3-b8d13900c16f", "identifierTypemodelVersionId": "vfModuleId",3ccebc76-66e1-47c8-aee9-98f30d08db97" } "cloudOwner": "", } ] }, "identifiersserviceInfo": ["excludedvFWVfModuleId-GUID"]{ "serviceInstanceId": "209fb01e-60ca-4325-b074-c5ad4e0499f8", "serviceName": "vFW_TD", } "modelInfo": { ] "modelInvariantId": "TD-invariantId", }, "modelVersionId": "TD-versionId" { } } } |
AFFINITY POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "resourceModuleNameservice": "vPGNaffinityPolicy", "policyName": "OSDF_DUBLIN.Affinity_vFW_TD", "serviceResourceIddescription": "vPGN-xx",Affinity policy for vPGN Anchor and vFW destination point", "tenantIdtemplateVersion": "vPGN-yyOpenSource.version.1", "version": "oofDublin", "priority": "3", "resourceModelInforiskType": {"test", "riskLevel": "2", "guard": "False", "content": { "modelInvariantIdidentity": "vPGN-modelInvariantIdaffinity_vFW_TD", "policyScope": [ "modelVersionId": "vPGN-versionIdTD", "modelName": "vPGN-model"vFW-SINK", "vPGN" "modelType": "resource" ], "affinityProperty": { "modelVersionqualifier": "1.0same", "modelCustomizationNamecategory": "vPGN-customeModelNameregion" }, } "policyType": "zone", "resources": [ "requiredCandidates": [{ "vFW-SINK", "identifierType": "vfModuleId","vPGN" ] } } |
VFW VNF POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "service": "vnfPolicy", "cloudOwnerpolicyName": "OSDF_DUBLIN.vnfPolicy_vFW_TD", "description": "vnfPolicy", "templateVersion": "OpenSource.version.1", "version": "oofDublin", "identifierspriority": ["requiredvPGNVfModuleId-GUID6"], "riskType": "test", "riskLevel": "3", "guard": "False", } "content": { "identity": "vnf_vFW_TD", "policyScope": ["TD", "vFW-SINK"], "policyType": "vnfPolicy", "excludedCandidatesresources": [{ "vFW-SINK"], "applicableResources": "any", "vnfProperties": [{ "identifierTypeinventoryProvider": "vfModuleIdaai", "serviceType": "", "cloudOwnerinventoryType": "vfmodule", "customerId": { "identifiersget_param": ["excludedvPGNVfModuleId-GUID"]"chosen_customer_id" }, } "equipmentRole": "", "attributes": { ] } "orchestrationStatus": ["active"], ] } } |
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.
...
"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": [] }, { "interfaceName": "vfw-dt-module-2-vfw_private_2_port-v4lpjnglwdbp", "macAddr": "fa:16:3e:25:a5:9d", "networkId": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb", "networkName": "oam_network_WVly", "ipv4Addresses": ["10.0.110.4"], "ipv6Addresses": [], "vlans": [] } ] }, { "vServerId": "9a3c21ba-4bcd-42bc-a4da-882d9c2183d0", "vServerName": "vfw-vsn-2-dt", "cloudRegionId": "RegionOne", // -> A&AI cloud-inf/v-server "lInterfaces": [ { "interfaceName": "vfw-dt-module-2-vsn_private_0_port-ctmh5td6ybkf", "macAddr": "fa:16:3e:76:31:07", "networkId": "0fe48f60-1738-4fd3-941f-63a2c958b9ec", "networkName": "protected_net_dt", "ipv4Addresses": ["192.168.20.240"], "ipv6Addresses": [], "vlans": [] }, { "interfaceName": "vfw-dt-module-2-vsn_private_1_port-nkosg44b6zn6", "macAddr": "fa:16:3e:67:b5:db", "networkId": "848e3e94-d6f8-46b1-bf72-c8477f9a42cb", "networkName": "oam_network_WVly", "ipv4Addresses": ["10.0.110.5"], "ipv6Addresses": [], "vlans": [] }, { "interfaceName": "vfw-dt-module-2-vsn_private_2_port-7svzynbtnh66", "macAddr": "fa:16:3e:10:20:82", "networkId": "0fe48f60-1738-4fd3-941f-63a2c958b9ec", "networkName": "onap_oam_ext", "ipv4Addresses": ["10.100.100.5"], "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}
...