2 Policy Control Function Architecture

The Oracle Communications 5G Policy Control Function (PCF) solution provides:

  • Micro-services based Cloud-Native Architecture
  • Policy Design Evolution to support modular and flexible Domain Driven Policy design
  • Compliant with 3GPP Release 15 specifications
  • Product supports Session Management, Access management and Authorization policy control services
  • Flexible, user friendly Policy Design Framework for rapid policy use case deployments
  • Pluggable Data Sources to ingest input from a variety of data sources (UDR, LDAP, Analytics, etc.)
  • Support of different Deployment Options - PLMN level, slice shared and slice specific
The Oracle Communications Policy Control Function is built as a cloud-native application composed of a collection of microservices running in a cloud-native environment. It separates processing/business logic and state concerns following the corresponding logical grouping of microservices/components:
  • Connectivity: Components interfacing with external entities. This is where an API gateway is utilized to interface with external traffic to the PCF. These are stateless sets of components.
  • Business logic: Application layer running the PCRF/PCF business logic, policy engine and various services that can be enabled based on deployment needs. These are stateless sets of components.
  • Data Management: Data layer responsible for storing various types of persistent data. The PCF is built to be able to plug in different types of backend data layers that could be internal or external.

Figure 2-1 PCF Architecture

img/pcf-diagram1.png

As a result, an actual policy function can be composed of the necessary micro-services to provide the desired function, For example, a subset of a PCF (e.g. one without usage monitoring, etc).

The Policy Control Function packages its micro-services into containers and leverages Kubernetes' constructs and abstractions such as Pods, ReplicaSets, and services so it can enable Kubernetes to manage and orchestrate the PCF. It also leverages Istio as a service mesh (including Envoy proxies as sidecars) for the internal communication amongst the various micro-services. The Oracle PCF integrates with a variety of common services for data collection, analysis, and visualization services for operational aspects like logs, metrics, and traces. The Oracle 5GC PCF comprises artifacts like Helm charts that encapsulate lifecycle instructions and resource dependencies for all member components.

The Oracle PCF is flexible to run in various cloud-native environments. The Policy Control Function can be configured to leverage common services provided by the cloud-native environment and/or provide its own set if certain common services aren't provided by the underlying environment. It gather inputs from various interfaces (For example, SMPolicyControl etc.) defined by 3GPP but it also has to be flexible to plug in additional data sources to adapt to an operator's environment and available data. Below is a diagram illustrating the above description:

img/pcf-diagram2.png

About Policy Design Experience

Policy design experience allows an operator to craft and deploy, from scratch, operator policies in production in very less time. 5G brings the policy design experience to the next level by providing flexibility, extensibility, modularization, and assurance to the operator to rapidly, yet confidently deploy new operator policies and enable use cases more faster.

The following figure highlights the various components used by the policy design and run-time:

Figure 2-2 Policy Design Experience


img/policy_design_experience.png

Design

  • Modular and flexible domain driven policy design
  • Modules encompasses data model, triggers, conditions and actions
  • Modules can be designed via a GUI (very intuitive, can be used by anyone) and allows any language supported by JVM for advances cases if needed (e.g. Java, Groovy, etc)
  • Pre-packaged modules provided by Oracle
  • Modules can be extended or built by operators

Run-time

  • Run-time engine service to expose APIs
  • Run-time engine service to be stateless and independently scalable
  • Newly designed policies or policy updates can be rolled out in an incremental fashion (e.g. to a specific set of policy run-time engines) to enable canary releases and ensure updates are working as expected before being rolled out globally

Debugging and testing

  • Debugging policy logic capability as a complementary tool to the design experience
  • Automated testing framework to enable regression and validation of policy logic and modules before deployment