graph G { rankdir=LR; MS0 [label="MS",shape=box] MS1 [label="MS",shape=box] MS2 [label="MS",shape=box] MS0--PHY [label="Um"] MS1--PHY [label="Um"] MS2--PHY [label="Um"] subgraph cluster_0 { label = "sysmoBTS" OsmoBTS OsmoPCU [style="dashed"] PHY -- OsmoBTS [label="shmem msgq"] PHY -- OsmoPCU [label="shmem msgq"] OsmoPCU -- OsmoBTS [label="pcu_sock"] { rank=same; OsmoBTS OsmoPCU } } subgraph cluster_1 { label = "Linux PC" OsmoBSC OsmoMSC OsmoHLR OsmoSGSN [style="dashed"] OsmoGGSN [style="dashed"] OsmoBTS -- OsmoBSC [label="Abis/IP"] OsmoBSC -- OsmoMSC [label="A/IP"] OsmoMSC -- OsmoHLR [label="GSUP/IP"] OsmoPCU -- OsmoSGSN [label="Gb/IP"] OsmoSGSN -- OsmoGGSN [label="Gn/IP"] { rank=same; OsmoMSC OsmoSGSN } } }