Standard External Interface Extensions Part of the E

  • Slides: 26
Download presentation
(Standard) External Interface Extensions (Part of the E 2 E Network Slicing Use Case)

(Standard) External Interface Extensions (Part of the E 2 E Network Slicing Use Case) Participants: CMCC, Wipro, Huawei, AT&T, Amdocs, Fujitsu, Verizon, Reliance Jio, Tencent, China Telecom Authors: Priyadharshini B (Wipro), Swaminathan (Wipro), Adrian (Huawei), Guobiao (CMCC), Lu. Kai (CMCC) June 10, 2020

Guilin Scope • Service Creation (UUI integration) • Service Activation Request • Service Deactivation

Guilin Scope • Service Creation (UUI integration) • Service Activation Request • Service Deactivation Request • Service Termination Request • KPI/Performance monitoring

ONAP-based Slice Management Overall Architecture Choices OSS/BSS/Apps 1 2 OSS/BSS/Apps 3 OSS/BSS/Apps Standard APIs

ONAP-based Slice Management Overall Architecture Choices OSS/BSS/Apps 1 2 OSS/BSS/Apps 3 OSS/BSS/Apps Standard APIs To Be Done in G release CSMF (ONAP) CSMF NSMF (ONAP) OSS/BSS/Apps x. NFs NSSMF(s)1 (ONAP) x. NFs 3 rd party component 1 Top-most NSSMF/domain-specific NSSMF – under discussion OSS/BSS/Apps Standard APIs CSMF (ONAP) CSMF NSMF (ONAP) NSMF NSSMF(s)1 x. NFs Standard APIs NSSMF(s)1 (ONAP) 5 Standard APIs NSMF (ONAP) 4 NSSMF(s)1 x. NFs NSSMF(s)1 (ONAP) x. NFs In F release, only Scenario 4 for Core is implemented. Scenario 1 (all 3 sub-nets) & Scenario 4 for RAN and Core will be supported in G release.

Service Creation (TMF 641 based) Frankfurt UUI Guilin Tested using postman 1 UUI 1

Service Creation (TMF 641 based) Frankfurt UUI Guilin Tested using postman 1 UUI 1 EXT-API Ext. API SO S D C OOF CSMF WFs NSMF WFs Impact in UUI S D C AAI NSSMF Adaptor SO CSMF Policy Core NSSMF Core 1 SDN-C (SDN-R) ONAP Ext. RAN NSSMF /{api_url}/nbi/api/v 4/service. Order/ AAI NSMF NFVO NSSMF ONAP OOF SDN-C Policy CDS C&PS Ext. Core NSSMF RAN Transport Core

CS Service Order Create: • CSMF portal can POST this JSON body to /{api_url}/nbi/api/v

CS Service Order Create: • CSMF portal can POST this JSON body to /{api_url}/nbi/api/v 4/service. Order/ • Response Includes the Service Order Id for tracking and will be in acknowledged state • CSMF can register listeners with POST : /{api_url}/nbi/api/v 4/hub api to get service state change notification or use GET : /{api_url}/nbi/api/v 4/service. Order/{service. Order. Id} to retrieve service order details and service Instance Id or /{api_url}/nbi/api/v 4/service/{service. Instance. Id} to retrieve service instance details. • The state of the Servive Order/Order. Item for the CS will have one should be one of ACKNOWLEDGED, REJECTED, INPROGRESS, COMPLETED or FAILED - ACKNOWLEDGED - NBI has received the request but SO BPMN has not yet started - REJECTED - NBI has rejected the Order, reasons given in order message, for example the order specifies a Service. Specification id that does not exist in SDC. - INPROGRESS - NBI has sent the request to SO and SO is processing it - COMPLETED - SO has finished and indicated it has “finished” Success - FAILED - SO has finished and indicated “error” failure EXT-API Implementation is done in Frankfurt. Guilin Scope : Integration with UUI { "external. Id": “CSMF_Portal_Trackind. Id 3584", "category": “Communication Service", "description": "Service Order for a new CS", "priority": "1", "related. Party": [ { "id": “Customer. Id 1", This is the customer id used in AAI Service Instance hierarchy "role": "ONAPcustomer", "name": “Customer. Id 1", "@referred. Type": "Consumer" }], "order. Item": [ { "id": "1", "action": "add", Note : add here means create the CS Service Instance "service": { "name": “Service_1234", “service. Type” : “ 5 G”, "service. Specification": { "id": "1 e 3 fddb 0 -9 e 36 -46 c 6 -862 c-236 d 9 c 626400“ The uuid from SDC of the CST }, "service. Characteristic": [ These are the Inputs for CST SDC Topology { "name": “sla. Level", "value": { "service. Characteristic. Value": “Gold" } }, { "name": “u. EMobility. Level", "value": { "service. Characteristic. Value": “A" } } and other Inputs we model in SDC for the CST here…. ] } } n 5 ] }

