Merge lp:~pedronis/ubuntu-push/protocol-diagrams into lp:ubuntu-push
- protocol-diagrams
- Merge into trunk
Proposed by
Samuele Pedroni
Status: | Merged |
---|---|
Approved by: | Samuele Pedroni |
Approved revision: | 8 |
Merged at revision: | 7 |
Proposed branch: | lp:~pedronis/ubuntu-push/protocol-diagrams |
Merge into: | lp:ubuntu-push |
Diff against target: |
311 lines (+282/-1) 5 files modified
Makefile (+6/-1) protocol/state-diag-client.gv (+16/-0) protocol/state-diag-client.svg (+98/-0) protocol/state-diag-session.gv (+20/-0) protocol/state-diag-session.svg (+142/-0) |
To merge this branch: | bzr merge lp:~pedronis/ubuntu-push/protocol-diagrams |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
John Lenton (community) | Approve | ||
Review via email:
|
Commit message
protocol diagrams using graphviz
Description of the change
protocol diagrams using graphviz
To post a comment you must log in.
- 8. By Samuele Pedroni
-
don't mix spaces and tabs
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
John Lenton (chipaca) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'Makefile' |
2 | --- Makefile 2014-01-15 11:12:05 +0000 |
3 | +++ Makefile 2014-01-16 20:07:29 +0000 |
4 | @@ -44,5 +44,10 @@ |
5 | check-format: |
6 | scripts/check_fmt $(PROJECT) |
7 | |
8 | +protocol-diagrams: protocol/state-diag-client.svg protocol/state-diag-session.svg |
9 | +%.svg: %.gv |
10 | + # requires graphviz installed |
11 | + dot -Tsvg $< > $@ |
12 | + |
13 | .PHONY: bootstrap check check-race format check-format coverage-summary \ |
14 | - coverage-html |
15 | + coverage-html protocol-diagrams |
16 | |
17 | === added file 'protocol/state-diag-client.gv' |
18 | --- protocol/state-diag-client.gv 1970-01-01 00:00:00 +0000 |
19 | +++ protocol/state-diag-client.gv 2014-01-16 20:07:29 +0000 |
20 | @@ -0,0 +1,16 @@ |
21 | +digraph state_diagram_client { |
22 | + label = "State diagram for client"; |
23 | + size="12,6"; |
24 | + rankdir=LR; |
25 | + node [shape = doublecircle]; pingTimeout; |
26 | + node [shape = circle]; |
27 | + start1 -> start2 [ label = "Write wire version" ]; |
28 | + start2 -> start3 [ label = "Write CONNECT" ]; |
29 | + start3 -> loop [ label = "Read CONNACK" ]; |
30 | + loop -> pong [ label = "Read PING" ]; |
31 | + loop -> broadcast [label = "Read BROADCAST"]; |
32 | + pong -> loop [label = "Write PONG"]; |
33 | + broadcast -> loop [label = "Write ACK"]; |
34 | + loop -> pingTimeout [ |
35 | + label = "Elapsed ping interval + exchange interval"]; |
36 | +} |
37 | |
38 | === added file 'protocol/state-diag-client.svg' |
39 | --- protocol/state-diag-client.svg 1970-01-01 00:00:00 +0000 |
40 | +++ protocol/state-diag-client.svg 2014-01-16 20:07:29 +0000 |
41 | @@ -0,0 +1,98 @@ |
42 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
43 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" |
44 | + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
45 | +<!-- Generated by graphviz version 2.26.3 (20100126.1600) |
46 | + --> |
47 | +<!-- Title: state_diagram_client Pages: 1 --> |
48 | +<svg width="864pt" height="279pt" |
49 | + viewBox="0.00 0.00 864.00 278.89" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> |
50 | +<g id="graph1" class="graph" transform="scale(0.683544 0.683544) rotate(0) translate(4 404)"> |
51 | +<title>state_diagram_client</title> |
52 | +<polygon fill="white" stroke="white" points="-4,5 -4,-404 1261,-404 1261,5 -4,5"/> |
53 | +<text text-anchor="middle" x="628" y="-9.4" font-family="Times Roman,serif" font-size="14.00">State diagram for client</text> |
54 | +<!-- pingTimeout --> |
55 | +<g id="node1" class="node"><title>pingTimeout</title> |
56 | +<ellipse fill="none" stroke="black" cx="1180" cy="-324" rx="72.1249" ry="72.1249"/> |
57 | +<ellipse fill="none" stroke="black" cx="1180" cy="-324" rx="76.1249" ry="76.1249"/> |
58 | +<text text-anchor="middle" x="1180" y="-320.4" font-family="Times Roman,serif" font-size="14.00">pingTimeout</text> |
59 | +</g> |
60 | +<!-- start1 --> |
61 | +<g id="node2" class="node"><title>start1</title> |
62 | +<ellipse fill="none" stroke="black" cx="42" cy="-166" rx="41.2167" ry="41.7193"/> |
63 | +<text text-anchor="middle" x="42" y="-162.4" font-family="Times Roman,serif" font-size="14.00">start1</text> |
64 | +</g> |
65 | +<!-- start2 --> |
66 | +<g id="node4" class="node"><title>start2</title> |
67 | +<ellipse fill="none" stroke="black" cx="292" cy="-166" rx="41.2167" ry="41.7193"/> |
68 | +<text text-anchor="middle" x="292" y="-162.4" font-family="Times Roman,serif" font-size="14.00">start2</text> |
69 | +</g> |
70 | +<!-- start1->start2 --> |
71 | +<g id="edge2" class="edge"><title>start1->start2</title> |
72 | +<path fill="none" stroke="black" d="M83.5631,-166C126.547,-166 193.757,-166 240.181,-166"/> |
73 | +<polygon fill="black" stroke="black" points="240.338,-169.5 250.338,-166 240.338,-162.5 240.338,-169.5"/> |
74 | +<text text-anchor="middle" x="167" y="-171.4" font-family="Times Roman,serif" font-size="14.00">Write wire version</text> |
75 | +</g> |
76 | +<!-- start3 --> |
77 | +<g id="node6" class="node"><title>start3</title> |
78 | +<ellipse fill="none" stroke="black" cx="526" cy="-166" rx="41.2167" ry="41.7193"/> |
79 | +<text text-anchor="middle" x="526" y="-162.4" font-family="Times Roman,serif" font-size="14.00">start3</text> |
80 | +</g> |
81 | +<!-- start2->start3 --> |
82 | +<g id="edge4" class="edge"><title>start2->start3</title> |
83 | +<path fill="none" stroke="black" d="M333.565,-166C372.875,-166 431.992,-166 474.321,-166"/> |
84 | +<polygon fill="black" stroke="black" points="474.429,-169.5 484.429,-166 474.429,-162.5 474.429,-169.5"/> |
85 | +<text text-anchor="middle" x="409" y="-171.4" font-family="Times Roman,serif" font-size="14.00">Write CONNECT</text> |
86 | +</g> |
87 | +<!-- loop --> |
88 | +<g id="node8" class="node"><title>loop</title> |
89 | +<ellipse fill="none" stroke="black" cx="746" cy="-166" rx="31.8198" ry="31.8198"/> |
90 | +<text text-anchor="middle" x="746" y="-162.4" font-family="Times Roman,serif" font-size="14.00">loop</text> |
91 | +</g> |
92 | +<!-- start3->loop --> |
93 | +<g id="edge6" class="edge"><title>start3->loop</title> |
94 | +<path fill="none" stroke="black" d="M567.639,-166C606.633,-166 664.616,-166 703.793,-166"/> |
95 | +<polygon fill="black" stroke="black" points="703.818,-169.5 713.818,-166 703.818,-162.5 703.818,-169.5"/> |
96 | +<text text-anchor="middle" x="641" y="-171.4" font-family="Times Roman,serif" font-size="14.00">Read CONNACK</text> |
97 | +</g> |
98 | +<!-- loop->pingTimeout --> |
99 | +<g id="edge16" class="edge"><title>loop->pingTimeout</title> |
100 | +<path fill="none" stroke="black" d="M763.666,-192.937C772.211,-204.042 783.361,-216.128 796,-224 888.06,-281.339 1012.12,-305.973 1094,-316.443"/> |
101 | +<polygon fill="black" stroke="black" points="1093.67,-319.928 1104.02,-317.68 1094.53,-312.981 1093.67,-319.928"/> |
102 | +<text text-anchor="middle" x="941" y="-319.4" font-family="Times Roman,serif" font-size="14.00">Elapsed ping interval + exchange interval</text> |
103 | +</g> |
104 | +<!-- pong --> |
105 | +<g id="node10" class="node"><title>pong</title> |
106 | +<ellipse fill="none" stroke="black" cx="1180" cy="-195" rx="34.8574" ry="35.3553"/> |
107 | +<text text-anchor="middle" x="1180" y="-191.4" font-family="Times Roman,serif" font-size="14.00">pong</text> |
108 | +</g> |
109 | +<!-- loop->pong --> |
110 | +<g id="edge8" class="edge"><title>loop->pong</title> |
111 | +<path fill="none" stroke="black" d="M775.392,-179.044C782.046,-181.465 789.167,-183.653 796,-185 916.362,-208.722 1062.02,-203.515 1134.48,-198.706"/> |
112 | +<polygon fill="black" stroke="black" points="1134.89,-202.186 1144.62,-198.003 1134.4,-195.203 1134.89,-202.186"/> |
113 | +<text text-anchor="middle" x="941" y="-207.4" font-family="Times Roman,serif" font-size="14.00">Read PING</text> |
114 | +</g> |
115 | +<!-- broadcast --> |
116 | +<g id="node12" class="node"><title>broadcast</title> |
117 | +<ellipse fill="none" stroke="black" cx="1180" cy="-84" rx="58.1882" ry="58.6899"/> |
118 | +<text text-anchor="middle" x="1180" y="-80.4" font-family="Times Roman,serif" font-size="14.00">broadcast</text> |
119 | +</g> |
120 | +<!-- loop->broadcast --> |
121 | +<g id="edge10" class="edge"><title>loop->broadcast</title> |
122 | +<path fill="none" stroke="black" d="M770.52,-145.1C778.217,-139.607 787.053,-134.301 796,-131 917.482,-86.1746 957.924,-122.075 1086,-103 1094.61,-101.717 1103.63,-100.165 1112.53,-98.5074"/> |
123 | +<polygon fill="black" stroke="black" points="1113.34,-101.917 1122.5,-96.5998 1112.02,-95.0419 1113.34,-101.917"/> |
124 | +<text text-anchor="middle" x="941" y="-136.4" font-family="Times Roman,serif" font-size="14.00">Read BROADCAST</text> |
125 | +</g> |
126 | +<!-- pong->loop --> |
127 | +<g id="edge12" class="edge"><title>pong->loop</title> |
128 | +<path fill="none" stroke="black" d="M1147.19,-180.867C1129.44,-173.986 1106.92,-166.463 1086,-163 980.081,-145.465 853.051,-154.36 788.368,-160.981"/> |
129 | +<polygon fill="black" stroke="black" points="787.736,-157.528 778.16,-162.06 788.472,-164.489 787.736,-157.528"/> |
130 | +<text text-anchor="middle" x="941" y="-168.4" font-family="Times Roman,serif" font-size="14.00">Write PONG</text> |
131 | +</g> |
132 | +<!-- broadcast->loop --> |
133 | +<g id="edge14" class="edge"><title>broadcast->loop</title> |
134 | +<path fill="none" stroke="black" d="M1123.8,-67.0114C1044.83,-46.6166 899.156,-22.0001 796,-81 778.946,-90.7538 767.135,-108.842 759.293,-125.833"/> |
135 | +<polygon fill="black" stroke="black" points="756.044,-124.528 755.336,-135.099 762.482,-127.277 756.044,-124.528"/> |
136 | +<text text-anchor="middle" x="941" y="-86.4" font-family="Times Roman,serif" font-size="14.00">Write ACK</text> |
137 | +</g> |
138 | +</g> |
139 | +</svg> |
140 | |
141 | === added file 'protocol/state-diag-session.gv' |
142 | --- protocol/state-diag-session.gv 1970-01-01 00:00:00 +0000 |
143 | +++ protocol/state-diag-session.gv 2014-01-16 20:07:29 +0000 |
144 | @@ -0,0 +1,20 @@ |
145 | +digraph state_diagram_session { |
146 | + label = "State diagram for session"; |
147 | + size="12,6"; |
148 | + rankdir=LR; |
149 | + node [shape = circle]; |
150 | + start1 -> start2 [ label = "Read wire version" ]; |
151 | + start2 -> start3 [ label = "Read CONNECT" ]; |
152 | + start3 -> loop [ label = "Write CONNACK" ]; |
153 | + loop -> ping [ label = "Elapsed ping interval" ]; |
154 | + loop -> broadcast [label = "Receive broadcast request"]; |
155 | + ping -> pong_wait [label = "Write PING"]; |
156 | + broadcast -> ack_wait [label = "Write BROADCAST [fits one wire msg]"]; |
157 | + broadcast -> split_broadcast [label = "BROADCAST does not fit one wire msg"]; |
158 | + pong_wait -> loop [label = "Read PONG"]; |
159 | + ack_wait -> loop [label = "Read ACK"]; |
160 | + // split messages |
161 | + split_broadcast -> split_ack_wait [label = "Write split BROADCAST"]; |
162 | + split_ack_wait -> split_broadcast [label = "Read ACK"]; |
163 | + split_broadcast -> loop [label = "All split msgs written"]; |
164 | +} |
165 | |
166 | === added file 'protocol/state-diag-session.svg' |
167 | --- protocol/state-diag-session.svg 1970-01-01 00:00:00 +0000 |
168 | +++ protocol/state-diag-session.svg 2014-01-16 20:07:29 +0000 |
169 | @@ -0,0 +1,142 @@ |
170 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
171 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" |
172 | + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
173 | +<!-- Generated by graphviz version 2.26.3 (20100126.1600) |
174 | + --> |
175 | +<!-- Title: state_diagram_session Pages: 1 --> |
176 | +<svg width="864pt" height="208pt" |
177 | + viewBox="0.00 0.00 864.00 207.94" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> |
178 | +<g id="graph1" class="graph" transform="scale(0.435923 0.435923) rotate(0) translate(4 473)"> |
179 | +<title>state_diagram_session</title> |
180 | +<polygon fill="white" stroke="white" points="-4,5 -4,-473 1979,-473 1979,5 -4,5"/> |
181 | +<text text-anchor="middle" x="987" y="-9.4" font-family="Times Roman,serif" font-size="14.00">State diagram for session</text> |
182 | +<!-- start1 --> |
183 | +<g id="node1" class="node"><title>start1</title> |
184 | +<ellipse fill="none" stroke="black" cx="42" cy="-294" rx="41.2167" ry="41.7193"/> |
185 | +<text text-anchor="middle" x="42" y="-290.4" font-family="Times Roman,serif" font-size="14.00">start1</text> |
186 | +</g> |
187 | +<!-- start2 --> |
188 | +<g id="node3" class="node"><title>start2</title> |
189 | +<ellipse fill="none" stroke="black" cx="286" cy="-294" rx="41.2167" ry="41.7193"/> |
190 | +<text text-anchor="middle" x="286" y="-290.4" font-family="Times Roman,serif" font-size="14.00">start2</text> |
191 | +</g> |
192 | +<!-- start1->start2 --> |
193 | +<g id="edge2" class="edge"><title>start1->start2</title> |
194 | +<path fill="none" stroke="black" d="M83.6679,-294C125.213,-294 189.13,-294 233.981,-294"/> |
195 | +<polygon fill="black" stroke="black" points="234.096,-297.5 244.096,-294 234.096,-290.5 234.096,-297.5"/> |
196 | +<text text-anchor="middle" x="164" y="-299.4" font-family="Times Roman,serif" font-size="14.00">Read wire version</text> |
197 | +</g> |
198 | +<!-- start3 --> |
199 | +<g id="node5" class="node"><title>start3</title> |
200 | +<ellipse fill="none" stroke="black" cx="516" cy="-294" rx="41.2167" ry="41.7193"/> |
201 | +<text text-anchor="middle" x="516" y="-290.4" font-family="Times Roman,serif" font-size="14.00">start3</text> |
202 | +</g> |
203 | +<!-- start2->start3 --> |
204 | +<g id="edge4" class="edge"><title>start2->start3</title> |
205 | +<path fill="none" stroke="black" d="M327.651,-294C365.959,-294 422.903,-294 464.145,-294"/> |
206 | +<polygon fill="black" stroke="black" points="464.271,-297.5 474.271,-294 464.271,-290.5 464.271,-297.5"/> |
207 | +<text text-anchor="middle" x="401" y="-299.4" font-family="Times Roman,serif" font-size="14.00">Read CONNECT</text> |
208 | +</g> |
209 | +<!-- loop --> |
210 | +<g id="node7" class="node"><title>loop</title> |
211 | +<ellipse fill="none" stroke="black" cx="740" cy="-294" rx="31.8198" ry="31.8198"/> |
212 | +<text text-anchor="middle" x="740" y="-290.4" font-family="Times Roman,serif" font-size="14.00">loop</text> |
213 | +</g> |
214 | +<!-- start3->loop --> |
215 | +<g id="edge6" class="edge"><title>start3->loop</title> |
216 | +<path fill="none" stroke="black" d="M557.608,-294C597.53,-294 657.517,-294 697.677,-294"/> |
217 | +<polygon fill="black" stroke="black" points="697.687,-297.5 707.687,-294 697.687,-290.5 697.687,-297.5"/> |
218 | +<text text-anchor="middle" x="633" y="-299.4" font-family="Times Roman,serif" font-size="14.00">Write CONNACK</text> |
219 | +</g> |
220 | +<!-- ping --> |
221 | +<g id="node9" class="node"><title>ping</title> |
222 | +<ellipse fill="none" stroke="black" cx="1063" cy="-416" rx="32.0265" ry="32.5269"/> |
223 | +<text text-anchor="middle" x="1063" y="-412.4" font-family="Times Roman,serif" font-size="14.00">ping</text> |
224 | +</g> |
225 | +<!-- loop->ping --> |
226 | +<g id="edge8" class="edge"><title>loop->ping</title> |
227 | +<path fill="none" stroke="black" d="M754.564,-322.853C763.046,-336.78 775.035,-352.491 790,-362 861.597,-407.491 963.396,-415.983 1020.29,-416.829"/> |
228 | +<polygon fill="black" stroke="black" points="1020.35,-420.33 1030.38,-416.906 1020.4,-413.33 1020.35,-420.33"/> |
229 | +<text text-anchor="middle" x="881" y="-418.4" font-family="Times Roman,serif" font-size="14.00">Elapsed ping interval</text> |
230 | +</g> |
231 | +<!-- broadcast --> |
232 | +<g id="node11" class="node"><title>broadcast</title> |
233 | +<ellipse fill="none" stroke="black" cx="1063" cy="-200" rx="58.1882" ry="58.6899"/> |
234 | +<text text-anchor="middle" x="1063" y="-196.4" font-family="Times Roman,serif" font-size="14.00">broadcast</text> |
235 | +</g> |
236 | +<!-- loop->broadcast --> |
237 | +<g id="edge10" class="edge"><title>loop->broadcast</title> |
238 | +<path fill="none" stroke="black" d="M766.046,-274.934C773.498,-270.155 781.824,-265.421 790,-262 856.828,-234.035 938.382,-217.617 994.86,-208.779"/> |
239 | +<polygon fill="black" stroke="black" points="995.396,-212.238 1004.75,-207.269 994.34,-205.318 995.396,-212.238"/> |
240 | +<text text-anchor="middle" x="881" y="-267.4" font-family="Times Roman,serif" font-size="14.00">Receive broadcast request</text> |
241 | +</g> |
242 | +<!-- pong_wait --> |
243 | +<g id="node13" class="node"><title>pong_wait</title> |
244 | +<ellipse fill="none" stroke="black" cx="1526" cy="-406" rx="62.9325" ry="62.9325"/> |
245 | +<text text-anchor="middle" x="1526" y="-402.4" font-family="Times Roman,serif" font-size="14.00">pong_wait</text> |
246 | +</g> |
247 | +<!-- ping->pong_wait --> |
248 | +<g id="edge12" class="edge"><title>ping->pong_wait</title> |
249 | +<path fill="none" stroke="black" d="M1095.56,-415.297C1169.19,-413.707 1350.04,-409.8 1452.36,-407.591"/> |
250 | +<polygon fill="black" stroke="black" points="1452.69,-411.084 1462.61,-407.369 1452.54,-404.086 1452.69,-411.084"/> |
251 | +<text text-anchor="middle" x="1289" y="-418.4" font-family="Times Roman,serif" font-size="14.00">Write PING</text> |
252 | +</g> |
253 | +<!-- ack_wait --> |
254 | +<g id="node15" class="node"><title>ack_wait</title> |
255 | +<ellipse fill="none" stroke="black" cx="1526" cy="-269" rx="55.1543" ry="55.1543"/> |
256 | +<text text-anchor="middle" x="1526" y="-265.4" font-family="Times Roman,serif" font-size="14.00">ack_wait</text> |
257 | +</g> |
258 | +<!-- broadcast->ack_wait --> |
259 | +<g id="edge14" class="edge"><title>broadcast->ack_wait</title> |
260 | +<path fill="none" stroke="black" d="M1121.17,-208.669C1207.93,-221.599 1370.7,-245.856 1461.17,-259.339"/> |
261 | +<polygon fill="black" stroke="black" points="1460.9,-262.837 1471.3,-260.849 1461.93,-255.913 1460.9,-262.837"/> |
262 | +<text text-anchor="middle" x="1289" y="-257.4" font-family="Times Roman,serif" font-size="14.00">Write BROADCAST [fits one wire msg]</text> |
263 | +</g> |
264 | +<!-- split_broadcast --> |
265 | +<g id="node17" class="node"><title>split_broadcast</title> |
266 | +<ellipse fill="none" stroke="black" cx="1526" cy="-110" rx="84.1457" ry="84.1457"/> |
267 | +<text text-anchor="middle" x="1526" y="-106.4" font-family="Times Roman,serif" font-size="14.00">split_broadcast</text> |
268 | +</g> |
269 | +<!-- broadcast->split_broadcast --> |
270 | +<g id="edge16" class="edge"><title>broadcast->split_broadcast</title> |
271 | +<path fill="none" stroke="black" d="M1120.7,-188.783C1199.06,-173.553 1340.01,-146.154 1433.29,-128.021"/> |
272 | +<polygon fill="black" stroke="black" points="1434.15,-131.421 1443.29,-126.077 1432.81,-124.549 1434.15,-131.421"/> |
273 | +<text text-anchor="middle" x="1289" y="-185.4" font-family="Times Roman,serif" font-size="14.00">BROADCAST does not fit one wire msg</text> |
274 | +</g> |
275 | +<!-- pong_wait->loop --> |
276 | +<g id="edge18" class="edge"><title>pong_wait->loop</title> |
277 | +<path fill="none" stroke="black" d="M1463.29,-398.59C1336,-383.27 1038.34,-346.004 790,-304 787.177,-303.523 784.269,-303.006 781.343,-302.468"/> |
278 | +<polygon fill="black" stroke="black" points="781.898,-299.011 771.42,-300.582 780.59,-305.888 781.898,-299.011"/> |
279 | +<text text-anchor="middle" x="1063" y="-359.4" font-family="Times Roman,serif" font-size="14.00">Read PONG</text> |
280 | +</g> |
281 | +<!-- ack_wait->loop --> |
282 | +<g id="edge20" class="edge"><title>ack_wait->loop</title> |
283 | +<path fill="none" stroke="black" d="M1470.96,-271.898C1455.75,-272.644 1439.24,-273.404 1424,-274 1181.02,-283.507 889.323,-290.597 782.144,-293.057"/> |
284 | +<polygon fill="black" stroke="black" points="781.977,-289.56 772.059,-293.288 782.136,-296.558 781.977,-289.56"/> |
285 | +<text text-anchor="middle" x="1063" y="-292.4" font-family="Times Roman,serif" font-size="14.00">Read ACK</text> |
286 | +</g> |
287 | +<!-- split_broadcast->loop --> |
288 | +<g id="edge26" class="edge"><title>split_broadcast->loop</title> |
289 | +<path fill="none" stroke="black" d="M1442.56,-99.9981C1336.06,-89.6718 1146.8,-79.5577 990,-115 894.383,-136.612 862.41,-141.921 790,-208 775.817,-220.943 764.522,-238.865 756.283,-254.999"/> |
290 | +<polygon fill="black" stroke="black" points="753.014,-253.718 751.785,-264.241 759.308,-256.781 753.014,-253.718"/> |
291 | +<text text-anchor="middle" x="1063" y="-120.4" font-family="Times Roman,serif" font-size="14.00">All split msgs written</text> |
292 | +</g> |
293 | +<!-- split_ack_wait --> |
294 | +<g id="node21" class="node"><title>split_ack_wait</title> |
295 | +<ellipse fill="none" stroke="black" cx="1893" cy="-110" rx="80.1095" ry="80.6102"/> |
296 | +<text text-anchor="middle" x="1893" y="-106.4" font-family="Times Roman,serif" font-size="14.00">split_ack_wait</text> |
297 | +</g> |
298 | +<!-- split_broadcast->split_ack_wait --> |
299 | +<g id="edge22" class="edge"><title>split_broadcast->split_ack_wait</title> |
300 | +<path fill="none" stroke="black" d="M1610.2,-110C1667.61,-110 1743.59,-110 1802.33,-110"/> |
301 | +<polygon fill="black" stroke="black" points="1802.35,-113.5 1812.35,-110 1802.34,-106.5 1802.35,-113.5"/> |
302 | +<text text-anchor="middle" x="1711" y="-115.4" font-family="Times Roman,serif" font-size="14.00">Write split BROADCAST</text> |
303 | +</g> |
304 | +<!-- split_ack_wait->split_broadcast --> |
305 | +<g id="edge24" class="edge"><title>split_ack_wait->split_broadcast</title> |
306 | +<path fill="none" stroke="black" d="M1814.64,-90.9448C1807.69,-89.7544 1800.74,-88.7397 1794,-88 1720.66,-79.9496 1701.36,-80.1783 1628,-88 1624.71,-88.3505 1621.38,-88.7628 1618.01,-89.2264"/> |
307 | +<polygon fill="black" stroke="black" points="1617.23,-85.8043 1607.87,-90.7602 1618.28,-92.7256 1617.23,-85.8043"/> |
308 | +<text text-anchor="middle" x="1711" y="-93.4" font-family="Times Roman,serif" font-size="14.00">Read ACK</text> |
309 | +</g> |
310 | +</g> |
311 | +</svg> |