Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

(warning) Work in progress

Table of Contents

Goal

  • Migrate PNF PNP workflow to Building Blocks (BBs/GR_API).
  • Include newly created BBs in Service-Macro-Create flow.
  • Leave legacy implementation using VNF_API intact.

...

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2556

Involved parties

  • Lukasz Grech, Damian Nowak - PNF PNP workflow migration to BBs
  • Oskar Malm - ConfigurePnfResource.bpmn (previous, non-BB implementation)
  • Henry Xie - SO-CDS integration, new API for calling CDS from SO
  • Yuriy Malakov - CDS, SO-CDS integration
  • Rahul Tyagi - PNF SW upgrade, SO-CDS integration

Proposed building blocks

Gliffy
namePNF PnP as Building Blocks
pagePin2

AssignPnfBB

  • Responsibility:
    • Creates PNF entry in AAI (with PNF name chosen by user)
    • Additionally stores PNF model-related parameters in AAI:
      • model-customization-id
      • model-invariant-id
      • model-version-id
    • Makes a link in AAI between Service entry and PNF entry
    • Sets PNF orchestration status in AAI to Assigned
  • Currently implemented in CreateAndActivatePnfResource.bpmn

WaitForPnfReadyBB

  • Responsibility:
    • Waits for "PNF ready" event sent from PRH to DMaaP
      • pnfCorrelationId from the event must match PNF instance name provided by the user during service instantiation
    • Sets PNF orchestration status in AAI to:
      • Register - when starting to wait for PNF ready event
      • Registered - when PNF ready event is successfully received
  • Currently implemented in CreateAndActivatePnfResource.bpmn

ConfigAssignPnfBB

(info) Under development

  • Responsibility:
    • Runs config assign via CDS
  • Currently implemented in ConfigurePnfResource.bpmn
  • Things to consider:

ConfigDeployPnfBB

(info) Under development

  • Responsibility:
    • Runs config deploy via CDS
  • Currently implemented in ConfigurePnfResource.bpmn
  • Things to consider:

ActivatePnfBB

  • Responsibility:
    • Sets PNF orchestration status in AAI as Active

Sequence in Service-Macro-Create flow

  1. AssignServiceInstanceBB
  2. CreateNetworkCollectionBB
  3. AssignNetworkBB
  4. AssignVnfBB
  5. AssignVolumeGroupBB
  6. AssignVfModuleBB
  7. AssignPnfBB
  8. WaitForPnfReadyBB
  9. ConfigAssignPnfBB (name yet to be determined, depending on the chosen solution)
  10. ConfigDeployPnfBB (name yet to be determined, depending on the chosen solution)
  11. ActivatePnfBB
  12. ConfigAssignVnfBB
  13. CreateNetworkBB
  14. ActivateNetworkBB
  15. CreateVolumeGroupBB
  16. ActivateVolumeGroupBB
  17. CreateVfModuleBB
  18. ActivateVfModuleBB
  19. ConfigDeployVnfBB
  20. ActivateVnfBB
  21. ActivateNetworkCollectionBB
  22. ActivateServiceInstanceBB

SO - required changes

API handler

GR API

SO API currently doesn't allow to send PNF information in user data section. 

Here's the proposed request which includes PNFs:

...

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2785

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyVID-693

Involved parties

  • Lukasz Grech, Damian Nowak - PNF PNP workflow migration to BBs
  • Oskar Malm - ConfigurePnfResource.bpmn (previous, non-BB implementation)
  • Henry Xie - SO-CDS integration, new API for calling CDS from SO
  • Yuriy Malakov - CDS, SO-CDS integration
  • Rahul Tyagi - PNF SW upgrade, SO-CDS integration

Proposed building blocks

Gliffy
namePNF PnP as Building Blocks
pagePin3

AssignPnfBB

  • Responsibility:
    • Creates PNF entry in AAI (with PNF name chosen by user)
    • Additionally stores PNF model-related parameters in AAI (
      Jira Legacy
      serverSystem Jira
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
      keySO-2640
      ):
      • model-customization-id
      • model-invariant-id
      • model-version-id
    • Makes a link in AAI between Service entry and PNF entry
    • Sets PNF orchestration status in AAI to Assigned
  • Currently implemented in CreateAndActivatePnfResource.bpmn

