Description
The Service Location Protocol (SLP) is an IETF-defined protocol (RFC 2608) adopted and profiled by 3GPP for use within its architecture, primarily to facilitate service discovery. In the 3GPP context, SLP is a key enabler for location services (LCS), allowing a client, such as User Equipment (UE) or a network entity, to discover the address of a location server, most notably the Secure User Plane Location (SUPL) Location Platform (SLP). The protocol operates in a client-server model where User Agents (UAs) issue service requests and Service Agents (SAs) advertise services. Directory Agents (DAs) can optionally be used as centralized repositories for service advertisements, improving scalability in large networks. The protocol uses service URLs and attributes to describe services, and discovery can be performed via multicast or unicast. For 3GPP, SLP is often used in the SUPL architecture, where a SUPL Enabled Terminal (SET) uses SLP to discover the address of its Home SLP (H-SLP) or a Discovered SLP (D-SLP) to initiate a positioning session. This discovery is crucial for establishing a secure user-plane connection for delivering location information. The protocol supports authentication and provides a flexible framework for finding various types of services beyond just location, though its primary 3GPP application is within the SUPL ecosystem. Its integration allows for decentralized service discovery without requiring pre-configuration of server addresses in every device, enhancing flexibility and manageability for network operators.
Purpose & Motivation
SLP was introduced to solve the problem of dynamic service discovery in IP-based networks, which became increasingly relevant with the rise of mobile data services and location-based applications. Prior to standardized service discovery, devices often required manual configuration of server addresses (like a home location server), which was inflexible, difficult to manage at scale, and hindered service portability and roaming. The protocol provides a standardized, automated method for clients to find necessary network services. Within 3GPP, its adoption, particularly starting in Release 7 with SUPL 1.0, was motivated by the need for an efficient user-plane location solution. SLP enables a SUPL Enabled Terminal to dynamically discover its appropriate SLP, whether it's the home network's SLP or a visited network's SLP during roaming. This capability is essential for emergency services (e.g., E911), commercial location services, and regulatory compliance, as it ensures a device can always find a positioning server without user intervention. It decouples the client from a static network configuration, allowing operators to deploy and relocate servers more freely and support a growing ecosystem of location-based services.
Key Features
- Standardized service discovery mechanism using service URLs and attributes
- Supports three agent types: User Agent (UA), Service Agent (SA), and Directory Agent (DA)
- Enables both multicast and unicast discovery modes for flexibility in network design
- Provides a framework for service authentication and security
- Central to the SUPL architecture for discovering Home SLP (H-SLP) and Discovered SLP (D-SLP)
- Language-independent and extensible for various service types beyond location
Evolution Across Releases
Initially introduced in 3GPP for SUPL 1.0. Defined the use of SLP for the SUPL Enabled Terminal (SET) to discover the address of the Secure User Plane Location (SUPL) Location Platform (SLP). Established the basic framework for user-plane location service discovery, supporting emergency and commercial services.
Defining Specifications
| Specification | Title |
|---|---|
| TS 21.905 | 3GPP TS 21.905 |
| TS 23.167 | 3GPP TS 23.167 |
| TS 23.271 | 3GPP TS 23.271 |
| TS 23.303 | 3GPP TS 23.303 |
| TS 23.700 | 3GPP TS 23.700 |
| TS 23.730 | 3GPP TS 23.730 |
| TS 23.868 | 3GPP TS 23.868 |
| TS 29.078 | 3GPP TS 29.078 |
| TS 29.171 | 3GPP TS 29.171 |
| TS 29.278 | 3GPP TS 29.278 |
| TS 29.819 | 3GPP TS 29.819 |
| TS 33.533 | 3GPP TR 33.533 |
| TS 36.305 | 3GPP TR 36.305 |
| TS 36.355 | 3GPP TR 36.355 |
| TS 36.809 | 3GPP TR 36.809 |
| TS 36.840 | 3GPP TR 36.840 |
| TS 37.355 | 3GPP TR 37.355 |
| TS 38.305 | 3GPP TR 38.305 |