Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 30 Next »

Background


  • For the ONAP Beijing release, the APPC project delivered the CDT design tool to support the APPC model driven design approach.
  • For the next ONAP releases Casablanca, we are proposing to develop a common design tool to support both SDNC and Generic L4-7 NFs (APPC, VFC) Controller integrated with SDC.
  • This common design tool, also called “Controller Design Studio”, will be built with associated data dictionary and an Ingredient Resource Resolution Microservice
  • The common design tool models shall be backwards compatible to the current use cases supported in Amsterdam and  Beijing release by Generic L4-7 NF (APP-C specific). 

Introduction

The system is designed to be self service, which means that users, not just programmers, can reconfigure the software system as needed to meet customer requirements. To accomplish this goal, the system is built around models that provide for real-time changes in how the system operates.  Users merely need to change a model to change how a service operates.

Self service is a completely new way of delivering services.  It removes the dependence on code releases and the delays they cause and puts the control of services into the hands of the service providers.  They can change a model and its parameters and create a new service without writing a single line of code.  This makes SERVICE PROVIDER(S) more responsive to its customers and able to deliver products that more closely match the needs of its customers.

Architecture

The Controller Design Studio is composed of two major components: the GUI (or frontend) and the Run Time (or backend).  The GUI handles direct user input and allows for displaying both design time and run time activities.  For design time, it allows for the creation of controller blueprint, from selecting the DGs to be included, to incorporating the artifact templates, to adding necessary components.  For run time, it allows the user to direct the system to resolve the unresolved elements of the controller blueprint and download the resulting configuration into a VNF.  At a more basic level, it allows for creation of data dictionaries, capabilities catalogs, and controller blueprint, the basic elements that are used to generate a configuration. The essential function of the Controller Design Studio is to create and populate a controller blueprint, create a configuration file from this Controller blueprint, and download this configuration file (configlet) to a VNF/PNF.




Detailed Architecture PowerPoint Package:

Controller Design Studio 7-11-2018.pptx


Proposed Work Items

Design Time

FeatureDescriptionJIRA  Owner Wiki PageNotes 

Controller Design Studio GUI

 

 

 

 

Refactor and move the APP-C CDT to CCSDK for "Controller Design Studio" mS.CCSDK-334AT&T Randa/Dan T 

Dan and Taka to discuss the plan for Casablanca.

AT&T base Code Contribution for Controller Blueprint Creation and Management including artifact model, component model, connectivity model, and dg modeling in "Controller Design Studio" mS.

CCSDK-335AT&T Brinda M/Kapil S/Srikant V

Code Contribution:

  • Taner and Dan T – how can get the code contribute to ONAP?

AT&T base Code Contribution for Catalog Creation and Management in "Controller Design Studio" mS.

CCSDK-336AT&T Brinda M/Kapil S/Srikant V
 

AT&T base Code Contribution for Data Dictionary Creation and Management in "Controller Design Studio" mS.

CCSDK-337AT&T Brinda M/Kapil S/Srikant V  

Enhance existing screen to support data dictionary panel layout and data dictionary reference model creation for existing APP-C Models.

CCSDK-347AT&T APP-C  

Controller Design Time Studio app extension with SDC integration.

CCSDK-338

SDC

AT&T  APP-C/SDN-C

Tech M

IBM

Bell Canada


 


Run Time 

FeatureDescriptionJIRA  Owner AT&T SDN-CWiki Page
  Instantiation  Generic Resource API integration with netbox ip management capability for assignCCSDK-339Bell CanadaPat C to provide wiki page on the existing EIPAM capability
Generic Resource API integration with netbox ip management capability for unassign CCSDK-340Bell CanadaPat C to provide wiki page on the existing EIPAM capability
netbox ip management REST API support in ONAPCCSDK-341Bell Canada
AT&T base code contribution for policy driven naming mS in ONAPCCSDK-342AT&T Ajay Sing/Biju Thomas 
AT&T base code contribution for Resource Resolution using data dictionary mS in ONAPCCSDK-343AT&T Ajay Sing/Biju Thomas 
AT&T base code contribution for template meshing mS in ONAPCCSDK-344AT&T Brinda M/Kapil S 
Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (SDN-C)CCSDK-345

