Versions Compared

Key

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

The content of this template is expected to be fill out for M1 Release Planning Milestone.

Table of Contents
outlinetrue

Overview

Project NameEnter the name of the project
Target Release NameDublin
Project Lifecycle StateIncubation
Participating Company AT&T, Ericsson, ??????Huawei, TechMahindra

Scope

What is this release trying to address?

...

ScopePriorityCommitter LeadResources CommittedEpicDependencies
Technical DebtHighestPamela Dragosh

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1068


Policy Architecture BuildHighest

Liam Fallon - Models, PDP SDK (Grouping PDPs), Apex PDP

Ram Krishna Verma - PAP, PAP ↔ PDP Policy Distribution (Apex), SDC Service Distribution, Apex PDP

Jorge Hernandez - PAP ↔ PDP policy distribution (Drools)

James Hahn - API/PAP/PDP (Nexus)

Josh Reich - Models (CLC policies)

Michael Mokry - API, PAP (both MariaDB work)

Chenfei Gao - API (RESTful interface), PDP SDK (Grouping PDPs)

Pramod Jamkhedkar - Models (A&AI), XACML,

TBD - PAP PDP policy distribution (XACML)

TBD - Models (Guard policies)

Pamela Dragosh - XACML PDP, Policy Designer Environment

Platform Dedicated Resources

ComponentResource
API - CRUD

Chenfei Gao - RESTful interface

Michael Mokry - MariaDB interfaces


PAP <-> PDP Group CRUD and register/unregister
PAP - Deploy/Undeploy Policy Distribution to PDPs

James Hahn - RESTful interface

Ram Krishna Verma - Apex

Jorge Hernandez - Drools






Apex PDP
Drools PDP
XACML PDP
SDC Service Distribution



Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

Iteratively working with new models/templates being built for Model Drive Control Loop:

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1399

Logging Requirements - all components except policy/engineHigh

Jorge Hernandez - PDP, common

Ram Krishna Verma - Distribution, Apex


Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1284


Security RequirementsHigh


Sub-RequirementResourcesJIRA
CII Silver Badging RequirementsPamela Dragosh
Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1223
Known Vulnerabilities to be removed - TBD

Pamela Dragosh

Liam Fallon

Team will address security issues when they appear.

Pluggable Authentication/Authorization/Certification Management

Jorge Hernandez
Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1371


Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1220


Control Loop Sub Committee Functional Requirements

Model driven Control Loop Design

High

Liam Fallon - shared models across PDP engines

Josh Reich - Control Loop Coordination

Pamela Dragosh - Guard/DCAE Configuration

Pramod Jamkhedkar - Drools Control Loop Template, A&AI

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1399

Iteratively working with re-design of the Platform

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

AT&T Features/Fixes on the Casablanca codebaseMediumJorge HernandezPraveen Augustus

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1408



Use Cases

Jorge Hernandez - PDP, common

Michael Mokry - Engine

Ram Krishna Verma - Distribution, ApexJorge Hernandez
Use CaseScopePriorityCommitter LeadResources committedJIRADependencies
vDNS (via Scale Out)Control Loop HardeningHighest

Pramod Jamkhedkar - A&AI work

Tech Mahindra will provide - per Milind Jalwadi (Unlicensed)   TSC call

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1450

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

Logging RequirementsHigh

1399

vFW

TBD - use APP-C LCM API vs old API for ModifyConfig

  • Investigate LCM Client library
  • Missing payload
  • Deprecate old API for ModifyConfig (and dmaap topic)
High

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1284

Security RequirementsHigh
Sub-RequirementResourcesJIRA
CII Silver Badging RequirementsPamela DragoshKnown Vulnerabilities to be removed - TBD

Pamela Dragosh

Liam Fallon

Pluggable Authentication/Authorization/Certification Management

1439

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1220

Control Loop Sub Committee Functional RequirementsHigh
5G - FM Meta Data

DEFERRED TO NEXT RELEASE

VES Event Registration - auto-generate control loop policies





DRAFT - not committed until resources are identified

Pamela Dragosh
Use CaseScopePriorityCommitter LeadResources committedJIRADependencies
vDNS (via Scale Out)Control Loop HardeningHighest

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

...

Pamela Dragosh

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1399

5G - OOF & PCI

Adding 2nd control loop

Add Control Loop Coordination Policies to support both control loops

MedWipro Corp. will provide

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

vFW

TBD - use APP-C LCM API vs old API for ModifyConfig

  • Investigate LCM Client library
  • Missing payload
  • Deprecate old API for ModifyConfig (and dmaap topic)
High

1438

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

5G - FM Meta Data

VES Event Registration - auto-generate control loop policies

Lowest5G - Configuration with NetConfTBD5G - OOF & PCI

Adding 2nd control loop

Add Control Loop Coordination Policies to support both control loops

Low

vCPE

Test ONLY

  • Investigate LCM Client library
Med


CCVPN

CCVPN Use Case (Dublin) - TBD Changes needed for policy

