Description
A Service Function Chain defines a directed graph of Service Functions (SFs) that must be applied to packets or flows in a specific order to realize a network service. In the 3GPP architecture, particularly within the 5G Core network, SFC is a key enabler for network slicing and service-aware traffic steering. The chain is described by a Network Service Descriptor (NSD) which includes the topology and requirements of the virtualized network functions (VNFs) and/or containerized network functions (CNFs) that constitute the service.
The implementation of SFC involves several components: the Service Function Forwarder (SFF) which directs traffic between SFs, the SFC Classifier which maps incoming packets to a specific chain based on policies, and the SFC Proxy which may adapt traffic for legacy SFs. Traffic is often encapsulated with a Network Service Header (NSH) or similar metadata that carries the SFC context, including the chain identifier and position, ensuring packets traverse the correct sequence of functions regardless of the underlying network topology.
Within 3GPP, SFC is managed by the Network Slice Selection Function (NSSF) and the Network Repository Function (NRF) in conjunction with the Service Communication Proxy (SCP). It allows for the creation of end-to-end network slices where each slice can have its own unique SFC tailored for specific service requirements, such as enhanced Mobile Broadband (eMBB), Ultra-Reliable Low-Latency Communications (URLLC), or massive IoT. This orchestration is typically controlled by management and orchestration (MANO) systems like NFV Orchestrator (NFVO) and SDN controllers.
Purpose & Motivation
Service Function Chaining was created to address the rigidity of traditional hardware-based middlebox deployments, where network services were implemented as physical appliances in fixed locations and sequences. This made service innovation, scaling, and maintenance costly and slow. SFC, enabled by Network Functions Virtualization (NFV) and Software-Defined Networking (SDN), allows operators to dynamically compose and deploy chains of virtualized functions, leading to agile service creation and efficient resource utilization.
The evolution towards 5G and network slicing necessitated a mechanism to provide isolated, customized logical networks over a shared physical infrastructure. SFC provides the technical framework to realize these slices by defining how traffic for a particular tenant or service type is processed through a specific set of functions (e.g., a firewall, NAT, TCP optimizer, video optimizer). It solves the problem of static, monolithic network architectures by enabling automated, policy-driven traffic steering.
Furthermore, SFC supports multi-vendor interoperability and service automation. By standardizing the chaining logic and headers (e.g., via IETF and 3GPP collaborations), it prevents vendor lock-in and allows mixed environments. This capability is crucial for meeting diverse 5G use case requirements, enabling operators to rapidly deploy new revenue-generating services with guaranteed performance and security characteristics.
Key Features
- Defines an ordered sequence of virtualized or containerized Service Functions
- Enables dynamic, policy-based traffic steering for network slices
- Utilizes metadata encapsulation (e.g., NSH) for chain identification and state
- Orchestrated by MANO systems (NFVO) and controlled by SDN principles
- Supports service automation and lifecycle management of function chains
- Facilitates end-to-end network slicing with customized data paths
Evolution Across Releases
The concept of chaining service logic existed in early CAMEL and IMS architectures for voice services, but not as a generalized SFC framework. Initial specifications focused on basic service triggering and execution in circuit-switched domains.
Defining Specifications
| Specification | Title |
|---|---|
| TS 23.218 | 3GPP TS 23.218 |
| TS 23.501 | 3GPP TS 23.501 |
| TS 23.700 | 3GPP TS 23.700 |
| TS 29.512 | 3GPP TS 29.512 |
| TS 29.513 | 3GPP TS 29.513 |
| TS 29.514 | 3GPP TS 29.514 |
| TS 29.519 | 3GPP TS 29.519 |
| TS 46.008 | 3GPP TR 46.008 |