3 OCNADD Features and Feature Specific Limits

This chapter details all major OCNADD features, features specific limits, and their functional behaviors.

3.1 Feature Specific Limits

This section defines capacity boundaries and limitations associated with the features.

The current release does not support Diameter configuration and visualization through the UI.

Table 3-1 OCNADD Feature Specific Limits

Description Limit Value
Maximum number of worker groups supported in a Centralized Site 1
Maximum number of Kafka feeds for Diameter xDR per worker group:

Maximum three Correlation feeds including all ACL feeds

2
Maximum number of vCollector configurations per worker group.

Note: Each worker group will have a separate vCollector deployment

1

Note:

The limits are controlled through Helm parameters. For more information, refer to the section "Global Parameters" of the Oracle Communications Network Analytics Data Director Installation, Upgrade, and Fault Recovery Guide.

3.2 Features List

This section details OCNADD features and their functional behaviors.

3.2.1 Data Governance

OCNADD provides data governance by managing the availability and usability of data in enterprise systems. It also ensures that the integrity and security of the data are maintained by adhering to all Oracle-defined data standards and policies for data usage rules.

3.2.2 High Availability

OCNADD supports a microservice-based architecture, and OCNADD instances are deployed in Cloud Native Environments (CNEs), which ensure high availability of services and auto-scaling based on resource utilization. In the case of pod failures, new service instances are spawned immediately.

In the event of a Kubernetes (K8s) cluster failure, the OCNADD deployment is restored to a different cluster using fault recovery mechanisms. For more information about fault recovery procedures, see the Oracle Communications Network Analytics Data Director Installation, Upgrade, and Fault Recovery Guide.

3.2.3 Data Filtering

OCNADD performs data filtering of Diameter messages on vCollector and sends only the filtered messages to the DD Relay Agent.

Figure 3-1 Diameter xDR Replication


Diameter xDR Replication

Data filtering is managed only on vCollector in the current release for Diameter. Refer to the vCollector section in the OCNADD Features section.

Note:

In the case of an upgrade, rollback, service restart, or if a configuration is created with the same name, duplicate messages will be sent by the aggregation and correlation service to avoid data loss.

3.2.4 vCollector

The vCollector provides a mechanism to acquire Diameter traffic from various network nodes, such as the Diameter Signaling Router (DSR) or any other Diameter application. Packet capturing is enabled via port mirroring to the virtual machine running Oracle proprietary software. The virtual machine solution is known as Diameter vCollector. This functionality includes:

  1. Software that provides packet capture and filtering capabilities.
  2. A Kafka-based producer client interface that transfers the captured packets to the Oracle packet broker solution over Kafka.
  3. A configuration REST API to configure the traffic flow on the vCollector.
  4. An in-memory database to store the configuration and serve as an intermediary buffer for the captured packets.

The Diameter vCollector reuses the OCPIC Probed Message Feeder (PMF) for packet capture and filtering capabilities. The following deployment modes for the vCollector are possible:

  • It can support up to four capturing interfaces.
  • The PMF software can be installed inside a virtual machine on the OpenStack cloud, with a virtual interface created on the virtual machine for capturing traffic. The vDSR and vCollector can run inside the same OpenStack cloud, and the port mirroring feature of the OpenStack cloud can be used to copy Diameter traffic from vDSR to vCollector.

Figure 3-2 vCollector Architecture


vCollector Architecture

3.2.4.1 vCollector Integration with Data Director

This section describes the steps to integrate vCollector with Data Director to acquire Diameter traffic from vDSR using port mirroring. It requires that vCollector be installed and its initial topology configured.

See Installing vCollector chapter from the Oracle Communications Network Analytics Data Director vCollector Installation Guide.

After installing and initially configuring vCollector, continue with the creation of a Diameter feed using the section "vCollector Configuration" from the Oracle Communications Network Analytics Data Director vCollector Installation Guide.

3.2.4.2 vCollector Configuration

Note:

  • Only one configuration is supported in the current release.
  • The name of the traffic flow in the configuration should not be in block letters and should not contain any special characters except "-".
  • When the management gateway service lacks load balancer enablement, the APIRoot defaults to the service name; conversely, if load balancing is enabled, the APIRoot will be the LoadBalancer IP associated with the gateway service.

A. Create Configuration

Rest End Point: <apiRoot>/ocnadd-configuration/{version}/configure/vcollector

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request PUT 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector' \
--header 'Content-Type: application/json' \
--data-raw '{
    "trafficFlowName": "<traffic-flow-name>",
    "vCollectorName": "<vcollector-config-name>",
    "userName": "<dd-ui-user-name>",
    "workerGroup": "<worker-group-name>",
    "relayAgentMediationGroup": {
        "<siteName>:<workerGroupName>:<relayAgentNamespace>:<relayAgentClusterName>": [
            "<siteName>:<workerGroupName>:<mediationNamespace>:<mediationClusterName>"
        ]
        },
    "relayAgent": "agent-1",
    "tcInfo": {
        "tcName": "<traffic-flow-name>",
        "interfaces": [
            "vCollector_traffic_interface1",
            "vCollector_traffic_interface2"
        ],
        "filter": "<Diameter_Filter_Condition>",
        "enableDupIpPktSuppression": true,
        "enableSctpDechunking": false,
        "enableTcpFlowMng": false
    },
    "dfInfo": {
        "dfName": "<traffic-flow-name>",
        "wayMgmntAddr": [
            "<way_managemnt_IP1>",
            "<way_managemnt_IP2>"
        ]
    },
    "kafkaClusters": {
        "siteName": "SiteA",
        "primary": {
            "bootstrapServer": [
                "dd_kafka-bootstrap-IP1:9094",
                "dd_kafka-bootstrap-IP2:9094"
            ],
            "status": "Active",
            "topicName": "<vcollector-topic-name'>",
            "availableCapacity": 1234.56,
            "producerConfig": {
                "securityProtocol": "PLAINTEXT",
                "sslEnabledProtocol": "TLSv1.3",
                "ack": "0",
                "compression": "none",
                "maxRequestSize": 1048576,
                "batchSize": 500,
                "lingerMs": 100,
                "bufferMemory": 33554432,
                "retries": 3,
                "retryBackoffMs": 100,
                "requestTimeoutMs": 5000
            }
        },
        "secondary": null,
        "tertiary": null
    }
}'

Example:

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request POST 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector' \
--header 'Content-Type: application/json' \
--data-raw '{
    "trafficFlowName": "diameter-flow",
    "userName": "admin",
    "workerGroup": "wg-1",
    "vCollectorName": "vcollector-config",
    "relayAgentMediationGroup": {
        "BLR:wg1:dd-relay:cluster.local": [
            "BLR:wg1:dd-med:cluster.local"
        ]
        },
    "relayAgent": "agent-1",
    "tcInfo": {
        "tcName": "diameter-flow",
        "interfaces": [
            "pmf-vc-01a_eth11",
            "pmf-vc-01a_eth12"
        ],
        "filter": "(src host 10.233.108.0 or src host 10.192.130.2 or src host 10.192.130.3 or src host 10.192.130.4 or src host 10.192.130.5 or src host 10.192.130.6 or src host 10.192.130.7 or src host 10.192.130.8)",
        "enableDupIpPktSuppression": false,
        "enableSctpDechunking": false,
        "enableTcpFlowMng": false
    },
    "dfInfo": {
        "dfName": "diameter-flow",
        "wayMgmntAddr": null
    },
    "kafkaClusters": {
        "siteName": "SiteA",
        "primary": {
            "bootstrapServer": [
                "10.10.10.11:9094",
                "10.10.10.12:9094"
            ],
            "status": "Active",
            "topicName": "vcollector",
            "availableCapacity": 1234.56,
            "producerConfig": {
                "securityProtocol": "PLAINTEXT",
                "sslEnabledProtocol": "TLSv1.3",
                "ack": "0",
                "compression": "none",
                "maxRequestSize": 1048576,
                "batchSize": 500,
                "lingerMs": 100,
                "bufferMemory": 33554432,
                "retries": 3,
                "retryBackoffMs": 100,
                "requestTimeoutMs": 5000
            }
        },
        "secondary": null,
        "tertiary": null
    }
}'

B. Update Configuration

Rest End Point: <apiRoot>/ocnadd-configuration/{version}/configure/vcollector/{traffic-flow-name}

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request PUT 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector/<traffic-flow-name>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "trafficFlowName": "<traffic-flow-name>",
    "vCollectorName": "<vcollector-config-name>",
    "userName": "<dd-ui-user-name>",
    "workerGroup": "<worker-group-name>",
    "relayAgentMediationGroup": {
        "<siteName>:<workerGroupName>:<relayAgentNamespace>:<relayAgentClusterName>": [
            "<siteName>:<workerGroupName>:<mediationNamespace>:<mediationClusterName>"
        ]
        },
    "relayAgent": "agent-1",
    "tcInfo": {
        "tcName": "<traffic-flow-name>",
        "interfaces": [
            "vCollector_traffic_interface1",
            "vCollector_traffic_interface2"
        ],
        "filter": "<Diameter_Filter_Condition>",
        "enableDupIpPktSuppression": true,
        "enableSctpDechunking": false,
        "enableTcpFlowMng": false
    },
    "dfInfo": {
        "dfName": "<traffic-flow-name>",
        "wayMgmntAddr": [
            "<way_managemnt_IP1>",
            "<way_managemnt_IP2>"
        ]
    },
    "kafkaClusters": {
        "siteName": "SiteA",
        "primary": {
            "bootstrapServer": [
                "dd_kafka-bootstrap-IP1:9094",
                "dd_kafka-bootstrap-IP2:9094"
            ],
            "status": "Active",
            "topicName": "<vcollector-topic-name'>",
            "availableCapacity": 1234.56,
            "producerConfig": {
                "securityProtocol": "PLAINTEXT",
                "sslEnabledProtocol": "TLSv1.3",
                "ack": "0",
                "compression": "none",
                "maxRequestSize": 1048576,
                "batchSize": 500,
                "lingerMs": 100,
                "bufferMemory": 33554432,
                "retries": 3,
                "retryBackoffMs": 100,
                "requestTimeoutMs": 5000
            }
        },
        "secondary": null,
        "tertiary": null
    }
}'
Example:
curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request PUT 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector/diameter-flow' \
--header 'Content-Type: application/json' \
--data-raw '{
    "trafficFlowName": "diameter-flow",
    "userName": "admin",
    "workerGroup": "wg-1",
    "vCollectorName": "vcollector-config",
    "relayAgentMediationGroup": {
        "BLR:wg1:dd-relay:cluster.local": [
            "BLR:wg1:dd-med:cluster.local"
        ]
        },
    "relayAgent": "agent-1",
    "tcInfo": {
        "tcName": "diameter-flow",
        "interfaces": [
            "pmf-vc-01a_eth11",
            "pmf-vc-01a_eth12"
        ],
        "filter": "(src host 10.233.108.0 or src host 10.192.130.2 or src host 10.192.130.3 or src host 10.192.130.4 or src host 10.192.130.5 or src host 10.192.130.6 or src host 10.192.130.7 or src host 10.192.130.8)",
        "enableDupIpPktSuppression": false,
        "enableSctpDechunking": false,
        "enableTcpFlowMng": false
    },
    "dfInfo": {
        "dfName": "diameter-flow",
        "wayMgmntAddr": null
    },
    "kafkaClusters": {
        "siteName": "SiteA",
        "primary": {
            "bootstrapServer": [
                "10.10.10.11:9094",
                "10.10.10.12:9094"
            ],
            "status": "Active",
            "topicName": "vcollector",
            "availableCapacity": 1234.56,
            "producerConfig": {
                "securityProtocol": "PLAINTEXT",
                "sslEnabledProtocol": "TLSv1.3",
                "ack": "0",
                "compression": "none",
                "maxRequestSize": 1048576,
                "batchSize": 500,
                "lingerMs": 100,
                "bufferMemory": 33554432,
                "retries": 3,
                "retryBackoffMs": 100,
                "requestTimeoutMs": 5000
            }
        },
        "secondary": null,
        "tertiary": null
    }
}'

