VoNR through the Rx Interface

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Products or Functional Area

5G-PCF

Applicable Platform(s)

SMI

Feature Default Setting

Enabled – Configuration Required

Related Changes in this Release

Not Applicable

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

Revised the content to include the new and updated call flows that reflects support for the PCF to PCRF interaction which encourages the VoLTE calls. Also, added procedure to configure the gRPC interface.

2020.01.0

First Introduced.

Pre 2020.01.0

Feature Description

PCF supports the full Diameter stack along with the standard Diameter interfaces like Rx. With this support, you can configure PCF to handle VoLTE calls for 4G and VoNR for 5G. In 4G scenarios, PCF serves as a proxy and performs the session binding lookups to re-route the 4G calls to the PCRF instances for processing. PCF supports the PCRF GR active/active mode for routing messages to the secondary PCRF site when the primary site is unavailable.

Prerequisites

To enable the interaction between PCF and PCRF for VoLTE/VoNR calls, ensure to perform the following on PCRF:

  • Install the following features by adding them to the /etc/broadhop/pcrf/features file:

    • com.cisco.bindingdb.feature

    • com.broadhop.diameter2.local.cnat.feature

  • On all the QNS nodes, ensure to add the Diameter endpoint gRPC service names in the /etc/hosts file.

  • Include the etcd IPs in the qns.conf: -Ddiameter.registry.etcd.hosts=comma separated etcd-external IP file.

  • Make sure that the routable network connectivity exists between the node where the PCF Diameter endpoint is hosted, the QNS engine VMs for site-local, and the remote (in GR mode) communication (over HTTP2).

  • The Rx peer must be connected to both the local and remote PCF Diameter endpoints simultaneously with one or both the connections as active. For the active Rx connection from AF to PCF, the AF peer handles and receives the Rx requests from other PCF instance without any connectivity issues.

  • For the PCRF and PCF components to communicate, the configured port numbers must be open on the firewall.

Standards Compliance

The VoLTE call handling through the Rx message rerouting feature complies with the following standards:

  • 3GPP TS 29.510 V15.2.0 (2018-12)

Limitations

In the current release, this feature has the following limitations:

  • The deployment or configuration of the PCF Binding database (SkDB) Mongo instances is not supported via PCF. The PCF binding database instances are deployed through the PCRF installation with PCF SkDB as separate "sites."

  • The Gx interface traffic should not be configured on PCF because it supports only the Diameter Rx interface with the Rx rerouting enabled.

  • The remote binding database lookup in PCRF for a session can be enabled only when the existence is configured.

  • If the PCRF BindingDB lookup capability is disabled in PCF, then PCF forwards all the requests for which the associated sessions are not found in the PCF CDL database to the local PCRF.

How it Works

Call Flows

This section describes the following call flows.

Session Create, Update, and Terminate Call Flow

This section describes the call flow to create, update, or terminate a session.
Figure 1. Session Creation, Update, and Termination Call Flow
Table 3. Session Creation, Update, and Termination Call Flow Description

Step

Description

1

The SMF sends a Policy Control Create request to the PCF REST endpoint.

2

The PCF REST endpoint forwards the request to the PCF Engine.

3

The PCF Engine sends a Create Session request to Session DB/CDL.

4

The Session DB/CDL sends an acknowledgement to the PCF Engine for the Create Session request.

5

The PCF performs a binding or tagging the database and sends it to the Binding DB.

6

The PCF confirms that the binding or tagging of the database is complete by sending an acknowledgement to the PCF Engine.

7

The PCF Engine sends Policy response to the PCF REST endpoint.

8

The PCF REST endpoint creates a response and sends it to the SMF.

9

A new session is created on PCRF. The P-GW sends Gx CCR request to the PCRF LB.

10

The PCRF LB sends the Diameter request to the PCRF QNS.

11

The PCRF QNS creates a session in the session database and sends it to PCRF.

12

The session database sends an acknowledgement to the PCRF indicating that the session is created.

13

The PCRF QNS performs the binding and notifies the PCRF.

14

The PCRF sends an acknowledgement to the PCRF QNS indicating that the binding is created.

15

