Das Packet Forwarding Control Protocol ( PFCP ) ist ein 3GPP- Protokoll, das auf der Sx/N4-Schnittstelle zwischen Steuerungs- und Benutzerebene verwendet wird und in TS 29.244 spezifiziert ist. [ 1 ] Es ist eines der Hauptprotokolle des 5G Next Generation Mobile Core Network ( 5GC [ 2 ] ), wird aber auch im 4G/LTE EPC zur Implementierung der Trennung von Steuerungs- und Benutzerebene (CUPS) eingesetzt. [ 3 ] PFCP und die zugehörigen Schnittstellen formalisieren die Interaktionen zwischen verschiedenen Funktionselementen in den Mobilfunkkernnetzen, wie sie von den meisten Betreibern für 4G- und 5G-Dienste eingesetzt werden. Diese beiden Komponententypen sind:
- Die funktionalen Elemente der Steuerungsebene (CP) kümmern sich hauptsächlich um Signalisierungsverfahren (z. B. Netzwerkverbindungsverfahren, Verwaltung von Benutzerdatenpfaden und sogar die Bereitstellung einiger leichter Dienste wie SMS ).
- Die funktionalen Elemente der Benutzerdatenebene (UP) übernehmen hauptsächlich die Paketweiterleitung auf der Grundlage von Regeln, die von den CP-Elementen festgelegt werden (z. B. Paketweiterleitung für IPv4 , IPv6 - oder möglicherweise sogar Ethernet bei zukünftigen 5G- Implementierungen - zwischen den verschiedenen unterstützten drahtlosen RANs und dem PDN , das das Internet oder ein Unternehmensnetzwerk repräsentiert).
Der Anwendungsbereich von PFCP ist ähnlich dem von OpenFlow , es wurde jedoch speziell für den Anwendungsfall von Mobilfunkkernnetzen entwickelt .
PFCP wird auch auf der Schnittstelle zwischen der Steuerungsebene und den Benutzerebenenfunktionen eines disaggregierten BNG verwendet , wie vom BroadBand Forum in TR-459 definiert .
Überblick
Obwohl PFCP in Konzept und Implementierung GTP ähnelt , ergänzt es dieses. Es stellt die Steuerungsmöglichkeiten für eine Signalisierungskomponente der Steuerungsebene bereit, um die von einer Benutzerebenenkomponente durchgeführte Paketverarbeitung und -weiterleitung zu verwalten. Typische EPC- oder 5G -Paket-Gateways werden durch das Protokoll in zwei funktionale Teile aufgeteilt, was eine natürlichere Weiterentwicklung und Skalierbarkeit ermöglicht.

Das PFCP-Protokoll wird auf den folgenden 3GPP- Mobilfunkkernschnittstellen verwendet :
- Sxa - zwischen SGW-C und SGW-U
- Sxb - zwischen PGW-C und PGW-U
- Sxc - zwischen TDF-C und TDF-U (Verkehrserkennungsfunktion)
- N4 - zwischen SMF und UPF
Hinweis: Sxa und Sxb können kombiniert werden, falls ein zusammengeführtes SGW/PGW implementiert wird.

