[graphviz]
----
digraph G {
  rankdir=LR;
  subgraph cluster_swan {
    label = "StrongSWAN domain";
    charon;
  }
  subgraph cluster_erlang {
    label = "Erlang domain (osmo-epdg)";
    ePDG [color=red];
    AAA [label="3GPP AAA Server", color=red];
  }
  HSS;
  PGW;
  PCRF;
  UE;

  charon -> ePDG [label="CEAI", color=red];

  UE -> charon [label="IKEv2"];
  ePDG -> AAA [label="SWm (DIAMETER)", color=red];
  AAA -> HSS [label="SWx (DIAMETER)", color=red];
  PGW -> AAA [label="S6b (DIAMETER)", color=red];

  ePDG -> PGW [label="S2b (GTPv2C)", color=red];
  ePDG -> PCRF [label="Gxb", color=red, style=dashed];
  PGW -> PCRF [label="Gx (DIAMETER)"];

  {rank=same; PCRF; HSS}
}
----
