digraph G { rankdir=TB labelloc=t; label="Handover FSM: Inter-BSC Outgoing" invisible [style=invisible] invisible -> ho_out [label="Measurement Report\nincluding neighbor\nBSS ARFCN",style=dotted] ho_out [label="inter-BSC HO Outgoing",shape=box] msc [label="MSC",shape=box3d] new_bsc [label="new BSC",shape=box3d] lchan [label="lchan",shape=box3d] terminate [shape=octagon] ho_out -> HO_OUT_ST_WAIT_HO_COMMAND [label="handover_start()"] HO_OUT_ST_WAIT_HO_COMMAND -> msc [label="BSSMAP Handover\nRequired",style=dotted] msc -> new_bsc [label="BSSMAP Handover\nRequest",style=dotted] new_bsc -> msc [label="BSSMAP Handover\nRequest Ack",style=dotted] msc -> HO_OUT_ST_WAIT_HO_COMMAND [label="BSSMAP Handover\nCommand",style=dotted] HO_OUT_ST_WAIT_HO_COMMAND -> lchan [label="RR Handover\nCommand\nfrom new BSC",style=dotted] HO_OUT_ST_WAIT_HO_COMMAND -> HO_OUT_ST_WAIT_CLEAR msc -> HO_OUT_ST_WAIT_CLEAR [label="BSSMAP\nClear\nCommand",style=dotted] HO_OUT_ST_WAIT_CLEAR -> terminate }