[graphviz]
----
digraph G {
  rankdir=LR;

  subgraph cluster_swan {
    label = "StrongSWAN domain";
    { rank=same;
      ipsec [label="Linux kernel\nIPsec"];
      charon [color=blue];
    }
    charon -> ipsec [label="netlink", color=blue];
  }
  subgraph cluster_erlang {
    label = "Erlang domain";
    { rank=same
      gtp [label="Linux kernel\nGTP"];
      ePDG [color="blue"];
    }
    ePDG -> gtp [label="netlink", color=blue];
  }
  PGW;
  UE;

  UE -> ipsec [label="ESP/UDP"];
  ipsec->gtp [label="kernel IP stack"];
  gtp -> PGW [label="S2b (GTPv1U)", color=red];
}
----
