N28 Interface

Feature Summary and Revision History

Summary Data

Table 1. Summary Data
Applicable Product(s) or Functional Area PCF
Applicable Platform(s) SMI
Feature Default Setting Enabled – Always-on
Related Documentation Not Applicable

Revision History

Table 2. Revision History
Revision Details Release
First introduced. 2020.01.0

Feature Description

The N28 interface supports the key charging and quota handling scenarios.

Figure 1. N28 Interface

PCF performs the following capabilities through the N28 interface:

  • Retrieving or subscribing to policy counter information from Charging Function (CHF) over N28 for use in policy decisions over N7 only. This includes subscription to specific counters or all.

  • Support for receiving notifications for policy counter information changes from CHF and using the information for policy decisions.

  • Support for using the retrieved counters in policy decisions through Virtual Services (VS).

  • This includes subscription to specific counters or all Support for Service Based Architecture (SBA) interface toward CHF. Currently, it supports:

    • Initial Subscribe toward CHF on N7 session creation (if enabled).

    • Notify from CHF.

    • Unsubscribe toward CHF on N7 session termination.


    Note

    Intermediate Subscribe and CHF driven termination is currently not supported.
  • NRF discovery of CHF:

    • PCF also supports the local configuration for CHF endpoints.

    • If CHF endpoints are configured locally, the configured endpoints are used, and discovery may be skipped.

    • Currently discovery is only supported by NFType and does not support any criteria.

  • Endpoints caching - Locally cache and reuse of the discovered CHF endpoints for sending N28 messages.

  • Random Load Balancing for cached Endpoints.

How it Works

This section describes how this feature works.

The Nchf_SpendingLimitControl service enables the NF service consumer to retrieve policy counter status information per UE from the CHF by subscribing to spending limit reporting (that is notifications of policy counter status changes).

If the spending limit reporting is no more required, the Nchf_SpendingLimitControl service enables the NF service consumer to unsubscribe from the reporting.

On receiving an N7 Create a Session request, if the N28 lookup or counter subscription is configured, PCF Engine triggers a session creation and subscription toward CHF. PCF then retrieves the counter information from the CHF response and generates virtual services for each counter which are used for making policy decisions.

If the errors or timeouts policy decisions continue without N28 counter information or policy (N7 response is success but excludes N28 based policy), then the N7 session and N28 session terminate.

The interface or model details for the N28 interface are provided in 3GPP TS29.594.

Call Flows

This section describes the key call flows for this feature.

Counter Subscription/Retrieval (N28 Session Creation)

This section describes the Counter Subscription/Retrieval (N28 Session Creation) call flow.

The decision to subscribe to N28 counters is determined based on the presence of the SpendingLimitRequest service configuration. If this service configuration is present in the policy, then the Policy Engine triggers the N28 session creation.

Figure 2. N28 Subscribe (N7 Create) Call Flow

Note

  • Counter retrieval:

    • Generating the list of counters to subscribe is based on the SpendingLimitSubscription and RequestPolicyCounters service configuration: SpendingLimitSubscription also includes a list of counters to subscribe to. The RequestPolicyCounters service also satisfies the same role (providing a list of counters to subscribe to) and is expected to be used in cases where counters can come from different sources. For example, specific counters per LDAP attribute.

    • Policy Engine sends the subscribe request to PCF REST EP. The REST EP in turn attempts to lookup a CHF (based either on local configuration or via NRF discovery).

      • If no endpoint is available, error response is generated towards the engine.

      • If local endpoint is available, the REST EP invokes the Nchf_SpendingLimitControl_Subscribe operation towards the CHF.

        • If no response/error response is received, an error response is generated towards the engine for further action.

        • On success response, the counter information is forwarded to engine for further action.

      • If discovery is performed and endpoint is available, the REST EP invokes the Nchf_SpendingLimitControl_Subscribe operation towards the CHF which is handled as mentioned above.

        • The discovered CHF EP is also cached locally (in a TTL cache) so that it can be used for subsequent N28 operations.

        • For subsequent operations, the one of the locally cached EPs is randomly selected (that matches the selection criteria). Currently, only the NFType is supported as selected criteria.

        • The cached NFs are expired from local cache based on the ValidityPeriod provided by NRF in discovery response. Any subsequent operation that requires the EP will then result in a fresh discovery.

        • The discovered NF profile caching is generic and currently applicable for both CHF and UDR.


Table 3. N28 Subscribe (N7 Create) Call Flow Description

Step

Description

1

The SMF sends a N7 Create request to the PCF.

2

Based on the routing configuration, PCF configures the lookup or caches the CHF.

3

If CHF is not found locally, then the PCF sends a Discover CH request to NRF.

4

The NRF responds with the CHF profiles with the PCF.

5

The PCF sends a N28 Subscribe request to the CHF.

6

The CHF responds with the N28 Subscribe result to the PCF.

7

The PCF performs the policy calculation.

8

The PCF sends the N7 Create response after calculating the policy to the SMF.

Unsubscribe Counters (N28 Session Termination)

This section describes the Unsubscribe Counters (N28 Session Termination) call flow.

On receiving an N7 terminate request, PCF triggers an N28 Nchf_SpendingLimitControl_Unsubscribe request towards CHF for unsubscribing for changes in N28 counter information.

Figure 3. N28 Unsubscribe (N7 terminate) Call Flow
Table 4. N28 Unsubscribe (N7 terminate) Call Flow Description

Step

Description

1

The SMF sends a N7 Delete request to the PCF.

2

The PCF sends a Delete Session request to the CDL.

3

The PCF sends a N28 Unsubcribe request to the CHF.

