From abf1d43e5e3eac3a530e121d5e9787807cb5b324 Mon Sep 17 00:00:00 2001 From: Neels Janosch Hofmeyr Date: Mon, 21 Nov 2022 12:36:52 +0100 Subject: [PATCH] add doc/charts/pfcp_msgs*.msc (I used these while implementing libosmo-pfcp and osmo-upf, but never submitted them.) Change-Id: I8d2343224d02d728e2eee2090ee2d4c6bec79e78 --- doc/charts/pfcp_msgs.msc | 60 ++++++++++++++++++++++++ doc/charts/pfcp_msgs_gtp.msc | 91 ++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 doc/charts/pfcp_msgs.msc create mode 100644 doc/charts/pfcp_msgs_gtp.msc diff --git a/doc/charts/pfcp_msgs.msc b/doc/charts/pfcp_msgs.msc new file mode 100644 index 0000000..afcca18 --- /dev/null +++ b/doc/charts/pfcp_msgs.msc @@ -0,0 +1,60 @@ +msc { + hscale="1"; + upf[label="User Plane function"],cpf[label="Control Plane function"]; + + cpf rbox cpf [label="Look up UPF,\npick any one of the available\nIP addrs for the UPF"]; + + ...; + upf abox cpf [label="not yet associated"]; + upf rbox cpf [label="reject any session related msgs"]; + ...; + + upf <<= cpf [label="PFCP Association Setup Request\nCP function Node Id, features"]; + upf =>> cpf [label="PFCP Association Setup Response\nUP function Node Id, features"]; + upf abox cpf [label="associated"]; + upf rbox cpf [label="start Heartbeat checking"]; + ...; + upf <<= cpf [label="Heartbeat Request"]; + upf =>> cpf [label="Heartbeat Response"]; + ...; + upf =>> cpf [label="Heartbeat Request"]; + upf <<= cpf [label="Heartbeat Response"]; + ...; + + upf <<= cpf [label="Session Establishment Request\nCP Node-Id\nCP F-SEID\n1+ Packet Detection Rule(s)\n1+ Forward Action Rule(s)"]; + upf =>> cpf [label="Session Establishment Response"]; + + upf <<= cpf [label="Session Modification Request"]; + upf =>> cpf [label="Session Modification Response"]; + + upf <<= cpf [label="Session Deletion Request"]; + upf =>> cpf [label="Session Deletion Response"]; + + ...; + upf rbox cpf [label="F-SEID: accept any other IP addrs than peer's Node Id"]; + ...; + + --- [label="Graceful release initiated by CP"]; + + upf <<= cpf [label="Association Update Request\nwith PFCP Association Release Preparation Start = 1"]; + upf =>> cpf [label="Association Update Response"]; + upf =>> cpf [label="Session Report Request\nto report non-zero usage reports,\nat least one message per PFCP Session"]; + upf <<= cpf [label="Association Release Request"]; + upf =>> cpf [label="Association Release Response"]; + + --- [label="Graceful release initiated by UP"]; + + upf =>> cpf [label="Association Update Request\nwith PFCP Association Release Preparation = 1"]; + cpf abox cpf [label="refrain from establishing sessions"]; + upf <<= cpf [label="Association Update Response"]; + upf <<= cpf [label="Session Deletion Request(s)\nto collect usage reports\nper session"]; + upf =>> cpf [label="Session Deletion Response(s)"]; + cpf rbox cpf [label="wait Graceful Release Period"]; + upf <<= cpf [label="Association Release Request"]; + upf =>> cpf [label="Association Release Response"]; + + --- [label="Release (immediate)"]; + + upf <<= cpf [label="Association Release Request"]; + upf =>> cpf [label="Association Release Response"]; +} diff --git a/doc/charts/pfcp_msgs_gtp.msc b/doc/charts/pfcp_msgs_gtp.msc new file mode 100644 index 0000000..f59412c --- /dev/null +++ b/doc/charts/pfcp_msgs_gtp.msc @@ -0,0 +1,91 @@ +msc { + hscale="1"; + sgsn[label="SGSN\n123.44.0.9"],sgwc[label="SGW-C\n123.44.0.5"],sgwu[label="SGW-U\n123.44.0.6"],pgwc[label="PGW-C\n123.44.0.7"],pgwu[label="PGW-U\n123.44.0.8"]; + + sgsn <=> sgwc [label="S4-C GTPv2-C"]; + sgwc <=> sgwu [label="Sxa PFCP"]; + sgsn <=> sgwu [label="S4-U GTPv1-U"]; + sgwc <=> pgwc [label="S5-C GTPv2-C"]; + pgwc <=> pgwu [label="Sxb PFCP"]; + sgwu <=> pgwu [label="S5-U GTPv1-U"]; + + ...; + + sgsn => sgwc [label="GTP Create Session Request"]; + sgsn note sgwc [label="F-TEID S11 = 123.44.0.9,0x004\nF-TEID S5 = 123.44.0.7,0x000\nPDN addr alloc = IPv4 192.168.100.2"]; + + |||; + |||; + + sgwc => sgwu [label="PFCP Session Establishment Request"]; + sgwc note sgwu [label="2x Create PDR\nF-TEID = CHOOSE\nFAR = NOCP,BUFF"]; + + |||; + |||; + + sgwc <= sgwu [label="PFCP Session Establishment Response"]; + sgwc note sgwu [label="Created PDR F-TEID 123.44.0.6,0x015\nCreated PDR F-TEID 123.44.0.6,0x016"]; + + |||; + |||; + + sgwc => pgwc [label="GTP Create Session Request"]; + sgwc note pgwc [label="F-TEID S5 = 123.44.0.5,0x00b\nPDN addr alloc = IPv4 192.168.100.2\nBearer Ctx: F-TEID S5 = 123.44.0.6,0x015"]; + + |||; + |||; + + pgwc => pgwu [label="PFCP Session Establishment Request"]; + pgwc note pgwu [label="Create PDR 1:\nPDI: src-iface Core, UE IPv4 192.168.100.2\nFAR-1: FORW, dst-iface Access,\nhdr creation: GTP-U 123.44.0.6,0x015\n\nCreate PDR 2:\nPDI: src-iface Access, F-TEID = CHOOSE id:05\nhdr removal: GTP-U\nFAR-2: FORW, dst-iface Core\n\nCreate PDR 3:\nPDI: src-iface CP-function, F-TEID = CHOOSE\nhdr removal: GTP-U\nFAR-1\n\nCreate PDR 4:\nPDI: src-iface Access, F-TEID = CHOOSE id:05, SDF Filter\nhdr removal: GTP-U\nFAR-3: FORW, dst-iface CP-Function,\nhdr creation: GTP-U 123.44.0.7,0x00b"]; + + |||; + + pgwc <= pgwu [label="PFCP Session Establishment Response"]; + pgwc note pgwu [label="Created PDR-1\nCreated PDR-2: F-TEID = 123.44.0.8,0x01e\nCreated PDR-3: F-TEID = 123.44.0.8,0x01f\nCreated PDR-4: F-TEID = 123.44.0.8,0x01e"]; + + |||; + |||; + + sgwc <= pgwc [label="GTP Create Session Response"]; + sgwc note pgwc [label="TEID: 0x00b\nF-TEID: 123.44.0.7,0x00b\nPDN Addr: 192.168.100.2\nBearer Ctx: F-TEID S5 123.44.0.8,0x01e"]; + + |||; + |||; + + sgwc => sgwu [label="PFCP Session Modification Request"]; + sgwc note sgwu [label="Update FAR-2: FORW, dst-iface Core,\nhdr creation GTP-U 123.44.0.8,0x01e"]; + + |||; + + sgwc <= sgwu [label="PFCP Session Modification Response"]; + + |||; + |||; + + sgsn <= sgwc [label="GTP Create Session Response"]; + sgsn note sgwc [label="TEID: 0x004\nF-TEID S11/S4: 123.44.0.5,0x007\nF-TEID S5/S8: 123.44.0.7,0x00b\nPDN Addr: 192.168.100.2\nBearer Ctx:\nF-TEID S1-U: 123.44.0.6,0x016\nF-TEID S5/S8: 123.44.0.8,0x01e"]; + + |||; + |||; + + sgsn => sgwc [label="GTP Modify Bearer Request"]; + sgsn note sgwc [label="TEID: 0x007\nBearer Ctx:\nF-TEID S1-U: 192.168.104.167,0x32adb2ad"]; + + |||; + |||; + + sgwc => sgwu [label="PFCP Session Modification Request"]; + sgwc note sgwu [label="Update FAR-1: FORW, dst-iface Access,\nhdr creation: GTP-U 192.168.104.167,0x32adb2ad"]; + + |||; + |||; + + + sgwc <= sgwu [label="PFCP Session Modification Response"]; + + |||; + + sgsn <= sgwc [label="GTP Modify Bearer Response"]; + sgsn note sgwc [label="TEID: 0x004\nBearer Ctx:\nF-TEID S1-U: 192.168.104.167,0x32adb2ad"]; + +}