Frankfurt implementation for CS Activate/Deactivate and Terminate(UUI<->SO) v ACTIVATE/DEACTIVATE - POST : /onap/so/infra/e 2

Frankfurt implementation for CS Activate/Deactivate and Terminate(UUI<->SO) v ACTIVATE/DEACTIVATE - POST : /onap/so/infra/e 2 e. Service. Instances/v 3/${service. Instance. Id}/${request. Param} request. Param : activate/deactivate Request body: { "global. Subscriber. Id": " 5 GCustomer ", "service. Type": "5 G" } Response : {“operation. Id”: ”g 4398 j 312 -6 e 36 -46 c 6 -862 c-236 d 9 c 626422”} v TERMINATE – DELETE : /onap/so/infra/e 2 e. Service. Instances/v 3/{service. Instance. Id}

Service (De)Activation/Termination (TMF 641 based) Guilin Frankfurt Impact in UUI UUI 1 EXT-API Ext.

Service (De)Activation/Termination (TMF 641 based) Guilin Frankfurt Impact in UUI UUI 1 EXT-API Ext. API SO S D C OOF CSMF WFs NSMF WFs Impact in in. Ext. API UUI S D C AAI NSSMF Adaptor SO CSMF Policy Core NSSMF Core 1 SDN-C (SDN-R) ONAP Ext. RAN NSSMF /{api_url}/nbi/api/v 4/service. Order/ AAI NSMF NFVO NSSMF ONAP OOF SDN-C Policy CDS C&PS Ext. Core NSSMF RAN Transport Core

CS Service Order Activation/Deactivation from UUI -> Ext. API Service Order Activate/Deactivate : •