C. Delete Configuration

Rest End Point: <apiRoot>/ocnadd-configuration/{version}/configure/vcollector/{trafficflowName}

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request DELETE 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector/<traffic-flow-name>'
Example:
curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request DELETE 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configure/vcollector/diameter-flow'

D. Get vCollector Configuration

Rest End Point:{ apiRoot}/ocnadd-configuration/{version}/configuration/vcollector

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request GET 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v1/configuration/vcollector'
3.2.4.3 vCollector Filter

Note:

In the current release, Diameter message filtering is supported only on vCollector with vCollector feed configuration.
The following is the format for adding a filter in vCollector:
((((((dcppi 47 or dcppi 46) or (dcppi 0 and (port 3868 or port 3871))) and sctp(dia_appid 16777251))) 
or 
((tcp and (port 3868 or port 3871)) and tcp(dia_appid 16777251))) 
or 
(((((dcppi 47 or dcppi 46) or (dcppi 0 and (port 3868 or port 3871))) and sctp(dia_appid 16777238))) 
or 
((tcp and (port 3868 or port 3871)) and tcp(dia_appid 16777238))))
The filter is a logical OR operation between two main conditions:
  1. ((((dcppi 47 or dcppi 46) or (dcppi 0 and (port 3868 or port 3871))) and sctp(dia_appid 16777251))) or ((tcp and (port 3868 or port 3871)) and tcp(dia_appid 16777251))
  2. ((((dcppi 47 or dcppi 46) or (dcppi 0 and (port 3868 or port 3871))) and sctp(dia_appid 16777238))) or ((tcp and (port 3868 or port 3871)) and tcp(dia_appid 16777238))

Condition 1 and 2: Both conditions have a similar structure, with the only difference being the dia_appid value (16777251 vs 16777238)..

Breaking down Condition 1 (similarly for Condition 2)

  1. (((dcppi 47 or dcppi 46) or (dcppi 0 and (port 3868 or port 3871))) and sctp(dia_appid 16777251))
    • This part captures Diameter messages over SCTP (Stream Control Transmission Protocol) with dia_appid 16777251.
    • The conditions are:
      • dcppi 47 or dcppi 46: Capture packets with DCPPI (Diameter Credit-Control Protocol Identifier) values 47 or 46.
      • dcppi 0 and (port 3868 or port 3871): Capture packets with DCPPI value 0 and destination port 3868 or 3871 (common ports for Diameter).
      • sctp(dia_appid 16777251): Ensure the packet is SCTP and has a Diameter Application ID of 16777251.
  2. ((tcp and (port 3868 or port 3871)) and tcp(dia_appid 16777251))
    • This part captures Diameter messages over TCP (Transmission Control Protocol) with dia_appid 16777251.
    • The conditions are:
      • tcp: Ensure the packet is TCP.
      • port 3868 or port 3871: Capture packets with destination port 3868 or 3871.
      • tcp(dia_appid 16777251): Ensure the Diameter Application ID is 16777251.

In Summary: The filter captures Diameter messages with specific Application IDs (16777251 and 16777238) over both SCTP and TCP, targeting ports 3868 and 3871, and considering different DCPPI values. The filter is designed to be flexible and capture a range of Diameter messages based on the specified conditions.

Diameter Application IDs:

  • 16777251 is associated with the 3GPP (3rd Generation Partnership Project) Rx interface.
  • 16777238 is associated with the 3GPP Gx interface.

This filter is targeting Diameter traffic related to these interfaces, possibly for monitoring or analysis purposes in a telecommunications network.

3.2.5 Data Replication

OCNADD allows data replication functionality. The xDR data streams from OCNADD services can be replicated to multiple third-party applications simultaneously.

The following diagram depicts OCNADD data replication:

Figure 3-3 Diameter xDR Replication


Diameter xDR Replication

Note:

The configuration of replication is not currently possible using the UI; the user can create another feed. Configuring multiple feeds may impact performance and increase latency.

3.2.6 Backup and Restore

OCNADD supports backup and restore to ensure high availability and quick recovery from failures such as cluster failure, database corruption, and so on. Two types of backup methods are supported: automated and manual backup. For more information on backup and restore, see the Oracle Communications Network Analytics Data Director Disaster Recovery Guide.

The following diagram depicts backup and restore supported by OCNADD:

Figure 3-4 Backup and Restore


Backup and Restore

3.2.7 Secure Transport

OCNADD provides secure data communication between producer NFs and third-party consumer applications. All incoming and outgoing data streams from OCNADD are TLS encrypted.

The following diagram provides a secure transport by OCNADD:

Figure 3-5 Diameter Security


Diameter Security

3.2.8 Operation Dashboard

OCNADD provides an operational dashboard that offers rich visualization of various metrics, KPIs, and alarms.

The dashboard can be depicted as follows:

Figure 3-6 Dashboard


Dashboard

3.2.9 Health Monitoring

OCNADD performs health monitoring to check the readiness and liveliness of each OCNADD service and raises alarms in case of service failure.

OCNADD conducts monitoring based on a heartbeat mechanism, where each OCNADD service instance registers with the Health Monitoring service and exchanges heartbeats with it. If a pod instance goes down, the Health Monitoring service raises an alarm. A few important scenarios when an alarm is raised are as follows:

  • When the maximum number of replicas for a service has been instantiated
  • When a service is in a down state
  • When the CPU or memory threshold is reached

The health monitoring functionality allows OCNADD to generate a health report for each service on a periodic basis or on demand. These reports can be accessed using the OCNADD Dashboard. For more information about the dashboard, see Operation Dashboard.

The health monitoring service is depicted in the diagram below:

Figure 3-7 Health Monitoring


Health Monitoring

The health monitoring functionality also supports the collection of various metrics related to service resource utilization. It stores these metrics in the metric collection database tables. The health monitoring service generates alarms for missing heartbeats, connection breakdowns, and exceeding thresholds.

3.2.10 External Kafka Feeds

OCNADD supports external xDR Kafka consumer applications using external Kafka feeds. This enables third-party consumer applications to consume xDR directly from the Data Director Kafka xDR topic without the need for any egress adapter. OCNADD allows only those third-party applications that are authenticated and authorized by the Data Director Kafka service. The authorization of the applications is managed using the KAFKA ACL functionality. Access control for the external feed is defined at the time of Kafka feed creation, and currently, third-party applications are only allowed to consume (READ) from a particular topic using a specified consumer group.

Figure 3-8 External Kafka Feeds


External Kafka Feeds

The Data Director supports only the following for Diameter xDR external Kafka feeds:

  • Create, update, and delete the external Kafka feed using the UI.
  • Authorization of the third-party Kafka consumer application for a particular user, consumer group, and optional hostname.
  • Status reporting of the third-party Kafka consumer application using the external Kafka feed on the UI.
  • Consumption rate reporting of the third-party Kafka consumer application using the external Kafka feed on the UI.

Authorization by Kafka requires clients to be authenticated by either SASL or SSL (mTLS). Therefore, external Kafka feed support requires certain settings to be enabled in the Kafka broker so that the Kafka service mandatorily authenticates Kafka clients. These properties are not enabled by default and must be configured in the Kafka service before any Kafka feed can work. See the "Enable Kafka Feed Configuration Support" section before creating any Kafka feed from the OCNADD UI.

3.2.11 Centralized Deployment

The OCNADD centralized deployment modes provide the separation of configuration and administration PODs from the traffic processing PODs. A single management POD group can serve multiple traffic processing POD groups (called Worker Groups), thereby saving resources for management PODs in very large customer deployments spanning multiple individual OCNADD sites. The Management Group of PODs maintains configuration and administration, health monitoring, alarms, and user interaction for all the individual worker groups.

Figure 3-9 Centralized Deployment


Centralized Deployment

Management Group: A logical collection of the configuration and administration functions. It consists of Configuration, Alarm, Health Monitoring, Backup, and UI services.

Worker Group: A logical collection of traffic processing functions. The Worker Group represents the traffic processing functions and services, providing features like aggregation, filtering, correlation, and data feeds for third-party applications.

The worker group has evolved into a logical entity that retains the same functionality as before, now encompassing both the DD Relay Agent and DD Mediation components.

  • Data Director Relay Agent: The Data Director Relay Agent is engineered to handle high-volume data streams from 5G Network Functions (NFs) with a low data retention policy, while ensuring scalability and efficient data processing.

    The Data Director Relay Agent is a composite component consisting of:

    • Discovery Service Gateway: Monitors the health of the Kafka cluster across multiple Data Director sites, facilitating communication between 5G Network Functions (NFs) and Data Director to retrieve and/or notify Kafka cluster information and its status.
    • Kafka Cluster (low retention): A Kafka cluster designed for high-throughput, providing low-latency, fault-tolerant, and scalable data processing. With a low retention period, it reduces dependency on underlying data storage to process and forward large amounts of data, ensuring high throughput by reducing performance degradations due to storage bottlenecks. This design enables the Kafka cluster to scale horizontally to accommodate increasing data volumes, making it ideal for handling high data ingestion rates typical of 5G networks.
    • Aggregation Service: Consumes traffic feed data produced by 5G Network Functions (NFs) from the Kafka cluster, providing a centralized processing point. It applies configurable ingress filtering to refine the data, sequences messages for proper ordering, and enriches the data with additional information. The processed data is then load-shared to different Data Director mediation instances for further processing, retention, and secured, reliable delivery to third-party consumers.
  • Data Director Mediation: The Data Director Mediation is a vital component of the Data Director, leveraging high-data-retention Kafka clusters to integrate multiple data sources. It enables secure data delivery to third-party endpoints, supporting a range of data formats, including feeds, xDRs, trace, and KPIs.

    The Data Director Mediation is a composite component consisting of:

    • Kafka Cluster: Provides high-throughput, low-latency, fault-tolerant, and scalable data processing with higher retention.
    • Correlation Service: Enables the correlation of xDRs (eXtended Detail Records) for advanced data analysis.
    • Gateway Service: Facilitates secure communication with OAM (Operations, Administration, and Maintenance) systems.

Worker group names are formed using the worker group namespace and site or cluster name in the format "worker_group_namespace:site_name", where the site or cluster name is a global parameter in the Helm charts.

It is controlled by the global.cluster.name parameter.

