Description
A Service Access Point (SAP) is a fundamental architectural concept in layered communication systems, including the 3GPP protocol stacks for UE, RAN, and Core Network. It represents the logical interface at the boundary between two adjacent protocol layers (e.g., between the RLC and MAC layers, or between the NAS and RRC layers). The SAP is not a physical connection but a defined set of abstract communication primitives and associated data structures through which a lower layer (the service provider) offers its services to the immediate upper layer (the service user).
How a SAP works is defined by the exchange of service primitives. These are typically categorized as Request, Indication, Response, and Confirm. For instance, when the RRC layer (user) needs to send a message, it issues a DATA.request primitive to the lower RLC layer (provider) via their SAP, passing the message as a parameter. The RLC layer then handles the transmission. Upon receipt of data from the peer, the RLC layer issues a DATA.indication primitive up to the RRC layer via the same SAP. This abstraction hides the implementation details of the lower layer, allowing upper layers to operate solely based on the service offered.
The key components of the SAP concept are the Service Primitives themselves and the Service Data Unit (SDU). The SDU is the packet of data passed down through a SAP. The lower layer may add its own headers and trailers to this SDU, transforming it into a Protocol Data Unit (PDU) for its own peer-to-peer communication. SAPs are defined for every layer interface in 3GPP specifications, such as the Service Access Point Identifier (SAPI) for the LAPDm link layer in GSM, or the logical channels between MAC and RLC in LTE/NR. Their role is to create a clean, standardized, and interoperable separation of concerns, which is essential for modular network design, independent layer development, and multi-vendor equipment compatibility.
Purpose & Motivation
The SAP concept exists to enable the structured, layered design of communication protocol stacks, which is a cornerstone of modern telecommunications and computer networking (inspired by the OSI model). Before layered architectures, protocol software was often monolithic and tightly integrated, making it difficult to modify, upgrade, or replace individual functional components without affecting the entire system.
The SAP solves the critical problem of defining how different layers of a complex system, potentially developed by different teams or vendors, interact with each other in a predictable and standardized way. It provides a formal contract between layers. This allows for the independent evolution of layers; for example, the physical layer technology can evolve from GSM to UMTS to LTE to 5G NR, while the core network signaling protocols above the transport layers can remain largely consistent or evolve separately.
Historically, its adoption in 3GPP standards (from GSM R99 onwards) was motivated by the need for rigorous specification to ensure global interoperability. It addressed the limitations of ad-hoc inter-layer communication by providing a precise language of primitives and parameters. This formalization reduced implementation ambiguity, allowed for conformance testing, and ultimately enabled the successful deployment of multi-vendor mobile networks where a UE from one manufacturer must seamlessly work with infrastructure from another.
Key Features
- Defines the abstract interface and service boundary between two adjacent protocol layers.
- Operates through the exchange of standardized service primitives (Request, Indication, Response, Confirm).
- Enables the passing of Service Data Units (SDUs) from an upper layer to a lower layer for processing.
- Provides implementation independence, hiding lower-layer mechanics from upper layers.
- Fundamental to the layered architecture of all 3GPP radio and core network protocol stacks.
- Essential for ensuring interoperability between network elements and user equipment from different vendors.
Evolution Across Releases
Formally adopted as a core architectural concept in 3GPP specifications for the GSM/UMTS protocol stacks. It defined the service interfaces between layers such as RRC, RLC, MAC, and the physical layer, establishing the primitives for control and data transfer that enabled the separation of the new UMTS radio access network from the evolved GSM core network.
Defining Specifications
| Specification | Title |
|---|---|
| TS 21.905 | 3GPP TS 21.905 |
| TS 22.060 | 3GPP TS 22.060 |
| TS 23.107 | 3GPP TS 23.107 |
| TS 23.110 | 3GPP TS 23.110 |
| TS 23.207 | 3GPP TS 23.207 |
| TS 23.852 | 3GPP TS 23.852 |
| TS 23.910 | 3GPP TS 23.910 |
| TS 25.201 | 3GPP TS 25.201 |
| TS 25.301 | 3GPP TS 25.301 |
| TS 25.302 | 3GPP TS 25.302 |
| TS 25.304 | 3GPP TS 25.304 |
| TS 25.321 | 3GPP TS 25.321 |
| TS 25.322 | 3GPP TS 25.322 |
| TS 25.331 | 3GPP TS 25.331 |
| TS 25.367 | 3GPP TS 25.367 |
| TS 25.402 | 3GPP TS 25.402 |
| TS 25.410 | 3GPP TS 25.410 |
| TS 25.413 | 3GPP TS 25.413 |
| TS 25.415 | 3GPP TS 25.415 |
| TS 25.452 | 3GPP TS 25.452 |
| TS 25.912 | 3GPP TS 25.912 |
| TS 25.931 | 3GPP TS 25.931 |
| TS 26.247 | 3GPP TS 26.247 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.851 | 3GPP TS 26.851 |
| TS 26.906 | 3GPP TS 26.906 |
| TS 26.938 | 3GPP TS 26.938 |
| TS 26.949 | 3GPP TS 26.949 |
| TS 29.415 | 3GPP TS 29.415 |
| TS 32.101 | 3GPP TR 32.101 |
| TS 33.885 | 3GPP TR 33.885 |
| TS 36.201 | 3GPP TR 36.201 |
| TS 36.300 | 3GPP TR 36.300 |
| TS 36.302 | 3GPP TR 36.302 |
| TS 36.304 | 3GPP TR 36.304 |
| TS 36.322 | 3GPP TR 36.322 |
| TS 36.323 | 3GPP TR 36.323 |
| TS 36.331 | 3GPP TR 36.331 |
| TS 36.360 | 3GPP TR 36.360 |
| TS 36.361 | 3GPP TR 36.361 |
| TS 36.401 | 3GPP TR 36.401 |
| TS 36.410 | 3GPP TR 36.410 |
| TS 36.456 | 3GPP TR 36.456 |
| TS 38.201 | 3GPP TR 38.201 |
| TS 38.323 | 3GPP TR 38.323 |
| TS 38.401 | 3GPP TR 38.401 |
| TS 43.051 | 3GPP TR 43.051 |
| TS 43.901 | 3GPP TR 43.901 |
| TS 44.060 | 3GPP TR 44.060 |
| TS 44.160 | 3GPP TR 44.160 |
| TS 45.820 | 3GPP TR 45.820 |
| TS 45.902 | 3GPP TR 45.902 |