CS Service Order Activation/Deactivation from UUI -> Ext. API Service Order Activate/Deactivate : • The CSMF/NSMF Portal can optionally supply their own external tracking ID. Ext. API will generate a Service Order ID that can be used to track the order in the response. • The related. Party is set according to the CF Customer, where related. Party. id will map to the AAI "global-customer-id“ in the “customer” object. • Service. service. State can be active for activate and inactive for deactivate operations with order. Item. action as modify. Response will reflect the same state as that of the request. • When ready CSMF POST this JSON body to /{api_url}/nbi/api/v 4/service. Order/ • Response will Include the Service. Order id for tracking • CSMF can register listeners with /{api_url}/nbi/api/v 4/hub api to get service state change notifications or use GET /{api_url}/nbi/api/v 4/service. Order/{service. Order. Id} to retrieve service order details or /{api_url}/nbi/api/v 4/service/{service. Instance. Id} to retrieve service instance details • Currently Service Order does not support an action ‘modify’ to activate/deactivate a Service instance which is yet to be implemented { "external. Id": “CSMF_Portal_Trackind. Id 3584", "category": “Communication Service", "description": "Service Order for a new CS", "priority": "1", "related. Party": [ { "id": “Customer. Id 1", This is the customer id used in AAI Service Instance hierarchy "role": "ONAPcustomer", "name": “Customer. Id 1", "@referred. Type": "Consumer" }], "order. Item": [ { "id": "1", "action": “modify", "service": { “id”: “ 5 c 3 feee 0 -6 e 36 -46 c 6 -862 c-236 d 9 c 626422” to activate “service. Type” : “ 5 G” , “service. State” : “active/inactive”, service instance id in aai we want Note: Response will also have the same state "service. Specification": { "id": "1 e 3 fddb 0 -9 e 36 -46 c 6 -862 c-236 d 9 c 626400“ The uuid from SDC of the CST } } } ] } Note : Assumed no service characteristics needed for activate call to SO

CS Service Terminate from UUI -> Ext. API Service Termination: • CSMF can terminate

CS Service Terminate from UUI -> Ext. API Service Termination: • CSMF can terminate the service using POST /{api_url}/nbi/api/v 4/service. Order/ api with action as delete • EXT-API will call SO-DELETE api for service termination { "external. Id": “CSMF_Portal_Trackind. Id 3584", "category": “Communication Service", "description": "Service Order for a new CS", "priority": "1", "related. Party": [ { “id”: ”customer. Id 1” "role": "ONAPcustomer", "name": “Customer. Id 1", "@referred. Type": "Consumer" }], "order. Item": [ { "id": "1", "action": “delete", "service": { “id”: “ 5 c 3 feee 0 -6 e 36 -46 c 6 -862 c-236 d 9 c 626422” service instance id in aai we want to terminate "service. Specification": { "id": "1 e 3 fddb 0 -9 e 36 -46 c 6 -862 c-236 d 9 c 626400“ The uuid from SDC of the CST } } } ] }

CSMF Portal: How to register External Listeners CSMF Portal -> Ext. API External API

CSMF Portal: How to register External Listeners CSMF Portal -> Ext. API External API hub resource: • The CSMF Portal can register its listeners addressed for external notifications using the hub API POST /{api_url}/nbi/api/v 4/hub • To retrieve order state tracking notifications for the CSMF Portal Order tracking UI, it can provide a service. Order. State. Listener URI that Ext. API will POST order state change events to. • To retrieve attribute change tracking notifications for the CSMF Portal Service Instance tracking UI functions, it can provide a Service. Attribute. Value. Change. Listener URI that Ext. API will POST service instance attribute change events made to the CS service instance in A&AI. • The events will include a href to the object the event is associated with, which for Service Orders is a href to the Service. Order and for Service Inventory is a href to the Service Instance. POST http: //xx. yy. tt. rr: 30274/nbi/api/v 4/hub { "callback": "http: //csmfportalhost: port/service. Order. State. Listener/listener/v 1/", "query": "event. Type = Service. Order. State. Change. Notification" } POST http: //xx. yy. tt. rr: 30274/nbi/api/v 3/hub { "callback": "http: //csmfportalhost: port/Service. Attribute. Value. Change. Listener/listener/v 1/", "query": "event. Type = Service. Creation. Notification, Service. Attribute. Value. Change. Notification, Service. Remove. Notification" } GET http: //xx. yy. tt. rr: 30274/nbi/api/v 4/hub [ { "id": "5 c 654 c 228 ffdcd 0001 d 11 ba 2", "callback": "http: //csmfportalhost: port/service. Order. State. Listener/listener/v 1/", "query": "event. Type=Service. Order. State. Change. Notification" }, { "id": "5 c 654 d 5 e 8 ffdcd 0001 d 11 ba 3", "callback": "http: //csmfportalhost: port/Service. Attribute. Value. Change. Listener/listener/v 1/", "query": "event. Type= Service. Creation. Notification, Service. Attribute. Value. Change. Notification, Service. Remove. Notification" } ] Then NBI POST http: //csmfportalhost: port/service. Order. State. Listener/listener/v 1 { "event. Type": “Service. Order. State. Change. Notification", "event. Date": "2019 -02 -21 T 14: 21: 31. 740 Z", "event. Id": "34556", “event": {"id": "5 af 2 e 0914 bf 3 d 66721 c 09 c 3 f", "href": "service. Order/5 af 2 e 0914 bf 3 d 66721 c 09 c 3 f", "external. Id": " CSMF_Portal_Trackind. Id 3584 ", "state": “COMPLETED", "order. Date": "2019 -02 -21 T 13: 39: 20. 540 Z", "completion. Date. Time": "2019 -02 -21 T 13: 45: 39. 919 Z } n 1 0

Service Order API REST API Sequence Diagram - Create External API BSS (UUI) ONAP

Service Order API REST API Sequence Diagram - Create External API BSS (UUI) ONAP SO A&AI POST nbi/api/v 4/service. Order/ with req. body onap/so/infra/e 2 e. Service. Instances/v 3 Return Service Instance Details The BSS can access ONAP to view service instance data in relation to Service created as a result of Service Orders. This can allow a BSS to provide details on a Customer Service Instance direct to the Customer via a Self-Service. Information can include current Service Instance State, history on which Service Specification version was used to instantiate the service. {"id": "5 ec 397 bbeef 62673512294 cc", "href": "service. Order/5 ec 397 bbeef 62673512294 cc", "external. Id": "CSMF_Portal_Trackind. Id 1", description": "CSMFService", "state": “acknowledged", "priority": "1", "related. Party": [ { "id": "5 GCustomer", "role": "ONAPcustomer", "name": "5 GCustomr", "@referred. Type": "Consumer" } ], "order. Item": [ { "id": "1", “action": "add", "service": { "name": "CSMFService", "service. Type": "5 G", "service. Specification": { "id": "7 acc 727 a-40 ec-44 d 2 -ac 81 -455 e 45 dcca 46" "service. Characteristic": []} }, ……]}}] Creates service instance {service=service{operation. Id='2 be 3 b 1 fd-6551 -4902 a 4 fd-46 ccb 9 f 5 e 9 dc', service. Id='e 9 c 121 d 0 -42 e 9 -4 e 2 ca 11 c-0 de 24124 de 97'}} ONAP validates the Service Instance Id exists in A&AI and retrieves the corresponding service Instance details. }, GET nbi/api/v 4/service. Order/ 5 ec 397 bbeef 62673512294 cc { "id": "5 ec 397 bbeef 62673512294 cc", "href": "service. Order/5 ec 397 bbeef 62673512294 cc", "external. Id": "CSMF_Portal_Trackind. Id", "priority": "1", "description": "CSMFService", "category": "Communication Service", "state": “in. Progress", "related. Party": [ { "id": "5 GCustomer", "role": "ONAPcustomer", "name": "5 GCustomr", "@referred. Type": "Consumer" } ], "order. Item": [ { "id": "1", “action": "add", "service": { "id": "e 0 d 5 dcfc-92 d 5 -4 d 25 -8 be 5 -1 aa 2 e 49678 aa", ………. , ] -Impacted modules

Service Order API REST API Sequence Diagram -Modify External API BSS (UUI) ONAP SO

Service Order API REST API Sequence Diagram -Modify External API BSS (UUI) ONAP SO A&AI POST nbi/api/v 4/service. Order/ with req. body onap/so/infra/e 2 e. Service. Instances/v 3/activate Return Service Instance Details The BSS can access ONAP to view service instance data in relation to Service created as a result of Service Orders. This can allow a BSS to provide details on a Customer Service Instance direct to the Customer via a Self-Service. Information can include current Service Instance State, history on which Service Specification version was used to instantiate the service. {"id": "5 ec 397 bbeef 62673512294 cc", "href": "service. Order/5 ec 397 bbeef 62673512294 cc", "external. Id": "CSMF_Portal_Trackind. Id 1", description": "CSMFService", "state": “iacknowledged", "priority": "1", "related. Party": [ { "id": "5 GCustomer", "role": "ONAPcustomer", "name": "5 GCustomr", "@referred. Type": "Consumer" } ], "order. Item": [ { "id": "1", “action": “modify", "service": { "id": "e 0 d 5 dcfc-92 d 5 -4 d 25 -8 be 5 -1 aa 2 e 49678 aa", “service. State”: ”active”, "name": "CSMFService", "service. Type": "5 G", "service. Specification": { "id": "7 acc 727 a-40 ec-44 d 2 -ac 81 -455 e 45 dcca 46" "service. Characteristic": []} }, ……]}}] {operation. Id='2 be 3 b 1 fd-6551 -4902 -a 4 fd 46 ccb 9 f 5 e 9 dc’} ONAP validates the Service Instance Id exists in A&AI and retrieves the corresponding service Instance details. }, GET nbi/api/v 4/service. Order/ 5 ec 397 bbeef 62673512294 cc { "id": "5 ec 397 bbeef 62673512294 cc", "href": "service. Order/5 ec 397 bbeef 62673512294 cc", "external. Id": "CSMF_Portal_Trackind. Id", "priority": "1", "description": "CSMFService", "category": "Communication Service", "state": “in. Progress", "related. Party": [ { "id": "5 GCustomer", "role": "ONAPcustomer", "name": "5 GCustomr", "@referred. Type": "Consumer" } ], "order. Item": [ { "id": "1", “action": “modify", "service": { "id": "e 0 d 5 dcfc-92 d 5 -4 d 25 -8 be 5 -1 aa 2 e 49678 aa", ………. , ] -Impacted modules

Service Order API REST API Sequence Diagram - Delete External API BSS (UUI) ONAP

Service Order API REST API Sequence Diagram - Delete External API BSS (UUI) ONAP SO A&AI POST nbi/api/v 4/service. Order/ The BSS can access ONAP to view service instance data in relation to Service created as a result of Service Orders. This can allow a BSS to provide details on a Customer Service Instance direct to the Customer via a Self-Service. Information can include current Service Instance State, history on which Service Specification version was used to instantiate the service. { "external. Id": “CSMF_Portal_Trackind. Id 3584", "category": “Communication Service", "description": "Service Order for a new CS", "priority": "1", "related. Party": [ { “id”: ”customer. Id 1” "role": "ONAPcustomer", "name": “Customer. Id 1", "@referred. Type": "Consumer" }], "order. Item": [ { "id": "1", "action": “delete", "service": { “id”: “ 5 c 3 feee 0 -6 e 36 -46 c 6 -862 c-236 d 9 c 626422” "service. Specification": { "id": "1 e 3 fddb 0 -9 e 36 -46 c 6 -862 c-236 d 9 c 626400“ } } } ] } DELETE : onap/so/infra/e 2 e. Service. Instances/v 3 /{service. Instance. Id} ONAP validates the Service Instance Id exists in A&AI and retrieves the corresponding service Instance details. { "id": "5 ec 397 bbeef 62673512294 cc", "href": "service. Order/5 ec 397 bbeef 62673512294 cc", "external. Id": "CSMF_Portal_Trackind. Id", "priority": "1", "description": "CSMFService", "category": "Communication Service", "state": "acknowledged", "order. Date": "2020 -05 -19 T 08: 24: 27. 435 Z", "completion. Date. Time": null, "expected. Completion. Date": null, "requested. Start. Date": null, "requested. Completion. Date": null, "start. Date": null, "@base. Type": null, "@type": null, "@schema. Location": null, "related. Party": [ {…. } ], …………. } -Impacted modules

Service Inventory API REST API Sequence Diagram External API BSS ONAP SO SDC A&AI

Service Inventory API REST API Sequence Diagram External API BSS ONAP SO SDC A&AI GET nbi/api/v 4/service/{service. Instance. Id} GET /business/customer/{global-customer-id}/service-subscriptions/servicesubscription/{service-type}/service-instances/service-instance/{service-instance-id} The BSS can access ONAP to view service instance data in relation to Service created as a result of Service Orders. This can allow a BSS to provide details on a Customer Service Instance direct to the Customer via a Self-Service. Information can include current Service Instance State, history on which Service Specification version was used to instantiate the service. Return Service Instance Details { "id": "cd 36381 a-6 aba-441 b-b 738 -4 a 7 d 8 a 19 ceff", "name": "Test 052201", "state": “active", "service. Specification": { "id": "bfca 8 b 32 -3404 -4 e 5 c-a 441 -dc 42 b 6823 e 88", "invariant. UUID": "045 e 2672 -1 c 46 -4 fca-810 d-95 f 8 cdb 8 bc 38", "@type": "ONAPservice", "name": "5 G" }, "supporting. Resource": [ { "model. Invariant. Id": "2 be 9 ba 32 -f 848 -4 fd 6 -a 586 ff 8 e 3 fbd 75 a 9", "model. Version. Id": "c 9252 b 26 -f 9 cd-4 e 6 c-988 c-4 d 6 ff 39 c 6 dda", "@referred. Type": "ONAP resource" } ], "related. Party": { "role": "ONAPcustomer", "id": "5 GCustomer" }, "@type": "service. ONAP", "type": "service-instance", "href": "service/cd 36381 a-6 aba-441 b-b 738 -4 a 7 d 8 a 19 ceff"} { "service-instance-id": " c 0 c 28751 -97 d 3 -42 d 5 -ae 01 -77566 dc 533 dc ", "service-instance-name": " SOTNVPNInfra-onap-11 ", "environment-context": "General_Revenue-Bearing", "workload-context": "Production", "model-invariant-id": "f 3 ec 9092 -5 c 98 -41 f 1 -9 fea-96 be 80 abd 064", "model-version-id": " 462 f 84 e 5 -f 0 e 5 -44 c 5 -ab 95 -38 fb 4 bf 77064 ", "orchestration-status": "Active", ………. . } ONAP validates the Service Instance Id exists in A&AI and retrieves the corresponding service Instance details.

Service Inventory State Event Tracking Sequence Diagram External API BSS/OSS POST nbi/api/v 4/hub BSS/OSS

Service Inventory State Event Tracking Sequence Diagram External API BSS/OSS POST nbi/api/v 4/hub BSS/OSS Registers Listener to be notified automatically of ONAP Service Inventory Changes. This allows for example the BSS to update the customer automatically when the Customers Service Instance(s) is modified ONAP SO DMaa. P GET events/AAI-EVENT/{extapiconsumegroup}/{extapiconsumerid}? timeout=2000 {"callback": “http: //csmfportalhost: port/service. State. Listener/listener/v 1/", “query”: ”event. Type=Service. Attribute. Value. Change. Notification”} {“id”: “ 58673”, "callback": "http: //csmfportalhost: port/Service. Attribute. Value. Change. Listener/liste ner/v 1/", “query”: ”event. Type=Service. Attribute. Value. Change. Notification”} POST events/AAI-EVENT POST http: //csmfportalhost: port/service. State. Listener/listener/v 1/" {"event": {"event. Type": “Service. Attribute. Value. Change. Notification", …. "event": {"id": " as 34 -rf 11", "href": “service/{serviceinstance. Id}”, "name": "SOTNVPNInfra-onap-11", “state” : “active”, …. . } GET nbi/api/v 4/service/{serviceinstance. Id} BSS/OSS can also poll ONAP Service Inventory at any time allowing for example a Self Service UI Portal to display Service Instance State. { "id": "c 0 c 28751 -97 d 3 -42 d 5 -ae 01 -77566 dc 533 dc", "name": "SOTNVPNInfra-onap-11", “state” : “active” "service. Specification": { "id": "462 f 84 e 5 -f 0 e 5 -44 c 5 -ab 95 -38 fb 4 bf 77064", "@type": "ONAPservice" }, ……. } A&AI GET /business/customer/{global-customer-id}/service-subscriptions/servicesubscription/{service-type}/service-instances/service-instance/{service-instance-id} { "service-instance-id": " c 0 c 28751 -97 d 3 -42 d 5 -ae 01 -77566 dc 533 dc ", "service-instance-name": " SOTNVPNInfra-onap-11 ", "orchestration-status": "Active", ………. . } ONAP A&AI once a Service Instance has been modified will publish an event to the DMaa. P kafka bus on topic AAI-EVENT, i. e. act as a publisher. External API shall add a new consumer to the AAIEVENT Topic and once events arrives will filter/transform and notify valid OSS/BSS external listeners.

Points to discuss • TMF 640 states use of “/service” api for activation of

Points to discuss • TMF 640 states use of “/service” api for activation of a service but the same api handles communication with inventory in EXT-API. Is that the reason to go for update. Type attribute with action as modify [It is recommended to extend TMF 641 api for activation/deactivation rather than exposing a new api as specified by TMF 640 since both specs deals with the same service object] • How can we retrieve NSI/NSSIs associated with the Slice. Currently UUI uses /aai/v 14/business/customer/5 GCusto mer/service-subscriptions/servicesubscription/5 G/service-instances/serviceinstance/{service-instance-id} API to fetch NSI-NSSI relationships from “relationship” attribute in response, But EXT-API response is not having such information? [Currently, there will be no change in UUI to fetch relationship details. UUI will continue to use AAI api] Sample EXT-API response : GET: {nbi_api_Url}/service/{service-instance-id} { "id": "a 6 f 22 cca-9543 -4032 -92 dc-bca 85 e 465035", "name": "nsi_Test 052506", "state": "deactivated", "service. Specification": { "id": "9507 fc 4 a-37 d 3 -4024 -a 991 -9 a 56 c 16 c 4 dc 0", "invariant. UUID": "2 d 5 b 9 bc 2 -0 ece-4 b 5 c-b 5 f 7 -dcdc 19 f 53 ad 1", "@type": "ONAPservice", "name": "5 G" }, "supporting. Resource": [ { "model. Invariant. Id": "c 0 eeaa 3 b-625 c-4518 -bd 1 f-f 01 cc 784813 c", "model. Version. Id": "836 eb 219 -346 d-4 b 8 b-8376 -b 0 c 4 d 17954 a 9", "@referred. Type": "ONAP resource" } ], "related. Party": { "role": "ONAPcustomer", "id": "5 GCustomer" }, "@type": "service. ONAP", "type": "service-instance", "href": "service/a 6 f 22 cca-9543 -4032 -92 dc-bca 85 e 465035"}

KPI/Performance Monitoring

KPI/Performance Monitoring

Slice KPI Monitoring Service Provider UUI/Portal 3. 1 CSMF Portal (Tenant Portal) Tenant 1.

Slice KPI Monitoring Service Provider UUI/Portal 3. 1 CSMF Portal (Tenant Portal) Tenant 1. Tenant/Operator to monitor the KPI via the UI portal NSMF Portal (Management Portal) 3. 1 Impacts • EXT-API Run Time 3. 2 DCAE 3. 2 2. Slice management system internal KPI supervision & KPI analysis Computation SDC NST model incl. KPI MS*** Data. Lake. DES 2. 2 VES Collector 2. 3 Config Policies Data. Lake Feeder FM/PM data collection Impacts 5 G NFs • • DFC 2. 1 New components Policy ONAP Big Data. Base *** Under discussion DCAE – KPI Compute MS, Data Lake Data Exposure Service (DES) SDC – Slice template enhancements Policy – Config policies EXT-API – External interface? ? ? UUI – KPI monitoring inputs, and display • Converts REST query to a set of SQL commands to query the DB, and report back the requested info. • Should DES be part of Ext. API?

Steps Step Description Prior to 2. 1 NFs are configured to report PM data

Steps Step Description Prior to 2. 1 NFs are configured to report PM data 2. 1 NFs report PM data 2. 2 Relevant KPI computations are done based on PM data reported 2. 3 PM data and KPI info is stored in data lake 3. 1 Operator/tenant requests viewing of KPI/PM data 3. 2 A REST query from UUI requesting certain data is converted to appropriate SQL commands by DES, queries the Data Lake and then reports the requested data. Remarks Not shown Could be KPIs, PM, data within a certain time range (in the past), etc. Questions • In general in ONAP, are any standard APIs being discussed for PM and KPI monitoring by OSS? • Considering the present Network Slicing requirement, is there any recommendation of standard TMF APIs to be used? • For example, will adhoc. Collection of TMF 628 be suitable? • How easy it would be to cover this as well as general PM/KPI reporting together? n 19

Flow

Flow

Performance Management – Comparison of TMF 628 & ETSI-SOL 005 TMF 628 – API

Performance Management – Comparison of TMF 628 & ETSI-SOL 005 TMF 628 – API Specification API Methods allowed Operations /api/measurement. Collection. Job/{ID} GET, PUT, POST, PATCH, DELETE Create/modify/query/Delete PM Collection job /api/measurement. Production. Job/{ID} GET, PUT, POST, PATCH, DELETE Create/modify/query/Delete PM production job /api/adhoc. Collection/{ID} GET, PUT, POST, PATCH, DELETE Create/modify/query/Delete PM adhoc Collection job /list. Available. Files. Task POST List files for a PM Job /api/tracking. Record/{ID} GET Get tracking records specific to a job ETSI-SOL 005 -API Specification API Methods allowed Operations /pm_jobs/{pm. Job. Id} GET, POST, PATCH, DELETE Create/modify/query/Delete PM job /thresholds/{threshold. Id} GET, POST Create/Query PM thresholds /pm_jobs/{pm. Job. Id}/reports/{report. Id} GET Query PM Reports generated Requirement (to be considered together with KPI monitoring, as well as potential future enhancements for PM). • PM Job should be able to generate and collect PM data. • Collected data should be available in report files On comparison, both TMF 628 and ETSI SOL 005 specifications leverage us the functionalities as required. As NBI is aligned with TMF specifications in general, TMF 628 is being considered

TMF 628 API-ETSI SOL 005 API comparison ETSI SOL 005 : üResponse has an

TMF 628 API-ETSI SOL 005 API comparison ETSI SOL 005 : üResponse has an instance id. Correlation to request to be checked. üsupports callbackuri üpm_jobs/{pm. Job. Id}/reports/{report. Id} api provides PM data in response object TMF 628 : üThere is no clear distinction between Tracking Id and instance Id. üSupports admin. State, job. Priority, execution. State, consuming. Application. Id, producing. Application. Id, granularity, pro tocol. Transfer. Data(file format specs), output. Format in addition. ü/list. Available. Files. Task api provides details on PM report files NOTES • As EXT-API is aligned with TMF in general, we can leverage an additional instance id parameter in response and make use of the same. • Callbackuri support can be handled by registering event listeners • Also requirement is to collect PM data in files and hence TMF 628 specification is chosen TMF 628 /measurement. Collection : Request/Response { "id": "coll. Job 001", "creation. Time": "11 -26 -2014 16: 00 +0530", "last. Modified. Time": "11 -26 -2014 16: 00 +0530", "admin. State": "UNLOCKED", "job. Priority": "5", "execution. State": "EXECUTING", "schedule. Definition": { "type": "Recurring. Schedule. Definition", "schedule. Info": { "schedule. Definition. Start. Time": "11 -26 -2013 16: 00 +0530", "schedule. Definition. End. Time": "11 -26 -2014 16: 00 +0530" } }, "consuming. Application. Id": "CONSUMER 001", "producing. Application. Id": "NE 001", "granularity": "G_15 MN", "monitored. Objects. Criteria": { "type": "Monitored. Class. Criteria", "monitored. Object. Info": { "monitored. Object. Class": “NSI" } }, "protocol. Transfer. Data": { "transport. Protocol": "FILE_TRANSFER", "file. Transfer. Data": { "file. Location": "\pm/pmdata", "file. Format": "XML", "compression. Type": "NO_COMPRESSION", "retention. Duration": { "units": "MINUTES", "amount": "180" }, "packing. Type": "NO_PACKING" } }, "reporting. Period": "R_15 MN", "output. Format": "3 GPP", "performance. Indicator. Group": [ { "name": "TRANSPORT 01" }, …. ], "performance. Indicator. Specification": [ { "name": "ES" }, { "name": "SES" }, …. ] } ETSI SOL 005 –/pm_jobs : Request Body { "object. Type": "measured. Object. Type", "object. Instance. Ids": "NSI", "sub. Object. Instance. Ids": "NSSI", "criteria": { "performance. Metric": , "performance. Metric. Group": , "collection. Period": , "reporting. Boundary": , }, "callback. Uri": , "authentication": , } Response : { "id": "object. Type": "measured. Object. Type", "object. Instance. Ids": "NSI", "sub. Object. Instance. Ids": "NSSI", "criteria": , "callback. Uri": , "reports": , "href": "File location uri", "ready. Time", "expiry. Time", "file. Size", "links", "self", "objects": links to pmobjects }

Performance Mgmt API Sequence Diagram – TM Forum 628 BSS/OSS/CSMF/NSMF Portal External API POST

Performance Mgmt API Sequence Diagram – TM Forum 628 BSS/OSS/CSMF/NSMF Portal External API POST nbi/api/v 3/pm/measurement. Collection/ Allowing BSS/OSS/CSMF/NSMF Portal the ability for performance measurement job creation, notification and collection. This capability enables the BSS to collect and show Service Instance specific performance data reports. For example the BSS can offer a customer self service portal where the customer can view performance data related to their service instances. { "id": "coll. Job 001", "admin. State": "UNLOCKED", "job. Priority": "5", "execution. State": "EXECUTING", "schedule. Definition": {} monitored. Objects. Criteria: {Details of NSI/NSSI being monitored} performance. Indicator. Specification: {List of KPIslike latency, UL/DL datarate} …. …. . { "id": "coll. Job 001", "admin. State": "UNLOCKED", "job. Priority": "5", "execution. State": "EXECUTING", "schedule. Definition": {} monitored. Objects. Criteria: {Details of NSI/NSSI being monitored} performance. Indicator. Specification: {List of KPIslike latency, UL/DL datarate} …. GET nbi/api/v 3/pm/list. Available. Files. Task { "Job. Id": "1234", "begin. Time": "19_08_2013_23: 00", "end. Time": "19_08_2013_23: 30: 00", } ONAP SO A&AI POST so/infra/e 2 e. Service. Instances/v 3/measurement. Collection { "id": "coll. Job 001", "admin. State": "UNLOCKED", "job. Priority": "5", "execution. State": "EXECUTING", Create PM collection job in DCAE "schedule. Definition": {} monitored. Objects. Criteria: {Details of NSI/NSSI Link PMJob to service Instance(s) being monitored} performance. Indicator. Specification: {List of KPIslike latency, UL/DL datarate} …. …. . GET report based on Report. Id from DCAE { "Job. Id": "1234", "begin. Time": "19_08_2013_23: 00", "end. Time": "19_08_2013_23: 30: 00", "File. Info": [ "JOB 1234_YYY_19_08_2013_23: 15: 00", "JOB 1234_YYY_19_08_2013_23: 30: 00" ] } DCAE/Controllers ONAP allows external systems to create Performance Mgmt Jobs. The creation of PMJob will involve any necessary configuration in the controllers (APP-C/VFC/SDN-C) depending on the node types the Performance Metrics are attached to, and creation in DCAE of the necessary data collection and data router configurations for PM Reports storage. ONAP allows retrieval of specific Performance Reports from External Systems. Availability of the Report made via Notifications

Performance Mgmt API Sequence Diagram – ETSI SOL 005 External API BSS/OSS/CSMF/NSMF Portal ONAP

Performance Mgmt API Sequence Diagram – ETSI SOL 005 External API BSS/OSS/CSMF/NSMF Portal ONAP SO A&AI DCAE/Controllers POST nbi/api/v 3/pm/pm_jobs/ { Allowing BSS/OSS/CSMF/NSMF Portal the ability for performance measurement job creation, notification and collection. This capability enables the BSS to collect and show Service Instance specific performance data reports. For example the BSS can offer a customer self service portal where the customer can view performance data related to their service instances. "object. Instance. Ids": [“service. Instance. Id"], "criteria": { "performance. Metric": [“Jitter”, “Latency”], "performance. Metric. Group": [""], "collection. Period": 0, "reporting. Boundary": "2018 -12 -03 T 16: 58: 48. 091 Z“ …. . } } “id”: ”pm. Job. Id”, "object. Instance. Ids": [“service. Instance. Id"], "criteria": { "performance. Metric": [“Jitter”, “Latency”], …. . "reports": { "href": "string", "ready. Time": "2018 -12 -03 T 16: 58: 48. 176 Z", GET nbi/api/v 3/pm/pm_jobs/{pm. Job. Id}/reports/{report. Id} {"entries": [ { "object. Type": "string", "object. Instance. Id": "string", "performance. Metric": “latency", "performance. Values": [{ "time. Stamp": "2018 -12 -03 T 17: 04: 57. 582 Z", "value": 34 , ……. …… POST so/infra/e 2 e. Service. Instances/v 3/pm/pm_jobs Check Service Instances Filter { "object. Instance. Ids": [“service. Instance. Id"], "criteria": { Create PM collection job in DCAE "performance. Metric": [“Jitter”, “Latency”], "performance. Metric. Group": [""], Link PMJob to service Instance(s) "collection. Period": 0, "reporting. Boundary": "2018 -12 -03 T 16: 58: 48. 091 Z“ …. . } } GET report based on Report. Id from DCAE {"entries": [ { "object. Type": "string", "object. Instance. Id": "string", "performance. Metric": “latency", "performance. Values": [ { "time. Stamp": "2018 -12 -03 T 17: 04: 57. 582 Z", "value": …. . } ……. ONAP allows external systems to create Performance Mgmt Jobs. The creation of PMJob will involve any necessary configuration in the controllers (APP-C/VFC/SDN-C) depending on the node types the Performance Metrics are attached to, and creation in DCAE of the necessary data collection and data router configurations for PM Reports storage. ONAP allows retrieval of specific Performance Reports from External Systems. Availability of the Report made via Notifications

Performance Management API - Notifications Performance Management API can support the below notifications as

Performance Management API - Notifications Performance Management API can support the below notifications as specified by TMF 628 • • • measurement. Collection. Job. AVCN measurement. Collection. Job. ODel. N files. Ready files. Preparation. Error PM Collection Job: o OSS/BSS systems can POST collection specifications to nbi/api/v 3/pm/measurement. Collection/ api and subscribe to the above notifications o Once PM data is generated files. Ready event will be triggered and using nbi/api/v 3/pm/list. Available. Files. Task api can be fetched o UUI can request for measurement. Collection Job to EXT-API and subscribe to File. Ready/File. Creation. Error notifications

ns Thank You! n

ns Thank You! n