Funktionalität
Das Control-Plane-Funktionselement (z. B. PGW-C, SMF) steuert die Paketverarbeitung und -weiterleitung in den User-Plane-Funktionselementen (z. B. PGW-U, UPF) durch das Einrichten, Ändern oder Löschen von PFCP-Sitzungen.
Benutzerdatenpakete werden zwischen den CP- und UP-Funktionen durch GTP-U-Kapselung weitergeleitet (siehe 3GPP TS 29.281 [3]). Für die Weiterleitung von Daten von der UP- zur CP-Funktion stellt die CP-Funktion pro PFCP-Sitzungskontext Paketerkennungsregeln (PDR) bereit. Die Paketerkennungsinformationen (PDI) identifizieren den an die CP-Funktion weiterzuleitenden Benutzerdatenverkehr. Eine Weiterleitungsaktionsregel (FAR) ist mit der Zielschnittstelle „CP-Funktionsseite“ konfiguriert und führt die GTP-U-Kapselung durch. Anschließend werden die Pakete an eine GTP-U-F-TEID weitergeleitet, die in der CP-Funktion pro PFCP-Sitzung und PDR eindeutig zugewiesen ist. Die CP-Funktion identifiziert dann die PDN-Verbindung und den Träger, zu dem die weitergeleiteten Daten gehören, anhand der vollqualifizierten TEID (F-TEID) im Header des kapselnden GTP-U-Pakets. Für die Weiterleitung von Daten von der CP-Funktion an die UP-Funktion stellt die CP-Funktion pro PFCP-Sitzungskontext einen oder mehrere PDRs bereit. Die PDI ist dabei auf die Quellschnittstelle „CP-Funktionsseite“ gesetzt und identifiziert die in der UP-Funktion jedem PDR eindeutig zugewiesene GTP-u F-TEID. Ein FAR ist so konfiguriert, dass er die GTP-u-Dekapselung durchführt und die Pakete an das Ziel weiterleitet. URRs und QERs können ebenfalls konfiguriert werden.
Pro Sitzung werden mehrere PDRs, FARs, QoS Enforcement Rules (QER), Usage Reporting Rules (URR) und/oder Buffering Action Rules (BAR) gesendet.
Hier sind die wichtigsten verwendeten Konzepte, geordnet nach ihrem logischen Assoziationsmodell:
- PDRs (Paketerkennungsregeln) enthalten Informationen zum Abgleich von Datenpaketen mit bestimmten Verarbeitungsregeln. Sowohl die äußere Kapselung als auch die inneren Benutzerebenen-Header können abgeglichen werden. Bei einem positiven Abgleich können die folgenden Regeln angewendet werden:
- FARs – Weiterleitungsaktionsregeln – legen fest, ob und wie Pakete, die den PDRs entsprechen, verworfen, weitergeleitet, zwischengespeichert oder dupliziert werden sollen, einschließlich eines Auslösers für die Benachrichtigung des ersten Pakets; sie umfassen Regeln zur Paketkapselung oder Header-Anreicherung. Im Falle der Zwischenspeicherung können die folgenden Regeln angewendet werden:
- BARs – Buffering Action Rules – wie viele Daten gepuffert werden sollen und wie die Steuerungsebene benachrichtigt werden soll.
- QERs – QoS -Durchsetzungsregeln – Regeln für die Bereitstellung von Gating und QoS-Kontrolle, Fluss- und Servicelevel-Markierung.
- URRs – Usage Reporting Rules – enthalten Regeln zum Zählen und Melden des von der Benutzerebene verarbeiteten Datenverkehrs und generieren Berichte, um die Abrechnungsfunktionalität in den Steuerungsebenenfunktionen zu ermöglichen.
- FARs – Weiterleitungsaktionsregeln – legen fest, ob und wie Pakete, die den PDRs entsprechen, verworfen, weitergeleitet, zwischengespeichert oder dupliziert werden sollen, einschließlich eines Auslösers für die Benachrichtigung des ersten Pakets; sie umfassen Regeln zur Paketkapselung oder Header-Anreicherung. Im Falle der Zwischenspeicherung können die folgenden Regeln angewendet werden:
Nachrichten
| Bit-/Byte-Offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bytes 0..3 | Version (1) | (überflüssige Nullen) | FO | Abgeordneter | S | Nachrichtentyp | Nachrichtenlänge (in Bytes, die ersten 4 Bytes nicht mitgerechnet) | |||||||||||||||||||||||||
| Bytes 4..11 | Wenn das S-Flag gesetzt ist, dann SEID; andernfalls fehlen diese Bytes. | |||||||||||||||||||||||||||||||
| Bytes 8..11 | ||||||||||||||||||||||||||||||||
| Bytes 4..7 oder 12.15 | Sequenznummer | Wenn (MP-Flag gesetzt) dann Nachricht Priorität; ansonsten (Reserve-Nullen) | (überflüssige Nullen) | |||||||||||||||||||||||||||||
| Bytes 8..(MsgLen+4) oder 16..(MsgLen+4) | Null oder mehr Informationselemente | |||||||||||||||||||||||||||||||
| Bit-/Byte-Offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bytes 0..3 | Typ | IE-Länge (in Bytes, ohne die ersten 4) | ||||||||||||||||||||||||||||||
| Bytes 4..IELen+4 | Wenn (Typ >= 32768) dann Unternehmens-ID; andernfalls ist dies Teil der Nutzdaten | Nutzlast (Fortsetzung) ... | ||||||||||||||||||||||||||||||
| Nutzlast Fortsetzung ... | ||||||||||||||||||||||||||||||||
Informationselemente (IEs) werden entweder als solche mit proprietärer Kodierung oder als gruppiert definiert. Gruppierte IEs sind einfach eine Liste anderer IEs, die nacheinander kodiert sind, wie im PFCP-Nachrichtennutzlast.
IE-Typen 0 bis 32767 sind 3GPP-spezifisch und haben keine festgelegte Enterprise-ID. IE-Typen 32768 bis 65535 können durch benutzerdefinierte Implementierungen verwendet werden, wobei die Enterprise-ID auf die IANA SMI Network Management Private Enterprise Codes [ 4 ] der ausstellenden Partei gesetzt werden muss.
Nachrichten
| Nachrichtentyp | Nachricht | Anwendbarkeit der Schnittstelle | Richtung | Zweck | |||||
|---|---|---|---|---|---|---|---|---|---|
| Anfrage | Antwort | Sxa | Sxb | Sxc | N4 | Anfrage | Antwort | ||
| 0 | (Reserviert) | ||||||||
| (1..49) | Knotenbezogene Nachrichten | ||||||||
| 1 | 2 | Herzschlag | X | X | X | X | CP ↔ UP | Kann optional zwischen Kommunikationspartnern mit bestehender Verbindung verwendet werden, um zu prüfen, ob der andere Knoten aktiv ist. Ein Wiederherstellungszeitstempel dient zur Erkennung, ob der andere Partner neu gestartet wurde. | |
| 3 | 4 | PFD-Management | - | X | X | X | CP → UP | UP → CP | Optionale Funktion zur Bereitstellung von PFDs pro Anwendungskennung außerhalb der regulären PFCP-Sitzungen. |
| 5 | 6 | Einrichtung der Vereinigung | X | X | X | X | CP ↔ UP | Richtet eine Verknüpfung zwischen CP- und UP-Funktionselementen ein und aktualisiert diese. Enthält eine Liste optionaler Funktionen, um die anderen Elemente über deren Fähigkeiten zu informieren; weitere Konfigurationselemente werden ebenfalls übergeben. Vor diesem Vorgang sollten keine sitzungsbezogenen Nachrichten ausgetauscht werden. Während die Association-Release nur vom CP ausgelöst wird, kann der UP sie im Rahmen der Association-Update-Request anfordern. | |
| 7 | 8 | Verbands-Update | X | X | X | X | CP ↔ UP | ||
| 9 | 10 | Pressemitteilung des Verbandes | X | X | X | X | CP → UP | UP → CP | |
| - | 11 | Version nicht unterstützt | X | X | X | X | CP ↔ UP | Fehlermeldung für alle Anfragen, die nicht die implementierten Versionen abdecken (derzeit ist nur Version 1 definiert). | |
| 12 | 13 | Knotenbericht | X | X | X | X | UP → CP | CP → UP | Wird von der UP-Funktion gesendet, um Informationen zu melden, die nicht Teil einer Sitzung sind, aber potenziell allgemein gültig sind (z. B. Ausfall des Benutzerpfads). |
| 14 | 15 | Sitzungssatzlöschung | X | X | - | CP → UP | UP → CP | Sendet eine Nachricht der CP-Funktion, um einen Teilausfall anzuzeigen und die Löschung aller betroffenen Sitzungen anzufordern. | |
| (50..99) | Sitzungsbezogene Nachrichten | ||||||||
| 50 | 51 | Sitzungseinrichtung | X | X | X | X | CP → UP | UP → CP | Diese werden vom CP verwendet, um Sitzungen einzurichten, zu ändern und zu entfernen, die aus Regelsätzen für die Verarbeitung und Weiterleitung von UP-Datenverkehr bestehen. Dies sind die wichtigsten Funktionsnachrichten der PFCP-Anwendungsdomäne. Die UP kann Nutzungsberichtsinformationen in die Antwort aufnehmen, sodass eine zusätzliche Sitzungsberichtsnachricht vermieden wird. |
| 52 | 53 | Sitzungsänderung | X | X | X | X | |||
| 54 | 55 | Sitzungslöschung | X | X | X | X | |||
| 56 | 57 | Sitzungsbericht | X | X | X | X | UP → CP | CP → UP | Bericht aus dem UP-Nutzungsbericht Informationen basierend auf den Paketverarbeitungs- und Weiterleitungsverfahren: Downlink-Daten (Benachrichtigung über neu in die Warteschlange gestellte Pakete), Nutzungsbericht (volumen-, zeit- usw. basierte Informationen für Abrechnungszwecke), Fehler- und/oder Inaktivitätsanzeigen. |
| (100..255) | Andere Nachrichten | ||||||||
Transport
Ähnlich wie GTP-C verwendet PFCP UDP . Port 8805 ist reserviert. [ 5 ]
Zur Gewährleistung der Zuverlässigkeit wird eine ähnliche Strategie zur erneuten Übertragung wie bei GTP-C verwendet, wobei verlorene Nachrichten N1-mal in T1-Intervallen erneut gesendet werden. Transaktionen werden durch die 3 Byte lange Sequenznummer, die IP-Adresse und den Port des Kommunikationspartners identifiziert.
Das Protokoll beinhaltet ein eigenes Heartbeat-Anfrage-/Antwortmodell, das die Überwachung der Verfügbarkeit von Kommunikationspartnern und die Erkennung von Neustarts (mittels eines Recovery-Timestamp-Informationselements) ermöglicht.
Für den Austausch von Benutzerpaketen zwischen den Funktionselementen der Steuerungs- und Benutzerebene wird GTP-U für die Sx-u-Schnittstelle verwendet, alternativ eine einfachere UDP- oder Ethernet -Kapselung für die N4-u-Schnittstelle (dies muss noch bestätigt werden, da die Standards noch nicht vollständig sind).
Siehe auch
Anmerkungen
- ^ 3GPP TS 29.244 LTE; Schnittstelle zwischen der Steuerungsebene und der Benutzerebene von EPC-Knoten
- ^ „Das 5G-Kernnetz (5GC) – Teil 1 – Netzwerkkomponenten“ . 25. April 2018.
- ^ Flynn, Kevin. „Trennung der Steuerungs- und Benutzerebene von EPC-Knoten (CUPS)“ . www.3gpp.org .
- ^ „Zahlen privater Unternehmen“ . Archiviert vom Original am 1. Juli 2013.
- ^ „Register für Dienstnamen und Transportprotokoll-Portnummern“ . www.iana.org .