Location Services

Feature Description - Location Services

Table 1. Feature History

Feature Name

Release Information

Description

MT-LR Location Services

2024.02.0

AMF supports the MT-LR location services using the Location Management Function (LMF) to determine the accurate position and location of the UE. AMF supports the MT-LR location services for regulatory requirements.

Command introduced:

location lmf-positioning mt-lr — Used to to enable MT-LR for location services.

Default Setting: Disabled – Configuration Required

Table 2. Feature History

Feature Name

Release Information

Description

Network Induced Location Request (NI-LR)

2025.02.0

AMF now includes functionality to facilitate location services for Network Induced Location Requests, ensuring compliance and improving service capabilities.

Command introduced:

location lmf-positioning ni-lr — Used to to enable NI-LR for location services.

Default Setting: Disabled – Configuration Required

Location Services - Compliance to 3GPP Specification Revision 18

2025.02.0

MT-LR and NI-LR supports revision 18.6 of the 3GPP specification. This update with the latest revision ensures compliance with the most current regulatory requirements.

Command introduced:

profile compliance compliance_profile_name { service service_name { version spec 3gpp_spec_version } } — Used to configure the 3gpp spec compliance version for namf-loc and nlmf-loc.

Default Setting: Disabled – Configuration Required

Supported Location Request Types

AMF supports various types of location requests to accurately determine the location of UE. These include:

  • Network Induced Location Request (NI-LR)

  • Mobile-Terminated Location Request (MT-LR)

Network Induced Location Request (NI-LR)

In NI-LR, when an emergency call goes to AMF, the serving AMF initiates the process to determine the location of the UE. This type of request is typically triggered by network operations or regulatory requirements, where the AMF actively seeks location information to ensure compliance with legal obligations. AMF coordinates with the LMF to accurately ascertain and update the location details of the UE to GMLC.

NI-LR-based location services are supported for both emergency-registered subscribers and normal subscribers with emergency PDU. This ensures that location information is readily available in critical situations to support emergency services.

Mobile-Terminated Location Request (MT-LR)

AMF supports location services to fulfill regulatory requirements, such as emergency calls and lawful intercepts.

In MT-LR, the Gateway Mobile Location Center (GMLC) initiates a request for location services. It forwards this request to the AMF, which utilizes the Location Management Function (LMF) to determine the location of the UE. Once the location is identified, the information is sent back to the GMLC.

AMF also supports queries from GMLC using the Generic Public Subscription Identifier (GPSI) to obtain location information.

AMF supports, "current location" and "current or last known location" for MT-LR. In case of "current or last known location" if the paging for UE fails or positioning fails due to any of the associated nodes, such as: LMF, UE, or gNB, then AMF returns the last known saved location if available.


Note


AMF does not support concurrent location request for the same UE. AMF aborts the processing of previous request and continues with the new request.


Architecture

Location Service consists of the following layers as part of the non-roaming location services architecture:

  • UE: The UE represents end-user devices, such as smart phones, tablets, or IoT devices. These devices interact with the network.

  • GMLC: GMLC provides the location information services related to mobile devices.

  • LCS Client: The LCS client is an external entity or application that requests location information for a specific mobile device.

  • LRF: The LRF is a component within the Location Services (LCS) architecture in cellular networks. LRF retrieves and provides the location information for mobile devices or user equipment (UE).

  • LMF: The LMF determines the geographical location of the UE.

  • AMF: The AMF is a key component in 5G networks. It manages mobility, session management, and security for user devices.

  • UDM: The UDM handles user-related data, including authentication, authorization, and subscription information.

  • RAN: The RAN connects user devices to the core network. It includes base stations and antennas.

  • N1 Interface: The N1 interface connects the UE and the RAN. It carries user data and control signaling.

  • N2 Interface: The N2 interface connects the AMF and the RAN. It handles signaling and data transfer between the core network and the RAN.

  • NL1 Interface: NL1 interface connects the LMF to the UE.

  • NL2 Interface: NL2 interface connects the AMF to the GMLC.

The following diagram describes the high level architecture for location services.

Figure 1. Non-roaming Location Services

Call Flows

This section describes the key call flows for this feature.

MT-LR Location Service Call Flow

The following call flow and messages between the various nodes complies with the 3GPP TS 123.273.

NI-LR Location Service Call Flow