4

The PCF forwards the N7 Terminate Success message to SMF.

5

If the unsubscribe request is successful, then the CHF sends the N28 Unsubscribe response to the CHF.

N28 Counter-Based Policy

Similar to existing Diameter Sy implementation, the counters retrieved from CHF are made available for policy decisions via Virtual Services (VS).

A Virtual Service (VS) is created per policy counter with counter ID and status as AVPs. This allows the binding of the counters to CRD tables for VS evaluation.

N28 Virtual Service Details

The N28 Virtual Service details are as follows:

  • VS Name: Name will be of the format: CounterId-CounterStatus

  • VS AVPs: Following AVPs will be added to the VS:

    • Code: counter-id, Value: the counter ID value

    • Code: counter-status, Value: the counter status

Notification of Counter Changes from CHF

This section describes the Notification of Counter Changes from CHF call flow.

In case of changes in the subscribed policy counters, the CHF notifies PCF using the Nchf_SpendingLimitControl_Notify operation. The PCF supports this operation through the PCF REST endpoint.

On receiving the notification, the REST EP performs a datastore lookup to determine the route and then forward the notification message to the selected engine group.

On the PCF Engine, the existing session is updated with the new counter information and policy is recalculated (using the new VS) and applicable decisions are pushed on the N7 interface towards SMF via N7 Notify operation.

Figure 4. N28 Notify
Table 5. N28 Notify Call Flow Description

Step

Description

1

If the N7 and N28 sessions are available, then CHF sends a N28 Notify request to the PCF.

2

After the N28 session is updated with the new information, the policy is recalculated and the updated session is saved in the CDL.

3

The PCF sends a N7 Update Notification message to the SMF.

4

The SMF sends response for the N7 Update Notification message to the PCF.

5

The PCF sends a N28 Notification Success response to the CHF.

Configuration Support for the N28 Interface

This section describes how to configure support for the N28 interface using the following services.

  • SpendingLimitSubscription

  • RequestPolicyCounters

  • AvpServiceConfiguration

SpendingLimitSubscription

If SpendingLimitSubscription is configured in a policy, then the N28 session creation or subscription is triggered on session create. Only one instance of this configuration is allowed or else any random instance is picked.

The configuration includes subscriber identifiers (Subscriber SUPI and GPSI) and a list of Counter Ids to subscribe. The counters can be directly configured or can be pulled from other sources with the "Pull Value from…" configuration.

Before setting the service parameters, ensure that you create a use case template and add a service for this configuration. For details, see Configuring the Use Case Template and Adding a Service.

RequestPolicyCounters

This section describes the parameters for the RequestPolicyCounters configuration.

Use this configuration to add counters in the subscription list while generating the N28 Subscribe request. Multiple instances of this configuration can exist. The application collects all instances and includes counters from all in the final CounterIds list (to subscribe).

Before setting the service parameters, ensure that you create a use case template and add a service for this configuration. For details, see Configuring the Use Case Template and Adding a Service.

The following table describes the RequestPolicyCounters service parameters.

Table 6. RequestPolicyCounters Configuration Parameters

Parameters

Description

Priority

The priority of the message for processing. The higher the number, the higher the priority.

Policy Counter Group

Represents a logical name for the counter set included in the service configuration. The field pulls value from the OfferGroup column.

Policy Counter Id

Specifies the policy counter identifier name.

AvpServiceConfiguration

This section describes the parameters for the AvpServiceConfiguration configuration.

Before setting the service parameters, ensure that you create a use case template and add a service for this configuration. For details, see Configuring the Use Case Template and Adding a Service.

The following table describes the AvpServiceConfiguration service parameters.

Table 7. AvpServiceConfiguration Configuration Parameters

Parameters

Description

Priority

The priority of the message for processing. The higher the number, the higher the priority.

Group Name

Specifies a group name. Only 1 per "Group Name" is allowed to be active. If multiple configurations are added highest priority per "Group Name" is used.

Code

Specifies a code for the AVP.

Value

Specifies a value for the AVP.

Troubleshooting

Perform the following when the message routing fails:

  • Ensure that the SpendingLimitRequest service configuration is available and enabled in the subscribed service list in Policy Builder.

  • If the CHF is configured locally, ensure that the URL is specified in the correct format. For CHFs that are not configured locally, make sure to enable the NF discovery.

  • If discovery is enabled, ensure that the NRF URL is configured locally and is valid.

  • Enable the DEBUG level for com.cisco.pcf.endpoint.routing and review the pcf-rest-ep logs for any issues.

  • Review the data store pod health and the logs for information about the issues.

Configuring NF or Logical Groups

This section describes how to configure the NF locally or logical groups of the NFs.

To configure the NF or logical groups of the NFs, use following configuration in the Policy Ops Center console:

config 
  network-function logical_group_name 
  nf-info nf_type 
  service-version version_in_uri 
  http-endpoint list_of_base_urls 
  end 

NOTES:

  • network-function logical_group_name —Specify the name for a logical group of NFs

  • nf-info nf_type —Specify the type of NF that is configured. Currently, only NRF, CHF, and UDR are supported.

  • service-version version_in_uri —Specify the version field in the resource URI for accessing the NF services.

  • http-endpoint list_of_base_urls —Specify the base-urls that are used to consume services that are provided by the configured NF.

OAM Support

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

Statistics

This section provides the list of statistics and counters that are generated for the charging and quota handling scenarios.

The following metrics track the counter information:

  • async_svc_runnable_total: Captures the total count of the async service runnable count.

  • async_svc_runnable_total_seconds: Captures the total duration (in seconds) to process the async service runnable count.

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