The PCRF QNS sends Diameter response to the PCRF LB.

16

The PCRF LB sends Gx CCA request to the P-GW.

17

The P-CSCF sends Rx AAR request to the PCF Diameter endpoint.

18

The PCF Diameter endpoint checks if the session exists on PCF.

19

If the PCRF BindingDB lookup is enabled, the PCF Diameter endpoint checks whether the session exists on PCRF.

20

In the existing session of the PCRF SkDB instance with lookup enabled, the PCF Diameter endpoint sends the Rx AAR request over the gRPC interface to the PCRF QNS.

21

The PCRF QNS processes the AAR request.

22

The PCRF QNS binds or tags the database and sends an acknowledgement to PCRF.

23

The PCRF acknowledges the binding or tagging of the database and notifies the PCRF QNS.

24

The PCRF QNS sends Create Session request to the PCRF.

25

The PCRF sends an acknowledgement for the request to the PCRF QNS.

26

The PCRF QNS sends Rx AAR request to the PCRF QNS.

27

The PCRF QNS sends Diameter request to the PCRF LB.

28

The PCRF LB sends Gx RAR request to the P-GW.

29

The P-GW sends the Gx RAA response to PCRF LB.

30

In the existing session of PCF, the PCF Diameter endpoint sends Diameter request to the PCF REST endpoint.

31

The PCF Engine processes the AAR request.

32

The PCF Engine sends a Create Session request to Session DB/CDL.

33

The Session DB/CDL sends an acknowledgement to PCF Engine.

34

PCF sends a Create New Binding/Tag request to the Binding DB.

35

The Binding DB sends an acknowledgement to PCF.

36

The PCF Engine sends Notification request to the PCF REST endpoint.

37

The PCF REST endpoint sends a Diameter response request to the PCF Diameter endpoint.

38

The PCF Diameter endpoint sends Policy Notification Request to the P-CSCF.

39

The P-CSCF sends the Policy Notification response to the PCF Diameter endpoint.

40

The PCF Diameter endpoint sends the Rx AAA request to the P-CSCF.

Binding Database Query Failures Call Flow

This section describes the PCF failover for the binding database query call flow.
Figure 2. PCF Failover for Binding Database Query Call Flow
Table 4. PCF Failover for Binding Database Query Call Flow Description

Step

Description

1

When a Gx session exists on PCRF and Rx AAA response is received, P-CSCF sends the Rx AAA request to the PCF Diameter endpoint.

2

For a local PCRF failure, the PCF Diameter endpoint checks if the session exists on local PCRF.

3

If the PCRF query times out due to the local PCRF failure or network issue, PCF reattempts sending the query to the remote PCRF instance.

4

If the session is not found, PCRF notifies the PCF Diameter endpoint.

5

If the PCF Diameter endpoint query times out due to the local PCF or PCRF failure or network issue, the PCF Diameter endpoint reattempts to check if the session exists in the local PCRF.

Binding Database Query Call Flow

This section describes the PCF Rx rerouting and PCRF binding database call flow.

Figure 3. PCF Rx Rerouting and PCRF Binding Database Call Flow
Table 5. PCF Rx Rerouting and PCRF Binding Database Call Flow Description
Step

Description

1

When a Gx session exists on the PCRF and the local PCF has received the original AAR Initialization message, the P-CSCF sends the Rx AAR request to the local PCF Diameter endpoint.

2

The PCF Diameter endpoint performs a parallel local data store lookup and a binding database query toward the site local PCRF SkDB instance. The PCF Diameter endpoint checks if the session exists on the PCRF.

3

The PCRF notifies the PCF Diameter endpoint that the session exists.

4

The PCF Diameter endpoint forwards the Rx AAR request to the PCRF QNS engine.

5

If the PCF Diameter endpoint query times out due to the local PCRF failure or network issue, the PCF reattempts sending the query to the local PCRF instance.

6

If the session is not found, then the PCRF notifies the PCF Diameter endpoint.

7

The PCF Diameter endpoint reattempts to check if the session exists in the remote PCRF instance.

8

If the session is found, the PCRF notifies the PCF Diameter endpoint that the session exists.

9

