aboutsummaryrefslogtreecommitdiffstats
path: root/doc/charts/pfcp_cp_peer_fsm.dot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/charts/pfcp_cp_peer_fsm.dot')
-rw-r--r--doc/charts/pfcp_cp_peer_fsm.dot39
1 files changed, 39 insertions, 0 deletions
diff --git a/doc/charts/pfcp_cp_peer_fsm.dot b/doc/charts/pfcp_cp_peer_fsm.dot
new file mode 100644
index 0000000..101fe07
--- /dev/null
+++ b/doc/charts/pfcp_cp_peer_fsm.dot
@@ -0,0 +1,39 @@
+digraph G {
+rankdir=TB
+labelloc=t; label="PFCP CP peer FSM\nControl Plane side, managing association with remote UP peer"
+
+cp [label="CP function",shape="box"]
+
+cp -> WAIT_ASSOC_SETUP_RESP [label="cp_peer_associate()"]
+
+txrx [label="PFCP socket",shape="box"]
+WAIT_ASSOC_SETUP_RESP -> txrx [label="tx_assoc_setup_req()",style=dotted]
+txrx -> WAIT_ASSOC_SETUP_RESP [label="EV_RX_ASSOC_SETUP_RESP",style=dotted]
+WAIT_ASSOC_SETUP_RESP -> ASSOCIATED [label="Assoc Setup Resp"]
+
+WAIT_ASSOC_SETUP_RESP -> WAIT_ASSOC_SETUP_RESP [label="retry"]
+
+heartbeat [label="PFCP heartbeat FSM",shape=box3d]
+ASSOCIATED -> heartbeat [label="alloc()",style=dotted]
+heartbeat -> ASSOCIATED [label="EV_HEARTBEAT_FAILURE",style=dotted]
+
+txrx2 [label="PFCP socket",shape="box"]
+txrx2 -> ASSOCIATED [label="EV_RX_ASSOC_UPDATE_REQ\n3GPP TS 29.244 6.2.7.3.1",style=dotted]
+GRACEFUL_RELEASE -> txrx2 [label="tx_assoc_update_resp()",style=dotted]
+
+cp_session [label="PFCP CP session FSM",shape=box3d]
+cp -> ASSOCIATED [label="cp_peer_session_create()",style=dotted]
+ASSOCIATED -> cp_session [label="cp_session_create()",style=dotted]
+cp -> cp_session [style=invisible,arrowhead=none]
+
+ASSOCIATED -> GRACEFUL_RELEASE [label="Association Update\nindicating graceful release"]
+
+cp -> ASSOCIATED [label="cp_peer_release()",style=dotted]
+ASSOCIATED -> term [label="cp_peer_release()\nHeartbeat failure"]
+
+ASSOCIATED -> WAIT_ASSOC_SETUP_RESP [label="Heartbeat failure"]
+
+GRACEFUL_RELEASE -> term
+term [shape="octagon"]
+
+}