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 BSIC=1\nARFCN=1 BSIC=3"]
BTS_a0 -> MS [label="(2) good RXLEV",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]

}
