View file | ||||
---|---|---|---|---|
|
...
Elite soft json viewer | ||||
---|---|---|---|---|
| ||||
{ "requestInfo": { "transactionId": "xxx-xxx-xxxx", "requestId": "yyy-yyy-yyyy", "callbackUrl": "https://wiki.onap.org:5000/callbackUrl/", "sourceId": "SO", "requestType": "create", "numSolutions": "N", "optimizers": ["placement"], "timeout": 600 }, "placementInfo": { "requestParameters": { "sourceVnfId": "GUID" }, "subscriberInfo": { "globalSubscriberId": "xxx-xx-xxx", "subscriberName": "subscriber_x" }, "placementDemands": [{ "resourceModuleName": "vFWSNK", "serviceResourceId": "vFW-xx", "tenantId": "vFW-yy", "resourceModelInfo": { "modelInvariantId": "vFW-modelInvariantId", "modelVersionId": "vFW-versionId", "modelName": "vFW-model", "modelType": "resource", "modelVersion": "1.0", "modelCustomizationName": "vFW-customeModelName" }, "requiredCandidates": [{ "identifierType": "vfModuleId", "cloudOwner": "", "identifiers": ["requiredvFWVfModuleId-GUID"] } ], "excludedCandidates": [{ "identifierType": "vfModuleId", "cloudOwner": "", "identifiers": ["excludedvFWVfModuleId-GUID"] } ] }, { "resourceModuleName": "vPGN", "serviceResourceId": "vPGN-xx", "tenantId": "vPGN-yy", "resourceModelInfo": { "modelInvariantId": "vPGN-modelInvariantId", "modelVersionId": "vPGN-versionId", "modelName": "vPGN-model", "modelType": "resource", "modelVersion": "1.0", "modelCustomizationName": "vPGN-customeModelName" }, "requiredCandidates": [{ "identifierType": "vfModuleId", "cloudOwner": "", "identifiers": ["requiredvPGNVfModuleId-GUID"] } ], "excludedCandidates": [{ "identifierType": "vfModuleId", "cloudOwner": "", "identifiers": ["excludedvPGNVfModuleId-GUID"] } ] } ] } } |
OOF - SO:
...
...
OOF returns to SO structure with Anchor point and related with them destination points. For each destination point there is only one anchor point - both have to be located in the same cloud 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.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "trafficDistributionDecisions": [ { "anchorPoint": { "nfType": "vnf", //[pnf, vnf] - depends on the API used to tretrieve object -> A&AI generic-vnf or pnf "nfId": "515e7c01ffe99e79-de6f5860-4cd544d7-8e2aa56a-e11565ca6709a5d21cfbdc21",//vnf-id or pnf-id -> A&AI generic-vnf or pnf "nfName": "Ete_vPKG_7fa9e563-bf0f-4b4c-966c-0f2179105c1cvfw-dt-pkg-0",//vnf-name or pnf-name -> A&AI generic-vnf or pnf "ipv4OamAddress": "10.12.0.6oam_network_WVly", // -> A&AI generic-vnf or pnf "ipv6OamAddress": "", // -> A&AI generic-vnf or pnf //"pnfIpv4Address": "10.100.1.30",// -> A&AI pnf //"pnfIpv4AddresspnfIpv6Address": "",// -> A&AI pnf "vnfType": "demoVFWCL/3c04ffd1-3ff5-4a14-8c59vfw-dt-service/vFW-PKG-DT-VF 0", // -> A&AI generic-vnf "vfModuleId": "f6c6c2bfa114e77b-4765709f-4fb14a5f-875da802-b1ee40d5282b6f66bc620848", // -> A&AI generic-vnf/vf-module "vfModuleName": "vpkg-dt-module-1", // -> A&AI generic-vnf/vf-module "vServersvfModuleModelInvariantId": ["344e26f1-ff29-4570-98fd-2f607b79e609", // -> A&AI cloudgeneric-infvnf/vvf-servermodule { "vServerId"vfModuleModelVersion": "65ebad74a8ad1d21-801b5e9d-45464a91-820bb155-2d84c1460a8219c5ce5fbe17", // -> A&AI cloudgeneric-infvnf/vvf-servermodule "vServerNamevfModuleModelName": "VfwPkgDtVf..base_vpkg-dt-1..module-0", // -> A&AI sdc cloud-infmodel/vvf-servermodule "lInterfacesvServers": [ // -> A&AI cloud-inf/v-server l-interface { "interfaceNamevServerId": "eth17f237078-c830-4d98-b8e9-0efc8ca36427", // -> A&AI cloud-inf/v-server l-interface "macAddrvServerName": "37-78-15-9A-28-4Bvpg-vf", // -> A&AI cloud-inf/v-server l-interface "networkNamelInterfaces": "unprotected",[ // -> A&AI cloud-inf/v-server l-interface { "ipv4AddressesinterfaceName": ["192.168.20.200"]"vpkg-dt-module-1-vpg_private_2_port-xan5gtbmgd74", // -> A&AI cloud-inf/v-server l-interface "ipv6AddressesmacAddr": [], // "fa:16:3e:53:a5:b2", // -> A&AI cloud-inf/v-server l-interface "vlansnetworkId": []"828b9558-b107-4b5e-8272-20744dac6885", // -> A&AI cloud-inf/v-server l-interface/vlan }"ipv4Addresses": ["10.100.100.2"], // -> A&AI cloud-inf/v-server l-interface ] } "networkName": "onap_oam_ext", ], "lInterfacesipv6Addresses" : [], // -> A&AI genericcloud-vnfinf/v-server l-interface "lagInterfaces" "vlans": [], // -> A&AI generic-vnf or pnf/l-interfacecloud-inf/v-server l-interface/vlan }, { "pInterfacesinterfaceName": []"vpkg-dt-module-1-vpg_private_1_port-w6av354etjpj", // -> A&AI pnf/cloud-inf/v-server l-interface }, "distributionPolicy "macAddr": "equal", //-> OOF algorithm TBD in El Altofa: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", "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": [] }, "destinationPoints": [ {//format is the same like for anchorPoint "nfType": "vnf", "nfIdinterfaceName": "c360cd53vfw-dt-0ba8module-4986-8f80-cf1257cf603b2-vfw_private_2_port-v4lpjnglwdbp", "nfNamemacAddr": "Ete_vFWSNK_7fa9e563-bf0f-4b4c-966c-0f2179105c1cfa:16:3e:25:a5:9d", "vnfType": "demoVFWCL/e8dd5878-bd48-4f3f-948f 0", "vfModuleId "networkId": "f6c6c2bf848e3e94-4765d6f8-4fb146b1-875dbf72-b1ee40d5282bc8477f9a42cb", "vfModuleNamenetworkName": "vfw-dt-module-1",oam_network_WVly", "vServers": [ "ipv4Addresses": ["10.0.110.4"], "ipv6Addresses": { [], "vlans": [] "vServerId": "37f5c62d-2d6c-4bd4-b421-26331c6c6423 ", } "vServerName": "vfw-dt-1", ] "lInterfaces": [ }, { "interfaceName"vServerId": "eth1", "macAddr": "B7-B9-4F-AD-DD-05", "networkName": "unprotected", 9a3c21ba-4bcd-42bc-a4da-882d9c2183d0", "ipv4AddressesvServerName": ["192.168.10.100"], "ipv6Addresses": [], "vlans": []"vfw-vsn-2-dt", "lInterfaces": [ }, { { "interfaceName": "vfw-dt-module-2-vsn_private_0_port-ctmh5td6ybkf", "interfaceName": "eth2 "macAddr": "fa:16:3e:76:31:07", "macAddrnetworkId": "FD0fe48f60-981738-194fd3-11941f-C7-8863a2c958b9ec", "networkName": "protected_net_dt", "ipv4Addresses": ["192.168.20.200240"], "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", { "vServerIdipv4Addresses": "362d35e1-bb7e-4108-9d61-1bd6f9ab7c62", "vServerName": "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}
...