| digraph G { |
| rankdir=TB |
| labelloc=t; label="Handover FSM: Intra-BSC" |
| |
| lchan [label="lchan FSM",shape=box3d] |
| intra [label="intra-BSC HO",shape=box] |
| old_lchan [label="old lchan",shape=box3d] |
| terminate [shape=octagon] |
| |
| invisible [style="invisible"] |
| invisible -> intra [label="Measurement Report",style=dotted] |
| invisible -> old_lchan [style=invisible,arrowhead=none] |
| |
| intra -> WAIT_LCHAN_ACTIVE [label="handover_start()",style=dotted] |
| WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate(FOR_HANDOVER)",style=dotted] |
| lchan -> WAIT_LCHAN_ACTIVE [label="HO_EV_\nLCHAN_\nACTIVE,ERROR",style=dotted,constraint=false] |
| WAIT_LCHAN_ACTIVE -> WAIT_RR_HO_DETECT |
| WAIT_RR_HO_DETECT -> old_lchan [label="RR Handover\nCommand",style=dotted,constraint=false] |
| |
| lchan -> WAIT_RR_HO_DETECT [label="RR Handover\nDetect",style=dotted] |
| WAIT_RR_HO_DETECT -> WAIT_RR_HO_COMPLETE |
| |
| lchan -> WAIT_RR_HO_COMPLETE [label="RR Handover\nComplete",style=dotted] |
| WAIT_RR_HO_COMPLETE -> WAIT_LCHAN_ESTABLISHED |
| lchan -> WAIT_LCHAN_ESTABLISHED [label="HO_EV_LCHAN_\nESTABLISHED",style=dotted] |
| |
| WAIT_LCHAN_ESTABLISHED -> terminate [label="non-TCH"] |
| WAIT_LCHAN_ESTABLISHED -> WAIT_MGW_ENDPOINT_TO_MSC |
| WAIT_MGW_ENDPOINT_TO_MSC -> terminate [label="handover_end()"] |
| } |