Traffic Distribution Requirement v1.3 (Updated 18.02.2019)
Traffic Distribution E2E Sequence Diagrams with Description v1.1 (Updated 28.01.2019)
Presentation covers whole scope of work that is planned for Dublin but it also shows long term plan for functionality that we plan to develop in Dublin and El Alto.
More information is available here: Change Management Dublin Extensions
API Extensions
SO - OOF
The following are the key parameters that needs to be sent in from SO to OOF:
OOF - SO:
{ "trafficDistributionDecisions": [ { "anchorPoint": { "nfType": "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 }, "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", "vfModuleId": "f6c6c2bf-4765-4fb1-875d-b1ee40d5282b", "vfModuleName": "vfw-dt-module-1", "vServers": [ { "vServerId": "37f5c62d-2d6c-4bd4-b421-26331c6c6423 ", "vServerName": "vfw-dt-1", "lInterfaces": [ { "interfaceName": "eth1", "macAddr": "B7-B9-4F-AD-DD-05", "networkName": "unprotected", "ipv4Addresses": ["192.168.10.100"], "ipv6Addresses": [], "vlans": [] }, { "interfaceName": "eth2", "macAddr": "FD-98-19-11-C7-88", "networkName": "protected", "ipv4Addresses": ["192.168.20.200"], "ipv6Addresses": [], "vlans": [] } ] }, { "vServerId": "362d35e1-bb7e-4108-9d61-1bd6f9ab7c62", "vServerName": "vsink-dt-1", "lInterfaces": [ { "interfaceName": "eth1", "macAddr": "1C-A7-34-17-D1-44", "networkName": "protected", "ipv4Addresses": ["192.168.20.201"], "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 }
NOTE: SO-OOF requirements from above needs to be integrated into the existing SO-OOF API: OOF/HAS API Specifications, oof-osdf-has-api.json
OOF - AAI
AAI data snapshot with examplary data for vFW-DT Traffic Distribution use case (taken from Casablanca MR AAI version): dataSnapshot.graphSON.201903110745
AAI data can be restored with following procedure A&AI Data Restore for OOM - Casablanca
In this package all data (JSON responses from AAI) for vFW-DT Traffic Distribution use case can be found: vFW-DT-AAI.7z
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}