Important points to consider for the Centralized deployment:

  • In Centralized deployment mode, configuration management is decoupled from traffic processing, allowing traffic processing units to scale independently.
  • Each worker group within a Centralized Data Director (DD) site can be configured with different capacities, but the maximum supported capacity for each worker group must be the same, encompassing both Relay Agent and Mediation components.
  • There can be multiple worker groups in a centralized DD site, but in the current release, only one is recommended. Each worker group will support a traffic rate depending on the resource profiles of the worker group PODs. For example, if the worker group is dimensioned for processing 100K MPS traffic and the Centralized DD site needs to support 300–400K MPS, an additional worker group should be created on the centralized DD site.
  • Metrics and alarms are generated separately for each worker group, including Relay Agent and Mediation components.
  • The current release supports a fixed number of worker groups per Centralized DD site, limited to one.
  • Fresh deployments in Centralized mode are supported with the new architecture.
  • Upgrades from previous releases to Centralized deployment mode are recommended.
  • The UI allows for the configuration of correlation configurations specific to each worker group. Refer to the UI guide for more information.

3.2.12 Diameter Correlation Feature

Figure 3-10 Diameter Correlation Feature


Diameter Correlation Feature

The Diameter correlation feature provides the capability to correlate messages of a network scenario that can be represented by a transaction, call, or session and generate a summary record. This summary record is known as an xDR. The generated summary records can provide deep insights and visibility into the customer network and can be useful in features such as:

  • Network troubleshooting
  • Revenue assurance
  • Billing and CDR reconciliation
  • Network performance KPIs and metrics
  • Advanced analytics & observability

Network troubleshooting is one of the key features of the monitoring solution. The correlation capability helps the Data Director provide applications and utilities to perform troubleshooting of failing network scenarios, trace network scenarios across multiple Diameter nodes, and generate KPIs to provide network utilization and load. This feature enables network visibility and observability, as the KPIs and threshold alerts generated from the xDRs can be used to provide intuitive insights such as network efficiency reports in the form of network dashboards.

The xDRs generated by the Data Director can facilitate advanced descriptive and predictive network analytics. The correlation output in the form of xDRs can be fed into network analytics frameworks such as DAF to provide AI/ML capabilities that can be helpful in fraud detection and in predicting and preventing network spoofing and DOS attacks.

Note:

In case of an upgrade, rollback, service restart, or if a configuration is created with the same name, duplicate messages/xDRs will be sent by the correlation service to avoid data loss.
3.2.12.1 Kafka Feed Configuration for Correlation

This section provides the details of the Kafka Feed configuration for correlation.

Prerequisites

It is mandatory to enable intra TLS for Kafka and create Kafka feed configuration with CORRELATED Feed Type to consume xDR (Extended Detailed Record) from OCNADD using Correlation Configurations.

3.2.12.1.1 Create ACL USER

Create ACL user prior to creating Kafka feeds. See Enable Kafka Feed Configuration Support.

3.2.12.1.2 Create Kafka Feed Configuration

To create Kafka Feed configuration, see Enable Kafka Feed Configuration Support.

3.2.12.1.3 Feed Type
  • CORRELATED Feed Type:

    When the feed type is selected CORRELATED, aggregated data without a filter is used by the Correlation service to generate the xDRs.

    The source topic for correlation service would be the DIAMETER topic.

    The destination topic to consume data by third-party consumers is prefixed as <kafka-feed-name>-CORRELATED topic.

    Note:

    The user needs to trigger the corresponding Kafka ACL feed delete manually to delete the corresponding Topic, correlation config delete will not delete the topic.
  • CORRELATED_FILTERED Feed Type

    CORRELATED_FILTERED Feed Type is not supported in the current release.

3.2.12.1.4 Diameter Feed Configuration

Note:

CLI based configuration is supported for Diameter correlation configuration in the current release.

Configuration Parameters

Table 3-2 Configuration Parameters

Attribute Name Data Type P Cardinality Description
configurationName String M 1 The name of the configuration provided by the user for the correlation. This should be a unique name. It shall be mapped with Kafka ACL feed with CORRELATED type.
workerGroup String M 1 The name of the worker group in which the correlation configuration should be applied.
userName String M 1 The username provided by Dashboard GUI who is configuring the OCNADD correlation configuration.
dataStreamStartPoint Enum M 1 This parameter defines data stream points for correlation service from inbound topic.

Options:

EARLIEST: Start data stream from the beginning or resume from point of failure.

LATEST: Proceed data stream from the current offset.

Default: LATEST

inboundDataStreamName String M 1 Name of the source data stream from where the correlation service will start processing data.

Example:

DIAMETER: For aggregated data consumption with ACL feed type CORRELATED.

outboundDataStreamName String M 1 Name of the destination data stream from where the correlation service will write an xDR, and a 3rd-party consumer app will start xDR streaming.

Example:

<configurationName>-CORRELATED: For aggregated xDR consumption with ACL feed type CORRELATED.

Note:

Filter (CORRELATED-FILTERED) is not supported in the current release.
protocol Enum M 1 DIAMETER
xdrType Enum M 1

Type of xDR.

SUDR (SINGLE UNIT DETAILED RECORD) – An xDR shall be generated for each message received in the correlation service.

TDR (TRANSACTION DETAILED RECORD) – An xDR shall be generated for each transaction, including all messages of the transaction received in the correlation service.

Options:

  • SUDR
  • TDR

Default: SUDR

supportedOptionalXdrContents String[XdrContents] M 1 to N

This configurable parameter provides an option to select xDR contents from the list of supported optional xDR contents.

The xDR shall be generated with the selected xDR content, and the same will be sent to the 3rd-party app/written into the outbound Kafka topic.

  • The mandatory xDR content shall always be present in the xDR.
  • By default, all xDR content shall be included in the xDR when present in the message.
  • If selected xDR contents are not present in the message, they will not be included in the xDR.
correlationMode Enum C 1

This provides an option to select the mode of transaction correlation for xDRs. The following definitions outline the correlation keys that will be maintained separately for each protocol type:

Protocol Type: DIAMETER

Default mode: SESSION_ID + ENDTOEND_ID + COMMAND_CODE

Options:

  • SESSION_ID + ENDTOEND_ID + COMMAND_CODE
  • HOPBYHOP_ID + ENDTOEND_ID + COMMAND_CODE
  • IP + PORT + HOPBYHOP_ID + ENDTOEND_ID + COMMAND_CODE
maxTransactionWaitTime Int C 1

Maximum duration to wait for a response message for a transaction in milliseconds.

Range: [2000–60000]

Default: 30000

includeMessageWithxDR Enum M 1

This property provides an option for the user to select whether a message will be included with the xDR or not, and if included, which part of the message.

Default: NONE

Protocol Type: DIAMETER

  • NONE: Only xDR shall be sent.
  • DIAMETER_JSON: xDR with JSON Diameter message.
supportedKpis String[KPIs] O 1 to N This provides an option to the user to select a list of available supported KPIs.
storeXdrInDB Boolean O 1 It shall be set to false by default. The extended storage feature is not supported for Protocol Type: DIAMETER.
retentionTimeInDb Int C 1 It will be used for xDR records retention in DB. The value is in minutes.

It must be provided when storeXdrInDB = True.

Not supported for Protocol Type: DIAMETER.

Note:

Create, update, and delete of Diameter Correlated Feed configurations is not supported from the UI.

A. Create Configuration

Rest End Point: {apiRoot}/ocnadd-configuration/{version}/correlation

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request POST 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation' \
--header 'Content-Type: application/json' \
--data-raw '{
    "configurationName": "<diameter-feed-name>",
    "correlationConfig": {
        "configurationName": "<diameter-feed-name>",
        "userName": "<dd-ui-user-name>",
        "workerGroup": "<worker-group-name>",
        "relayAgentMediationGroup": {
   		   "<siteName>:<workerGroupName>:<relayAgentNamespace>:<relayAgentClusterName>": [
   		   "<siteName>:<workerGroupName>:<mediationNamespace>:<mediationClusterName>"
           ]
        },
        "dataStreamStartPoint": "LATEST",
        "inboundDataStreamName": "DIAMETER",
        "outboundDataStreamName": "<diameter-feed-name-in-block-letters>-CORRELATED",
        "supportedOptionalXdrContents": [
            "srcIp",
            "dstIp",
            "srcPort",
            "dsPort",
            "applicationId",
            "commandCode",
            "endToEndId",
            "imsi",
            "msisdn",
            "resultCode",
            "originalHost",
            "originalRealm",
            "destinationHost",
            "destinationRealm",
            "sessionId",
            "routeRecord",
            "vendorId",
            "authApplicationId",
            "subscriberStatus",
            "ratType",
            "visitedPlmnId",
            "serviceSelection",
            "absoluteTime",
            "relativeTime",
            "priorityLevel",
            "userLocationInfo3gpp",
            "mcc",
            "mnc",
            "imei",
            "sgsnMccMnc",
            "ggsnMccMnc",
            "qosClassIdentifier",
            "qosPriority",
            "tac",
            "cellId",
            "latitutde",
            "longitude",
            "way",
            "cancellationType",
            "addrType",
            "requestFlag",
            "answerFlag",
            "accApplicationId",
            "reqHeaderFlag",
            "ansHeaderFlag",
            "equipmentStatus",
            "alertReason",
            "sgsnNumber",
            "terminalInfo",
            "featureList",
            "userId",
            "mIPHomeAgentAddrType",
            "mipHomeAgentHost",
            "mIPHomeAgentAddress",
            "mIPHomeAgentRealm",
            "networkAccessMode",
            "visitedNetworkId",
            "requestCause",
            "terminationCause",
            "reAuthRequestType",
            "eventTrigger",
            "sessionReleaseCause",
            "ipCanType",
            "pdnType",
            "userLocation",
            "userLocationMNC",
            "userLocationECI",
            "userLocationLAC",
            "userLocationCISAC",
            "userLocationTAC",
            "preEmptionCapability",
            "preEmptionVulnerability",
            "pdnAddressV4",
            "pdnAddressV6",
            "apn",
            "ruleSpaceDecision",
            "ruleSpaceSuggestion",
            "nodeType",
            "transactionId"
        ],
        "xdrType": "TDR",
        "correlationMode": "<correlation-mode>",
        "maxTransactionWaitTime": 2000,
        "includeMessageWithxDR": "NONE",
        "ddMetadataRequired": false,
        "storeXdrInDB": false,
        "supportedKpis": [
            "TOTAL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_APPLICATION_ID",
            "TOTAL_SUCCESSFUL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_RESULT_CODE"
        ],
        "sourceFeedCorrCriteria": [],
        "retentionTimeInDb": 60,
        "diameterResponseIncluded": true,
        "corrProtocol": "DIAMETER"
    },
    "readyToStreamData": true
}'
Example:
curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request POST 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation' \
--header 'Content-Type: application/json' \
--data-raw '{
    "configurationName": "diameter-feed",
    "correlationConfig": {
        "configurationName": "diameter-feed",
        "userName": "admin",
        "workerGroup": "ocnadd-test:site-1",
        "relayAgentMediationGroup": {
           "BLR:wg1:dd-relay:cluster.local": [
              "BLR:wg1:dd-med:cluster.local" 
           ]
        },
        "dataStreamStartPoint": "LATEST",
        "inboundDataStreamName": "DIAMETER",
        "outboundDataStreamName": "DIAMETER-FEED-CORRELATED",
        "supportedOptionalXdrContents": [
            "srcIp",
            "dstIp",
            "srcPort",
            "dsPort",
            "applicationId",
            "commandCode",
            "endToEndId",
            "imsi",
            "msisdn",
            "resultCode",
            "originalHost",
            "originalRealm",
            "destinationHost",
            "destinationRealm",
            "sessionId",
            "routeRecord",
            "vendorId",
            "authApplicationId",
            "subscriberStatus",
            "ratType",
            "visitedPlmnId",
            "serviceSelection",
            "absoluteTime",
            "relativeTime",
            "priorityLevel",
            "userLocationInfo3gpp",
            "mcc",
            "mnc",
            "imei",
            "sgsnMccMnc",
            "ggsnMccMnc",
            "qosClassIdentifier",
            "qosPriority",
            "tac",
            "cellId",
            "latitutde",
            "longitude",
            "way",
            "cancellationType",
            "addrType",
            "requestFlag",
            "answerFlag",
            "accApplicationId",
            "reqHeaderFlag",
            "ansHeaderFlag",
            "equipmentStatus",
            "alertReason",
            "sgsnNumber",
            "terminalInfo",
            "featureList",
            "userId",
            "mIPHomeAgentAddrType",
            "mipHomeAgentHost",
            "mIPHomeAgentAddress",
            "mIPHomeAgentRealm",
            "networkAccessMode",
            "visitedNetworkId",
            "requestCause",
            "terminationCause",
            "reAuthRequestType",
            "eventTrigger",
            "sessionReleaseCause",
            "ipCanType",
            "pdnType",
            "userLocation",
            "userLocationMNC",
            "userLocationECI",
            "userLocationLAC",
            "userLocationCISAC",
            "userLocationTAC",
            "preEmptionCapability",
            "preEmptionVulnerability",
            "pdnAddressV4",
            "pdnAddressV6",
            "apn",
            "ruleSpaceDecision",
            "ruleSpaceSuggestion",
            "nodeType",
            "transactionId"
        ],
        "xdrType": "TDR",
        "correlationMode": "IP+PORT+HOPBYHOP_ID+ENDTOEND_ID+COMMAND_CODE",
        "maxTransactionWaitTime": 2000,
        "includeMessageWithxDR": "NONE",
        "ddMetadataRequired": false,
        "storeXdrInDB": false,
        "supportedKpis": [
            "TOTAL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_APPLICATION_ID",
            "TOTAL_SUCCESSFUL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_RESULT_CODE"
        ],
        "sourceFeedCorrCriteria": [],
        "retentionTimeInDb": 60,
        "diameterResponseIncluded": true,
        "corrProtocol": "DIAMETER"
    },
    "readyToStreamData": true
}'