The following call flow and messages between the various nodes complies with the 3GPP TS 123.273.

UE Positioning Call Flow

The following call flow and messages between the various nodes complies with the 3GPP TS 123.273.

Standard Compliance

This feature complies with the following standards specifications:

  • 3GPP TS 23.271 “Description of Location Services (LCS)

  • 3GPP TS 23.502 “Procedures for the 5G System (5GS)

  • 3GPP 23.273 v16.4 “5G System (5GS) Location Services (LCS)

  • 3GPP TS 29.515 “5G System; Gateway Mobile Location Services

  • 3GPP TS 29.518 “5G System; Access and Mobility Management Services; Stage 3

  • 3GPP TS 29.572 “5G System; Location Management Services

  • 3GPP TS 38.413 “NG-RAN; NG Application Protocol (NGAP)

Enable Location Services


Note


The amf-global location positioning is deprecated. Use amf-global location lmf-positioning instead for enabling the MT-LR and NI-LR feature.


Follow the steps to enable MT-LR and NI-LR location services 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 lmf-positioning

This command displays the possible completion as:
{ mt-lr | ni-lr } 

Step 3

To enable MT-LR, use the following command.

amf-global location lmf-positioning mt-lr

Step 4

To enable NI-LR, use the following command.

amf-global location lmf-positioning ni-lr

Step 5

Save and commit the configuration.


Configuring LMF in Network Element Profile List

To configure LMF in the network element profile list, use the following configuration:

config 
    amf-global 
        operator-policy policy_name 
            ccp-name ccp_name 
            network-element-profile-list lmf lmf_name 
            end 

NOTES:

  • ccp-name ccp_name —Specify the Configuration Control Point (CCP) name. The CCP is used for managing and controlling configuration settings.

  • network-element-profile-list lmf lmf_name —Specify the name of LMF with the network element profile.

Configuring the Profile NF Client

To configure the profile NF-client, use the following configuration:

config 
    profile nf-client nf-type lmf 
        lmf-profile lmf_profile_name 
            locality locality_name 
                priority priority_value 
                service name type nlmf-loc 
                    endpoint-profile profile_name 
                        capacity capacity_value 
                        priority priority_value 
                        uri-scheme uri_scheme_name 
                        endpoint-name end_point_name 
                           priority priority_value 
                           primary ip-address ipv4 ipv4_address 
                           primary ip-address port ipv4_port_number 
                           default-notification-subscriptions  subscriptions_name  
                              notification-type  notification_message_type  
                              callback-uri  callback_uri_url  
                              n1-message-class  n1_message_class_type  
                           end 

NOTES:

  • profile nf-client nf-type nf_client_name —Specify the profile name of the NF client.

  • lmf-profile profile_name —Specify the profile name for the LMF.

  • locality locality_name —Specify the locality name within the LMF profile.

  • priority priority_value —Specify the priority value of the locality name within the LMF profile.

  • endpoint-profile profile_name —Specify the associated end point profile name.

  • capacity capacity_value —Specify the capacity of the endpoint profile.

  • priority priority_value —Specify the priority of the endpoint profile.

  • uri-scheme uri_scheme_name —Specify the uri scheme associated with the endpoint profile.

  • endpoint-name endpoint_name —Specify the associated end point name.

  • priority priority_value —Specify the priority of the endpoin name.

  • primary ip-address ipv4 ipv4_address —Specify the primary ipv4 address.

  • primary ip-address port ipv4_port_number —Specify the primary ipv4 port.

  • default-notification-subscriptions default_notification_subscriptions_name —Specify the name of the default notification subscriptions.

  • notification-type notification_message_type —Specify the type of notification message.

  • callback-uri callback_uri_url —Specify the URL for the callback uri.

  • n1-message-class n1_message_class_type —Specify the n1 message class.

Configuration Example

Following is an example configuration.

profile nf-client nf-type lmf
 lmf-profile LMF1
  locality LOC1
   priority 56
   service name type nlmf-loc
    endpoint-profile EP1
     capacity   30
     priority   30
     uri-scheme http
     endpoint-name EP1
      priority 30
      primary ip-address ipv4 172.16.186.13
      primary ip-address port 8047
      default-notification-subscriptions n1
       notification-type N1_MESSAGES
       callback-uri      <URL>
       n1-message-class  LPP
      exit

Configuring the Profile Network Element

