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:
-
Creating an override-values.yaml file for the Network Bridge Helm chart.
-
Configuring the mandatory values for Network Bridge.
-
(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.
-
(Optional) Configuring your components to support autoscaling.
-
(Optional) Configuring your components for tracing using Jaeger.
-
(Optional) Configuring Prometheus to scrape metric data from your components for display in Grafana Dashboards.
-
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:
|
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.