B. Update Configuration

Rest End Point: <apiRoot>/ocnadd-configuration/{version}/correlation/{config-name}

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request PUT 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/<diameter-feed-name>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "configurationName": "<diameter-feed-name>",
    "correlationConfig": {
        "configurationName": "<diameter-feed-name>",
        "userName": "<dd-ui-user-name>",
        "workerGroup": "<worker-group-name>",
        "relayAgentMediationGroup": {
   		   "<siteName>:<workerGroupName>:<relayAgentNamespace>:<relayAgentClusterName>": [
   		   "<siteName>:<workerGroupName>:<mediationNamespace>:<mediationClusterName>"
           ]
        },
        "dataStreamStartPoint": "LATEST",
        "inboundDataStreamName": "DIAMETER",
        "outboundDataStreamName": "<diameter-feed-name-in-block-letters>-CORRELATED",
        "supportedOptionalXdrContents": [
            "srcIp",
            "dstIp",
            "srcPort",
            "dsPort",
            "applicationId",
            "commandCode",
            "endToEndId",
            "imsi",
            "msisdn",
            "resultCode",
            "originalHost",
            "originalRealm",
            "destinationHost",
            "destinationRealm",
            "sessionId",
            "routeRecord",
            "vendorId",
            "authApplicationId",
            "subscriberStatus",
            "ratType",
            "visitedPlmnId",
            "serviceSelection",
            "absoluteTime",
            "relativeTime",
            "priorityLevel",
            "userLocationInfo3gpp",
            "mcc",
            "mnc",
            "imei",
            "sgsnMccMnc",
            "ggsnMccMnc",
            "qosClassIdentifier",
            "qosPriority",
            "tac",
            "cellId",
            "latitutde",
            "longitude",
            "way",
            "cancellationType",
            "addrType",
            "requestFlag",
            "answerFlag",
            "accApplicationId",
            "reqHeaderFlag",
            "ansHeaderFlag",
            "equipmentStatus",
            "alertReason",
            "sgsnNumber",
            "terminalInfo",
            "featureList",
            "userId",
            "mIPHomeAgentAddrType",
            "mipHomeAgentHost",
            "mIPHomeAgentAddress",
            "mIPHomeAgentRealm",
            "networkAccessMode",
            "visitedNetworkId",
            "requestCause",
            "terminationCause",
            "reAuthRequestType",
            "eventTrigger",
            "sessionReleaseCause",
            "ipCanType",
            "pdnType",
            "userLocation",
            "userLocationMNC",
            "userLocationECI",
            "userLocationLAC",
            "userLocationCISAC",
            "userLocationTAC",
            "preEmptionCapability",
            "preEmptionVulnerability",
            "pdnAddressV4",
            "pdnAddressV6",
            "apn",
            "ruleSpaceDecision",
            "ruleSpaceSuggestion",
            "nodeType",
            "transactionId"
        ],
        "xdrType": "TDR",
        "correlationMode": "<correlation-mode>",
        "maxTransactionWaitTime": 2000,
        "includeMessageWithxDR": "NONE",
        "ddMetadataRequired": false,
        "storeXdrInDB": false,
        "supportedKpis": [
            "TOTAL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_APPLICATION_ID",
            "TOTAL_SUCCESSFUL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_RESULT_CODE"
        ],
        "sourceFeedCorrCriteria": [],
        "retentionTimeInDb": 60,
        "diameterResponseIncluded": true,
        "corrProtocol": "DIAMETER"
    },
    "readyToStreamData": true
}'
Example:
curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request PUT 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/diameter-feed' \
--header 'Content-Type: application/json' \
--data-raw '{
    "configurationName": "diameter-feed",
    "correlationConfig": {
        "configurationName": "diameter-feed",
        "userName": "admin",
        "workerGroup": "ocnadd-test:site-1",
        "relayAgentMediationGroup": {
            "BLR:wg1:dd-relay:cluster.local": [
              "BLR:wg1:dd-med:cluster.local"  
           ]
        },
        "dataStreamStartPoint": "LATEST",
        "inboundDataStreamName": "DIAMETER",
        "outboundDataStreamName": "DIAMETER-FEED-CORRELATED",
        "supportedOptionalXdrContents": [
            "srcIp",
            "dstIp",
            "srcPort",
            "dsPort",
            "applicationId",
            "commandCode",
            "endToEndId",
            "imsi",
            "msisdn",
            "resultCode",
            "originalHost",
            "originalRealm",
            "destinationHost",
            "destinationRealm",
            "sessionId",
            "routeRecord",
            "vendorId",
            "authApplicationId",
            "subscriberStatus",
            "ratType",
            "visitedPlmnId",
            "serviceSelection",
            "absoluteTime",
            "relativeTime",
            "priorityLevel",
            "userLocationInfo3gpp",
            "mcc",
            "mnc",
            "imei",
            "sgsnMccMnc",
            "ggsnMccMnc",
            "qosClassIdentifier",
            "qosPriority",
            "tac",
            "cellId",
            "latitutde",
            "longitude",
            "way",
            "cancellationType",
            "addrType",
            "requestFlag",
            "answerFlag",
            "accApplicationId",
            "reqHeaderFlag",
            "ansHeaderFlag",
            "equipmentStatus",
            "alertReason",
            "sgsnNumber",
            "terminalInfo",
            "featureList",
            "userId",
            "mIPHomeAgentAddrType",
            "mipHomeAgentHost",
            "mIPHomeAgentAddress",
            "mIPHomeAgentRealm",
            "networkAccessMode",
            "visitedNetworkId",
            "requestCause",
            "terminationCause",
            "reAuthRequestType",
            "eventTrigger",
            "sessionReleaseCause",
            "ipCanType",
            "pdnType",
            "userLocation",
            "userLocationMNC",
            "userLocationECI",
            "userLocationLAC",
            "userLocationCISAC",
            "userLocationTAC",
            "preEmptionCapability",
            "preEmptionVulnerability",
            "pdnAddressV4",
            "pdnAddressV6",
            "apn",
            "ruleSpaceDecision",
            "ruleSpaceSuggestion",
            "nodeType",
            "transactionId"
        ],
        "xdrType": "TDR",
        "correlationMode": "IP+PORT+HOPBYHOP_ID+ENDTOEND_ID+COMMAND_CODE",
        "maxTransactionWaitTime": 2000,
        "includeMessageWithxDR": "NONE",
        "ddMetadataRequired": false,
        "storeXdrInDB": false,
        "supportedKpis": [
            "TOTAL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_APPLICATION_ID",
            "TOTAL_SUCCESSFUL_TRANSACTION",
            "TOTAL_FAILED_TRANSACTION_PER_RESULT_CODE"
        ],
        "sourceFeedCorrCriteria": [],
        "retentionTimeInDb": 60,
        "diameterResponseIncluded": true,
        "corrProtocol": "DIAMETER"
    },
    "readyToStreamData": true
}'

C. Delete Configuration

Rest End Point: <apiRoot>/ocnadd-configuration/{version}/correlation/{configurationName}

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request DELETE 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/<diameter-feed-name>' \
Example:

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request DELETE 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/diameter-feed' \

D. Get Diameter Correlation Configuration

Rest End Point: { apiRoot}/ocnadd-configuration/{version}/correlation/configurations

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request GET 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/configurations' \

E. Get Specific Diameter Correlation Configuration

Rest End Point: { apiRoot}/ocnadd-configuration/{version}/correlation/{config-name}

curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request GET 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/<diameter-feed-name> \
Example:
curl -k --location --cert-type P12 --cert /var/securityfiles/keystore/serverKeyStore.p12:$OCNADD_SERVER_KS_PASSWORD --request GET 'https://ocnaddmanagementgateway:12889/ocnadd-configuration/v2/correlation/diameter-feed' \
3.2.12.1.5 XDR Content

This section provides the details of the xDR mandatory and optional xRD content.

Mandatory xDR Content

Table 3-3 Mandatory xDR Content

Field Data Type Presence Description
version String M

Version number of xDR content.

configurationName String M

Correlation configuration name.

This can be used by a 3rd-party consumer to distinguish between multiple configuration xDRs when the same outbound Kafka topic is used.

beginTime String(UTC time) M

Date and time in milliseconds of the first message of the xDR.

Example: "2023-01-23T07:03:36.311Z"

endTime String(UTC time) M

Date and time of the last event in the transaction (last message or timeout).

