5G Network Resource Model (NRM) Configuration in R6 Frankfurt

R6 Use Case Objectives

5G NRM CM with RESTful/HTTPS protocol.

1. Add a new restful-executor in CDS blueprints processor

  • Should be generic enough to support to configure any type and any number of NRM objects by restful createMOI operation in 3GPP

2. Provide CRUD operations on NRM objects via CDS

  • Self-service API should support config-get, config-modify and config-delete actions

3. Add new NRM related data types, corresponding PNF packages and BPMN enhancements as well 

  • Use several NR NRM IOCs for demonstrations  in PNF on-boarding package (Descope of UC)
  • BPMN support for NRM configuration (Stretch goal, Defered to R7)

4. Support SO service/instance management API for NRM configuration 

  • Modify or Add additional SO NB APIs (Implemented)
  • Define corresponding NRM IOCs in SO and BBs (Stretch goal, Defered to R7)

BUSINESS DRIVERS

This section describes Business Drivers for this Use Case.

This section describes Business Drivers needs.

Executive Summary -  Network Resource Management (NRM) configuration management allows the service providers to control and monitor the actual configuration on the Network Resources. They may be used within the first PNF or VNF instantiation or routine operations after PNF or VNF is running.

Business Impact - Network resources are the fundamental resources to the mobility networks. Only the network resource are ready then the service like eMBB service can be instantiated. Better service quality can be achieved by suitable NRM configuration management.

Business Markets -  Considering the Network Resources are basic for mobility network, New 5G deployments as well as legacy 4G systems should be considered as target markets.  Both radio and core and other sub-network domains could also benefits from it.

Funding/Financial Impacts -  Orchestrating and Controlling the network resources could reduce the OPEX.

