Event Subscription for UE Location Reporting

UE Location Reporting - Feature Description

Table 1. Feature History

Feature Name

Release Information

Description

UE Location Reporting to GMLC through AMF Event Subscription

2024.04.0

The event exposure functionality enables the AMF to provide specific event notifications to peer Network Functions (NFs) or external clients, such as the Gateway Mobile Location Center (GMLC). This functionality allows the AMF to expose certain events related to UE to subscribed clients, enabling them to receive updates about these events. This feature provides location information of the UE to GMLC using AMF event exposure mechanism. GMLC subscribes for one time location event report from AMF through UDM.

Command introduced:

enable ngran-location reporting — Used in AMF global configuration mode to enable UE location reporting.

Default Setting: Disabled – Configuration Required

UE Location Reporting to SMF through AMF Event Subscription

2026.01.0

AMF handles event subscriptions for location reporting. This works similarly to the GMLC functionality. However, the SMF subscribes directly to the AMF for location information. In contrast, GMLC subscribes to AMF via UDM for location information.

AMF provides the subscriber's location information to the GMLC or SMF using the event subscription mechanism.

The GMLC subscribes to a one-time location event report from the AMF through the UDM by invoking the event subscription service of the UDM. Subsequently, the UDM initiates the event exposure subscription API towards the AMF.

After sending a response to the UDM, if the subscription request is for an immediate location, the AMF provides the last known user location to the GMLC and deletes the subscription locally, as it is a one-time report. If the subscription request is for the current location, the AMF, based on the UE state, either invokes NG-RAN location reporting procedures towards the gNB or performs paging to fetch the current location of the UE and sends the location report to the GMLC accordingly. If the system fails to fetch the current location, the AMF sends the last known user location to the GMLC.

This feature supports the reporting of UE location for non-emergency subscribers. Following are the key points for this feature to work:

  • If the feature is not enabled through configuration or unsupported combinations are used, AMF rejects the request with a 403, UNSPECIFIED error.

  • AMF supports SUPI, GPSI, and PEI as UE identifiers, with SUPI being preferred option. AMF supports only one GPSI per UE.

  • Although SUPI, PEI, and GPSI are considered conditional IEs according to the specifications, the AMF treats at least one of them as mandatory for its functionality. Therefore, the AMF requires at least one of these IEs to be present.

  • AMF starts a timer for 50 seconds when location reporting control is sent to gNB. In case of no response from gNB and if session exists, AMF sends the last known location to GMLC or SMF.

  • If AMF receives a new subscription request from the same peer NF (same NF ID) while an older subscription is still active, AMF deletes the older subscription and proceed with processing of new request.

If AMF receives a subscription request during a handover, the AMF proceeds based on the handover type. For an Xn Handover (XnHo), the AMF waits for the XnHo to complete. It then proceeds with subscription or location processing. For an N2 handover (N2ho) without an AMF change, the AMF sends the last known location.

AMF supports Monitoring Subscription (Mon sub) for:

  • Create Subscription Request and Response messages.

  • Event Notification Request and Response messages (AMF logs responses only on the REST endpoint side).

  • Location Reporting Control, Location Report, and Location Failure Indication messages.

UE Location Reporting - Limitations

Following are the limitations of this feature:

  • The event subscription functionality is available exclusively for location report triggers under the following conditions:

    • UE Type: Single UE

    • Report Type: One-time report

    • Location Filter: Cell-ID only

  • AMF does not support UE location reporting in roaming scenarios.

  • AMF does not support modify and delete operations for subscribed events.

Enable NG-RAN Location Reporting

Follow the steps to enable NG-RAN location reporting under the AMF global configuration mode.

Procedure


Step 1

Enter the AMF configuration mode.

config

Example:

[amf] amf# config 

Step 2

Access AMF Global Location Configuration.

amf-global location

This command displays the possible completion as:
{ ngran-reporting | positioning } 

Step 3

Enable NG-RAN location reporting.

ngran-reporting enabled

Step 4

Save and commit the configuration.


GMLC/SMF Profile Configuration

GMLC/SMF profile configuration includes:

  • Operator Policy Network Element Profile Configuration

  • NF Client Profile Configuration for Mutual Transport Layer Security (mTLS)

  • GMLC/SMF Profile Configuration

  • Failure Handling Profile Configuration


Note


AMF sends out the event notifications without a GMLC/SMF profile also, but it does not support FHT/MTLS functionality in the absence of GMLC/SMF profile configuration.


Configure GMLC or SMF in Network Element Profile List

Follow the steps to configure GMLC or SMF network element profile under the operator policy configuration mode.

Procedure


Step 1

Enter the AMF configuration mode.

config

Example:

[amf] amf# config 

Step 2

Access AMF Global Configuration.

amf-global

Step 3

Specify the operator policy under the AMF global configuration.

operator-policy policy_name

