Packet Forwarding Control Protocol (PFCP) is a 3GPP protocol used on the Sx/N4 interface between the control plane and the user plane function, specified in TS 29.244. It is one of the main protocols introduced in the 5G Next Generation Mobile Core Network (aka 5GC), but also used in the 4G/LTE EPC to implement the Control and User Plane Separation (CUPS). PFCP and the associated interfaces seek to formalize the interactions between different types of functional elements used in the Mobile Core Networks as deployed by most operators providing 4G, as well as 5G, services to mobile subscribers. These 2 types of components are:

 The Control Plane (CP) functional elements, handling mostly signaling procedures (e.g. network attachment procedures, management of User-data Plane paths and even delivery of some light-weight services as SMS) 
 The User-data Plane (UP) functional elements, handling mostly packet forwarding, based on rules set by the CP elements (e.g. packet forwarding for IPv4, IPv6 - or possibly even Ethernet with future 5G deployments - between the various supported wireless RANs and the PDN representing the Internet or an enterprise network).

PFCP's scope is similar to that of OpenFlow, however it was engineered to serve the particular use-case of Mobile Core Networks.

PFCP is also used on the interface between the control plane and user plane functions of a disaggregated BNG, as defined by the BroadBand Forum in TR-459.

Overview 
Albeit similar to GTP in concepts and implementation, PFCP is complementary to it. It provides the control means for a signaling component of the Control-Plane to manage packet processing and forwarding performed by a User-Plane component. Typical EPC or 5G Packet Gateways are split by the protocol in 2 functional parts, allowing for a more natural evolution and scalability.

The PFCP protocol is used on the following 3GPP mobile core interfaces:

 Sxa - between SGW-C and SGW-U
 Sxb - between PGW-C and PGW-U
 Sxc - between TDF-C and TDF-U (Traffic Detection Function)
 N4 - between SMF and UPF

Note: Sxa and Sxb can be combined, in case a merged SGW/PGW is implemented.

Functionality 
The Control-Plane functional element (e.g. PGW-C, SMF) controls the packet processing and forwarding in the User-Plane functional elements (e.g. PGW-U, UPF), by establishing, modifying or deleting  PFCP Sessions.

User plane packets shall be forwarded between the CP and UP functions by encapsulating the user plane packets using GTP-U encapsulation (see 3GPP TS 29.281 [3]). For forwarding data from the UP function to the CP function, the CP function shall provision Packet Detection Rules (PDR) per PFCP session context, with the Packet Detection Information (PDI) identifying the user plane traffic to forward to the CP function and with a Forwarding Action Rule (FAR) set with the Destination Interface "CP function side" and set to perform GTP-U encapsulation and to forward the packets to a GTP-u F-TEID uniquely assigned in the CP function per PFCP session and PDR. The CP function shall then identify the PDN connection and the bearer to which the forwarded data belongs by the Fully Qualified TEID (F-TEID) in the header of the encapsulating GTP-U packet. For forwarding data from the CP function to the UP function, the CP function shall provision one or more PDR(s) per PFCP session context, with the PDI set with the Source Interface "CP function side" and identifying the GTP-u F-TEID uniquely assigned in the UP function per PDR, and with a FAR set to perform GTP-U decapsulation and to forward the packets to the intended destination. URRs and QERs may also be configured.

Per session multiple PDRs, FARs, QoS Enforcement Rules (QER), Usage Reporting Rules (URR) and/or Buffering Action Rules (BAR) are sent.

Here are the main concepts used, organized in their logical association model:

 PDRs - Packet Detection Rules - contain information for matching data packets to certain processing rules. Both outer encapsulation and inner user-plane headers can be matched. The following rules can be applied on positive matching:
 FARs - Forwarding Action Rules - whether and how the packets matching PDRs should be dropped, forwarded, buffered or duplicated, including a trigger for first packet notification; it includes packet encapsulation or header enrichment rules. In case of buffering, the following rules can be applied:
 BARs - Buffering Action Rules - how much data to buffer and how to notify the Control-Plane.
 QERs - QoS Enforcement Rules - rules for providing Gating and QoS Control, flow and service level marking.
 URRs - Usage Reporting Rules - contain rules for counting and reporting traffic handled by the User-Plane function, generating reports to enable charging functionality in the Control-Plane functions.

Messages 

IEs are defined either as having a proprietary encoding, or as grouped. Grouped IEs are simply a list of other IEs, encoded one after the other like in the PFCP Message Payload.