Organization Mgmt, Sales Strategies - (It is suggested that you use the following wording): There is no additional organizational management or sales strategies for this use case outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider. (This would typically describe the "WHO", but because use cases are all deployed with ONAP itself, these two areas come with the actual ONAP deployment and uses the organizational management and sales strategies of a particular service provider's ONAP deployment)


Current Status of 5G NRM Configuration

This is a new UC will start in R6.

Presentation in LFN DDF is here

High-level Design:


Development Status

DEVELOPMENT IMPACTS SUMMARY

PROJECTPTLUser Story / EpicRequirement
A&AI(Future Functionality)

R7 To store NRM Objects with in PNF in ONAP as need. Out of Scope in R6.

AAF

APPC


CLAMP

CC-SDK

DCAE

DMaaP

External API

MODELING

Epic #1: 5G NRM Configuration with restful protocol

Data types and node types for 3GPP NR NRM

Add NRM information in PNF package for onboarding

Multi-VIM /

Cloud



OOF

POLICY

PORTAL

SDN-C

SDC

SO

Epic #1: 5G NRM Configuration with restful protocol

Support NRM CM during PNF instantiation and separate workflows

1. New BBs coding for PnP instantiation

2. Enhance related workflowSpecifications API

3. Add new NB API for instance management for pnf

4.add workflow for modify/delete/query NRM config

VID(Future Functionality)

No impact R6

Planned future (R7+): Optional: Trigger NRM CM procedure via UI

VNFRQTS

VNF-SDK

CDS

Epic #1: 5G NRM Configuration with restful protocol

Provide a http-based restful component (including executor anf function) 

  1. Restful component for NRM CM, executor and function
  2. controller blueprint and cba file
  3. get, modify, create, delete action support for NRM mgmt

List of PTLs:Approved Projects

Impacts

SO Impacts:

 - 1. Enhance related workflowSpecifications API:

GET /onap/so/infra/workflowSpecifications/{version:[vV][1]/workflows?pnfModelVersionId={UUID}

 - 2. New NB API to trigger the custom workflow:

POST /onap/so/infra/instanceManagement/{version:[vV][1]}/serviceInstances/{serviceInstanceId}/pnfs/{pnfInstanceId}/workflows/{workflowUuid}

 - 3. Enhance configuration related BB to support NRM Configuration (*NOT* additional API):

ConfigAssignBB

ConfigDeployBB

- 4. New native specific workflows(*NOT* additional API)::

modifyPnfNrmconf.bpmn --call config-modify via SS API

deletePnfNrmconf.bpmn  --call config-delete via SS API

queryPnfNrmconf.bpmn  --call config-get via SS API

CCSDK/CDS Impacts:

- 1. Add a restful executor in CDS blueprint processor

including the executor and the component function 

Integration Impacts:

- Support generic provisioning management service simulator for integration test

EPIC / REQ

The 5G NRM configuration for R6 Frankfurt:

REQ-49 - Getting issue details... STATUS

INT-1245 - Getting issue details... STATUS

INT-1387 - Getting issue details... STATUS

CCSDK-1909 - Getting issue details... STATUS

CCSDK-1965 - Getting issue details... STATUS

INT-1514 - Getting issue details... STATUS

Test Status

NoTest casesTest Status
15G NRM CM config-deploy TestCOMPLETE
25G NRM CM config-get TestCOMPLETE
35G NRM CM config-modify TestCOMPLETE
45G NRM CM config-delete TestCOMPLETE

Detailed Description of Integration Testcases and Results

Test case ID1
Test case name5G NRM CM config-deploy Test
Test case descriptionTrigger the config-deploy workflow to create multiple MOIs (Management Object Instance)
ReleaseFrankfurt
Pre-conditions
  1. run the Provision MnS provider
  2. upload the corresponding blueprint
Testing Steps
Test Command 
curl -s -k -u "ccsdkapps:ccsdkapps" -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://cds.onap:port/api/v1/execution-service/process -d @NRM_create.json | python -m json.tool
NRM_create.json

{

  "commonHeader": {

    "originatorId": "CurlTest",

    "requestId": "1234-5678",

    "subRequestId": "5678-9012"

  },

  "actionIdentifiers": {

    "blueprintName": "NRMblueprint",

    "blueprintVersion": "1.0.0",

    "actionName": "config-deploy",

    "mode": "sync"

  },

  "payload": {

     "config-deploy-request": {

      "config-deploy-properties":{

        "service-instance-id":"PNF_service_1",

        "pnf-id":"PNF1",

        "pnf-name":"PNF1",

        "service-model-uuid":"90e00209-779b-4732-b0f1-7d7dfa88745c",

        "pnf-customization-uuid":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

        "managed-object-instances":[{

          "className":"GNBCUCPFunction",

          "data":{

            "gNBId":"1",

            "gNBIdLength":"5",

            "gNBCUName":"gnb-01",

            "pLMNId":{

              "mcc":"001",

              "mnc":"01"

            }

            }

          },

          {

          "className":"GNBCUUPFunction",

          "data":{         

            "gNBId":"1",

            "gNBIdLength":"5",

            "pLMNId":{

              "mcc":"001",

              "mnc":"01"

            }

            }

          },

          {

          "className":"GNBDUFunction",

          "data":{         

            "gNBDUId":"1",

            "gNBDUName":"gnb-01",

            "gNBId":"1",

            "gNBIdLength":"5",

            "pLMNId":{

              "mcc":"001",

              "mnc":"01"

            }

            }

          }

          ]

      }

     }

  }

}
Response of CDS

{

    "actionIdentifiers": {

        "actionName": "config-deploy",

        "blueprintName": "NRMblueprint",

        "blueprintVersion": "1.0.0",

        "mode": "sync"

    },

    "commonHeader": {

        "flags": null,

        "originatorId": "CurlTest",

        "requestId": "1234-5678",

        "subRequestId": "5678-9012",

        "timestamp": "2020-03-13T06:11:33.218Z"

    },

    "payload": {

        "config-deploy-response": {

            "result": {

                    "/GNBCUCPFunction/f64bc1a8-28c1-4da2-81e8-b5963b4b4e70": {

                        "body": {

                            "data": {

                                "attributes": {

                                    "gNBCUName": "gnb-01",

                                    "gNBId": "1",

                                    "gNBIdLength": "5",

                                    "pLMNId": {

                                        "mcc": "001",

                                        "mnc": "01"

                                    }

                                },

                                "class": "GNBCUCPFunction",

                                "href": "/GNBCUCPFunction/f64bc1a8-28c1-4da2-81e8-b5963b4b4e70",

                                "id": "f64bc1a8-28c1-4da2-81e8-b5963b4b4e70"

                            }

                        },

                        "status": 201

                    },

                    "/GNBCUUPFunction/2a78c55a-2762-4d15-9204-037ca6fecf87": {

                        "body": {

                            "data": {

                                "attributes": {

                                    "gNBId": "1",

                                    "gNBIdLength": "5",

                                    "pLMNId": {

                                        "mcc": "001",

                                        "mnc": "01"

                                    }

                                },

                                "class": "GNBCUUPFunction",

                                "href": "/GNBCUUPFunction/2a78c55a-2762-4d15-9204-037ca6fecf87",

                                "id": "2a78c55a-2762-4d15-9204-037ca6fecf87"

                            }

                        },

                        "status": 201

                    },

                    "/GNBDUFunction/261690cc-f221-45e0-86e6-2b980cb8e808": {

                        "body": {

                            "data": {

                                "attributes": {

                                    "gNBDUId": "1",

                                    "gNBDUName": "gnb-01",

                                    "gNBId": "1",

                                    "gNBIdLength": "5",

                                    "pLMNId": {

                                        "mcc": "001",

                                        "mnc": "01"

                                    }

                                },

                                "class": "GNBDUFunction",

                                "href": "/GNBDUFunction/261690cc-f221-45e0-86e6-2b980cb8e808",

                                "id": "261690cc-f221-45e0-86e6-2b980cb8e808"

                            }

                        },

                        "status": 201

                    }

                }

            }

    },

    "status": {

        "code": 200,

        "errorMessage": null,

        "eventType": "EVENT_COMPONENT_EXECUTRD",

        "message": "success",

        "timestamp": "2020-03-13T06:11:33.331Z"

    },

"stepData": {

   “name”: “config-deploy-process”,

   “properties”: {

    “response-data”: “”,

    “status”: “success”

}

}

}
Conclusion (Pass /Fail)PASS
Test lab
Test case ID2
Test case name5G NRM CM config-get Test
Test case descriptionTrigger the config-get workflow to get multiple MOIs attributes (Management Object Instance)
ReleaseFrankfurt
Pre-conditions
  1. run the Provision MnS provider
  2. upload the corresponding blueprint
  3. already create some MOIs
Testing Steps
Test Command 
curl -s -k -u "ccsdkapps:ccsdkapps" -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://cds.onap:port/api/v1/execution-service/process -d @NRM_get.json | python -m json.tool
NRM_get.json

{

  "commonHeader": {

    "originatorId": "CurlTest",

    "requestId": "1234-5678",

    "subRequestId": "5678-9012"

  },

  "actionIdentifiers": {

    "blueprintName": "NRMblueprint",

    "blueprintVersion": "1.0.0",

    "actionName": "config-get",

    "mode": "sync"

  },

  "payload": {

     "config-get-request": {

      "config-get-properties":{

        "service-instance-id":"PNF_service_1",

        "pnf-id":"PNF1",

        "pnf-name":"PNF1",

        "service-model-uuid":"90e00209-779b-4732-b0f1-7d7dfa88745c",

        "pnf-customization-uuid":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

        "managed-object-instances":[{

          "className":"GNBCUCPFunction",

          "id":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

          "scope":"BASE_ONLY",

          "filter":"GNBCUCPFunction",

          "fields":["gNBId","gNBIdLength"]

          }

          ]

      }

     }

  }

}

      

Response of CDS

{

    "actionIdentifiers": {

        "actionName": "config-get",

        "blueprintName": "NRMblueprint",

        "blueprintVersion": "1.0.0",

        "mode": "sync"

    },

    "commonHeader": {

        "flags": null,

        "originatorId": "CurlTest",

        "requestId": "1234-5678",

        "subRequestId": "5678-9012",

        "timestamp": "2020-03-13T06:13:43.166Z"

    },

    "payload": {

        "config-get-response": {

            "result": {

                "response": {

                    "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742": {

                        "body": {

                            "data": [

                                    {

                                        "attributes": {

                                            "gNBId": "1",

                                            "gNBIdLength": "5"

                                        },

                                        "class": "GNBCUCPFunction",

                                        "href": "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742",

                                        "id": "e65d3f05-9558-4e58-aeb0-3a1eae1db742"

                                    }

                                ]

                        },

                        "status": 200

                    }

                }

            }

        }

    },

    "status": {

        "code": 200,

        "errorMessage": null,

        "eventType": "EVENT_COMPONENT_EXECUTRD",

        "message": "success",

        "timestamp": "2020-03-13T06:11:33.331Z"

    },

"stepData": {

         “name”: “config-get-process”,

         “properties”: {

            “response-data”: “”,

            “status”: “success”

}

}

}       

Conclusion (Pass /Fail)PASS
Test lab
Test case ID3
Test case name5G NRM CM config-modify Test
Test case descriptionTrigger the config-modify workflow to modify multiple MOIs attributes (Management Object Instance)
ReleaseFrankfurt
Pre-conditions
  1. run the Provision MnS provider
  2. upload the corresponding blueprint
  3. already create some MOIs
Testing Steps
Test Command 
curl -s -k -u "ccsdkapps:ccsdkapps" -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://cds.onap:port/api/v1/execution-service/process -d @NRM_modify.json | python -m json.tool
NRM_modify.json

{

  "commonHeader": {

    "originatorId": "CurlTest",

    "requestId": "1234-5678",

    "subRequestId": "5678-9012"

  },

  "actionIdentifiers": {

    "blueprintName": "NRMblueprint",

    "blueprintVersion": "1.0.0",

    "actionName": "config-modify",

    "mode": "sync"

  },

  "payload": {

     "config-modify-request": {

      "config-modify-properties":{

        "service-instance-id":"PNF_service_1",

        "pnf-id":"PNF1",

        "pnf-name":"PNF1",

        "service-model-uuid":"90e00209-779b-4732-b0f1-7d7dfa88745c",

        "pnf-customization-uuid":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

        "managed-object-instances":[{

          "className":"GNBCUCPFunction",

          "id":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

          "scope":"BASE_ONLY",

          "filter":"GNBCUCPFunction",

          "data": {

             "gNBId":"12345",

             "gNBIdLength":"5"

     }

          }

          ]

      }

     }

  }

}

      

Response of CDS

{

    "actionIdentifiers": {

        "actionName": "config-modify",

        "blueprintName": "NRMblueprint",

        "blueprintVersion": "1.0.0",

        "mode": "sync"

    },

    "commonHeader": {

        "flags": null,

        "originatorId": "CurlTest",

        "requestId": "1234-5678",

        "subRequestId": "5678-9012",

        "timestamp": "2020-03-13T06:14:45.274Z"

    },

    "payload": {

        "config-modify-response": {

            "result": {

                "response": {

                    "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742": {

                        "body": {

                            "data": [

                                    {

                                        "attributes": {

                                            "gNBCUName": "gnb-01",

                                            "gNBId": "12345",

                                            "gNBIdLength": "5",

                                            "pLMNId": {

                                                "mcc": "001",

                                                "mnc": "01"

                                            }

                                        },

                                        "class": "GNBCUCPFunction",

                                        "href": "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742",

                                         "id": "e65d3f05-9558-4e58-aeb0-3a1eae1db742"

                                    }

                                ]

                        },

                        "status": 200

                    }

                }

            }

        }

    },

    "status": {

        "code": 200,

        "errorMessage": null,

        "eventType": "EVENT_COMPONENT_EXECUTRD",

        "message": "success",

        "timestamp": "2020-03-13T06:11:33.331Z"

    },

"stepData": {

         “name”: “config-modify-process”,

         “properties”: {

            “response-data”: “”,

            “status”: “success”

}

}

}

Conclusion (Pass /Fail)PASS
Test lab
Test case ID4
Test case name5G NRM CM config-delete Test
Test case descriptionTrigger the config-delete workflow to get multiple MOIs attributes (Management Object Instance)
ReleaseFrankfurt
Pre-conditions
  1. run the Provision MnS provider
  2. upload the corresponding blueprint
  3. already create some MOIs
Testing Steps
Test Command 
curl -s -k -u "ccsdkapps:ccsdkapps" -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://cds.onap:port/api/v1/execution-service/process -d @NRM_delete.json | python -m json.tool
NRM_delete.json

{

  "commonHeader": {

    "originatorId": "CurlTest",

    "requestId": "1234-5678",

    "subRequestId": "5678-9012"

  },

  "actionIdentifiers": {

    "blueprintName": "NRMblueprint",

    "blueprintVersion": "1.0.0",

    "actionName": "config-delete",

    "mode": "sync"

  },

  "payload": {

     "config-delete-request": {

      "config-delete-properties":{

        "service-instance-id":"PNF_service_1",

        "pnf-id":"PNF1",

        "pnf-name":"PNF1",

        "service-model-uuid":"90e00209-779b-4732-b0f1-7d7dfa88745c",

        "pnf-customization-uuid":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

        "managed-object-instances":[{

          "className":"GNBCUCPFunction",

          "id":"e65d3f05-9558-4e58-aeb0-3a1eae1db742",

          "scope":"BASE_ONLY",

          "filter":"GNBCUCPFunction"

          }

          ]

      }

     }

  }

}

Response of CDS


{

    "actionIdentifiers": {

        "actionName": "config-delete",

        "blueprintName": "NRMblueprint",

        "blueprintVersion": "1.0.0",

        "mode": "sync"

    },

    "commonHeader": {

        "flags": null,

        "originatorId": "CurlTest",

        "requestId": "1234-5678",

        "subRequestId": "5678-9012",

        "timestamp": "2020-03-13T06:15:55.413Z"

    },

    "payload": {

        "config-delete-response": {

            "result": {

                "response": {

                    "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742": {

                        "body": {

                            "data": [

                                    "/GNBCUCPFunction/e65d3f05-9558-4e58-aeb0-3a1eae1db742"

                                ]

                        },

                        "status": 200

                    }

                }

            }

        }

    },

    "status": {

        "code": 200,

        "errorMessage": null,

        "eventType": "EVENT_COMPONENT_EXECUTRD",

        "message": "success",

        "timestamp": "2020-03-13T06:11:33.331Z"

    },

"stepData": {

         “name”: “config-delete-process”,

         “properties”: {

            “response-data”: “”,

            “status”: “success”

}

}

}

           

Conclusion (Pass /Fail)PASS
Test lab

Reference

Discussion Materials

This section is to review slides for discussion.


Slides at LFN Developer & Testing Forum, Prague, Jan 13 - 16, 2020:

Meeting Schedule for Impacted Project Discussion

The meeting schedule is to present this use case slides to the impacted projects.

Plannd DateRelated Projects/UCMeeting HostStatusOther
2019-08-075G UCBen/VimalCompletedRecord: Use Case Realization Call: August 7, 2019
2019-09-03CDSMALAKOV, YURIYCompletedNA
2019-09-09Modeling: Resource IMXu YangCompletedMinutes: ONAP R6 Resource IM Call 2019-9-9
2019-09-10Modeling sub-commiteeHui DengCompletedModeling 2019-09-10
xxSDCOfir SonsinoPlanning
xxSOSeshuPlanning