Example: "2023-01-23T07:03:39.311Z"

xdrStatus Enum M

xDR status of the correlated transaction.

Value: SUDR, COMPLETE, TIMER_EXPIRY, NOT_MATCHED

Optional xDR Content

Note:

The mandatory fields will always be present in xDRs and optional fields will be present based on their availability in the message.

Table 3-4 Optional xDR Content

Field Name Data Type Presence Description
totalPduCount Integer O

The total number of messages are present in transaction.

It must be selected in xDR when correlation mode is not set to SUDR.

    • An xDR is generate with request message and response message then total-pdu-count is set to 2 or total no. of message of transaction.
    • An xDR is generate with either only request message or response message then total-pdu-count is set to 1.
totalLength Integer O

Total sum of messages is present in transaction and It will be in bytes format.

It will be updated when includeMessageWithxDR is not NONE.

transactionId String O

The unique identifier of transaction.

It must be selected in xDR when correlation mode is not set to SUDR.

transactionTime String O

Duration of the complete transaction(endTime-beginTime ). In case of timeout the transaction time will be calculated between transactions begin time and timeout event.

It must be selected in xDR when correlation mode is not set to SUDR.

It will be in milisecond.

Example: 1000

way String O

The direction of the TCP connection relative to the observation point, as indicated by the source.

The data will be extracted from header 'Flags' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Uplink
1 Downlink
srcIp String O

The source IP address of the initial message in the session or transaction.

The data will be extracted from metadata-list and populated from the first occurrence of the relevant information in the message.

dstIp String O

The destination IP address of the initial message in the session or transaction.

The data will be extracted from metadata-list and populated from the first occurrence of the relevant information in the message.

srcPort String O

The TCP port used by the application on the originating IP address.

The data will be extracted from metadata-list and populated from the first occurrence of the relevant information in the message.

dstPort String O

The TCP port used by the application on the destination IP address.

The data will be extracted from metadata-list and populated from the first occurrence of the relevant information in the message.

applicationId String O

The applicationId is used to identify which diameter Interface the message is applicable for.

The data will be extracted from header 'ApplicationId' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Diameter Common Messages
1 Diameter NASREQ Application
2 Diameter Mobile IPv4 Application
3 Diameter Base Accounting
4 Diameter Credit-Control Application
5 Diameter EAP
6 Diameter Session Initiation Protocol (SIP) Application
16777216 3GPP Cx/Dx
16777217 3GPP Sh/Ph
16777218 3GPP Re/Rf
16777219 3GPP Wx
16777220 3GPP Zn
16777221 3GPP Zh
16777222 3GPP Gq
16777223 3GPP Gmb
16777224 3GPP Gx
16777225 3GPP Gx over Gy
16777226 3GPP MM10
16777229 3GPP Rx
16777230 3GPP Pr
16777231 ETSI e4
16777235 ITU-T Rs
16777236 3GPP Rx (Policy and Charging Control over Rx)
16777238 Gx
16777250 STa/SWa
16777251 S6a
16777252 S13
16777255 SLg
16777264 SWm
16777265 SWx
16777266 Gxx
16777267 S9
16777268 Zpn
16777272 S6b
16777291 SLh
16777292 SGmb
16777302 Sy
16777303 Sd
16777308 S7a
16777309 Tsp
16777310 S6m
16777311 T4
16777312 S6c
16777313 SGd
16777318 S15
16777319 S9a
16777320 S9a*
commandCode String O

A Command Code is a unique identifier that is used to identify a specific Diameter command and It is used in order to communicate the command associated with the message.

It will be populated from the first occurrence of the relevant information in the message and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Diameter Common Messages
257 CER/CEA, Capabilities-Exchange-Request/-Answer
258 RAR/RAA, Re-Auth-Request/-Answer
260 AMR/AMA, AA-Mobile-Node-Request/-Answer
262 HAR/HAA, Home-Agent-MIP-Request/-Answer
265 AAR/AAA, AA-Request/-Answer
268 DER/DEA, Diameter-EAP-Request/-Answer
271 ACR/ACA, Accounting-Request/-Answer
272 CCR/CCA, Credit-Control-Request/-Answer
274 ASR/ASA, Abort-Session-Request/-Answer
275 STR/STA, Session-Termination-Request/-Answer
280 DWR/DWA, Device-Watchdog-Request/Answer
282 DPR/DPA, Disconnect-Peer-Request/Answer:DPR/DPA
300 UAR/UAA, User-Authorization-Request/-Answer
301 SAR/SAA, Server-Assignment-Request/-Answer
302 LIR/LIA, Location-Info-Request/-Answer
303 MAR/MAA, Multimedia-Auth-Request/-Answer
304 RTR/RTA, Registration-Termination-Request/-Answer
305 PPR/PPA, Push-Profile-Request/-Answer
306 UDR/UDA, User-Data-Request/-Answer
307 PUR/PUA, Profile-Update-Request/-Answer:PUR/PUA
308 SNR/SNA, Subscribe-Notifications-Request/-Answer
309 PNR/PNA, Push-Notification-Request/-Answer:PNR/PNA
310 BIR/BIA, Boostrapping-Info-Request/Answer
311 MPR/MPA, Message-Process-Request/Answer
316 ULR/ULA, Update-Location-Request/-Answer
317 CLR/CLA, Cancel-Location-Request/-Answer
318 AIR/AIA, Authentication-Information-Request/-Answer
319 IDR/IDA, Insert-Subscriber-Data-Request/-Answer
320 DSR/DSA, Delete-Subscriber-Data-Request/-Answer
321 PUER/PUA, Purge-UE-Request/-Answer
322 RSR/RSA, Reset-Request/-Answer
323 NOR/NOA, Notify-Request/-Answer
324 ECR/ECA, ME-Identity-Check-Request/-Answe
500 RAR/RAA, Registration-Authorization-Request/-Answer
501 LUR/LUA, Location-Update-Request/-Answer
504 SIR/SIA, Security-Information-Request/-Answer
505 SIR/SIA, Security-Information-Request/-Answer
8388620 PLR/PLA, Provide-Location-Request/-Answer
8388621 LLR/LLA, Location-Report-Request/-Answer
8388622 RIR/RIA, LCS-Routing-Info-Request/-Answer
8388635 SLR/SLA, Spending-Limit-Request/-Answer
8388636 SNR/SNA, Spending-Status-Notification-Request/-Answer
8388637 TSR/TSA, TDF-Session-Request/-Answer
8388638 UVR/UVA, Update-VCSG-Location-Request/-Answer
8388639 DAR/DAA, Device-Action-Request/-Answer
8388640 DNR/DNA, Device-Notification-Request/-Answer
8388641 SIR/SIA, Subscriber-Information-Request/-Answer
8388642 CVR/CVA, Cancel-VCSG-Location-Request/-Answer
8388643 DTR/DTA, Device-Trigger-Request-/Answer
8388644 DRR/DRA, Delivery-Report-Request-/Answer
8388645 OFR/OFA, MO-Forward-Short-MessageRequest/-Answer
8388646 TFR/TFA, MT-Forward-Short-MessageRequest/-Answer
8388647 SRR/SRA, Send-Routing-Info-for-SMRequest/-Answer
8388648 ALR/ALA, Alert-Service-Centre-Request/-Answer
8388649 RDR/RDA, Report-SM-Delivery-Status-Request/-Answer
8388656 TER/TEA, Trigger-Establishment-Request/-Answer
8388662 GAR/GAA, GCS-Action-Request/Answer
8388663 GNR/GNA, GCS-Notification-Request/Answer
8388664 PIR/PIA, ProSe-Subscriber-Information-Request/Answer
8388665 UPR/UPA, Update-ProSe-Subscriber-Data-Request/Answer
8388666 PNR/PNA, ProSe-Notify-Request/Answer
8388668 PAR/PAA, ProSe-Authorization-Request/Answer
8388669 PDR/PDA, ProSe-Discovery-Request/Answer
8388670 PMR/PMA, ProSe-Match-Request/Answer
8388671 PIR/PIA, ProSe-Match-Report-Info-Request/Answer
8388672 PRR/PRA, ProSe-Proximity-Request/Answer
8388673 PDR/PDA, ProSe-Location-Update-Request/Answer
8388674 ALR/ALA, ProSe-Alert-Request/Answer
8388675 RPR/RPA, ProSe-Cancellation-Request/Answer
8388676 PXR/PXA, ProXimity-Action-Request/Answer
8388713 PSR/PSA, ProSe-Initial-Location-Information-Request/Answer
8388718 CIR/CIA, Configuration-Information-Request/Answer
8388719 RIR/RIA, Reporting-Information-Request/Answer
8388720 NRR/NRA, Non-Aggregated-RUCI-Report-Request/Answer
8388721 ARR/ARA, Aggregated-RUCI-Report-Request/Answer
8388722 MUR/MUA, Modify-Uecontext-Request/Answer
8388723 BTR/BTA, Background-Data-Transfer-Request/Answer
8388724 NSR/NSA, Network-Status-Request/Answer
8388725 NCR/NCA, Network-Status-Continuous-Report-Request/Answer
8388726 NIR/NIA, NIDD-Information-Request/Answer
8388727 XAR/XAA, ProXimity-Application-Request/Answer
8388728 DPR/DPA, Data-Pull-Request/Answer
8388729 DUR/DUA, Data-Update-Request/Answer
8388730 NDR/NDA, Notification-Data-Request/Answer
8388731 TNR/TNA, TSSF-Notification-Request/Answer
8388732 CMR/CMA, Connection-Management-Request/Answer
8388733 ODR/ODA, MO-Data-Request/Answer
8388734 TDR/TDA, MT-Data-Request/Answer
8388735 ECR/ECA, Event-Configuration-Request/Answer
8388736 ERR/ERA, Event-Reporting-Request/Answer
endToEndId String O

The End-to-End Identifier is used to detect duplicate messages.

The data will be extracted from header 'End-to-End' and populated from the first occurrence of the relevant information in the message.

resultCode String O

Result-Code data field contains the Result Code or Experimental Result values as defined in RFC 3588 (7.1 - 7.7) and TS 29.212 (5.5). Naming convention "E_" signifies the corresponding value is an Experimental-Result code.

It will be populated from the first occurrence of the relevant information in the message and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs, The data will be extracted from either of AVPs:

  • Result-Code
  • Experimental-Result-Code: In case of expermental-result-code, prefix of '100' is added in value to avoid conflict with the value of Result-Code AVP.
