1e7751617SMauro Carvalho Chehab// vim: set sw=2 sts=2 : 2e7751617SMauro Carvalho Chehabdigraph { 3e7751617SMauro Carvalho Chehab rankdir=BT 4e7751617SMauro Carvalho Chehab bgcolor=white 5e7751617SMauro Carvalho Chehab 6e7751617SMauro Carvalho Chehab node [shape=plaintext] 7e7751617SMauro Carvalho Chehab node [fontcolor=black] 8e7751617SMauro Carvalho Chehab 9e7751617SMauro Carvalho Chehab StandAlone [ style=filled,fillcolor=gray,label=StandAlone ] 10e7751617SMauro Carvalho Chehab 11e7751617SMauro Carvalho Chehab node [fontcolor=lightgray] 12e7751617SMauro Carvalho Chehab 13e7751617SMauro Carvalho Chehab Unconnected [ label=Unconnected ] 14e7751617SMauro Carvalho Chehab 15e7751617SMauro Carvalho Chehab CommTrouble [ shape=record, 16e7751617SMauro Carvalho Chehab label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ] 17e7751617SMauro Carvalho Chehab 18e7751617SMauro Carvalho Chehab node [fontcolor=gray] 19e7751617SMauro Carvalho Chehab 20e7751617SMauro Carvalho Chehab subgraph cluster_try_connect { 21e7751617SMauro Carvalho Chehab label="try to connect, handshake" 22e7751617SMauro Carvalho Chehab rank=max 23e7751617SMauro Carvalho Chehab WFConnection [ label=WFConnection ] 24e7751617SMauro Carvalho Chehab WFReportParams [ label=WFReportParams ] 25e7751617SMauro Carvalho Chehab } 26e7751617SMauro Carvalho Chehab 27e7751617SMauro Carvalho Chehab TearDown [ label=TearDown ] 28e7751617SMauro Carvalho Chehab 29e7751617SMauro Carvalho Chehab Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ] 30e7751617SMauro Carvalho Chehab 31e7751617SMauro Carvalho Chehab node [fontcolor=lightblue] 32e7751617SMauro Carvalho Chehab 33e7751617SMauro Carvalho Chehab StartingSyncS [ label=StartingSyncS ] 34e7751617SMauro Carvalho Chehab StartingSyncT [ label=StartingSyncT ] 35e7751617SMauro Carvalho Chehab 36e7751617SMauro Carvalho Chehab subgraph cluster_bitmap_exchange { 37e7751617SMauro Carvalho Chehab node [fontcolor=red] 38e7751617SMauro Carvalho Chehab fontcolor=red 39e7751617SMauro Carvalho Chehab label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged" 40e7751617SMauro Carvalho Chehab 41e7751617SMauro Carvalho Chehab WFBitMapT [ label=WFBitMapT ] 42e7751617SMauro Carvalho Chehab WFSyncUUID [ label=WFSyncUUID ] 43e7751617SMauro Carvalho Chehab WFBitMapS [ label=WFBitMapS ] 44e7751617SMauro Carvalho Chehab } 45e7751617SMauro Carvalho Chehab 46e7751617SMauro Carvalho Chehab node [fontcolor=blue] 47e7751617SMauro Carvalho Chehab 48e7751617SMauro Carvalho Chehab cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ] 49e7751617SMauro Carvalho Chehab 50e7751617SMauro Carvalho Chehab node [shape=box,fontcolor=black] 51e7751617SMauro Carvalho Chehab 52e7751617SMauro Carvalho Chehab // drbdadm [label="drbdadm connect"] 53e7751617SMauro Carvalho Chehab // handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."] 54e7751617SMauro Carvalho Chehab // comm_error [label="communication trouble"] 55e7751617SMauro Carvalho Chehab 56e7751617SMauro Carvalho Chehab // 57e7751617SMauro Carvalho Chehab // edges 58e7751617SMauro Carvalho Chehab // -------------------------------------- 59e7751617SMauro Carvalho Chehab 60e7751617SMauro Carvalho Chehab StandAlone -> Unconnected [ label="drbdadm connect" ] 61e7751617SMauro Carvalho Chehab Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ] 62e7751617SMauro Carvalho Chehab Unconnected -> WFConnection [ label="receiver thread is started" ] 63e7751617SMauro Carvalho Chehab WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ] 64e7751617SMauro Carvalho Chehab 65e7751617SMauro Carvalho Chehab WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ] 66e7751617SMauro Carvalho Chehab WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ] 67e7751617SMauro Carvalho Chehab 68e7751617SMauro Carvalho Chehab WFReportParams -> WFBitMapS 69e7751617SMauro Carvalho Chehab WFReportParams -> WFBitMapT 70e7751617SMauro Carvalho Chehab WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false] 71e7751617SMauro Carvalho Chehab 72e7751617SMauro Carvalho Chehab WFBitMapS -> cluster_resync:S 73e7751617SMauro Carvalho Chehab WFSyncUUID -> cluster_resync:T 74e7751617SMauro Carvalho Chehab 75e7751617SMauro Carvalho Chehab edge [color=green] 76e7751617SMauro Carvalho Chehab cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ] 77e7751617SMauro Carvalho Chehab 78e7751617SMauro Carvalho Chehab edge [color=red] 79e7751617SMauro Carvalho Chehab WFReportParams -> CommTrouble 80e7751617SMauro Carvalho Chehab Connected -> CommTrouble 81e7751617SMauro Carvalho Chehab cluster_resync:any -> CommTrouble 82e7751617SMauro Carvalho Chehab edge [color=black] 83e7751617SMauro Carvalho Chehab CommTrouble -> Unconnected [label="receiver thread is stopped" ] 84e7751617SMauro Carvalho Chehab 85e7751617SMauro Carvalho Chehab} 86