Policy Framework Project Proposal (5/11/17)

Project Name:

  • Proposed name for the project: Policy Framework
  • Proposed name for the repository: 
            • policy/api - Policy CRUD and PEP enforcement client code
            • policy/common - common shared modules
            • policy/pdp - Policy Decision Engines
            • policy/pap - Policy Administration (Backend)
            • policy/gui - Policy Administration GUI (Frontend)
            • policy/docker - Policy docker image

Project description:

The Policy subsystem of ONAP maintains, distributes, and operates on the set of rules that underlie ONAP’s control, orchestration, and management functions. Policy provides a centralized environment for the creation and management of easily-updatable conditional rules. It enables users to validate policies and rules, identify and resolve overlaps and conflicts, and derive additional policies where needed. Policies can support infrastructure, products and services, operation automation, and security. Users, who can be a variety of stakeholders such as network and service designers, operations engineers, and security experts, can easily create, change, and manage policy rules from the Policy Manager in the ONAP Portal.

Scope:

  • Deliver points of interoperability within ONAP for VNF and network service On-boarding to capture policy/rule expressions, VNF vendor specific policies and network service policies.
    • The following areas are identified as places where Policy is currently supported and/or potentially needed in the ONAP Platform for R1 and beyond.


      Current Seed SupportONAP Project DependenciesR1

      Placement

      Yes

      SNIRO

      • Continue support for SNIRO.
      • Work to be done for Policy Driven VNF Orchestration via Alex Vul.

      Resource Allocation

      No

      Remediation Actions (eg Scaling)

      Yes – limited

      SO

      A&AI

      If SO and A&AI make API changes Policy will be impacted. Otherwise we anticipate being able to deliver this functionality.

      Compliance Checking (eg. Security)

      No

      SLA

      No

      Health

      No

      Control Loops

      Yes

      APP-C

      SO

      VF-C

      A&AI

      Will need to work with teams to support control loops. Will be impacted on any API changes to SO, APP-C and A&AI. Will need to develop VF-C interface.

      Platform Level Policies

      No

      Governance for Users/Customers

      No

    • Deliver where/how Policies are expressed
      • Policy Domain Specific Language(s) (DSL) - work with the Modeling project to define how policy expressions are captured
      • Policy Design GUI - work with SDC project to integrate the Policy Design GUI during VNF/Service design for capturing Policy Expressions
    • Deliver requirements for Policy Conflict Detection and mitigation
    • Deliver requirements for capturing vendor-embedded policy (Stretch)
  • Deliver points of interoperability within ONAP in which captured policies are translated into enforceable actions/outcomes
    • Deliver architecture flow for identify how translation of DSL will work in the following ONAP scenarios:
      • Instantiation
      • Orchestration
      • Remediation
      • Controllers
      • Control Loop (Release 1)
        • DCAE Analytics, Collectors and Micro services: 
          • Design configuration policies and required models for the 3 Use Cases
        • CLAMP
          • Design operational policies for responding to Control Loop events for the 3 Use Cases
        • Controllers
          • Design, build and integrate required code to support 3 Use Cases for needed controller(s)
    • Identify how policy translation works
      • Design architecture for a common framework for the decision engines/languages used
      • The translation tools needing development
    • Identify the Enforcement points within ONAP to support the Use Cases
      • Common API design to support enforcement
    • Deliver points of interoperability for Day2Day Operations.
      • Identify architecture, flow and API's for how operations teams can update/deploy/un-deploy Policies
    • Deliver points of interoperability to support Adaptive Policy (Stretch)
      • Reverse planning, inference rules, machine learning
    • Deliver architecture and points of interoperability for Policy Distribution. The current seed code is limited in how policies are distributed, work needs to be done. (Stretch for R1)
      • Deliver architecture flow diagram on how Policy Decision Engines are deployed/un-deployed.
      • Define requirements as to which policies are supported in the various Decision Engines.
      • Deliver Swagger/DMaap API specification for PDP engines to communicate with PAP backend for policy distribution.

Architecture Alignment:

  • How does this project fit into the rest of the ONAP Architecture?
    • Architecture Diagram


    • What other ONAP projects does this project depend on?
      • Modeling - provide input for Policy Expression
      • VNF SDK
      • SNIRO
      • SDC
      • ONAP Operations Manager
      • ONAP Extensibility
      • Control Loop
      • CLAMP
      • DCAE
      • Orchestration
      • Controllers
      • Basically every component in ONAP should be policy-enabled
  • How does this align with external standards/specifications?
    • APIs/Interfaces
    • Information/data models
  • Are there dependencies with other open source projects?
    • XACML (github.com/att/xacml)
    • Drools (drools.org)

Deliverables for R1

  • PAP + Console (ONAP Portal app)
    • Policy CRUD and Deployment API
    • GUI for viewing and managing policies/PDP's
  • Policy YAML SDK
    • For building Control Loop Operational Policies
  • XACML PDP
  • Drools PDP
  • Nexus Repository
    • The repository for Drools Policy Rules and support code
  • Database (MariaDB)
    • The repository for XACML Policies, templates, PDP Grouping and PDP Policy Deployment.


