SFC

Service Function Chain

Services
Introduced in R99
A Service Function Chain (SFC) is an ordered sequence of network functions (e.g., firewalls, load balancers) through which traffic is steered to deliver a specific service. In 3GPP, it enables flexible service delivery and network slicing by dynamically orchestrating virtualized functions.

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

R99 Initial

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

SpecificationTitle
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