Value Mapped Label
1001 Diameter multi round auth
2001 Diameter success
2002 Diameter limited success
3001 Diameter command unsupported
3002 Diameter unable to deliver
3003 Diameter realm not served
3004 Diameter too busy
3005 Diameter loop detected
3006 Diameter redirect indication
3007 Diameter application unsupported
3008 Diameter invalid hdr bits
3009 Diameter invalid avp bits
3010 Diameter unknown peer
4001 Diameter authentication rejected
4002 Diameter out of space
4003 Diameter election lost
4010 Diameter end user service denied
4011 Diameter credit control not applicable
4012 Diameter credit limit reached
5001 Diameter avp unsupported
5002 Diameter unknown session id
5003 Diameter authorization rejected
5004 Diameter invalid avp value
5005 Diameter missing avp
5006 Diameter resources exceeded
5007 Diameter contradicting avps
5008 Diameter avp not allowed
5009 Diameter avp occurs too many times
5010 Diameter no common application
5011 Diameter unsupported version
5012 Diameter unable to comply
5013 Diameter invalid bit in header
5014 Diameter invalid avp length
5015 Diameter invalid message length
5016 Diameter invalid avp bit combo
5017 Diameter no common security
5030 Diameter user unknown
5031 Diameter rating failed
1002001 Diameter Error First Registration
1002002 Diameter Error Subsequent Registration
1002003 Diameter Error Unregistered Service
1002004 Diameter Error Success Server name Not stored
1002005 Deprecated Value
1002021 Diameter Error PDP Context Deletion Indication
1004010 Diameter Error End User Service Denied
1004011 Diameter Error Credit Control Not Applicable
1004012 Diameter Error Credit Limit Reached
1004013 Diameter Error Customer Not Found
1004100 Diameter Error User Data Not Available
1004101 Diameter Error Prior Update In Progress
1004121 Diameter Error Out of Resources
1004141 Diameter Error PCC Bearer Event
1004142 Diameter Error Bearer Event
1004143 Diameter Error AN GW Failed
1004144 Diameter Error Pending Transaction
1004181 Diameter Error Authentication Data Unavailable
1004182 Diameter Error CAMEL Subscription Present
1004201 Diameter Error Absent Users
1004221 Diameter Error Unreachable User
1004222 Diameter Error Suspended User
1004223 Diameter Error Detached User
1004224 Diameter Error Positioning Denied
1004225 Diameter Error Positioning Failed
1004226 Diameter Error Unknown Unreachable LCS Client
1004241 Diameter Error No Available Policy Counters
1005001 Diameter Error User Unknown
1005002 Diameter Error Identities Do not Match
1005003 Diameter Error Identity Not Registered
1005004 Diameter Error Roaming Not Allowed
1005005 Diameter Error Identity Already Registered
1005006 Diameter Error AUTH Scheme Not Supported
1005007 Diameter Error in Assignment Type
1005008 Diameter Error Too Much Data
1005009 Diameter Error Not Supported User Data
1005010 Unassigned
1005011 Diameter Error Feature Unsupported
1005012 Diameter Error serving node feature unsupported
1005030 Diameter Error user Unknown
1005031 Diameter Error ratings failed
1005041 Diameter Error User No WLAN Subscription
1005042 Diameter Error W-APN Unused By User
1005043 Diameter Error No Access Independent Subscription
1005044 Diameter Error User No W-APN Subscription
1005045 Diameter Error Unsuitable Network
1005061 Diameter Error Invalid Service Information
1005062 Diameter Error Filter Restrictions
1005063 Diameter Error Requested Service Not Authorized
1005064 Diameter Error Duplicated AF Session
1005065 Diameter Error IP-CAN Session Not Available
1005066 Diameter Error Unauthorized Non-Emergency Session
1005067 Diameter Error Unauthorized Sponsored Data Connectivity
1005068 Diameter Error Temporary Network Failure
1005100 Diameter Error User Data Not Recognized
1005101 Diameter Error Operation Not Allowed
1005102 Diameter Error User Data Cannot be Read
1005103 Diameter Error User Data Cannot be Modified
1005104 Diameter Error User Data Cannot be Notified
1005105 Diameter Error Transparent Data Out of Sync
1005106 Diameter Error Subs Data Absent
1005107 Diameter Error No Subscription to data
1005108 Diameter Error DSAI Not Available
1005120 Diameter Error Start Indication
1005121 Diameter Error Stop Indication
1005122 Diameter Error Unknown MBMS Bearer Service
1005123 Diameter Error Service Area
1005140 Diameter Error Initial Parameters
1005141 Diameter Error Trigger Event
1005142 Diameter Error PCC Rule Event
1005143 Diameter Error Bearer Not Authorized
1005144 Diameter Error Traffic Mapping Info Rejected
1005145 Diameter Error QOS Rule Event
1005146 Reserved
1005147 Diameter Error Conflicting Request
1005148 Diameter Error ADC Rule Event
1005401 Diameter Error IMPI Unknown
1005402 Diameter Error Not Authorized
1005403 Diameter Error Transaction Identifier Invalid
1005404 Reserved Experimental Result Code
1005405 Diameter Error Identity Unknown
1005420 Diameter Error Unknown EPS Subscription
1005421 Diameter Error RAT Not Allowed
1005422 Diameter Error Equipment Unknown
1005423 Diameter Error Unknown Serving Node
1005450 Diameter Error User No NON 3GPP Subscription
1005451 Diameter Error User No APN Subscription
1005452 Diameter Error RAT Type Not Allowed
1005470 Diameter Error Sub-Session
1005471 Diameter Error Ongoing Session Establishment
1005490 Diameter Error Unauthorized Requesting Network
1005510 Diameter Error Unauthorized Requesting Entity
1005511 Diameter Error Unauthorized Service
1005530 Diameter Error Invalid SME Address
1005531 Diameter Error SC Congestion
1005532 Diameter Error SM Protocol
1005533 Diameter Error Trigger Replace Failure
1005534 Diameter Error Trigger Recall Failure
1005535 Diameter Error Original Message Not Pending
1005550 Diameter Error Absent User
1005551 Diameter Error User Busy For MT SMS
1005552 Diameter Error Facility Not Supported
1005553 Diameter Error Illegal User
1005554 Diameter Error Illegal Equipment
1005555 Diameter Error SM Delivery Failure
1005556 Diameter Error Service Not Subscribed
1005557 Diameter Error Service Barred
1005558 Diameter Error MWD List Full
1005570 Diameter Error Unknown Policy Counters
sessionId String O

A session is a logical concept at the application layer, and is shared between an access device and a server, and is identified via the Session-Id.

The data will be extracted from AVP 'Session-Id' and populated from the first occurrence of the relevant information in the message.

originHost String O

It identifies the endpoint that originated the Diameter message.

The data will be extracted from AVP 'Origin-Host' and populated from the first occurrence of the relevant information in the message.

originRealm String O

Origin Domain of the request message.

The data will be extracted from AVP 'Origin-Realm' and populated from the first occurrence of the relevant information in the message.

destinationHost String O

It identifies the endpoint to which the Diameter message is intended.

The data will be extracted from AVP 'Destination-Host' and populated from the first occurrence of the relevant information in the message.

destinationRealm String O

Destination Realm contains the realm the message is to be routed to.

The data will be extracted from AVP 'Destination-Realm' and populated from the first occurrence of the relevant information in the message.

imsi String O

The International Mobile Subscriber Identity (IMSI) is a unique number associated with a mobile phone user. It's used to identify a subscriber to a cellular network.

The data will be extracted from following AVP and populated from the first occurrence of the relevant information in the message.

AVP-NAME with Order

Subscription-Id-Data

(END_USER_IMSI, END_USER_SIP_URI)

User-Name
3GPP-IMSI
3GPP-IMSI-MCC-MNC
msisdn String O

The Mobile Station International Subscriber Directory Number (MSISDN) is a unique number assigned to a mobile phone subscriber. It's essentially the phone number associated with a SIM card or mobile device.

The data will be extracted from following AVP and populated from the first occurrence of the relevant information in the message.

AVP-NAME with Order

Subscription-Id-Data

(END_USER_MSISDN,END_USER_SIP_URI)

MSISDN
A-MSISDN
impu String O

It contains the public identity of a user.

The data will be extracted from following AVP and populated from the first occurrence of the relevant information in the message.

AVP-NAME with Order
Public-Identity
Wildcarded-IMPU
Wildcarded-Public-Identity
impi String O

It contains the private identity of a user.

The data will be extracted from AVP 'User-Name' and populated from the first occurrence of the relevant information in the message.

routeRecord String O

It contains the route-record field of the message.

The data will be extracted from AVP 'Route-Record' and populated from the last occurrence of the relevant information in the message.

vendorId String O

It contains the Vendor Id extracted from 'Vendor-Id' AVP present inside Grouped AVP 'Vendor-Specific-Application-Id'.

It populated from the first occurrence of the relevant information in the message.

authApplicationId String O

It contains the Authentication Application Id extracted from the Auth-Application-Id AVP.

The data will be extracted from AVP 'Auth-Application-Id' and populated from the last occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Diameter Common
16777236 Rx
16777217 Sh
16777238 Gx
16777251 S6a/S6d
16777252 S13
16777272 S6b
16777251 S6
16777252 S13
16777216 Cx
16777255 SLg
16777291 SLh
16777303 Sd
16777265 SWx
subscriberStatus String O

It indicates the current status of a subscriber. it is typically used in User-Data-Request (UDR) and User-Data-Answer (UDA) diameter messages.

The data will be extracted from AVP 'Subscriber-Status' and populated from the last occurrence of the relevant information in the message.

ratType String O

It indicates which Radio Access Technology is currently serving the UE. To differentiate between RAT-Type and 3GPP-RAT-Type AVPs "(3GPP)" has been introduced in the names.

The data will be extracted from AVP 'RAT-Type' and populated from the last occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 WLAN
1 UTRAN(3GPP)
2 GERAN(3GPP)
3 WLAN(3GPP)
4 GAN(3GPP)
5 HSPA Evolution(3GPP)
6 EUTRAN(3GPP)
7 VIRTUAL
101 IEEE 802.16e(3GPP)
102 3GPP2 eHRPD(3GPP)
103 3GPP2 HRPD(3GPP)
104 3GPP2 1xRTT(3GPP)
105 3GPP2 UMB
1000 UTRAN
1001 GERAN
1002 GAN
1003 HSPA_EVOLUTION
1004 EUTRAN
2000 CDMA2000_1X
2001 HRPD
2002 UMB
2003 EHRPD
visitedPlmnId String O

It refers to the identifier of the Public Land Mobile Network (PLMN) that a mobile device is currently visiting or connected to.

The data will be extracted from AVP 'Visited-PLMN-Id and populated from the last occurrence of the relevant information in the message.

userLocationInfo3gpp String O

It refers to information related to the location of a user in a 3GPP (3rd Generation Partnership Project) network

The data will be extracted from AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

qosClassIdentifier String O

It used in cellular networks to identify the Quality of Service (QoS) characteristics of a data flow or a service.

The data will be extracted from AVP 'QoS-Class-Identifier' and populated from the last occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
1 QCI_1
2 QCI_2
3 QCI_3
4 QCI_4
5 QCI_5
6 QCI_6
7 QCI_7
8 QCI_8
9 QCI_9
65 QCI_65
66 QCI_66
67 QCI_67
69 QCI_69
70 QCI_70
71 QCI_71
72 QCI_72
73 QCI_73
74 QCI_74
75 QCI_75
76 QCI_76
79 QCI_79
80 QCI_80
82 QCI_82
83 QCI_83
84 QCI_84
85 QCI_85
cancellationType String O

Cancellation type defined in cancel Location.

The data will be extracted from AVP 'Cancellation-Type' and populated from the last occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 MME Update Procedure
1 SGSN Update Procedure
2 Subscription Withdrawal
3 Update Procedure IWF
4 Initial Attach Procedure
addrType String O