Offered APIs

Container/VM nameAPI nameAPI purposeprotocol usedport number or range usedTCP/UDP
Console (Portal)
UI, and interface from ONAP Portalhttp8443TCP
PAP
manages the PDP Groups and Nodeshttp9091TCP
PDP
policy publishing and PIP configuration changes and queries against Policy Enginehttp8081TCP
Nexus Repository
Nexus OSS repository for Drools model & rule artifactshttp8081TCP
Database
MariaDB http3306TCP


Consumed APIs

Container/VM nameContainer/VM/ offering the APIAPI nameAPI purposeprotocol usedport number or range usedTCP/UDP
Drools PDPDMaaP
publish/receive eventshttp/https3904/3905RCP
BRMS GatewayDMaaP
publish configuration change events to Drools PDPhttp/https3904/3905TCP
Console (Portal)ONAP Portal/ecompuiInterface to ONAP Portal from Portal apphttps8443?TCP
Drools PDPAAI Service/aai /aai/v8/*Rest Web Service for AAIhttps8443TCP
***Drools PDPMSO Core and BPMN / MSO VMVID api handlerRequest coming from portalhttp/https8080/8443TCP

Resources:

  • Primary Contact Person
    • Pamela Dragosh - AT&T
  • Names, gerrit IDs, and company affiliations of the committers
    • Pamela Dragosh - AT&T
    • Jorge Hernandez-Herrero - AT&T
  • Names and affiliations of any other contributors
NameGerrit IDCompanyEmailTimeZone
Pamela DragoshpdragoshAT&Tpdragosh@research.att.comBedminster, NJ USA, EST, UTC-4
Jorge Hernandez-HerrerojhhAT&Tjh1730@att.comUSA, CST
Alex VulavulIntelalex.vul@intel.comPacific
Avinash S
Huaweiavinash.s@huawei.comBangalore, India, UTC +5:30
Nermin Mohamed
Huaweinermin.mohamed@huawei.com
Bobby Mander
AT&Tbobby.mander@att.comMiddletown, NJ USA, EST, UTC -4
Ralph Straubs 
AT&Trs8887@att.comUSA, CST
Jim Hahn
AT&Tjrh3@att.com

ding yi


ZTEding.yi5@zte.com.cnBeijing, China, UTC +8

xinyuan wang

XinyuanZTEwang.xinyuan1@zte.com.cnBeijing, China, UTC +8
Zi LiNancyliziZTEli.zi30@zte.com.cnBeijing, China, UTC +8

Sven van der Meer

vdmeer.svenNM-Lab, Ericssonsven.van.der.meer@ericsson.comDublin, Ireland, UTC (DST: UTC+1)
Dublin,
Liam Fallon
NM-Lab, Ericssonliam.fallon@ericsson.comDublin, Ireland, UTC (DST: UTC+1)

John Keeney


NM-Lab, Ericssonjohn.keeney@ericsson.comDublin, Ireland, UTC (DST: UTC+1)
Joel Halpern
Ericssonjoel.Halpern@ericsson.com
Jimmy O'Meara
Ericssonjimmy.o.meara@ericsson.comDublin, Ireland, UTC (DST: UTC+1)
Yusuf Mirza
IBMymirza@ae.ibm.comDubai, UAE, UTC +4

Alain Lee


Huawei

ln.linan@huawei.com

Beijing, China, UTC +8
Yuan Liu
China Mobileliuyuanyjy@chinamobile.comBeijing, China, UTC +8

Ruan HE


Orangeruan.he@orange.comParis, France, UTC+01:00
John Strassnerstrazzie123Huaweijohn.sc.strassner@Huawei.comSanta Clara, CA UTC-7
Jingbo Liu
BOCO

liujingbo@boco.com.cn

Beijing, China, UTC +8
Zhangxiong Zhou
BOCOzhouzhangxiong@boco.com.cnBeijing, China, UTC +8
Xin Miao
Huaweixin.miao@huawei.comDallas, Texas, USA, CST


  • Project Roles (include RACI chart, if applicable)

Other Information:

  • Seed code existing in ONAP
    • policy/common
    • policy/drools-pdp
    • policy/drools-applications
    • policy/engine
    • policy/docker

Use the above information to create a key project facts section on your project page

Key Project Facts

Project Name:

  • JIRA project name: Policy Framework
  • JIRA project prefix: Policy

Repo name:
Lifecycle State: incubation
Primary Contact: Pamela Dragosh
Project Lead: Pamela Dragosh
mailing list tag [policy] 
Committers:
pdragosh@research.att.com AT&T

jh1730@att.com AT&T

bm116p@att.com AT&T

*Link to TSC approval: 

Link to approval of additional submitters: