About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / blockdev / drbd / drbd-connection-state-overview.dot


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:52 EST.

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


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog