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
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}