Cloud Native 7 min read

Understanding Service Function Chain (SFC) and the OpenStack networking‑sfc Project

This article explains the concept of Service Function Chain (SFC), its role in SDN and cloud‑native environments, and details how the OpenStack networking‑sfc project implements SFC through ports, port pairs, port chains, service graphs, and various deployment modes such as chain, tap, and load‑balancing.

360 Tech Engineering
360 Tech Engineering
360 Tech Engineering
Understanding Service Function Chain (SFC) and the OpenStack networking‑sfc Project

SFC (Service Function Chain) allows custom network function units and traffic paths, providing essential support for SDN networks; traditional networks rely on physical devices and complex routing, making horizontal scaling difficult.

Virtualization of compute resources demands network virtualization—virtual NICs, virtual switches, routers, and overlay topologies—rendering legacy methods for adding advanced services inadequate.

SFC, defined in RFC 7665, orders traffic through functions like firewall, NAT, IDS; the classifier identifies traffic for a chain, and packets are encapsulated (typically with RFC 8300 Network Service Header, NSH) carrying chain ID and position information.

The OpenStack project networking‑sfc implements SFC by linking Neutron ports into a port chain (port chain). It provides a Neutron extension API, a service plugin, and drivers (e.g., OVS driver) that communicate via RPC with the OVS agent.

Key concepts include:

Port pair : an ingress and egress port for a service function (may be the same port).

Port pair group : a set of port pairs for load‑balancing traffic across multiple instances of a service function.

Port chain : an ordered sequence of port pair groups plus a classifier that defines the traffic path.

Service graph : a composition of multiple chains forming complex, multi‑path traffic flows.

Three deployment modes are described:

Chain : a single linear path through service functions.

Tap : traffic is duplicated to a function (e.g., IDS) while the original flow continues.

Load‑Balancing (LB) : traffic is balanced between service functions using OpenFlow group tables based on packet fields. An example service graph combines four port chains, with each service function hosted on virtual machines across two physical hosts, using VXLAN tunnels for inter‑host communication; due to an OVS NSH bug, MPLS encapsulation is used instead.

cloud-nativeSDNOpenStackSFCnetworking-sfcService Function Chaining
360 Tech Engineering
Written by

360 Tech Engineering

Official tech channel of 360, building the most professional technology aggregation platform for the brand.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.