blob: f2a97cadd502dd37c9875b2b5edb3d9c6687c0cf [file] [log] [blame]
Alexei Frolov55333fa2021-12-09 15:58:07 -08001<!-- Created with blockdiag from the source below:
2
3 seqdiag {
4 default_note_color = aliceblue;
5
6 client -> server [
7 label = "set transfer parameters",
8 leftnote = "transfer_id\noffset\nwindow_end_offset\ntype=PARAMETERS_RETRANSMIT\nmax_chunk_size\nchunk_delay"
9 ];
10
11 client <-\- server [
12 noactivate,
13 label = "requested bytes\n(zero or more chunks)",
14 rightnote = "transfer_id\noffset\ndata\n(remaining_bytes)"
15 ];
16
17 client -\-> server [
18 noactivate,
19 label = "update transfer parameters\n(as needed)",
20 leftnote = "transfer_id\noffset\nwindow_end_offset\ntype=PARAMETERS_CONTINUE\n(max_chunk_size)\n(chunk_delay)"
21 ];
22
23 client <- server [
24 noactivate,
25 label = "final chunk",
26 rightnote = "transfer_id\noffset\ndata\nremaining_bytes=0"
27 ];
28
29 client -> server [
30 noactivate,
31 label = "acknowledge completion",
32 leftnote = "transfer_id\nstatus=OK"
33 ];
34 }
35
36-->
37<svg height="652" viewBox="0 0 573 652" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink" style="background-color:white">
38 <defs id="defs_block">
39 <filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
40 <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2"></feGaussianBlur>
41 </filter>
42 </defs>
43 <title>pw_transfer Reads</title>
44 <desc></desc>
45 <rect fill="rgb(0,0,0)" height="464" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="8" x="221" y="166"></rect>
46 <rect fill="rgb(0,0,0)" height="464" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="8" x="413" y="166"></rect>
47 <polygon fill="rgb(0,0,0)" points="27,126 201,126 209,134 209,206 27,206 27,126" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1"></polygon>
48 <polygon fill="rgb(0,0,0)" points="433,246 552,246 560,254 560,300 433,300 433,246" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1"></polygon>
49 <polygon fill="rgb(0,0,0)" points="39,340 201,340 209,348 209,420 39,420 39,340" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1"></polygon>
50 <polygon fill="rgb(0,0,0)" points="433,460 552,460 560,468 560,514 433,514 433,460" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1"></polygon>
51 <polygon fill="rgb(0,0,0)" points="118,555 201,555 209,563 209,583 118,583 118,555" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1"></polygon>
52 <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="161" y="46"></rect>
53 <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="128" x="353" y="46"></rect>
54 <path d="M 222 80 L 222 640" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4"></path>
55 <rect fill="moccasin" height="464" stroke="rgb(0,0,0)" width="8" x="218" y="160"></rect>
56 <path d="M 414 80 L 414 640" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="8 4"></path>
57 <rect fill="moccasin" height="464" stroke="rgb(0,0,0)" width="8" x="410" y="160"></rect>
58 <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="158" y="40"></rect>
59 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="222" y="66">client</text>
60 <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="128" x="350" y="40"></rect>
61 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="414" y="66">server</text>
62 <path d="M 230 160 L 406 160" fill="none" stroke="rgb(0,0,0)"></path>
63 <polygon fill="rgb(0,0,0)" points="398,156 406,160 398,164" stroke="rgb(0,0,0)"></polygon>
64 <polygon fill="rgb(240,248,255)" points="24,120 198,120 206,128 206,200 24,200 24,120" stroke="rgb(0,0,0)"></polygon>
65 <path d="M 198 120 L 198 128" fill="none" stroke="rgb(0,0,0)"></path>
66 <path d="M 198 128 L 206 128" fill="none" stroke="rgb(0,0,0)"></path>
67 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="65" y="133">transfer_id</text>
68 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="50" y="146">offset</text>
69 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="103" x="83" y="159">window_end_offset</text>
70 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="158" x="111" y="172">type=PARAMETERS_RETRANSMIT</text>
71 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="85" x="74" y="185">max_chunk_size</text>
72 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="65" y="198">chunk_delay</text>
73 <path d="M 230 267 L 406 267" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4"></path>
74 <polygon fill="rgb(0,0,0)" points="238,263 230,267 238,271" stroke="rgb(0,0,0)"></polygon>
75 <polygon fill="rgb(240,248,255)" points="430,240 549,240 557,248 557,294 430,294 430,240" stroke="rgb(0,0,0)"></polygon>
76 <path d="M 549 240 L 549 248" fill="none" stroke="rgb(0,0,0)"></path>
77 <path d="M 549 248 L 557 248" fill="none" stroke="rgb(0,0,0)"></path>
78 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="471" y="253">transfer_id</text>
79 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="456" y="266">offset</text>
80 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="450" y="279">data</text>
81 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="103" x="489" y="292">(remaining_bytes)</text>
82 <path d="M 230 374 L 406 374" fill="none" stroke="rgb(0,0,0)" stroke-dasharray="4"></path>
83 <polygon fill="rgb(0,0,0)" points="398,370 406,374 398,378" stroke="rgb(0,0,0)"></polygon>
84 <polygon fill="rgb(240,248,255)" points="36,334 198,334 206,342 206,414 36,414 36,334" stroke="rgb(0,0,0)"></polygon>
85 <path d="M 198 334 L 198 342" fill="none" stroke="rgb(0,0,0)"></path>
86 <path d="M 198 342 L 206 342" fill="none" stroke="rgb(0,0,0)"></path>
87 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="77" y="347">transfer_id</text>
88 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="62" y="360">offset</text>
89 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="103" x="95" y="373">window_end_offset</text>
90 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="146" x="117" y="386">type=PARAMETERS_CONTINUE</text>
91 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="97" x="92" y="399">(max_chunk_size)</text>
92 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="79" x="83" y="412">(chunk_delay)</text>
93 <path d="M 230 481 L 406 481" fill="none" stroke="rgb(0,0,0)"></path>
94 <polygon fill="rgb(0,0,0)" points="238,477 230,481 238,485" stroke="rgb(0,0,0)"></polygon>
95 <polygon fill="rgb(240,248,255)" points="430,454 549,454 557,462 557,508 430,508 430,454" stroke="rgb(0,0,0)"></polygon>
96 <path d="M 549 454 L 549 462" fill="none" stroke="rgb(0,0,0)"></path>
97 <path d="M 549 462 L 557 462" fill="none" stroke="rgb(0,0,0)"></path>
98 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="471" y="467">transfer_id</text>
99 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="37" x="456" y="480">offset</text>
100 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="450" y="493">data</text>
101 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="103" x="489" y="506">remaining_bytes=0</text>
102 <path d="M 230 563 L 406 563" fill="none" stroke="rgb(0,0,0)"></path>
103 <polygon fill="rgb(0,0,0)" points="398,559 406,563 398,567" stroke="rgb(0,0,0)"></polygon>
104 <polygon fill="rgb(240,248,255)" points="115,549 198,549 206,557 206,577 115,577 115,549" stroke="rgb(0,0,0)"></polygon>
105 <path d="M 198 549 L 198 557" fill="none" stroke="rgb(0,0,0)"></path>
106 <path d="M 198 557 L 206 557" fill="none" stroke="rgb(0,0,0)"></path>
107 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="156" y="562">transfer_id</text>
108 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="55" x="150" y="575">status=OK</text>
109 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="140" x="304" y="158">set transfer parameters</text>
110 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="91" x="360" y="252">requested bytes</text>
111 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="128" x="342" y="265">(zero or more chunks)</text>
112 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="158" x="313" y="359">update transfer parameters</text>
113 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="267" y="372">(as needed)</text>
114 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="67" x="372" y="479">final chunk</text>
115 <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="134" x="301" y="561">acknowledge completion</text>
Wyatt Hepler1d221242021-09-07 15:42:21 -0700116</svg>