IE Types 0..32767 are 3GPP specific and do not have an Enterprise-ID set. IE Types 32768..65535 can be used by custom implementation and the Enterprise-ID must be set to the IANA SMI Network Management Private Enterprise Codes of the issuing party.

Messages

Transport 
Very similar to GTP-C, PFCP uses UDP. Port 8805 is reserved.

For reliability, a similar re-transmission strategy as for GTP-C is employed, lost messages being sent N1-times at T1-intervals. Transactions are identified by the 3-byte long Sequence Number, the IP address and port of the communication peer.

The protocol includes an own Heart-beat Request/Response model, which allows monitoring the availability of communication peers and detecting restarts (by use of a Recovery-Timestamp Information Element).

For User-Plane packet exchanges between the Control and User Plane functional elements, GTP-U for the Sx-u interface, or alternatively a simpler UDP or Ethernet encapsulation for the N4-u interface (to be confirmed, as standards are still incomplete).

See also 

 GTP-C
 RANAP
 Evolved Packet Core
 5G
 Software-defined mobile network
 Software-defined networking

Notes 

Network protocols
Mobile telecommunications standards
3GPP standards
Internet Protocol
Mobile technology
LTE (telecommunication)
5G (telecommunication)
Telecommunications infrastructure
PFCP(Packet Forwarding Control Protocol)는 TS 29.244 지정된 제어 플레인과 사용자 플레인 기능 간의 Sx / N4 인터페이스에서 사용되는 3GPP 프로토콜이다. 이는 5G 차세대 모바일 코어 네트워크 (일명 5GC )에 도입된 주요 프로토콜 중 하나이지만 CUPS ( Control and User Plane Separation)를 구현하기 위해 4G / LTE EPC에서도 사용된다. PFCP 및 관련 인터페이스는 모바일 가입자에게 4G 및 5G 서비스를 제공하는 대부분의 사업자가 배포한 모바일 코어 네트워크에서 사용되는 다양한 유형의 기능 요소 간의 상호 작용을 공식화한다. 이 두 가지 유형의 구성 요소는 다음과 같다.

 대부분의 시그널링 절차를 처리하는 제어 평면(CP) 기능 요소(예 : 네트워크 연결 절차, 사용자 데이터 플레인 경로 관리 및 SMS 로 일부 경량 서비스 제공)
 사용자 데이터 평면 (UP)이 CP 요소가 설정 한 규칙에 따라 대부분의 패킷 포워딩을 처리하는 기능 요소(예를 들어, IPv4, IPv6를 위한 패킷 포워딩의 - 심지어 미래에 5G가 적용된 이더넷에서도 가능한 - 다양한 지원 무선 사이 RAN들과 인터넷 또는 엔터프라이즈 네트워크를 나타내는 PDN ).

PFCP의 범위는 OpenFlow의 범위와 유사하지만 모바일 코어 네트워크의 특정 사용 사례를 제공하도록 설계되었다.

PFCP는 또한 TR-459 의 BroadBand Forum에서 정의한 바와 같이 세분화된 BNG 의 제어 평면과 사용자 평면 기능 간의 인터페이스에서 사용된다.

개요 
개념과 구현에서 GTP와 유사하지만 PFCP는 이를 보완한다. Control-Plane의 시그널링 컴포넌트가 User-Plane 컴포넌트에 의해 수행되는 패킷 처리 및 포워딩을 관리하기 위한 제어 수단을 제공한다. 일반적인 EPC 또는 5G 패킷 게이트웨이는 프로토콜에 의해 2개의 기능 부분으로 분할되어 보다 자연스러운 진화와 확장성을 제공한다.

PFCP 프로토콜은 다음 3GPP 모바일 코어 인터페이스에서 사용된다.

 Sxa-SGW-C와 SGW-U 사이
 Sxb-PGW-C와 PGW-U 사이
 Sxc-TDF-C와 TDF-U 사이 (트래픽 감지 기능)
 N4-SMF와 UPF 사이

참고 : 병합된 SGW / PGW가 구현되는 경우 Sxa와 Sxb를 결합할 수 있다.

기능 
Control-Plane 기능 요소(예 : PGW-C, SMF)는 사용자 평면 기능 요소 (예 : PGW-U, UPF), PFCP 세션을 설정, 수정 또는 삭제한다.