This field indicates the Address Type come in IP source and Destination Address is either IPv4 or IPv6 format.

The data will be extracted from AVP '' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0x04 IP_V4
0x06 IP_V6
accApplicationId String O

It contains the Accounting Application Id extracted from the Acct-Application-Id AVP.

The data will be extracted from AVP 'Acct-Application-Id' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Diameter Common
16777251 S6a/S6d
16777252 S13
16777272 S6b
16777236 Rx
16777238 Gx
reqHeaderFlag String O

It contains the Request flag coming in Diameter header.

The data will be extracted from request message header 'Flags' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0x80 Request
0x90 Request, T bit set
0xa0 Request, E bit set
0xb0 Request, E, T bit set
0xc0 Request,P bit set
0xd0 Request, P, T bit set
0xe0 Request, P, E bit set
0xf0 Request, P, E, T bit set
ansHeaderFlag String O

It contains the Response flag coming in Diameter header.

The data will be extracted from response message header 'Flags' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0x00 Answer
0x10 Answer, T bit set
0x20 Answer, E bit set
0x40 Answer, P bit set
0x50 Answer, P, T bit set
0x60 Answer, P, E bit set
0x70 Answer, P, E, T bit set
equipmentStatus String O

Equipment Status extracted from ME-identity-Check-Answer AVP.

The data will be extracted from AVP 'Equipment-Status' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 White Listed
1 Black Listed
2 Grey Listed
alertReason String O

It indicates the reason for the alert message.

The data will be extracted from AVP 'Alert-Reaosn' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 UE_PRESENT
1 UE_MEMORY_AVAILABLE
sgsnNumber String O

ISDN number of the SGSN.

The data will be extracted from AVP 'SGSN-Number' and populated from the first occurrence of the relevant information in the message.

terminalInfo String O

IMEI of the user equipment, It refers to information related to a mobile device or terminal, such as a smartphone, tablet, or other cellular-enabled device

The data will be extracted from AVP 'IMEI' which is present inside Terminal-Information and populated from the first occurrence of the relevant information in the message.

featureList String O

List of supported features of the Origin Host.

The data will be extracted from AVP 'Feature-List' and populated from the first occurrence of the relevant information in the message.

serviceSelection String O

It indicates the name of the service or external network with which the mobility service should be associate.

The data will be extracted from AVP 'Service-Selection' and populated from the first occurrence of the relevant information in the message.

userId String O

It contains the leading digits of an IMSI formatted as a character string. It identifies a set of subscribers. Each with identical leading IMSI digits.

The data will be extracted from AVP 'User-Id' and populated from the first occurrence of the relevant information in the message.

mIPHomeAgentAddrType String O

This field indicates the Address Type comes in MIP Home Agent Address AVP is either IPv4 or IPv6 format.

The data will be extracted from AVP 'Mip-Home-Agent-Addr-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0x04 IP_V4
0x06 IP_V6
mIPHomeAgentHost String O

It refers to the hostname or Fully Qualified Domain Name (FQDN) of a Mobile IP Home Agent (HA).

The data will be extracted from AVP 'Destination-Host' which is present inside MIP-Home-Agent-Host and populated from the first occurrence of the relevant information in the message.

mIPHomeAgentAddress String O

It refers to the IP address of a Mobile IP Home Agent (HA) in a Mobile IP network.

The data will be extracted from AVP 'MIP-Home-Agent-Address' and populated from the first occurrence of the relevant information in the message.

mIPHomeAgentRealm String O

It refers to the realm or domain associated with a Mobile IP Home Agent (HA).

The data will be extracted from AVP 'Destination-Realm' which is present inside MIP-Home-Agent-Host and populated from the first occurrence of the relevant information in the message.

networkAccessMode String O

This field indicates whether the traffic is Packet or Circuit or combination of both.

The data will be extracted from AVP 'Network-Access-Mode' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Packet and Circuit
1 Reserved
2 Only Packet
visitedNetworkId String O

It refers to an identifier that represents the visited network that a user is currently connected to.

The data will be extracted from AVP 'Visited-Network-Identifier' and populated from the first occurrence of the relevant information in the message.

requestCause String O

It contains the reason for sending the credit-control request message. It must be present in all Credit-Control-Request messages.

The data will be extracted from AVP 'CC-Request-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
1 Initial Request
2 Update Request
3 Termination Request
4 Event Request
terminationCause String O

It contains the reason the credit control session terminated.

The data will be extracted from AVP 'Termination-Cause' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value

Mapped Label
1 Diameter Logout
2 Diameter Service Not Provided
3 Diameter Bad Answer
4 Diameter Administrative
5 Diameter Link Broken
6 Diameter Auth Expired
7 Diameter User Moved
8 Diameter Session Timeout
reAuthRequestType String O

It contains the action expected upon expiration of the Authorization-Lifetime.It must be present in Re-auth answer message if message contains a positive value for Authorization-Lifetime.

The data will be extracted from AVP 'Re-Auth-Request-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 AUTHORIZE_ONLY
1 AUTHORIZE_AUTHENTICATE
eventTrigger String O

It indicates the triggered event sent by PCEF to PCRF as part of Event-Report-Indication AVP.For each of the values mentioned below, the corresponding bit of this field is set.

The data will be extracted from AVP 'Event-Trigger' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 SGSN_CHANGE
1 QOS_CHANGE
2 RAT_CHANGE
3 TFT_CHANGE
4 PLMN_CHANGE
5 LOSS_OF_BEARER
6 RECOVERY_OF_BEARER
7 IP_CAN_CHANGE
11 QOS_CHANGE_EXCEEDING_AUTHORIZATION
12 RAI_CHANGE
13 USER_LOCATION_CHANGE
14 NO_EVENT_TRIGGERS
15 OUT_OF_CREDIT
16 REALLOCATION_OF_CREDIT
17 REVALIDATION_TIMEOUT
18 UE_IP_ADDRESS_ALLOCATE
19 UE_IP_ADDRESS_RELEASE
20 DEFAULT_EPS_BEARER_QOS_CHANGE
21 AN_GW_CHANGE
22 SUCCESSFUL_RESOURCE_ALLOCATION
23 RESOURCE_MODIFICATION_REQUEST
24 PGW_TRACE_CONTROL
25 UE_TIME_ZONE_CHANGE
26 TAI_CHANGE
27 ECGI_CHANGE
28 CHARGING_CORRELATION_EXCHANGE
29 APN-AMBR_MODIFICATION_FAILURE
30 USER_CSG_INFORMATION_CHANGE
33 USAGE_REPORT
34 DEFAULT-EPS-BEARER-QOS_MODIFICATION_FAILURE
35 USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE
36 USER_CSG_HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE
37 ROUTING_RULE_CHANGE
39 APPLICATION_START
40 APPLICATION_STOP
42 CS_TO_PS_HANDOVER
43 UE_LOCAL_IP_ADDRESS_CHANGE
44 H(E)NB_LOCAL_IP_ADDRESS_CHANGE
45 ACCESS_NETWORK_INFO_REPORT
46 CREDIT_MANAGEMENT_SESSION_FAILURE
47 DEFAULT_QOS_CHANGE
48 CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT
49 ADDITION_OF_ACCESS
50 REMOVAL_OF_ACCESS
51 UNAVAILABLITY_OF_ACCESS
52 AVAILABLITY_OF_ACCESS
53 RESOURCE_RELEASE
54 ENODEB_CHANGE
55 3GPP_PS_DATA_OFF_CHANGE
56 UE_STATUS_RESUME
57 SUCCESSFUL_QOS_UPDATE
sessionReleaseCause String O

It determines the cause of release the IP-CAN session by the PCRF.

The data will be extracted from AVP 'Session-Release-Cause' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 UNSPECIFIED_REASON
1 UE_SUBSCRIPTION_REASON
2 INSUFFICIENT_SERVER_RESOURCES
3 IP_CAN_SESSION_TERMINATION
4 UE_IP_ADDRESS_RELEASE
priorityLevel String O

Defines the relative importance of a resource request.

The data will be extracted from AVP 'Priority-Level' and populated from the first occurrence of the relevant information in the message.

ipCanType String O

It indicates the type of Connectivity Access Network in which the user is connected.It indicates the type of Connectivity Access Network in which the user is connected.

The data will be extracted from AVP 'IP-CAN-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 3GPP-GPRS
1 DOCSIS
2 xDSL
3 WiMax
4 3GPP2
5 3GPP-EPS
6 Non-3GPP-EPS
7 FBA
8 3GPP-5GS
9 Non-3GPP-5GS
pdnType String O

It indicates the IP Address Type (IPv4 or IPv6) of the PDN.

The data will be extracted from AVP 'PDN-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 IPv4
1 IPv4
2 IPv4v6
3 IPv4_OR_IPv6
locationType STRING 0

To identify Cell Identity or Service area code or Routing area code where the MS is currently located for a given MNC and LAC

The data will be extracted from 1st byte(Geographic Location Type) of AVP '3GPP-User-Location-Info' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 CGI
1 SAI
2 RAI
128 TAI
129 ECGI
130 TAI and ECGI
mcc String O

It refers to the Mobile Country Code, a 3-digit code that identifies the country where a mobile network is located

SIP_URI,

The data will be extracted from AVP '3GPP-Uset-Location-Info' and populated from the last occurrence of the relevant information in the message.

From AVP: 3GPP-User-Location-Info

AVP-NAME with Order
Cell-Global-Identity
Service-Area-Identity
Routing-Area-Identity
Tracking-Area-Identity
E-UTRAN-Cell-Global-Identity
mnc String O

It refers to the Mobile Network Code, a code that identifies a specific mobile network operator within a country or region.

The data will be extracted from AVP '' and populated from the last occurrence of the relevant information in the message.

From AVP: 3GPP-User-Location-Info

AVP-NAME with Order
Cell-Global-Identity
Service-Area-Identity
Routing-Area-Identity
Tracking-Area-Identity
E-UTRAN-Cell-Global-Identity
eci String O

It refers to the E-UTRAN Cell Global Identifier (ECGI), which is a unique identifier for a cell in an Evolved Universal Terrestrial Radio Access Network (E-UTRAN).

The data will be extracted from "EUTRAN Cell Global Identifier" present in AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

lac String O

It refers to the Location Area Code, a unique identifier used in cellular networks to identify a group of cells within a network.

The data will be extracted from AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

From AVP: 3GPP-User-Location-Info

AVP-NAME with Order
Cell-Global-Identity
Service-Area-Identity
Routing-Area-Identity
sac String O

Service area code or Routing area code where the MS is currently located, for a given (MNC, LAC).

The data will be extracted from "Service Area Identifier" present in AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

tac String O

Tracking Area Code of where the MS is currently located, for a given (MNC).

The data will be extracted from "Tracking Area Identifier" present in AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

cellId String O

It refers to the Cell Identity, a unique identifier for a cell within a cellular network.

The data will be extracted from "Cell Global Identifier" present in AVP '3GPP-User-Location-Info' and populated from the last occurrence of the relevant information in the message.

sgsnMccMnc String O

It refers to a parameter that contains the Mobile Country Code (MCC) and Mobile Network Code (MNC) of the Serving GPRS Support Node (SGSN) in a 3GPP (3rd Generation Partnership Project) network.

