ed0b6cc10d3bea1d80d2ca979206760fdc79a54d
[csit.git] / docs / report / vpp_performance_tests / packet_throughput_graphs / vm_vhost.rst
1 KVM VM vHost
2 ============
3
4 Following sections include summary graphs of VPP Phy-to-VM(s)-to-Phy
5 performance with VM virtio and VPP vhost-user virtual interfaces,
6 including NDR throughput (zero packet loss) and PDR throughput (<0.5%
7 packet loss). Performance is reported for VPP running in multiple
8 configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s),
9 and their physical CPU core(s) placement.
10
11 CSIT source code for the test cases used for plots can be found in
12 `CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vm_vhost?h=rls1807>`_.
13
14 3n-hsw-x520
15 ~~~~~~~~~~~
16
17 64b-1t1c-base_and_scale-l2sw
18 ----------------------------
19
20 .. raw:: html
21
22     <center><b>
23
24 :index:`Throughput: vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-ndr`
25
26 .. raw:: html
27
28     </b>
29     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-ndr.html"></iframe>
30     <p><br><br></p>
31     </center>
32
33 .. raw:: latex
34
35     \begin{figure}[H]
36         \centering
37             \graphicspath{{../_build/_static/vpp/}}
38             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
39             \label{fig:vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
40     \end{figure}
41
42 .. raw:: html
43
44     <center><b>
45
46 :index:`Throughput: vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-pdr`
47
48 .. raw:: html
49
50     </b>
51     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-pdr.html"></iframe>
52     <p><br><br></p>
53     </center>
54
55 .. raw:: latex
56
57     \begin{figure}[H]
58         \centering
59             \graphicspath{{../_build/_static/vpp/}}
60             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
61             \label{fig:vhost-l2sw-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
62     \end{figure}
63
64 64b-2t2c-base_and_scale-l2sw
65 ----------------------------
66
67 .. raw:: html
68
69     <center><b>
70
71 :index:`Throughput: vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-ndr`
72
73 .. raw:: html
74
75     </b>
76     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-ndr.html"></iframe>
77     <p><br><br></p>
78     </center>
79
80 .. raw:: latex
81
82     \begin{figure}[H]
83         \centering
84             \graphicspath{{../_build/_static/vpp/}}
85             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
86             \label{fig:vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
87     \end{figure}
88
89 .. raw:: html
90
91     <center><b>
92
93 :index:`Throughput: vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-pdr`
94
95 .. raw:: html
96
97     </b>
98     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-pdr.html"></iframe>
99     <p><br><br></p>
100     </center>
101
102 .. raw:: latex
103
104     \begin{figure}[H]
105         \centering
106             \graphicspath{{../_build/_static/vpp/}}
107             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
108             \label{fig:vhost-l2sw-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
109     \end{figure}
110
111 64b-1t1c-base_and_scale-ip4
112 ---------------------------
113
114 .. raw:: html
115
116     <center><b>
117
118 :index:`Throughput: vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr`
119
120 .. raw:: html
121
122     </b>
123     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr.html"></iframe>
124     <p><br><br></p>
125     </center>
126
127 .. raw:: latex
128
129     \begin{figure}[H]
130         \centering
131             \graphicspath{{../_build/_static/vpp/}}
132             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
133             \label{fig:vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-ndr}
134     \end{figure}
135
136 .. raw:: html
137
138     <center><b>
139
140 :index:`Throughput: vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr`
141
142 .. raw:: html
143
144     </b>
145     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr.html"></iframe>
146     <p><br><br></p>
147     </center>
148
149 .. raw:: latex
150
151     \begin{figure}[H]
152         \centering
153             \graphicspath{{../_build/_static/vpp/}}
154             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
155             \label{fig:vhost-ip4-3n-hsw-x520-64b-1t1c-base_and_scale-pdr}
156     \end{figure}
157
158 64b-2t2c-base_and_scale-ip4
159 ---------------------------
160
161 .. raw:: html
162
163     <center><b>
164
165 :index:`Throughput: vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr`
166
167 .. raw:: html
168
169     </b>
170     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr.html"></iframe>
171     <p><br><br></p>
172     </center>
173
174 .. raw:: latex
175
176     \begin{figure}[H]
177         \centering
178             \graphicspath{{../_build/_static/vpp/}}
179             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
180             \label{fig:vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-ndr}
181     \end{figure}
182
183 .. raw:: html
184
185     <center><b>
186
187 :index:`Throughput: vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr`
188
189 .. raw:: html
190
191     </b>
192     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr.html"></iframe>
193     <p><br><br></p>
194     </center>
195
196 .. raw:: latex
197
198     \begin{figure}[H]
199         \centering
200             \graphicspath{{../_build/_static/vpp/}}
201             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
202             \label{fig:vhost-ip4-3n-hsw-x520-64b-2t2c-base_and_scale-pdr}
203     \end{figure}
204
205 3n-hsw-x710
206 ~~~~~~~~~~~
207
208 64b-1t1c-base_and_scale-l2sw
209 ----------------------------
210
211 .. raw:: html
212
213     <center><b>
214
215 :index:`Throughput: vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-ndr`
216
217 .. raw:: html
218
219     </b>
220     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-ndr.html"></iframe>
221     <p><br><br></p>
222     </center>
223
224 .. raw:: latex
225
226     \begin{figure}[H]
227         \centering
228             \graphicspath{{../_build/_static/vpp/}}
229             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-ndr}
230             \label{fig:vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-ndr}
231     \end{figure}
232
233 .. raw:: html
234
235     <center><b>
236
237 :index:`Throughput: vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-pdr`
238
239 .. raw:: html
240
241     </b>
242     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-pdr.html"></iframe>
243     <p><br><br></p>
244     </center>
245
246 .. raw:: latex
247
248     \begin{figure}[H]
249         \centering
250             \graphicspath{{../_build/_static/vpp/}}
251             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-pdr}
252             \label{fig:vhost-l2sw-3n-hsw-x710-64b-1t1c-base_and_scale-pdr}
253     \end{figure}
254
255 64b-2t2c-base_and_scale-l2sw
256 ----------------------------
257
258 .. raw:: html
259
260     <center><b>
261
262 :index:`Throughput: vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-ndr`
263
264 .. raw:: html
265
266     </b>
267     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-ndr.html"></iframe>
268     <p><br><br></p>
269     </center>
270
271 .. raw:: latex
272
273     \begin{figure}[H]
274         \centering
275             \graphicspath{{../_build/_static/vpp/}}
276             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-ndr}
277             \label{fig:vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-ndr}
278     \end{figure}
279
280 .. raw:: html
281
282     <center><b>
283
284 :index:`Throughput: vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-pdr`
285
286 .. raw:: html
287
288     </b>
289     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-pdr.html"></iframe>
290     <p><br><br></p>
291     </center>
292
293 .. raw:: latex
294
295     \begin{figure}[H]
296         \centering
297             \graphicspath{{../_build/_static/vpp/}}
298             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-pdr}
299             \label{fig:vhost-l2sw-3n-hsw-x710-64b-2t2c-base_and_scale-pdr}
300     \end{figure}
301
302 64b-1t1c-base_and_scale-ip4
303 ---------------------------
304
305 .. raw:: html
306
307     <center><b>
308
309 :index:`Throughput: vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-ndr`
310
311 .. raw:: html
312
313     </b>
314     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-ndr.html"></iframe>
315     <p><br><br></p>
316     </center>
317
318 .. raw:: latex
319
320     \begin{figure}[H]
321         \centering
322             \graphicspath{{../_build/_static/vpp/}}
323             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-ndr}
324             \label{fig:vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-ndr}
325     \end{figure}
326
327 .. raw:: html
328
329     <center><b>
330
331 :index:`Throughput: vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-pdr`
332
333 .. raw:: html
334
335     </b>
336     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-pdr.html"></iframe>
337     <p><br><br></p>
338     </center>
339
340 .. raw:: latex
341
342     \begin{figure}[H]
343         \centering
344             \graphicspath{{../_build/_static/vpp/}}
345             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-pdr}
346             \label{fig:vhost-ip4-3n-hsw-x710-64b-1t1c-base_and_scale-pdr}
347     \end{figure}
348
349 64b-2t2c-base_and_scale-ip4
350 ---------------------------
351
352 .. raw:: html
353
354     <center><b>
355
356 :index:`Throughput: vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-ndr`
357
358 .. raw:: html
359
360     </b>
361     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-ndr.html"></iframe>
362     <p><br><br></p>
363     </center>
364
365 .. raw:: latex
366
367     \begin{figure}[H]
368         \centering
369             \graphicspath{{../_build/_static/vpp/}}
370             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-ndr}
371             \label{fig:vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-ndr}
372     \end{figure}
373
374 .. raw:: html
375
376     <center><b>
377
378 :index:`Throughput: vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-pdr`
379
380 .. raw:: html
381
382     </b>
383     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-pdr.html"></iframe>
384     <p><br><br></p>
385     </center>
386
387 .. raw:: latex
388
389     \begin{figure}[H]
390         \centering
391             \graphicspath{{../_build/_static/vpp/}}
392             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-pdr}
393             \label{fig:vhost-ip4-3n-hsw-x710-64b-2t2c-base_and_scale-pdr}
394     \end{figure}
395
396 3n-hsw-xl710
397 ~~~~~~~~~~~~
398
399 64b-1t1c-base_and_scale-l2sw
400 ----------------------------
401
402 .. raw:: html
403
404     <center><b>
405
406 :index:`Throughput: vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr`
407
408 .. raw:: html
409
410     </b>
411     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr.html"></iframe>
412     <p><br><br></p>
413     </center>
414
415 .. raw:: latex
416
417     \begin{figure}[H]
418         \centering
419             \graphicspath{{../_build/_static/vpp/}}
420             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr}
421             \label{fig:vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr}
422     \end{figure}
423
424 .. raw:: html
425
426     <center><b>
427
428 :index:`Throughput: vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr`
429
430 .. raw:: html
431
432     </b>
433     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr.html"></iframe>
434     <p><br><br></p>
435     </center>
436
437 .. raw:: latex
438
439     \begin{figure}[H]
440         \centering
441             \graphicspath{{../_build/_static/vpp/}}
442             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr}
443             \label{fig:vhost-l2sw-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr}
444     \end{figure}
445
446 64b-2t2c-base_and_scale-l2sw
447 ----------------------------
448
449 .. raw:: html
450
451     <center><b>
452
453 :index:`Throughput: vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr`
454
455 .. raw:: html
456
457     </b>
458     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr.html"></iframe>
459     <p><br><br></p>
460     </center>
461
462 .. raw:: latex
463
464     \begin{figure}[H]
465         \centering
466             \graphicspath{{../_build/_static/vpp/}}
467             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr}
468             \label{fig:vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr}
469     \end{figure}
470
471 .. raw:: html
472
473     <center><b>
474
475 :index:`Throughput: vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr`
476
477 .. raw:: html
478
479     </b>
480     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr.html"></iframe>
481     <p><br><br></p>
482     </center>
483
484 .. raw:: latex
485
486     \begin{figure}[H]
487         \centering
488             \graphicspath{{../_build/_static/vpp/}}
489             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr}
490             \label{fig:vhost-l2sw-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr}
491     \end{figure}
492
493 64b-1t1c-base_and_scale-ip4
494 ---------------------------
495
496 .. raw:: html
497
498     <center><b>
499
500 :index:`Throughput: vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr`
501
502 .. raw:: html
503
504     </b>
505     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr.html"></iframe>
506     <p><br><br></p>
507     </center>
508
509 .. raw:: latex
510
511     \begin{figure}[H]
512         \centering
513             \graphicspath{{../_build/_static/vpp/}}
514             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr}
515             \label{fig:vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-ndr}
516     \end{figure}
517
518 .. raw:: html
519
520     <center><b>
521
522 :index:`Throughput: vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr`
523
524 .. raw:: html
525
526     </b>
527     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr.html"></iframe>
528     <p><br><br></p>
529     </center>
530
531 .. raw:: latex
532
533     \begin{figure}[H]
534         \centering
535             \graphicspath{{../_build/_static/vpp/}}
536             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr}
537             \label{fig:vhost-ip4-3n-hsw-xl710-64b-1t1c-base_and_scale-pdr}
538     \end{figure}
539
540 64b-2t2c-base_and_scale-ip4
541 ---------------------------
542
543 .. raw:: html
544
545     <center><b>
546
547 :index:`Throughput: vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr`
548
549 .. raw:: html
550
551     </b>
552     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr.html"></iframe>
553     <p><br><br></p>
554     </center>
555
556 .. raw:: latex
557
558     \begin{figure}[H]
559         \centering
560             \graphicspath{{../_build/_static/vpp/}}
561             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr}
562             \label{fig:vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-ndr}
563     \end{figure}
564
565 .. raw:: html
566
567     <center><b>
568
569 :index:`Throughput: vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr`
570
571 .. raw:: html
572
573     </b>
574     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr.html"></iframe>
575     <p><br><br></p>
576     </center>
577
578 .. raw:: latex
579
580     \begin{figure}[H]
581         \centering
582             \graphicspath{{../_build/_static/vpp/}}
583             \includegraphics[clip, trim=0cm 8cm 5cm 0cm, width=0.70\textwidth]{vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr}
584             \label{fig:vhost-ip4-3n-hsw-xl710-64b-2t2c-base_and_scale-pdr}
585     \end{figure}