MedPamela Dragosh

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

vCPE

Test ONLY

  • Investigate LCM Client library
MedCCVPNTest ONLYMedBBSSimple Pass through PolicyLow

TBD if this work is dependent upon the re-build.

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyPOLICY-1269

BBSNO REQUIREMENTS





Change Management Dublin Extensions

TBDTest ONLY

Schedule optimization with Automated Conflict Avoidance 

Traffic Migration Workflow

LowestLow
n/a


Minimum Viable Product


The following application components are the MVP from the Casablanca releases.

...

  • Policy API - Lifecycle API that supports onboarding Policy models/templates and the creation of raw policies from the models/templates.
  • Policy PAP (2nd Gen ?) - PAP component that allows PDP engines to be grouped in order to support a set of policies and Deploy/Undeploy of Policies into these PDP groups.
  • Policy XACML (2nd Gen) - lightweight XACML PDP

Functionalities

List the functionalities that this release is committing to deliver by providing a link to JIRA Epics and Stories. In the JIRA Priority field, specify the priority (either High, Medium, Low). The priority will be used in case de-scoping is required. Don't assign High priority to all functionalities.

Epics

Jira Legacy
serverSystem Jira
columnskey,summary,priority,assignee
maximumIssues20
jqlQueryproject = POLICY and Type = EPIC and fixVersion = 'Dublin Release' ORDER BY priority DESC, updated DESC
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

Stories

Jira Legacy
serverSystem Jira
columnskey,summary,priority,assignee
maximumIssues30
jqlQueryproject = POLICY and Type = Story and fixVersion = 'Dublin Release' and Resolution = 'Unresolved' ORDER BY priority DESC, updated DESC
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

Longer term roadmap

Dublin will begin development of its new architecture as described in this wiki: The ONAP Policy Framework

Release Deliverables

Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note...) of this release.

Deliverable NameDeliverable Description
Policy Portal DashboardExecutable
Policy PAP web application (legacy)Executable

API - internal to the Policy Platform. The Policy PDP engines use this API to synchronize policies being distributed.
Policy Drools PDPExecutable
Policy XACML PDP (legacy)Executable

Existing API - external to ONAP components. The API is used to CRUD Policies, Deploy Policies, and query for Policy Decisions.
Policy BRMS GatewayExecutable
MariaDB

SQL database

  • Stores policies and their versions
  • Stores templates/models and their versions
  • Stores PDP grouping information
  • Stores Policy distribution details
Nexus RepoThis repository is used by the Policy Drools PDP to retrieve distributed policies and their dependent jars.
Policy SDC Distribution IntegrationExecutable - receives SDC Service Distribution notifications and translates VNF/Service policies into runtime policies.
Policy Apex PDPExecutable


Policy Lifecycle API (2nd Generation)Executable
Policy PAP (2nd Generation)Executable
Policy PDP SDK (2nd Generation)Code Deliverable
Policy XACML PDP (2nd Generation)Executable

Sub-Components

List all sub-components part of this release.
Activities related to sub-components must be in sync with the overall release.

Sub-components are repositories and are consolidated in a single centralized place. Edit the Release Components name for your project in the centralized page.

Architecture

High level architecture diagram

At that stage within the Release, the team is expected to provide more Architecture details describing how the functional modules are interacting.

...

Anyone reading this section should have a good understanding of all the interacting modules.

Platform Maturity

Refering to CII Badging Security Program and Platform Maturity Requirements, fill out the table below by indicating the actual level , the targeted level for the current release and the evidences on how you plan to achieve the targeted level.

AreaActual LevelTargeted Level for current ReleaseHow, EvidencesComments
Performance11
  • 0 -- none
  • 1 – baseline performance criteria identified and measured
  • 2 & 3 – performance improvement plans created & implemented
Stability11
  • 0 – none
  • 1 – 72 hours component level soak w/random transactions
  • 2 – 72 hours platform level soak w/random transactions
  • 3 – 6 months track record of reduced defect rate
Resiliency22
  • 0 – none
  • 1 – manual failure and recovery (< 30 minutes)
  • 2 – automated detection and recovery (single site)
  • 3 – automated detection and recovery (geo redundancy)
Security12 (Stretch goal)
  • 0 – none
  • 1 – CII Passing badge + 50% Test Coverage
  • 2 – CII Silver badge; internal communication encrypted; role-based access control and authorization for all calls
  • 3 – CII Gold
Scalability11
  • 0 – no ability to scale
  • 1 – single site horizontal scaling
  • 2 – geographic scaling
  • 3 – scaling across multiple ONAP instances
Manageability11
  • 1 – single logging system across components; instantiation in < 1 hour
  • 2 – ability to upgrade a single component; tracing across components; externalized configuration management
Usability11
  • 1 – user guide; deployment documentation; API documentation
  • 2 – UI consistency; usability testing; tutorial documentation


  • API Incoming Dependencies

