digraph G { rankdir=LR subgraph cluster_bss_a { label="BSS Alpha" BTS_a0 [rank=min,label="bts 0\nARFCN=1 BSIC=1\nLAC=23 CI=5"] BTS_a1 [rank=min,label="bts 1\nARFCN=2 BSIC=2\nLAC=23 CI=6"] BSC_a [label="BSC Alpha"]; {BTS_a0,BTS_a1} -> BSC_a [arrowhead=none,label=Abis] } subgraph cluster_bss_b { label="BSS Beta" BTS_b0 [rank=min,label="bts 0\nARFCN=1 BSIC=3\nLAC=42 CI=3"] BTS_b1 [rank=min,label="bts 1\nARFCN=2 BSIC=4\nLAC=42 CI=1"] BSC_b [label="BSC Beta"] {BTS_b0,BTS_b1} -> BSC_b [arrowhead=none,label=Abis] } MS -> BTS_a1 [label="(3) Measurement:\nARFCN=1 BSIC=1 RXLEV"] BTS_a1 -> MS [label="(1) my neighbors:\nARFCN=1"] BTS_a0 -> MS [label="(2) good RXLEV\nBSIC=1",style=dotted] MS -> {BTS_a0,BTS_b0,BTS_b1} [style=invisible,arrowhead=none] BTS_a1 -> BSC_a [label="(4) Measurement\nReport",style=dashed] BTS_a1 -> BTS_a0 [label="(5) BSC decides to do\nintra-BSC Handover",style=dashed,constraint=false] BSC_a -> BTS_a0 [label="(6) activate new lchan",style=dashed,constraint=false] {BSC_a,BSC_b} -> MSC [arrowhead=none,label=A] }