WaitForPnfReadyBB

  • Responsibility:
    • Waits for "PNF ready" event sent from PRH to DMaaP
      • pnfCorrelationId from the event must match PNF instance name provided by the user during service instantiation
    • Sets PNF orchestration status in AAI to:
      • Register - when starting to wait for PNF ready event
      • Registered - when PNF ready event is successfully received
  • Currently implemented in CreateAndActivatePnfResource.bpmn

Support for config assign (ControllerExecutionBB, action: configAssign)

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2646

  • Responsibility:
    • Runs config assign via CDS
  • Currently implemented in ConfigurePnfResource.bpmn
  • We will reuse generic BPMN for calling CDS (ControllerExecutionBB)
  • Things to consider:
    • SkipPostInstantiationConfiguration should be taken into account

Support for config deploy (ControllerExecutionBB, action: configDeploy)

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keySO-2647

  • Responsibility:
    • Runs config deploy via CDS
  • Currently implemented in ConfigurePnfResource.bpmn
  • We will reuse generic BPMN for calling CDS (ControllerExecutionBB)
  • Things to consider:
    • SkipPostInstantiationConfiguration should be taken into account

ActivatePnfBB

  • Responsibility:
    • Sets PNF orchestration status in AAI as Active

Sequence in Service-Macro-Create flow

  1. AssignServiceInstanceBB
  2. CreateNetworkCollectionBB
  3. AssignNetworkBB
  4. AssignVnfBB
  5. AssignVolumeGroupBB
  6. AssignVfModuleBB
  7. AssignPnfBB
  8. WaitForPnfReadyBB
  9. ControllerExecutionBB (action: configAssign, scope: pnf)
  10. ControllerExecutionBB (action: configDeploy, scope: pnf)
  11. ActivatePnfBB
  12. ConfigAssignVnfBB
  13. CreateNetworkBB
  14. ActivateNetworkBB
  15. CreateVolumeGroupBB
  16. ActivateVolumeGroupBB
  17. CreateVfModuleBB
  18. ActivateVfModuleBB
  19. ConfigDeployVnfBB
  20. ActivateVnfBB
  21. ActivateNetworkCollectionBB
  22. ActivateServiceInstanceBB

SO - required changes

API handler

GR API

SO API currently doesn't allow to send PNF information in user data section. 

Here's the proposed request which includes PNFs:

Expand


Code Block
{
    "requestDetails":{
           "modelVersionmodelInfo":"1.0"{
        },    "modelInvariantId":service_model_invariant_uuid,
            "owningEntitymodelVersionId":{service_model_uuid,
            "owningEntityId":"3fa3e96c-dd51-4c77-818d-f130b613f1f8"modelName":service_model_name,
            "owningEntityNamemodelType":"OE-Demonstrationservice",
        },         "subscriberInfo":{
            "globalSubscriberId":"Demonstration""modelVersion":"1.0"
        },
        "requestInfoowningEntity":{
            "instanceName":service_instance_nameowningEntityId":"3fa3e96c-dd51-4c77-818d-f130b613f1f8",
            "productFamilyIdowningEntityName":"ff9262e1-5e31-48dc-aa71-e3f0a7ba1b8c",OE-Demonstration"
            "source":"VID",
   },
        "suppressRollbacksubscriberInfo":{
False,             "requestorIdglobalSubscriberId":"demoDemonstration"
        },
        "requestParametersrequestInfo":{
            "subscriptionServiceTypeinstanceName":"vFW"service_instance_name,
            "aLaCarte": False,
productFamilyId":"ff9262e1-5e31-48dc-aa71-e3f0a7ba1b8c",
            "userParamssource":["VID",
            "suppressRollback": False,
  {          "requestorId":"demo"
        },
        "servicerequestParameters":{
            "subscriptionServiceType":"vFW",
            "modelInfoaLaCarte":{ False,
             "userParams":[
             "modelVersionId":service_model_uuid,   {
                    "service":{
    "modelName":service_model_name,                    "modelInfo":{
        "modelType":"service"                     "modelVersionId":service_model_uuid,
   },                         "instanceNamemodelName":service_instancemodel_name,
                        "instanceParams":[],    "modelType":"service"
                    "resources":{    },
                        "pnfsinstanceName":[service_instance_name,
                        "instanceParams":[],
        {                "resources":{
                    "modelInfo":{        "pnfs":[
                                "modelCustomizationName":nf_resource_name,
 {
                                      "modelCustomizationIdmodelInfo":nf_resource_uuid,{
                                        "modelInvariantIdmodelCustomizationName":nf_modelresource_invariant_uuidname,
                                        "modelVersionIdmodelCustomizationId":nf_modelresource_uuid,
                                        "modelNamemodelInvariantId":nf_model_invariant_nameuuid,
                                        "modelTypemodelVersionId":"pnf"nf_model_uuid,
                                        "modelVersion":"1.0"modelName":nf_model_name,
                                        },"modelType":"pnf",
                                        "platformmodelVersion":{"1.0"
                                    },
   "platformName":"Platform-Demonstration"                                 "platform":{
   },                                     "lineOfBusinessplatformName":{"Platform-Demonstration"
                                    },
   "lineOfBusinessName":"LOB-Demonstration"                                 "lineOfBusiness":{
   },                                     "productFamilyIdlineOfBusinessName":"ff9262e1-5e31-48dc-aa71-e3f0a7ba1b8c",LOB-Demonstration"
                                    "instanceParams":[]},
                                    "instanceName":nf_instance_nameproductFamilyId":"ff9262e1-5e31-48dc-aa71-e3f0a7ba1b8c",
                                }    "instanceParams":[],
                        ]            "instanceName":nf_instance_name
                                }
                            ]
}                   },     }
           {         }
           "Homing_Solution":"none"
                }
            ]
        }
    }
}

Building Block framework

Service decomposition (Retrieve BB Execution List)

  • PNFs should recognized in service model and proper BBs should be assigned for execution.

GeneralBuildingBlock initialization (BB Input Setup)

...

     },
                {
                    "Homing_Solution":"none"
                }
            ]
        }
    }
}


