digraph G {
rankdir=LR
labelloc=t; label="PFCP and GTP"

SGSN [label="SGSN\n123.44.0.9"]
SGWC [label="SGW-C\n123.44.05"]
subgraph cluster_UPF {
 label="OsmoUPF";
 SGWU [label="SGW-U\n123.44.0.6"];
 GTPk [label="kernel GTP\n123.44.0.6"]
}

SGSN -> SGWC [label="S4\nGTPv2-C"]
SGWC -> SGWU [label="Sxa\nPFCP\nSession Establishment:\n"]
SGSN -> GTPk [label="S4\nGTPv1-U",dir=both]

MS [label="MS\n192.168.104.176"]
MS -> SGSN [dir=both]

}