List the API this project is expecting from other projects.
Prior to Release Planning review, Team Leads must agreed on the date by which the API will be fully defined. The API Delivery date must not be later than the release API Freeze date.

Prior to the delivery date, it is a good practice to organize an API review with the API consumers.

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
SO APIREST API for SOM3M3 time
AAIREST Web Service for AAICasablanca

Control Loop Event MessagesDmaap messages published by DCAE when a Control Loop Event occurs.Casablanca

n/a

n/a
APP-CDmaap message LCM API for Restart and ModifyConfigCasablanca

DMAAPAPI for publish/subscribe to DCAE Control Loop Events and APP-C APICasablanca

  • API Outgoing Dependencies

API this project is delivering to other projects.

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI Definition link (i.e.swagger)
Policy Client APIThis is the legacy Policy API is used by other ONAP components to create, update and delete policy(s).Casablanca version - no changesn/aPolicy API
Policy Query APIThis is the legacy Policy API is used by other ONAP components responsible for enforcing policy during runtime.Casablanca version - no changesn/aPolicy API
Policy Lifecycle APIThe new Policy Lifecycle API description, documentation, models, etc.M3 DublinM4 DublinTBD
  • Third Party Products Dependencies

Third Party Products mean products that are mandatory to provide services for your components. Development of new functionality in third party product may or not be expected.
List the Third Party Products (OpenStack, ODL, RabbitMQ, ElasticSearch,Crystal Reports, ...).

...

In case there are specific dependencies  (Centos 7 vs Ubuntu 16. Etc.) list them as well.

  • Testing and Integration Plans

Provide a description of the testing activities (unit test, functional test, automation,...) that will be performed by the team within the scope of this release.

Describe the plan to integrate and test the release deliverables within the overall ONAP system.
Confirm that resources have been allocated to perform such activities.

  • Gaps

This section is used to document a limitation on a functionality or platform support. We are currently aware of this limitation and in the Dublin Release we are working on re-building the current Policy Framework Software Architecture that does not have these limitations.

...

Gaps identifiedImpact

Policies that are specific to drools are routed through the PDP-X via BRMSGW.

This is unsustainable long-term as we move to a distributed PDP micro service architecture and need to utilize a Policy Distribution API to groups of PDP's spread out over the installation of ONAP.


BRMSGW hard codes dependencies for policies that are specific to drools.

The long term architecture view is for policy artifacts to be located in a nexus repository that are pulled by appropriate PDP micro service engines. Dependencies would be set in the policy artifact jar files themselves and not hard coded into the platform as a JSON file. Having a JSON file to specify dependencies is a poor implementation architecture and there is no need to re-create Policy artifacts.

Policy template/model/rule development environment is too tightly integrated with the Platform code and is not sustainable in the long term.

The long term vision is for separate of Platform from Policies and the current architecture is too far off in its development to move to this goal.

New policy models require too much development effort for integration with the Policy GUI.

The long term goal was a platform that could ingest policy models organically and not require any development work. The Policy GUI should be to interpret any TOSCA Model ingested and flexibly present a GUI for a user to create policies from.
Policy API is not RESTful and acts more like database query rather than request for a Policy Decision. API also hardcodes models of policies. The long term goal for the architecture which is to be able to create domains for policies and be flexible import models for those domains without any development to the platform.

Policy API does not support Lifecycle management for policies that are deployed such as modes and retirement.

This additional requirement is better suited for the new proposed Policy Lifecycle API than the current API.
  • Known Defects and Issues

Provide a link toward the list of all known project bugs.

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject=POLICY and issuetype in (bug) and fixVersion='Dublin Release'
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176

  • Risks

List the risks identified for this release along with the plan to prevent the risk to occur (mitigation) and the plan of action in the case the risk would materialized (contingency).

Risk identifiedMitigation PlanContingency Plan
Not enough resources to meet all the functional requirements.All Epics are assessed a priority.
Need the SO API defined by a reasonable timeframe for implementation to happenWe will use the current SO RESTful API until the new API is in place.
  • Resources

Fill out the Resources Committed to the Release centralized page.

  • Release Milestone

The milestones are defined at the Release Level and all the supporting project agreed to comply with these dates.

  • Team Internal Milestone

This section is optional.


  • Documentation, Training



Other Information

  • Vendor Neutral

If this project is coming from an existing proprietary codebase, ensure that all proprietary trademarks, logos, product names, etc. have been removed. All ONAP deliverables must comply with this rule and be agnostic of any proprietary symbols.

  • Free and Open Source Software

FOSS activities are critical to the delivery of the whole ONAP initiative. The information may not be fully available at Release Planning, however to avoid late refactoring, it is critical to accomplish this task as early as possible.
List all third party Free and Open Source Software used within the release and provide License type (BSD, MIT, Apache, GNU GPL,... ).
In the case non Apache License are found inform immediately the TSC and the Release Manager and document your reasoning on why you believe we can use a non Apache version 2 license.

...