4 Configuring Network Bridge for 5G to 4G Payload Transformation

You can configure Oracle Communications Network Bridge to perform protocol translation between a 5G Network Function (NF) and a 4G Network Element (NE). To do so, you configure an override-values.yaml file and then deploy Network Bridge on a cloud native environment.

Topics in this document:

About Configuring Network Bridge for 5G-to-4G Payload Conversion

You can use Network Bridge to dynamically transform HTTP usage requests from 5G networks into the Diameter protocol so they can be processed by a 4G LTE online charging system (OCS) or a policy-driven charging system. Network Bridge converts the usage requests according to the rules defined in the Network Bridge rule files.

Note:

The Network Bridge package includes rule files that support the following conversions. You do not need to configure or customize the rule files for 5G NF to 4G NE conversion.

  • Interworking between 5GC SMF and EPC OCS – N40 interface to Gy interface

  • Interworking between 5GC SMF and EPC PCRF – N7 interface to Gx interface

Configuring Network Bridge for 5G NF to 4G NE conversion includes these high-level steps:

  1. Creating an override-values.yaml file for the Network Bridge Helm chart.

  2. Configuring the mandatory values for Network Bridge.

    See "Configuring Mandatory Values for 5G-to-4G Conversion".

  3. (Optional) Configuring one or more of the Network Bridge components. These components are preconfigured to work for most systems, but you may want to tune their values for a production system.

    Note:

    This step is not required for simple or demonstration systems.

    See "Configuring Network Bridge Components".

  4. (Optional) Configuring your components to support autoscaling.

    See "Setting up Autoscaling of Network Bridge Pods".

  5. (Optional) Configuring your components for tracing using Jaeger.

    See "Tracing the Flow of API Calls".

  6. (Optional) Configuring Prometheus to scrape metric data from your components for display in Grafana Dashboards.

    See "Monitoring Network Bridge Processes".

  7. Deploy Network Bridge on your cloud native environment.

    See "Deploying Network Bridge".

Configuring Mandatory Values for 5G-to-4G Conversion

To configure Network Bridge for 5G NF to 4G NE conversion, set the following keys in your override-values.yaml file for oc-ccs-helm-chart-version. These keys are required to create a simple or demonstration version of Network Bridge that you can use immediately.

These keys apply to all Network Bridge components, but you can override them for a specific component by setting a different value in the component's key. For example, to use a different pull policy for the Mediation component, set the network-bridge.mediation.mediation.imagePullPolicy key.

Note:

The &keyName and *keyName values are Helm references. If a key in the values.yaml file includes one of these references, you must also include the reference in your override-values.yaml file.

imageRepository: &imageRepository "my.example.com:9999"
imagePullSecrets: &imagePullSecrets Secret
imagePullPolicy: &imagePullPolicy IfNotPresent
protocolTranslationFilePath: &protocolTranslationFilePath "config/protocolTranslation"
nodeSelector: &nodeSelector {}

partOfLabel: &partOfLabel oc-ccs

loggingPattern: &loggingPattern "%d{ISO8601_OFFSET_DATE_TIME_HHCMM} | %5p | %X{traceId} | %-20.20thread | %-25.25logger{25} | %m%n"

tracingEnabled: &tracingEnabled true
tracingHost: &tracingHost jaeger-example
tracingPort: &tracingPort 14250
serviceMonitorEnabled: &serviceMonitorEnabled true

grafanaDashboardsEnabled: &grafanaDashboardsEnabled true
grafanaNamespace: &grafanaNamespace kube-logging

# Component images
mediationImage: &mediationImage "ccs/network-bridge/mediation:2.0.0.1.0"
egressImage: &egressImage "ccs/network-bridge/mediation:2.0.0.1.0"
diameterAdapterImage: &diameterAdapterImage "ccs/network-bridge/diameter-adapter:2.0.0.1.0"
diameterProxyImage: &diameterProxyImage "ccs/network-bridge/diameter-proxy:2.0.0.1.0"
dbClientImage: &dbClientImage "ccs/infra/db-client:2.0.0.1.0"
dbClusterImage: &dbClusterImage "container-registry.oracle.com/mysql/commercial-cluster:8.0.36"
restProxyImage: &restProxyImage "ccs/network-bridge/mediation:2.0.0.1.0"

grafanaDashboards: &grafanaDashboards
  enabled: *grafanaDashboardsEnabled
  grafanaNamespace: *grafanaNamespace
  labels:
    grafana_dashboard: "1"
    release: prometheus
  annotations:
    k8s-sidecar-target-directory: "/tmp/dashboards/ccs"

serviceMonitor: &serviceMonitor
  enabled: *serviceMonitorEnabled
  additionalLabels:
    release: prometheus
  namespace: SmNameSpace

Table 4-1 describes each key.

Table 4-1 Mandatory Network Bridge Keys

Key Description

imageRepository

Specifies the registry server where you pushed images, typically in this format: RepoHost:RepoPort.

This value is added as a prefix to all image names when you install or upgrade Helm charts.

imagePullSecrets

Specifies the name of the Secret that contains credentials for accessing images from your private image server.

The default is regcred.

This value is added to each pod to permit it to pull the image from your private registry server. See "Creating Secrets for Container Registry Authorization" for more information.

imagePullPolicy