사용자 평면 패킷은 GTP-U 캡슐화를 사용하여 사용자 평면 패킷을 캡슐화함으로써 CP와 UP 기능간에 전달되어야 한다.(3GPP TS 29.281 [3] 참조) UP 기능에서 CP 기능으로 데이터를 전달하기 위해 CP 기능은 PFCP 세션 컨텍스트 당 PDR(들)을 제공해야 한다. PDI는 CP 기능으로 전달할 사용자 평면 트래픽을 식별하고 대상 인터페이스를 사용하는 FAR 세트를 사용한다. "CP function side"로 설정하고 GTP-U 캡슐화를 수행하고 PFCP 세션 및 PDR별로 CP 기능에서 고유하게 할당된 GTP-u F-TEID로 패킷을 전달하도록 설정한다. 그러면 CP 기능은 캡슐화 GTP-u 패킷의 헤더에서 F-TEID에 의해 전달된 데이터가 속하는 PDN 연결 및 베어러를 식별해야 한다. CP 기능에서 UP 기능으로 데이터를 전달하기 위해 CP 기능은 소스 인터페이스 "CP function side"로 설정된 PDI를 사용하여 PFCP 세션 컨텍스트 당 하나 이상의 PDR을 제공하고 PDR 당 UP 기능에서 고유하게 할당 된 GTP-u F-TEID 및 GTP-U 캡슐화 해제를 수행하고 패킷을 의도한 대상으로 전달하도록 설정된 FAR을 사용한다. URR 및 QER도 구성 할 수 있다.

세션 당 여러 PDR, FAR, QER, URR 및 / 또는 BAR이 전송된다.

다음은 논리적 연관 모델로 구성된 주요 개념이다.

 PDR-패킷 감지 규칙-데이터 패킷을 특정 처리 규칙과 일치시키기위한 정보를 포함한다. 외부 캡슐화와 내부 사용자 평면 헤더를 모두 일치시킬 수 있다. 포지티브 매칭에 다음 규칙을 적용할 수 있다.
 FAR-전달 작업 규칙-첫 번째 패킷 알림에 대한 트리거를 포함하여 PDR과 일치하는 패킷을 삭제, 전달, 버퍼링 또는 복제해야하는지에 대한 여부 및 방법을 규정하며 여기에는 패킷 캡슐화 또는 헤더 강화 규칙이 포함된다. 버퍼링의 경우 다음 규칙을 적용할 수 있다.
 BARs-버퍼링 동작 규칙-버퍼링 할 데이터의 양과 Control-Plane에 알리는 방법.
 QER- QoS 시행 규칙-게이팅 및 QoS 제어, 흐름 및 서비스 수준 표시를 제공하기위한 규칙이다.
 URR-사용보고 규칙-사용자 평면 기능에서 처리하는 트래픽을 계산하고 보고하기위한 규칙이 포함되어 있으며 제어 평면 기능에서 과금 기능을 활성화하는 보고서를 생성한다.

IE는 독점적 인 인코딩을 갖거나 그룹화 된 것으로 정의된다. 그룹화 된 IE는 PFCP 메시지 페이로드 에서처럼 차례로 인코딩 된 다른 IE의 목록이다.

IE 유형 0..32767은 3GPP에 한정되며 Enterprise-ID 세트가 없다. IE 유형 32768..65535는 사용자 지정 구현에서 사용할 수 있으며 Enterprise-ID는 발급 당사자의 IANA SMI 네트워크 관리 사설 엔터프라이즈 코드로 설정되어야한다.

전송 
GTP-C와 매우 유사한 PFCP는 UDP를 사용한다. 포트 8805는 예약되어 있다.

신뢰성을 위해 GTP-C와 유사한 재전송 전략이 사용되며 손실 된 메시지는 T1 간격으로 N1 회 전송된다. 트랜잭션은 3 바이트 길이의 시퀀스 번호, 통신 피어의 IP 주소 및 포트로 식별된다.

프로토콜에는 통신 피어의 가용성을 모니터링하고 재시작을 감지 할 수 있는 자체 하트 비트 요청 / 응답 모델이 포함되어 있다 (복구-타임 스탬프 정보 요소 사용).

제어 및 사용자 평면 기능 요소 간의 사용자 평면 패킷 교환의 경우 Sx-u 인터페이스의 경우 GTP-U 또는 N4-u 인터페이스의 경우 더 간단한 UDP 또는 이더넷 캡슐화 (표준이 아직 불완전하므로 확인 예정) .

같이 보기

각주 

통신 시설
5G
LTE (전기통신)
모바일 기술
3GPP 표준
이동 통신 표준
네트워크 프로토콜