The operator policy defines specific rules and configurations that apply to the network elements under this policy. Replace policy_name with the actual name of the policy you want to configure.

Step 4

Configure the Network Element Profile List under the Operator Policy.

network-element-profile-list network_element_profile_list_name

Specify the network_element_profile_list_name and accordingly GMLC or SMF (as specified) profile is used for location-based services.

Step 5

Save and commit the configuration.


Configure GMLC or SMF Profile

Follow the steps to configure the GMLC or SMF profile with an NF client profile and a failure handling profile, which are required for mTLS and failure handling. This setup ensures that the GMLC or SMF can securely and reliably provide location services within the network.

Procedure


Step 1

Enter the AMF configuration mode.

config

Example:

[amf] amf# config 

Step 2

Enter Network Element Profile Configuration Mode for GMLC or SMF.

profile network-element profile_name

This command creates or modifies a network element profile for the GMLC or SMF as specified. This profile contains specific configurations for the GMLC or SMF.

Step 3

Set the NF Client Profile

nf-client-profile nf_client_profile_name

This command sets the NF client profile to specified name. This is required only if Mutual Transport Layer Security (mTLS) is being used. The NF client profile contains the necessary configurations for mutual authentication and secure communication between network functions.

Step 4

Set the Failure Handling Profile

failure-handling-profile failure_handling_profile_name

This command sets the failure handling profile to specified name. This is required only if specific failure handling mechanisms are needed. The failure handling profile defines how the system should respond to various types of failures, ensuring robustness and reliability.

Step 5

Save and commit the configuration.


Configure NF Client Profile for GMLC or SMF

Follow the steps to configure the NF client profile for GMLC or SMF. You need to create and associate this profile to GMLC or SMF for Mutual Transport Layer Security (mTLS). This ensures a higher level of security by verifying the identities of both the client and the server.


Note


For secure communication using SCP/mTLS, the SMF is required to include the user-agent header in every Event subscription request it sends to the AMF.


Procedure

Step 1

Enter the AMF configuration mode.

config

Example:
[amf] amf# config 

Step 2

Create a NF Client Profile.

profile nf-client nf-type

Specify the profile nf-client nf-type as gmlc or smf (as required).

Example: For GMLC, profile nf-client nf-type gmlc

Step 3

Specify GMLC or SMF profile.

  • For GMLC: gmlc-profile gmlc_profile_name

    This GMLC profile is associated with the NF Client Profile.

  • For SMF: smf-profile smf_profile_name

    This SMF profile is associated with the NF Client Profile.

  • For SCP: scp-profile scp_profile_name

    This SCP profile is associated with the NF Client Profile.

Step 4

Define a locality within the GMLC or SMF profile.

locality locality_name

Step 5

Set the priority for the specified locality.

priority priority_value

Step 6

Define the type of service name for the locality.

service name type

Note

 

For sending event notfication through SCP, You must configure the service name namf-evts.

Step 7

Specify the endpoint profile.

endpoint-profile profile_name

Step 8

Set the capacity for the specified endpoint profile.

capacity capacity_value

Step 9

Set the priority for the specified endpoint profile.

priority priority_value

Step 10

Define the URI scheme to be used for the endpoint profile.

uri-scheme uri_scheme_name

Step 11

Specify the server name for the endpoint profile

server-name server_name

Step 12

Specify the endpoint name within the endpoint profile.

endpoint-name endpoint_name

Step 13

Set the priority for the specified endpoint.

priority priority_value

Step 14

Configure the primary IPv4/IPv6 address for the endpoint.

primary ip-address { ipv4 address ipv4_address | ipv6 address ipv6_address }

Step 15

Configure the port number for the primary IP address.

primary ip-address port ipv4_port_number

Step 16

Save and commit the configuration.


Configure Failure Handling Profile for GMLC or SMF

Follow the steps to configure the Failure Handling profile for GMLC or SMF.

Procedure

Step 1

Enter the AMF configuration mode.

config

Example:
[amf] amf# config 

Step 2

Create a NF Client Failure Handling Profile.

profile nf-client-failure nf-type { gmlc | smf | any }

Step 3

Specify the GMLC or SMF failure handling profile to be used.

profile failure-handling failur_hanling_profile_name

This GMLC or SMF profile is associated with the NF Client Profile.

Step 4

Define the type of service name for the failure handling profile.

service name type { ngmlc-loc | namf-evts }

Step 5

Set the response timeout value for the service.

responsetimeout responsetimeout_value

Step 6

Specify the message type for the failure handling profile.

message type AmfEventNotification

Step 7

Set the status code for the specified message type.

status-code status_codtype

Step 8

Set the number of retransmission attempts for the specified status code.

retransmit retransmit_count

Step 9

Set the interval between retransmission attempts.

retransmit-interval retransmit_interval

Step 10

Specify the action to be taken when the specified status code is encountered.

action retry-and-ignore

retry-and-ignore indicates that the system retries the operation and then ignore the failure if it persists.