Building Block framework

Service decomposition (Retrieve BB Execution List)

  • PNFs should be recognized in service model and proper BBs should be assigned for execution.

GeneralBuildingBlock initialization (BB Input Setup)

  • PNF resources should be properly initialized in GeneralBuildingBlock→ServiceInstance

Generic controller BB working with PNFs

PNF PNP workflow integration with CDS

Gliffy
macroId670810bb-3ef5-466b-9dfe-77084b450687
namePNF PNP workflow integration with CDS

...

Gliffy
macroId670810bb-3ef5-466b-9dfe-77084b450687
namePNF PNP workflow integration with CDS
pagePin6

...

pagePin14

VID - required changes

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyVID-693

Updates for service macro instantiation:

...

  • Are all required PNF parameters included in GeneralBuildingBlock->ServiceInstance→Pnf? 
    • Currently those are:
      • pnf-id
      • pnf-name
      • role
      • orchestration-status
      • cloud-region
    • Currently AAI schema (aai_schema_v19.xsd) for PNF contains: 
      • Fields: pnf-name, pnf-name2, selflink, pnf-name2-source, pnf-id, equip-type, equip-vendor, equip-model, management-option, orchestration-status, ipaddress-v4-oam, sw-version, in-maint, frame-id, serial-number, ipaddress-v4-loopback-0, ipaddress-v6-loopback-0, ipaddress-v4-aim, ipaddress-v6-aim, ipaddress-v6-oam, inv-status, resource-version, prov-status, nf-role, admin-status, operational-status, model-customization-id, model-invariant-id, model-version-id (from SO cataloge), pnf-ipv4-address, pnf-ipv6-address
      • Sub-structures: software-versions, relationship-list, p-interfaces, lag-interfaces, vrfs
    • (warning) BBInputSetup implementation does not mention PNF at all - is it even initialized in GeneralBuildingBlock?
    • PNF ip is resolved by CDS by PNF ID (it should be in AAI) - it's populated by PRH
  • How to include new BBs in Service-Macro-Create flow?
    • Where to put new BBs in the flow sequence?
    • Service decomposition in WorkflowActionBB may not unserstand PNFs (Retrieve BB Execution List)
    • Service decompositioon decomposition should handle SkipPostInstantiationConfiguration
  • PNF orchestration status changes in AAI - which states should be assigned in which steps of the workflowShould we have ActivatePnfBB? 
  • PNF SW upgrade (Oskar Malm)
    • PNF should be active - PNP is finished
    • new Upgrade flow will be created (BBs vs traditional considered)
  • 5G NRM Configuration - plan for new BB which invokes configuration via CDS of NRM resource(?) (Yaoguang Wang, see https://wikilf-onap.onapatlassian.orgnet/wiki/display/DW/SO+Weekly+Meeting+2019-12-4)
  • Make new BBs generic enough that they could be reused in other flows (request from Seshu)
  • Service-Macro-Delete
    • Should we delete PNF resource from AAI on service deletion?
      • We plan to leave it. What orchestration status should it get? Inactive?