The data will be extracted from AVP '3GPP-SGSN-MCC-MNC' and populated from the last occurrence of the relevant information in the message.

ggsnMccMnc String O

It refers to a parameter that contains the Mobile Country Code (MCC) and Mobile Network Code (MNC) of the Gateway GPRS Support Node (GGSN) in a 3GPP (3rd Generation Partnership Project) network.

The data will be extracted from AVP '3GPP-GGSN-MCC-MNC' and populated from the last occurrence of the relevant information in the message.

preEmptionCapability String O

Defines whether a service data flow can get resources that were already assigned to another service data flow with a lower priority level.

The data will be extracted from AVP 'Pre-emption-Capability' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Pre-emption Capability Enabled
1 Pre-emption Capability Disabled
preEmptionVulnerability String O

Defines whether a service data flow can lose the resources assigned to it in order to admit a service data flow with higher priority level.

The data will be extracted from AVP 'Pre-emption-Vulnerability' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Pre-emption Vulnerability Enabled
1 Pre-emption Vulnerability Disabled
pdnAddressV4 String O

It indicates the IPv4 address(if available) of the access node gateway (SGW for 3GPP and AGW for non-3GPP networks) contained in Framed-IP-Address AVP.

The data will be extracted from AVP 'Framed-IP-Address' and populated from the first occurrence of the relevant information in the message.

pdnAddressV6 String O

It indicates the IPv6 address(if available) of the access node gateway (SGW for 3GPP and AGW for non-3GPP networks) contained in Framed-IPv6-Prefix AVP.

The data will be extracted from AVP 'Framed-IPv6-Prefix' and populated from the first occurrence of the relevant information in the message.

apn String O

It indicates the PDN connection to which specific information refers e.g. APN.

The data will be extracted from AVP 'Called-Station-Id' and populated from the first occurrence of the relevant information in the message.

nodeType String O

Type of Node (Rule, Bearer, Session, Transaction).

The data will be extracted from AVP 'Node-Type' and populated from the first occurrence of the relevant information in the message.

The mapped label value will be present in the xDRs.

Value Mapped Label
0 Rule
1 Bearer
2 Transaction
3 SubSession
4 Session

Note:

In case of SUDR, if xDR attributes' values are present in the inbound message, they will be added in the xDR records.
3.2.12.1.6 Correlation Mode

This section provides the details of the correlation modes supported by OCNADD.

SUDR xDR

OCNADD generates an SUDR type xDR for each message.

Figure 3-11 SUDR xDR


SUDR xDR

TRANSACTION XDR

Note:

Note:

  • When messages received in Data Director (DD) are not in order, transaction correlation may be impacted, and correlation will be performed as per the order in which messages are received in DD.
  • In case of an upgrade, service restart, or re-balancing, some duplicate xDRs with correlation impact may get written into the xDR topic.
  • End-to-end latency of the Diameter feed is not applicable for Correlation Feed. End-to-end latency of TDR will be based on the completion of transactions.

Complete Transaction

When both the request message and response message have been received, a successful transaction xDR is generated with xDR status = Complete.

Figure 3-12 Complete Transaction


Complete Transaction

Complete Re-transmission Transaction

When a request message is resent or re-transmitted within the duration of a transaction, it is referred to as re-transmission.

Figure 3-13 Complete Re-transmission Transaction


Complete Re-transmission Transaction

Timer Expiry Transaction

When the request message has only been received and the response message has either not been received or received after transaction duration, Timer expiry xDR is generated with xDR status = TimerExpiry.

Figure 3-14 Timer Expiry Transaction


Timer Expiry Transaction

Timer Expiry Re-transmission Transaction

When a request message has not been received with multiple retries but response message has either not been received or received after transaction duration, Timer expiry xDR is generated with xDR status = TimerExpiry.

Figure 3-15 Timer Expiry Re-transmission Transaction


Timer Expiry Re-transmission Transaction

Not Matched Transaction

When a request message has not been received due to a network issue and only a response message has been received, Not Matched xDR is generated with xDR status = Not Matched.

Figure 3-16 Not Matched Transaction


Not Matched Transaction

3.2.12.1.7 Correlation KPIs

These KPIs can be configured with correlation configuration. The selected KPIs in correlation configuration can be visualized in DD UI through the KPI dashboard.

Table 3-5 Supported KPIs

Metric Type Details
TOTAL_TRANSACTION Metrics Name: ocnadd_total_transactions

Tag: app, mediationGroup, relayAgent, protocol, xdrStatus

TOTAL_SUCCESSFUL_TRANSACTION_PER_RESULT_CODE Metrics Name: ocnadd_total_transactions

Tag: app, resultCode, status, mediationGroup, relayAgent, xdrStatus, protocol

TOTAL_SUCCESSFUL_TRANSACTION_PER_APPLICATION_ID Metrics Name: ocnadd_total_transactions

Tag: app, applicationId, status, mediationGroup, relayAgent, xdrStatus, protocol

TOTAL_SUCCESSFUL_TRANSACTION Metrics Name: ocnadd_total_transactions

Tag: app, status, mediationGroup, relayAgent, xdrStatus, protocol

TOTAL_FAILED_TRANSACTION_PER_RESULT_CODE Metrics Name: ocnadd_total_transactions

Tag: app, resultCode, status, mediationGroup, relayAgent, xdrStatus, protocol

TOTAL_FAILED_TRANSACTION_PER_APPLICATION_ID Metrics Name: ocnadd_total_transactions

Tag: app, applicationId, status, mediationGroup, relayAgent, xdrStatus, protocol

TOTAL_FAILED_TRANSACTION Metrics Name: ocnadd_total_transactions

Tag: app, status, mediationGroup, relayAgent, xdrStatus, protocol

DIAMETER_TRANSACTION_LATENCY_PER_APPLICATION_ID Metrics Name: ocnadd_diameter_transcation_latency

Tag: app, resultCode, applicationId, status, mediationGroup, relayAgent, xdrStatus, protocol, sessionId, transactionTime

Note: Enable for debugging only for a short duration.

Metrics will be pegged only for those transactions whose latency is more than the helm-configured latency threshold value (default: 5s).

3.2.13 Message Sequencing

This feature enables message sequence delivery for messages of a Diameter transaction from Data Director (DD) to a third-party application.

Note:

  • Key/custom based message writing from vCollector must be enabled.
  • It is recommended to use RF > 1 for Kafka topics to avoid data loss in case of broker or topic partition failure.
  • In the case of an upgrade, rollback, or service restart, duplicate messages will be sent by the aggregation service to avoid data loss, and message sequencing will be impacted during that time.

Figure 3-17 Diameter Message Sequencing


Diameter Message Sequencing

There are 2 modes to do message sequencing:

  1. Time Based Message Sequencing (Windowing)
  2. Transaction Based Message Sequencing

Helm Parameters

Table 3-6 Helm Parameters

Parameter Description Value
MESSAGE_SEQUENCING_TYPE
  • Defines the type of message sequencing.
  • The default value is NONE, which means no message sequencing.
  • When any message sequencing is enabled, the end-to-end latency time shall increase based on the configured time corresponding to the message sequencing mode.
  • Only one message sequencing mode can be enabled at a time.
  • The parameter can be configured separately in the relay agent's Helm chart for each Diameter aggregation service.
  • When any wrong or unsupported value is passed in MESSAGE_SEQUENCING_TYPE, it will fall back to the default option (NONE).
  • NONE
  • TIME_WINDOW
  • TRANSACTION
WINDOW_MSG_SEQUENCING_EXPIRY_TIMER
  • This parameter defines the time for window-based message sequencing and it is present in the mediation Helm chart.
  • This must be set when MESSAGE_SEQUENCING_TYPE = TIME_WINDOW.
  • When any wrong or unsupported value is passed, it will fall back to the default (10 ms).
Range: 5ms-500ms

Default: 10ms

TRANSACTION_MSG_SEQUENCING_EXPIRY_TIMER
  • This parameter defines the time for transaction-based message sequencing and it is present in the mediation Helm chart.
  • This must be set when MESSAGE_SEQUENCING_TYPE = TRANSACTION.
  • When any wrong or unsupported value is passed, it will fall back to the default (200 ms).

Range: 20ms-60s

Default: 200ms

MESSAGE_REORDERING_INCOMPLETE_TRANSACTION_METRICS_ENABLE
  • This parameter can be enabled in the mediation Helm chart when the requirement is to check metrics for failure of message reordering or incomplete transactions.
  • Metrics Name: ocnadd_message_reordering_incomplete_transaction_count
  • The metrics will be pegged for MESSAGE_SEQUENCING_TYPE = REQUEST_RESPONSE or TRANSACTION.

Range: true/false

Default: false

  1. Time-Based Message Sequencing (Windowing)

    This mode enables re-ordering of unordered messages based on the timestamp present in the message. The group of messages received within the window time for each partition separately will be considered for message sequencing.

    For each partition, when time-based sequencing is completed, all the sequenced messages will stream to the mediation's Kafka DIAMETER topic.

    Helm Parameters:

    • MESSAGE_SEQUENCING_TYPE: TIME_WINDOW
    • WINDOW_MSG_SEQUENCING_EXPIRY_TIMER: 10(ms), range: [5ms-500ms]

    Note:

    • This will add or increase the end-to-end message latency to the configured value of WINDOW_MSG_SEQUENCING_EXPIRY_TIMER and the processing time.
    • Older timestamp messages from a different window can be seen in the partition, as multiple threads will be writing data into the same partition in parallel (source topic partition count < target topic partition count). The aim is to achieve transaction sequencing.

    Figure 3-18 Time Based Message Sequencing


    Time Based Message Sequencing

  2. Transaction Based Message Sequencing

    This mode enables re-ordering of unordered messages based on the transaction (RxRequest, TxRequest, RxResponse, TxResponse).

    Sequencing Rule:

    • Transaction order: Request, Response
    • When all messages of a transaction (RxRequest, TxRequest, RxResponse, TxResponse) are received in order, the message will be streamed to the mediation's Kafka DIAMETER topic without any delay.
    • When TxRequest is received before RxRequest for a transaction, it will be sent in order when RxRequest is received or after TRANSACTION_EXPIRY_TIME expires.
    • When RxRequest and TxRequest are received in order and TxResponse is received before RxResponse, the RxRequest and TxRequest will be sent without any delay, and TxResponse shall be sent in order when RxResponse is received or after TRANSACTION_EXPIRY_TIME expires.
    • When RxResponse is received first, it will be sent when RxRequest and TxRequest are received or after TRANSACTION_EXPIRY_TIME expires.
    • When TxResponse is received first, it will be sent when RxRequest, TxRequest, and TxResponse are received or after TRANSACTION_EXPIRY_TIME expires.

    Helm Parameters:

    • MESSAGE_SEQUENCING_TYPE: TRANSACTION
    • TRANSACTION_MSG_SEQUENCING_EXPIRY_TIMER: 200 ms, range: [20 ms – 120 s]

    Note:

    This will add or increase the end-to-end message latency up to the configured value of TRANSACTION_MSG_SEQUENCING_EXPIRY_TIMER and the processing time.

Figure 3-19 Transaction Based Message Sequencing


Transaction Based Message Sequencing