View file | ||||
---|---|---|---|---|
|
...
Elite soft json viewer | ||||
---|---|---|---|---|
| ||||
{ "requestInfo": { "transactionId": "e576c75e-7536-4145-a1c0-d60b65bb1bb8", "requestId": "de4f04e3-0a65-470b-9d07-8ea6c2fb3e10", "callbackUrl": "httpshttp://wiki0.0.onap0.org0:50009000/callbackUrlosdfCallback/", "sourceId": "SO", "requestType": "create", "numSolutions": "100", "optimizers": [ "placement" ], "timeout": 1200 }, "placementInfo": { "requestParameters": { "sourceDestinationVfModuleIdchosenRegion": "e85d0c57-e518-4dae-b185-75bf649e52f8" }RegionOne", "subscriberInfo": { "globalSubscriberIdchosenCustomerId": "dbc2c763DemoCust_8b908ab3-6383b9e6-42d641a9-880aa4e2-b7d5c5bc84d931cc9c5114a2", "subscriberName": "oof-so-chm" }, }, "placementDemandssubscriberInfo": [ { { "resourceModuleNameglobalSubscriberId": "DtDestinationdbc2c763-6383-42d6-880a-b7d5c5bc84d9", "serviceResourceIdsubscriberName": "vFWoof-so-XX",chm" }, "resourceModelInfo": { "placementDemands": [ "modelInvariantId": "b50a101d-dbe3-41b1-a04b-3c44b0ec9d94", { "modelVersionId": "d23ad900-9920-49da-94e3-78c76cbdf331", "modelNameresourceModuleName": "VfwSnkDtVf..base_vfw..module-0vFW-SINK", "modelType": "resource", "modelVersionserviceResourceId": "1.0"vFW-SINK-XX", }, "excludedCandidatesresourceModelInfo": [{ "modelInvariantId": "fda3c1e8-7653-4acd-80ef-f5755c1d3859", { "modelVersionId": "a6906768-1cae-4e78-acd1-d753ac61f3e8" "identifierType": "vfModuleId", }, "identifiersexcludedCandidates": [ "2b88bda7-95d4-4e26-92b7-fab087a1b609" { ] } "identifierType": "vfmodule", ] }, { "resourceModuleNameidentifiers": "DtAnchor",[ "serviceResourceId": "vPGN-XX", "resourceModelInfo": { "modelInvariantId": "344e26f1-ff29-4570-98fd-2f607b79e609",4d944b8f-557a-4fe7-bcb3-aec65927a065" "modelVersionId": "a8ad1d21-5e9d-4a91-b155-19c5ce5fbe17", "modelName": "VfwPkgDtVf..base_vpkg..module-0", ] "modelType": "resource", } "modelVersion": "1.0" } ] } ] } }, |
POLICY - OOF :
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "service "resourceModuleName": "affinityPolicyvPGN", "policyName "serviceResourceId": "TD-vPGN-AP-DP-AffinityXX", "description "unique": "Affinity policy for vPGN Anchor and destination point", "templateVersion": "1702.03", "version": "oofDublin", "priority": "5", "riskType": "test", "riskLevel": "2", "guard": "False", "content": {"false", "resourceModelInfo": { "modelInvariantId": "f2f88e29-d571-49ef-aea3-b8d13900c16f", "modelVersionId": "3ccebc76-66e1-47c8-aee9-98f30d08db97" } } ] }, "serviceInfo": { "serviceInstanceId": "209fb01e-60ca-4325-b074-c5ad4e0499f8", "serviceName": "vFW_TD", "modelInfo": { "modelInvariantId": "TD-invariantId", "modelVersionId": "TD-versionId" } } } |
AFFINITY POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"service": "affinityPolicy",
"policyName": "OSDF_DUBLIN.Affinity_vFW_TD",
"description": "Affinity policy for vPGN Anchor and vFW destination point",
"templateVersion": "OpenSource.version.1",
"version": "oofDublin",
"priority": "3",
"riskType": "test",
"riskLevel": "2",
"guard": "False",
"content": {
"identity": "affinity_vFW_TD",
"policyScope": [
"TD",
"vFW-SINK",
"vPGN"
],
"affinityProperty": {
"qualifier": "same",
"category": "region"
},
"policyType": "zone",
"resources": [
"vFW-SINK",
"vPGN"
]
}
}
|
VFW VNF POLICY:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"service": "vnfPolicy",
"policyName": "OSDF_DUBLIN.vnfPolicy_vFW_TD",
"description": "vnfPolicy",
"templateVersion": "OpenSource.version.1",
"version": "oofDublin",
"priority": "6",
"riskType": "test",
"riskLevel": "3",
"guard": "False",
"content": {
"identity": "vnf_vFW_TD",
"policyScope": ["TD", "vFW-SINK"],
"policyType": "vnfPolicy",
"resources": ["vFW-SINK"],
"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"
}
}
}]
}
} |
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", "identityhost_id": "affinity_TD_vPGNvFW_SNK_F_CL_AD", "policyScope": ["vPGN", "TD" ], "affinityPropertiescloud_owner": {"CloudOwner", "qualifier": "same", "categorylocation_type": "regionatt_aic" }, "policyType": "affinityPolicy", } "resources": [ "vPGN", } "vFW-Sink" }], "applicableResources": "all" } } |
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.
...
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}
...