SCP integration for indirect communication with delegated discovery

Feature Description

This feature enables the Policy Control Function (PCF) to support indirect communication using the Service Communication Proxy (SCP) based on the 3GPP-defined Model D (delegated discovery).

When this feature is enabled, PCF sends requests to SCP instead of directly communicating with target Network Functions (NFs). The SCP performs NF discovery using NRF, selects the appropriate NF instance, and routes the request.

By default, PCF continues to use direct communication with NRF-based discovery (Model B). SCP-based communication can be configured per interface. If SCP is not available, PCF falls back to Model A direct communication. This feature enables centralized routing and reduces NF discovery handling within PCF.

  • PCF acts as Producer for SMF (N7)

  • PCF acts as Consumer for BSF (Nbsf_Management)

  • SCP performs discovery, selection, and routing


Note


Current release support is limited to SMF and BSF only.

How it works

SMF Flow (Model D – N7)

  • Delegated Discovery: PCF sends requests to the SCP with discovery parameters. The SCP performs the NRF discovery and selects the target NF.

  • Header Handling: Per 3GPP TS 29.500, the SCP removes 3gpp-Sbi-Target-apiRoot and all 3gpp-Sbi-Discovery-* headers before forwarding requests to the PCF.

  • Binding Persistence: PCF receives and stores 3gpp-Sbi-Routing-Binding, 3gpp-Sbi-Binding, and 3gpp-Sbi-NF-Peer-Info to maintain session stickiness for subsequent requests and callbacks.

  • Callback Strategy (Model D – SMF): PCF utilizes the stored 3gpp-Sbi-Routing-Binding for precise routing.

  • Response Binding Header: PCF includes 3gpp-Sbi-Binding in all responses (for N7 Create/Update procedures).

  • Enhanced Routing Logic: PCF utilizes the stored 3gpp-Sbi-Routing-Binding or 3gpp-Sbi-Target-apiRoot (derived from the SMF notification-URI) for precise routing.

  • Register Request Handling: PCF sends 3gpp-Sbi-Binding along with 3gpp-Sbi-Discovery-* headers in Register requests via SCP.
  • Binding Storage: PCF stores the 3gpp-Sbi-Producer-Id or 3gpp-Sbi-Binding received in the SCP response.
  • De-Register Routing: PCF utilizes the stored 3gpp-Sbi-Producer-Id or 3gpp-Sbi-Binding for routing subsequent De-Register requests.

Configuration

  1. Enable Model D and SCP profile:

    config
              rest-endpoint model-d enabled
                rest-endpoint model-d scp-profile <scp_profile_name>
    Example:
                                                                                                                   
    profile nf-client nf-type scp                                                                                                                       
     scp-profile prof1                                                                                                                                  
      locality localscp                                                                                                                                 
       service name type nscp-routing                                                                                                                   
        endpoint-profile ep1                                                                                                                            
         endpoint-name ep1_prof1                                                                                                                        
          primary <ip-address> ipv4 192.168.14.51                                                                                                         
          primary <ip-address> <port> 9051                                                                                                                  
         exit                                                                                                                                           
        exit                                                                                                                                            
       exit                                                                                                                                             
      exit                                                                                                                                              
     exit                                                                                                                                               
    exit                            
  2. Enable Interfaces for Model-D

    rest-endpoint model-d interfaces <NF-name> true/false
    Example:
    rest-endpoint model-d interfaces nbsf-management true
    rest-endpoint model-d interfaces n7-callbacks true

OAM Support: Bulk Statistics

The following counters are implemented to monitor Model-D routing performance and fallback events. All metrics are of type Counter (Unit: Int64).
Table 1. Bulk Statistics Support for Model-D
Metric Name Description Label names

outgoing_request_routing_total

Total Outgoing Request Count by Routing Mode (Model D)

interface_name, service_name, operation_name, command, routing_mode, result_code

outgoing_request_routing_time

Total Response Time for Outgoing Requests by Routing Mode (Model D)

interface_name, service_name, operation_name, command, routing_mode, result_code

model_d_fallback_total

Total Model D fallback events from SCP to direct routing

interface_name, operation_name, reason