Specifies when Kubernetes pulls images:

  • Always: It always pulls an image from the repository.

  • IfNotPresent: It pulls an image only when one does not exist on a node. This is the default.

  • Never: It never pulls the image from the repository.

protocolTranslationFilePath

Specifies the directory in which the protocol translation files are located.

The default is config/protocolTranslation.

nodeSelector

Specifies the nodes on which to deploy Network Bridge components. Labels appear underneath nodeSelector in a set of key-value pairs.

partOfLabel

Specifies the value to assign to the component's app.kubernetes.io/part-of label. This label identifies the application that the resource belongs to.

The default is oc-ccs.

loggingPattern

Specifies the format and syntax of log files.

tracingEnabled

Specifies whether tracing through Jaeger is enabled.

The default is false.

tracingHost

Specifies the host name for the Jaeger server.

The default is jaeger-all-in-one.jaeger.svc.cluster.local.

Note: This key applies only if tracing is enabled.

tracingPort

Specifies the port number for Jaeger.

The default is 14250.

Note: This key applies only if tracing is enabled.

serviceMonitorEnabled

Specifies whether to enable Kubernetes ServiceMonitor, which is used to monitor a group of services.

The default is false.

grafanaDashboardsEnabled

Specifies whether to enable Grafana Dashboards for Grafana Operator.

The default is false.

grafanaNamespace

Specifies the namespace on which Grafana is deployed.

The default is kube-logging.

Note: This key applies only if Grafana Dashboards are enabled.

mediationImage

Specifies the name of the Mediation image.

The default is ccs/network-bridge/mediation:2.0.0.1.0.

egressImage

Specifies the name of the Egress image.

The default is ccs/network-bridge/mediation:2.0.0.1.0.

diameterAdapterImage

Specifies the name of the Diameter Adapter image.

The default is ccs/network-bridge/diameter-adapter:2.0.0.1.0.

diameterProxyImage

Specifies the name of the Diameter Proxy image.

The default is ccs/network-bridge/diameter-proxy:2.0.0.1.0.

dbClientImage

Specifies the name of the Database Client image.

The default is ccs/infra/db-client:2.0.0.1.0.

dbClusterImage

Specifies the name of the Database Cluster image.

The default is container-registry.oracle.com/mysql/commercial-cluster:8.0.36.

restProxyImage

Specifies the name of the REST Proxy image.

The default is ccs/network-bridge/mediation:2.0.0.1.0.

grafanaDashboards.enabled

Specifies whether to enable Grafana Dashboards for Grafana Operator.

The default is *grafanaDashboardsEnabled, which specifies to use the value from the grafanaDashboardsEnabled key.

grafanaDashboards.grafanaNamespace

Specifies the namespace on which Grafana is deployed.

The default is *grafanaNamespace, which specifies to use the value from the grafanaNamespace key.

grafanaDashboards.labels.grafana_dashboard

Specifies the labels to add to Grafana CRDs. This helps Grafana discover the dashboards.

The default is 1.

Note: This key applies only if Grafana Dashboards are enabled.

grafanaDashboards.labels.release

Specifies the release name on which Grafana Operator is deployed.

The default is prometheus.

Note: This key applies only if Grafana Dashboards are enabled.

grafanaDashboards.annotations.k8s-sidecar-target-directory

Specifies the directory in which the Grafana Dashboards are deployed.

The default is /tmp/dashboards/ccs.

Note: This key applies only if Grafana Dashboards are enabled.

serviceMonitor.enabled

Specifies whether to enable Kubernetes ServiceMonitor, which is used to monitor a group of services.

The default is *serviceMonitorEnabled, which specifies to use the value from the serviceMonitorEnabled key.

serviceMonitor.additionalLabels.release

Specifies the release name on which Service Monitor is deployed.

The default is prometheus.

serviceMonitor.namespace

Specifies the namespace in which the Service Monitor is deployed.

Note: This key applies only if Service Monitor is enabled.

Configuring Network Bridge Components

The following Network Bridge components contain default values that will work for most test and demonstration systems, but you can configure them according to your business requirements.

  • MySQL NDB component. For information about this component's keys, see https://github.com/mysql/mysql-ndb-operator/blob/release-8.0.36-1.0.5/docs/NdbCluster-CRD.md.

  • Mediation component. For information about this component's keys, view the oc-ccs/charts/oc-network-bridge-2.0.2.tgz/charts/oc-nb-mediation/values.schema.json file in a Markdown viewer.

  • Egress component. For information about this component's keys, view the oc-ccs/charts/oc-network-bridge-2.0.2.tgz/charts/oc-nb-mediation/values.schema.json file in a Markdown viewer.

  • HTTP to Diameter Adapter component. For information about this component's keys, view the oc-ccs/charts/oc-network-bridge-2.0.2.tgz/charts/oc-nb-diameter-adapter/values.schema.json file in a Markdown viewer.

  • Diameter to HTTP Adapter component. For information about this component's keys, view the oc-ccs/charts/oc-network-bridge-2.0.2.tgz/charts/oc-nb-diameter-adapter/values.schema.json file in a Markdown viewer.

  • Diameter Proxy component. For information about this component's keys, view the oc-ccs/charts/oc-network-bridge-2.0.2.tgz/charts/oc-nb-diameter-proxy/values.schema.json file in a Markdown viewer.