To configure the profile network element, use the following configuration:

config 
 profile network-element lmf lmf_name 
  nf-client-profile nf_client_name 
  failure-handling-profile failure_handling_profile_name 
  query-params [ target-plmn | snssais | an-nodetype | rat-type | client-type | lmf-id | target-nf-instance-id ] 
  end 

NOTES:

  • profile network-element lmf lmf_name —Specify the profile name for the network element.

  • nf-client-profile nf_client_name —Specify the network function client profile name.

  • failure-handling-profile failure_handling_profile_name —Specify the failure handling profile name.

  • query-params [ target-plmn | snssais | an-nodetype | rat-type | client-type | lmf-id | target-nf-instance-id ] —specifies the query parameters that can be used with the network element. These parameters allow for detailed querying and filtering based on specific criteria.

    • target-plmn —specify PLMN identifier used to target specific mobile networks.

    • snssais —specify single network slice selection sssistance Information, used for network slicing.


      Note


      Only the configuration of SNSSAI is allowed, and it is not used during LMF discovery.


    • an-nodetype —specify the type of node in the network.

    • rat-type —specify the radio access technology type.

    • client-type —specify the type of client interacting with the network element.

    • lmf-id —specify the identifier for the location management function.

    • target-nf-instance-id —specify the instance id for target NF.

Configuring Failure Handling Profile

To configure the profile NF-client-failure, use the following configuration:

config 
    profile nf-client-failure nf-type lmf lmf_name 
        profile failure-handling failure_handling_profile_name 
            service name type nlmf-loc 
                responsetimeout timeout_value 
                    message type LmfDetermineLocation 
                        status-code httpv2 503 
                        retry retry_count 
                        action retry-and-ignore 
                        end 

NOTES:

  • profile nf-client-failure nf-type lmf lmf_name —Specify NF client failure profile.

  • profile failure-handling failure_handling_profile_name —Specify failure-handling profile name.

  • responsetimeout timeout_value —Specify the response timeout for the specified services.

  • retry retry_count —Specify the retry count for the status code.

The following is an example configuration.

profile nf-client-failure nf-type lmf
 profile failure-handling FH1
  service name type nlmf-loc
   responsetimeout  10
   message type LmfDetermineLocation
    status-code httpv2 403
     retry  3
     action retry-and-continue
    exit
   message type LmfN1MessageNotify
     status-code httpv2 403
     retransmit          3
     retransmit-interval 2000
     action retry-and-continue
    exit
   message type LmfN2InfoNotify
     status-code httpv2 403
     retransmit          3
     retransmit-interval 2000
     action retry-and-continue
    exit
   exit
  exit
 exit
exit

Configuring the Profile NF-pair NF-type

To configure the profile NF-pair NF-type, use the following configuration:

config 
    profile nf-pair nf-type nf_type_name 
        locality client client_name 
        locality preferred-server server_name 
        locality geo-server server_name 
        end 

NOTES:

  • profile nf-pair nf-type nf_type_name —Specify NF (Network Function) type name.

  • locality client client_name —Specify the locality name for the client.

  • locality preferred-server server_name —Specify the server name as the preferred server locality.

  • locality geo-server server_name —Specify the geographical location for the geo-server.


Note


Each endpoint-profile can contain multiple endpoints. Each endpoint contains defaultNotificationCallback under endpoint-name. So, instead of configuring primary and secondary within one endpoint, it is advisable to configure them under different endpoint names in an endpoint profile to ensure separate defaultNotificationCallback for each endpoint.


Configure Compliance Profile

Follow the steps to configure 3gpp spec compliance profile.

Procedure


Step 1

Define the compliance profile.

profile compliance compliance_profile_name

Step 2

Define the service name for which you want to configure the 3gpp compliance version.

service service_name

Step 3

Configure the 3gpp spec version for the specified service.

version spec 3gpp_spec_version

Note

 

AMF doesn't support runtime spec version changes in the configuration.

Step 4

Save and commit the configuration.


Example

Following is an example configuration for the compliance profile:
profile compliance comp1
   service nlmf-loc
      version spec 18.6.0
      exit
   service namf-loc
      version spec 18.6.0
      exit
         exit
profile compliance comp2
   service nlmf-loc
      version spec 16.4.0
      exit
   service namf-loc
      version spec 16.4.0
      exit
         exit

Associate Compliance Profile with AMF Service