The PCF Diameter endpoint sends the Rx AAA response to the QNS Engine.

PCF Failover Call Flow

This section describes the PCF failover call flow.
Figure 4. PCF Failover Call Flow
Table 6. PCF Failover Call Flow Description

Step

Description

1

When a Gx session exists on the PCRF and the local PCF has received the original AAR Initialization message, the PCRF sends the Rx RAR request over gRPC to the local PCF Diameter endpoint.

2

If the local PCF is unreachable or is inactive, the PCRF reattempts to send the Rx RAR request over gRPC to the remote PCF Diameter endpoint.

3

If the remote PCF Diameter endpoint is connected, it forwards the Rx RAR request to P-CSCF.

4

The P-CSCF sends the Rx RAA request to the remote PCF Diameter endpoint.

5

The Remote PCF Diameter endpoint sends the Rx RAA response to the PCRF.

Enabling Interaction Between PCF and PCRF for VoNR Calls

This section describes the configurations that you must perform to enable the interaction between PCF and PCRF.

  1. Configuring the Interface Between PCF and PCRF

Configuring the Interface Between PCF and PCRF

The gRPC interface is configured on PCRF to accept the Diameter request. You can configure the gRPC interface by adding the com.broadhop.diameter2.local.cnat.feature to the /etc/broadhop/pcrf/features file.


Note

The com.broadhop.diameter2.local.cnat.feature capability is an additional requirement to the standard list of features that are required for 4G PCRF to be operational.


To enable the access, configure the following system properties using the existing "properties" CLI which is available through the engine node:

  • diameter grpc channel count integer : Specifies the number of gRPC channels that each diameter-ep replica opens toward a diameter-engine.

  • diameter group group stack stack grpc ext-svc ip ip-address port port : Indicates the externally accessible IP: Port for the diameter-ep service that belongs to the specified group and stack. This property enables the specified diameter-ep to receive incoming gRPC requests from diameter-engines outside the K8 cluster.

  • diameter group group stack stack diameter-engine alt-engines primary svc-name external-service-name port port : Indicates the external-service-name that refers to the service defined under the root level external-services CLI node. The port number corresponds to the port number on which the alternate primary engine is listening (for gRPC requests). This port number must be included in the list of port numbers for the configured external-service.

  • diameter group group stack stack diameter-engine alt-engines secondary svc-name external-service-name port port : Acts as the alternative for the primary diameter-engine that is configured for diameter group group stack stack diameter-engine alt-engines primary svc-name external-service-name port port . If PCF diameter-ep is unable to send the request to the primary engine, it reattempts sending the request on the secondary diameter-engine.

  • diameter group group stack stack diameter-engine alt-engines check-session-exists [ true | false] : Enables verification of the session's existence (using PCRF BindingDB/SkDB) before forwarding the request to the alternate engine. If this property is enabled and the session is not found on the alternate engines, then the message is sent to the local pcf-engine for error handling. By default, the property is configured as False.

  • external-services svc-name ips list of ip addresses ports list of ports : Holds the external service definition for services that exist outside the K8 cluster. This property creates an Egress or external K8 service that comprises of the IP addresses/port numbers which allows access to services outside the cluster. For example, alternate Diameter engines.

  • etcd external-ips list of IP addresses : Lists the externally accessible IP addresses for the etcd Diameter endpoint registry that enables access beyond the K8 cluster.

VoNR through Rx Interface OA&M Support

This section describes operations, administration, and maintenance information for this feature.

Statistics

The following metric tracks the flow of messages between PCRF and PCF:

  • grpc_message_send_total: Collects the total count of messages that are sent over the gRPC toward the PCF Engine.

Table 7. Statistic Description

Label

Description

command_code, application, remote_service

Counts the number of Diameter requests sent toward the Diameter Engines.

The command_code represents the Diameter command code and the application represents the Diameter application to which the message belongs.

The remote_service corresponds to the name of the Diameter engine service to which the request is forwarded to.

For the PCF Engine, the metric corresponds to the Diameter Engine value.

For alternate engines, it corresponds to the name of the external service selected.

For information on statistics, see the Ultra Cloud Core 5G Policy Control Function, Statistics Reference.