Step 11

Save and commit the configuration.


View Active Event Subscription

Following is an example of show command to view the active event subscritption.

[amf] amf# show subscriber supi 123456789012345

      "EventSubscriptionData": [
        {
          "EventList": [
            {
              "Type": "LOCATION_REPORT",
              "LocationFilterList": [
                "CELL_ID"
              ],
              "RefId": 100
            }
          ],
          "EventNotifyUri": "http://10.1.14.150:9110/namf-evts/v1/eventNotificationUrl",
          "NotifyCorrelationId": "ngmlc-evt-supi-XXXX-XXXXX",
          "Options": {
            "Trigger": "ONE_TIME"
          },
          "SubscriptionId": "amfevt-1717581907694157698-imsi-123456789012345",
          "NfType": "UDM"
        }
      ]

Note


The NfType value in above example will be SMF, UDM, or ANY (if NFtype is unknown).


OAM Support for Event Subscription

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

Bulk Statistics Support for Event Subscription - UE Location Reporting

AMF supports the following statistics for the GMLC event subscription for UE location reporting.

UDM STATS Under n8_service_stats

Following are the UDM STATS records under n8_service_stats.

Messages

Metrics Message Type

Create Event Subscription Req & Rsp

NudmAMFCreateSubscriptionReq

NudmAMFCreateSubscriptionRsp

Following is the example of stats output:

  • n8_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="NudmAMFCreateSubscriptionReq",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 1
    
  • n8_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="NudmAMFCreateSubscriptionRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 1
    

GMLC STATS Under nl2_service_stats

Following are the GMLC STATS records under nl2_service_stats.

Messages

Metrics Message Type

Event Notification Req & Rsp

NgmlcEventNotificationReq

NgmlcEventNotificationRsp

Following is the example of stats output:

  • nl2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="NgmlcEventNotificationReq",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 1
    
  • nl2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="NgmlcEventNotificationRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 1
    

NGAP STATS Under n2_service_stats - GMLC and SMF

Following are the NGAP STATS records under n2_service_stats.

Messages

Metrics Message Type

Location Procedure Messages

N2LocationReport

N2LocationReportingControl

N2LocationReportingFailureIndication

Following is the example of stats output:

  • n2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="N2LocationReport",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 2
    
  • n2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_type="N2LocationReportingControl",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-051615",status="success"} 1
    
  • n2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0",message_type="N2LocationReportingFailureIndication",
    reason="",roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 1
    

NGAP STATS Under AMF Protocol - GMLC and SMF

Following are the NGAP STATS records under amf_ngap_message_total.

Messages

Metrics Message Type

Location Procedure Messages

N2LocationReport

N2LocationReportingControl

N2LocationReportingFailureIndication

Following is the example of stats output:

  • amf_ngap_message_total{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_direction="inbound",message_type="N2LocationReport",
    service_name="amf-protocol-ep"} 1
    
  • amf_ngap_message_total{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_direction="outbound",message_type="N2LocationReportingControl",
    service_name="amf-protocol-ep"} 1
    
  • amf_ngap_message_total{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="3",message_direction="inbound",message_type="N2LocationReportingFailureIndication",
    service_name="amf-protocol-ep"} 1
    

AMF supports the following statistics for the SMF event subscription for UE location reporting.

Messages

Metrics Message Type

Create Event Subscription Req & Rsp

N11AMFCreateSubscriptionReq/Rsp

Event Notification Req & Rsp

N11AMFEventNotificationReq/Rsp

Following are the examples of stats output:

  • n11_service_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="N11AMFCreateSubscriptionReq",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 1
  • n11_service_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="N11AMFCreateSubscriptionRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 1
  • n11_service_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="N11AMFEventNotificationReq",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_12-123456",status="success"} 1
  • n11_service_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="N11AMFEventNotificationRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_12-123456",status="success"} 1

AMF supports the following statistics for the event subscription for UE location reporting if nfType is unknown.

Messages

Metrics Message Type

Create Event Subscription Req & Rsp

AMFCreateEventSubscriptionReq/Rsp

Event Notification Req & Rsp

AMFEventNotificationReq/Rsp

Following are the examples of stats output:

  • amf_event_subscription_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="AMFCreateEventSubscriptionReq",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 3
  • amf_event_subscription_stats{app_name="AMF",cluster="clu1",
    data_center="dc1",instance_id="3",message_type="AMFCreateEventSubscriptionRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 3
    
  • amf_event_subscription_stats{app_name="AMF",cluster="clu1",data_center="dc1",
    instance_id="3",message_type="AMFEventNotificationReq",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 3
  • amf_event_subscription_stats{app_name="AMF",cluster="clu1",data_center="dc1",
    instance_id="3",message_type="AMFEventNotificationRsp",
    reason="",roaming_status="HOMER",service_name="amf-service",
    slice_data="_2-333333",status="success"} 3