Follow the steps to associate the compliance profile with specific AMF service.

Procedure


Step 1

Configure AMF Services.

amf-services amf_services_name

Step 2

Associate compliance profile with AMF Services.

compliance-profile compliance_profile_name

Step 3

Save and commit the configuration.


Configure MME Name and MME realm for AMF Services

Follow the steps to configure the mme-name and mme-realm for the AMF service.

Procedure


Step 1

Enter AMF services configuration mode.

amf-services amf_service_name

Step 2

Enter the peer MME TAI match command to initiate the configuration for a peer MME TAI match.

peer-mme tai-match

Step 3

Configure the priority value for the peer MME.

priority priority_value

Step 4

Configure the mobile country code (mcc) for the peer MME.

mcc mcc_value

Specify the three-digit Mobile Country Code. Must be an integer with three digits.

Step 5

Configure the mobile network country (mnc) for the peer MME.

mnc mnc_value

Specify the two or three-digit Mobile Country Network. Must be an integer with three digits.

Step 6

Configure the Tracking Area Code (TAC) for the peer MME.

tac tac_value

Specify the Tracking Area Code value. Must be an integer in the range of 1-65535.

Step 7

Configure the MME IP address for the peer MME.

address mme_address

Specify the Tracking Area Code value. Must be an integer in the range of 1-65535.

Step 8

Configure the MME name.

mme-name mme_name

Example:

mme-1.cisco.com

Step 9

Configure the MME realm.

mme-realm mme_realm

Example:

MME-realm.cisco.com

Step 10

Save and commit the configuration.


Configure GMLC in Network Element Profile List

Follow the steps to configure GMLC 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 gmlc gmlc_name

The GMLC profile is used for location-based services.

Step 5

Save and commit the configuration.


Configure GMLC Profile

Follow the steps to configure the GMLC profile with an NF client profile and a failure handling profile.

Procedure


Step 1

Enter the AMF configuration mode.

config

Example:

[amf] amf# config 

Step 2

Enter Network Element Profile Configuration Mode for GMLC.

profile network-element gmlc gmlc_profile_name

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

Step 3

Set the NF Client Profile

nf-client-profile nf_client_profile_name

This command sets the NF client profile to specified name.

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

Configure the query parameters for GMLC discovery.

query-params [ target-plmn | client-type ]

Step 6

Save and commit the configuration.


Configure Profile NF-pair NF-type

Follow the steps to configure the profile NF-pair NF-type.

Procedure


Step 1

Configure the network function pair profile name.

profile nf-pair nf-type nf_type_name

Step 2

Configure the NRF discovery group.

nrf-discovery-group nrf_discovery_group_name

Step 3

Configure locality for client.

locality client locality_client_name

Step 4

Configure preferred server locality.

locality preferred-server locality_preferred_server_name

Step 5

Configure Geo server locality.

locality geo-server locality_geo_server_name

Step 6

Enable cache invalidation by setting it to true.

cache invalidation true

Step 7

Save and commit the configuration.


Configure NF Client Profile for GMLC

Follow the steps to configure the NF client profile for GMLC. You need to create and associate this profile to GMLC.

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 gmlc

Step 3

Specify GMLC Profile.

gmlc-profile gmlc_profile_name

This GMLC profile is associated with the NF Client Profile.

Step 4

Define a locality within the GMLC 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 ngmlc-loc

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

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

uri-scheme uri_scheme_name

Step 10

Specify the endpoint name within the endpoint profile.

endpoint-name endpoint_name

Step 11

Set the priority for the specified endpoint name.

priority priority_value

Step 12

Set the capacity for the specified endpoint name.

capacity capacity_value

Step 13

Configure the default notification subscription name for the specified endpoint name.

default-notification-subscriptions default_notification_subscriptions_name

Step 14

Specify the notification-type for default notification subscription.

notification-type notification_type

Step 15

Specify the callback-uri address.

callback-uri callback_uri_address

Step 16

Configure the primary IPV4 address for the endpoint.

primary ipv4-address ipv4_address

Step 17

Configure the port number for the primary IP address.

primary ip-address port ipv4_port_number

Step 18

Save and commit the configuration.


Configure Failure Handling Profile for GMLC

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

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

Step 3

Specify the failure handling profile to be used.

profile failure-handling failur_hanling_profile_name