SDC

CCSDK, SDNC,AAP-C

Tech M

IBM

Bell Canada

artifact type can specify Controller peronsa? Need to be looked at it.
Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (APP-C)CCSDK-349    SDC

AT&T  APP-C/SDN-C

Tech M

IBM

Bell Canada

 

Post Instantiation

APP-C Integration with resource resolution REST API based on data dictionary.CCSDK-348AT&T APP-Cscale out use case. (include the discussion with Scott)

AT&T base Code Contribution for Configuration Generation, Preview and Deployment.

CCSDK-346AT&T SDN-C

 
 

 
 

 




   





Artifact

Instantiation

{

  "resource-accumulator-resolved-data": [

    {

"param-name": "service-instance-id",

      "param-value": "${service-instance-id}"

    },

    {

      "param-name": "vnf_id",

      "param-value": "${vnf-id}"

    },

    {

      "param-name": "vnf_name",

      "param-value": "${vnf-name}"

    },

    {

      "param-name": "vnf_model_customization_uuid",

      "param-value": "${vnf-model-customization-uuid}"

    },

    {

      "param-name": "vf_module_id",

      "param-value": "${vf-module-id}"

    },

    {

      "param-name": "vf_module_customization_uuid",

      "param-value": "${vf-module-model-customization-uuid}"

    },

    {

      "param-name": "aic-cloud-region",

      "param-value": "${aic-cloud-region}"

    },

    {

      "param-name": "aic_clli",

      "param-value": "${aic_clli}"

    },

    {

      "param-name": "avaiablity_zone_0",

      "param-value": "${avaiablity_zone_0}"

    },

    {

      "param-name": "cloud_env",

      "param-value": "openstack"

    },

    {

      "param-name": "repo_url_artifacts",

      "param-value": "

https://nexus.onap.org/content/groups/staging"

    },

    {

      "param-name": "repo_url_blob",

      "param-value": "

https://nexus.onap.org/content/repositories/raw"

    },

    {

      "param-name": "dcae_collector_port",

      "param-value": "8080"

    },

    {

      "param-name": "image_name",

      "param-value": "Ubuntu 14.04 LTS Generic"

    },

    {

      "param-name": "flavor_name",

      "param-value": "m1.medium"

    },

    {

      "param-name": "install_script_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "demo_artifacts_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "dcae_collector_ip",

      "param-value": "10.0.4.1"

    },

    {

      "param-name": "pub_key",

      "param-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"

    }

  ],

  "capability-data": [

    {

      "capability-name": "generate-name",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vsn_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vsn_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vsn-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vsn_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vfw_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vfw_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vfw-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vfw_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vf-module-name"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VF-MODULE"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "VF_MODUEL_LABLE",

              "param-value": "${vf-module-label}"

            },

            {

              "param-name": "VF_MODUEL_TYPE",

              "param-value": "${vf-module-type}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vf_module_name",

              "resource-value": "${vf-module-name}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "volume-name"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VOLUME"

            },

            {

              "param-name": "VOLUME_GROUP_NAME",

              "param-value": "${volume-group-name}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vmxvre_volume_name_1",

              "resource-value": "${volume-name}"

            },

            {

              "resource-name": "vmxvre_volume_name_0",

              "resource-value": "${volume-name}"

            }

          ]

        }

      ]

    },

    {

      "capability-name": "netbox-ip-assignment",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "protected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "onap_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vpg_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_2",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "unprotected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        }

      ]

    }

  ]

}

Post Instantiation L1 to L3 SDNC

Base config artifact pending 

Post Instantiation L4 to L7 Generic Controller L4-L7 (APP-C Specific)

Base config artifact pending


Sequence Diagram

Instantiation (vFW)

 

Post Instantiation (vFW)


 

  • No labels