This GMLC 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

Step 5

Specify the message type for the failure handling profile.

message type NotifiedPosInfo

Step 6

Set the status code for the specified message type.

status-code status_codtype

Step 7

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

retry retry_count

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 indicates that the system retries the operation and then ignore the failure if it persists.

Step 11

Save and commit the configuration.


OAM Support

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

Bulk Statistics Support

The following statistics are supported for the MTLR Location Services feature.

LMF STATS Under nl1_service_stats

Following are the LMF STATS records under nl1_service_stats.

Messages

Metrics Message Type

Determine Req & Rsp

NlmfDetermineLocReq

NlmfDetermineLocRsp

N1N2MessageTransfer

NlmfN1N2MessageTransferReq

NlmfN1N2MessageTransferRsp

NlmfNonUEN2MessageTransferRequest

NlmfNonUEN2MessageTransferResponse

N1 Message Notify

NlmfN1MessageNotifyRequest

NlmfN1MessageNotifyResponse

N2 Message Notify

NlmfN2InfoNotifyRequest

NlmfN2InfoNotifyResponse

NlmfNonUEN2InfoNotifyRequest

NlmfNonUEN2InfoNotifyResponse

N1N2 Failure Notification

NlmfN1N2MessageTransferfailurenotifyReq

NlmfN1N2MessageTransferfailurenotifyRsp

Following are the examples of stats output:

  • nl1_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0",
    message_type="NlmfN1N2MessageTransferReq",reason="",roaming_status="HOMER",
    service_name="amf-service",slice_data="_2-333333",status="success"} 2
  • nl1_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="2",
    message_type="NlmfN1N2MessageTransferReq",reason="Invalid Input",roaming_status="HOMER",
    service_name="amf-service",slice_data="_2-333333",status="failures"} 2
  • nl1_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="2",
    message_type="NlmfN1N2MessageTransferReq",reason="Invalid LCS Correlation ID",roaming_status="HOMER",
    service_name="amf-service",slice_data="_2-333333",status="failures"} 3
  • n11_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="2",
    message_type="NlmfN1N2MessageTransferfailurenotifyReq",reason="",
    roaming_status="HOMER",service_name="amf-service",slice_data="_2-333333",status="success"} 3
  • n11_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="2",
    message_type="NlmfN1N2MessageTransferfailurenotifyRsp",reason="",roaming_status="HOMER",
    service_name="amf-service",slice_data="_2-333333",status="success"} 3
  • nl1_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0", 
    message_type=" NlmfNonUEN2MessageTransferRequest ", reason="", roaming_status=" ", 
    service_name="amf-service", slice_data="", status="success"} 1

GMLC STATS Under nl2_service_stats

Following are the GMLC STATS records under nl2_service_stats for MT-LR.

Messages

Metrics Message Type

Provide position Req & Rsp

NgmlcRequestPositiongInfo

NgmlcProvidePositiongInfoRsp

Following is the example of stats output:

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

Following are the GMLC STATS records under nl2_service_stats for NI-LR.

Messages

Metrics Message Type

Namf_Location_EventNotify

NgmlcNotifiedPosInfoReq

NgmlcNotifiedPosInfoRsp

NGAP Service Stats Under n2_service_stats

Following are the NGAP service stats records under n2_service_stats

Messages

Metrics Message Type

NRRPA based messages

DlUeAssociatedNRPPaTransport

UlUeAssociatedNRPPaTransport

DlNonUeAssociatedNRPPaTransport

UlNonUeAssociatedNRPPaTransport

Following is the example of stats output:

n2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0",
message_type="DlUeAssociatedNRPPaTransport",reason="",roaming_status="HOMER",
service_name="amf-service",slice_data="_2-333333",status="success"} 1
n2_service_stats{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0", 
message_type=" DlNonUeAssociatedNRPPaTransport ",reason="", roaming_status="", service_name="amf-service", 
slice_data="",status="success"} 1

Nas Message Total

Location service based UplinkNasTransport and DownlinkNasTransport is recorded under message type N1DlNasTransport_LPP, N1UlNasTransport_LPP.

Following is the example of stats output:

amf_nas_message_total{app_name="AMF",cluster="clu1",data_center="dc1",instance_id="0",
message_direction="outbound",message_type="N1DlNasTransport_LPP",
service_name="amf-service",slice_data="_2-333333"} 2