v0.5.0 31affde

manifest.json RawHistoryFolder

1{
2  "schema": 1,
3  "topologies": [
4    {
5      "id": "1x4",
6      "geometry": "120x40",
7      "rows_per_pane": 10000
8    },
9    {
10      "id": "4x1",
11      "geometry": "120x40",
12      "rows_per_pane": 10000
13    },
14    {
15      "id": "4x4",
16      "geometry": "120x40",
17      "rows_per_pane": 10000
18    },
19    {
20      "id": "8x1",
21      "geometry": "120x40",
22      "rows_per_pane": 10000
23    }
24  ],
25  "workloads": [
26    "idle",
27    "active_output",
28    "all_output",
29    "inactive_output",
30    "interactive_flood",
31    "copy_search",
32    "resize_sweep",
33    "snapshot_output_resize",
34    "attach_restore_tab_switch"
35  ],
36  "transports": [
37    {
38      "id": "local",
39      "kind": "local"
40    },
41    {
42      "id": "ssh_stdio",
43      "kind": "ssh_stdio"
44    },
45    {
46      "id": "udp_baseline",
47      "kind": "udp"
48    },
49    {
50      "id": "udp_loss_0pct",
51      "kind": "udp",
52      "loss_percent": 0
53    },
54    {
55      "id": "udp_25ms",
56      "kind": "udp",
57      "rtt_ms": 25
58    },
59    {
60      "id": "udp_100ms",
61      "kind": "udp",
62      "rtt_ms": 100
63    },
64    {
65      "id": "udp_loss_1pct",
66      "kind": "udp",
67      "loss_percent": 1
68    }
69  ],
70  "scenarios": [
71    {
72      "id": "1x4-idle-local",
73      "topology": "1x4",
74      "workload": "idle",
75      "transport": "local",
76      "roles": [
77        "daemon",
78        "client"
79      ]
80    },
81    {
82      "id": "1x4-idle-ssh_stdio",
83      "topology": "1x4",
84      "workload": "idle",
85      "transport": "ssh_stdio",
86      "roles": [
87        "daemon",
88        "client",
89        "ssh_stdio_peer"
90      ]
91    },
92    {
93      "id": "1x4-idle-udp_baseline",
94      "topology": "1x4",
95      "workload": "idle",
96      "transport": "udp_baseline",
97      "roles": [
98        "daemon",
99        "client",
100        "udp_peer"
101      ]
102    },
103    {
104      "id": "1x4-idle-udp_25ms",
105      "topology": "1x4",
106      "workload": "idle",
107      "transport": "udp_25ms",
108      "roles": [
109        "daemon",
110        "client",
111        "udp_peer"
112      ]
113    },
114    {
115      "id": "1x4-idle-udp_100ms",
116      "topology": "1x4",
117      "workload": "idle",
118      "transport": "udp_100ms",
119      "roles": [
120        "daemon",
121        "client",
122        "udp_peer"
123      ]
124    },
125    {
126      "id": "1x4-idle-udp_loss_1pct",
127      "topology": "1x4",
128      "workload": "idle",
129      "transport": "udp_loss_1pct",
130      "roles": [
131        "daemon",
132        "client",
133        "udp_peer"
134      ]
135    },
136    {
137      "id": "1x4-active_output-local",
138      "topology": "1x4",
139      "workload": "active_output",
140      "transport": "local",
141      "roles": [
142        "daemon",
143        "client"
144      ]
145    },
146    {
147      "id": "1x4-active_output-ssh_stdio",
148      "topology": "1x4",
149      "workload": "active_output",
150      "transport": "ssh_stdio",
151      "roles": [
152        "daemon",
153        "client",
154        "ssh_stdio_peer"
155      ]
156    },
157    {
158      "id": "1x4-active_output-udp_baseline",
159      "topology": "1x4",
160      "workload": "active_output",
161      "transport": "udp_baseline",
162      "roles": [
163        "daemon",
164        "client",
165        "udp_peer"
166      ]
167    },
168    {
169      "id": "1x4-active_output-udp_25ms",
170      "topology": "1x4",
171      "workload": "active_output",
172      "transport": "udp_25ms",
173      "roles": [
174        "daemon",
175        "client",
176        "udp_peer"
177      ]
178    },
179    {
180      "id": "1x4-active_output-udp_100ms",
181      "topology": "1x4",
182      "workload": "active_output",
183      "transport": "udp_100ms",
184      "roles": [
185        "daemon",
186        "client",
187        "udp_peer"
188      ]
189    },
190    {
191      "id": "1x4-active_output-udp_loss_1pct",
192      "topology": "1x4",
193      "workload": "active_output",
194      "transport": "udp_loss_1pct",
195      "roles": [
196        "daemon",
197        "client",
198        "udp_peer"
199      ]
200    },
201    {
202      "id": "1x4-all_output-local",
203      "topology": "1x4",
204      "workload": "all_output",
205      "transport": "local",
206      "roles": [
207        "daemon",
208        "client"
209      ]
210    },
211    {
212      "id": "1x4-all_output-ssh_stdio",
213      "topology": "1x4",
214      "workload": "all_output",
215      "transport": "ssh_stdio",
216      "roles": [
217        "daemon",
218        "client",
219        "ssh_stdio_peer"
220      ]
221    },
222    {
223      "id": "1x4-all_output-udp_baseline",
224      "topology": "1x4",
225      "workload": "all_output",
226      "transport": "udp_baseline",
227      "roles": [
228        "daemon",
229        "client",
230        "udp_peer"
231      ]
232    },
233    {
234      "id": "1x4-all_output-udp_25ms",
235      "topology": "1x4",
236      "workload": "all_output",
237      "transport": "udp_25ms",
238      "roles": [
239        "daemon",
240        "client",
241        "udp_peer"
242      ]
243    },
244    {
245      "id": "1x4-all_output-udp_100ms",
246      "topology": "1x4",
247      "workload": "all_output",
248      "transport": "udp_100ms",
249      "roles": [
250        "daemon",
251        "client",
252        "udp_peer"
253      ]
254    },
255    {
256      "id": "1x4-all_output-udp_loss_1pct",
257      "topology": "1x4",
258      "workload": "all_output",
259      "transport": "udp_loss_1pct",
260      "roles": [
261        "daemon",
262        "client",
263        "udp_peer"
264      ]
265    },
266    {
267      "id": "1x4-inactive_output-local",
268      "topology": "1x4",
269      "workload": "inactive_output",
270      "transport": "local",
271      "roles": [
272        "daemon",
273        "client"
274      ]
275    },
276    {
277      "id": "1x4-inactive_output-ssh_stdio",
278      "topology": "1x4",
279      "workload": "inactive_output",
280      "transport": "ssh_stdio",
281      "roles": [
282        "daemon",
283        "client",
284        "ssh_stdio_peer"
285      ]
286    },
287    {
288      "id": "1x4-inactive_output-udp_baseline",
289      "topology": "1x4",
290      "workload": "inactive_output",
291      "transport": "udp_baseline",
292      "roles": [
293        "daemon",
294        "client",
295        "udp_peer"
296      ]
297    },
298    {
299      "id": "1x4-inactive_output-udp_25ms",
300      "topology": "1x4",
301      "workload": "inactive_output",
302      "transport": "udp_25ms",
303      "roles": [
304        "daemon",
305        "client",
306        "udp_peer"
307      ]
308    },
309    {
310      "id": "1x4-inactive_output-udp_100ms",
311      "topology": "1x4",
312      "workload": "inactive_output",
313      "transport": "udp_100ms",
314      "roles": [
315        "daemon",
316        "client",
317        "udp_peer"
318      ]
319    },
320    {
321      "id": "1x4-inactive_output-udp_loss_1pct",
322      "topology": "1x4",
323      "workload": "inactive_output",
324      "transport": "udp_loss_1pct",
325      "roles": [
326        "daemon",
327        "client",
328        "udp_peer"
329      ]
330    },
331    {
332      "id": "1x4-interactive_flood-local",
333      "topology": "1x4",
334      "workload": "interactive_flood",
335      "transport": "local",
336      "roles": [
337        "daemon",
338        "client"
339      ]
340    },
341    {
342      "id": "1x4-interactive_flood-ssh_stdio",
343      "topology": "1x4",
344      "workload": "interactive_flood",
345      "transport": "ssh_stdio",
346      "roles": [
347        "daemon",
348        "client",
349        "ssh_stdio_peer"
350      ]
351    },
352    {
353      "id": "1x4-interactive_flood-udp_baseline",
354      "topology": "1x4",
355      "workload": "interactive_flood",
356      "transport": "udp_baseline",
357      "roles": [
358        "daemon",
359        "client",
360        "udp_peer"
361      ]
362    },
363    {
364      "id": "1x4-interactive_flood-udp_25ms",
365      "topology": "1x4",
366      "workload": "interactive_flood",
367      "transport": "udp_25ms",
368      "roles": [
369        "daemon",
370        "client",
371        "udp_peer"
372      ]
373    },
374    {
375      "id": "1x4-interactive_flood-udp_100ms",
376      "topology": "1x4",
377      "workload": "interactive_flood",
378      "transport": "udp_100ms",
379      "roles": [
380        "daemon",
381        "client",
382        "udp_peer"
383      ]
384    },
385    {
386      "id": "1x4-interactive_flood-udp_loss_1pct",
387      "topology": "1x4",
388      "workload": "interactive_flood",
389      "transport": "udp_loss_1pct",
390      "roles": [
391        "daemon",
392        "client",
393        "udp_peer"
394      ]
395    },
396    {
397      "id": "1x4-copy_search-local",
398      "topology": "1x4",
399      "workload": "copy_search",
400      "transport": "local",
401      "roles": [
402        "daemon",
403        "client"
404      ]
405    },
406    {
407      "id": "1x4-copy_search-ssh_stdio",
408      "topology": "1x4",
409      "workload": "copy_search",
410      "transport": "ssh_stdio",
411      "roles": [
412        "daemon",
413        "client",
414        "ssh_stdio_peer"
415      ]
416    },
417    {
418      "id": "1x4-copy_search-udp_baseline",
419      "topology": "1x4",
420      "workload": "copy_search",
421      "transport": "udp_baseline",
422      "roles": [
423        "daemon",
424        "client",
425        "udp_peer"
426      ]
427    },
428    {
429      "id": "1x4-copy_search-udp_25ms",
430      "topology": "1x4",
431      "workload": "copy_search",
432      "transport": "udp_25ms",
433      "roles": [
434        "daemon",
435        "client",
436        "udp_peer"
437      ]
438    },
439    {
440      "id": "1x4-copy_search-udp_100ms",
441      "topology": "1x4",
442      "workload": "copy_search",
443      "transport": "udp_100ms",
444      "roles": [
445        "daemon",
446        "client",
447        "udp_peer"
448      ]
449    },
450    {
451      "id": "1x4-copy_search-udp_loss_1pct",
452      "topology": "1x4",
453      "workload": "copy_search",
454      "transport": "udp_loss_1pct",
455      "roles": [
456        "daemon",
457        "client",
458        "udp_peer"
459      ]
460    },
461    {
462      "id": "1x4-resize_sweep-local",
463      "topology": "1x4",
464      "workload": "resize_sweep",
465      "transport": "local",
466      "roles": [
467        "daemon",
468        "client"
469      ]
470    },
471    {
472      "id": "1x4-resize_sweep-ssh_stdio",
473      "topology": "1x4",
474      "workload": "resize_sweep",
475      "transport": "ssh_stdio",
476      "roles": [
477        "daemon",
478        "client",
479        "ssh_stdio_peer"
480      ]
481    },
482    {
483      "id": "1x4-resize_sweep-udp_baseline",
484      "topology": "1x4",
485      "workload": "resize_sweep",
486      "transport": "udp_baseline",
487      "roles": [
488        "daemon",
489        "client",
490        "udp_peer"
491      ]
492    },
493    {
494      "id": "1x4-resize_sweep-udp_25ms",
495      "topology": "1x4",
496      "workload": "resize_sweep",
497      "transport": "udp_25ms",
498      "roles": [
499        "daemon",
500        "client",
501        "udp_peer"
502      ]
503    },
504    {
505      "id": "1x4-resize_sweep-udp_100ms",
506      "topology": "1x4",
507      "workload": "resize_sweep",
508      "transport": "udp_100ms",
509      "roles": [
510        "daemon",
511        "client",
512        "udp_peer"
513      ]
514    },
515    {
516      "id": "1x4-resize_sweep-udp_loss_1pct",
517      "topology": "1x4",
518      "workload": "resize_sweep",
519      "transport": "udp_loss_1pct",
520      "roles": [
521        "daemon",
522        "client",
523        "udp_peer"
524      ]
525    },
526    {
527      "id": "1x4-snapshot_output_resize-local",
528      "topology": "1x4",
529      "workload": "snapshot_output_resize",
530      "transport": "local",
531      "roles": [
532        "daemon",
533        "client"
534      ]
535    },
536    {
537      "id": "1x4-snapshot_output_resize-ssh_stdio",
538      "topology": "1x4",
539      "workload": "snapshot_output_resize",
540      "transport": "ssh_stdio",
541      "roles": [
542        "daemon",
543        "client",
544        "ssh_stdio_peer"
545      ]
546    },
547    {
548      "id": "1x4-snapshot_output_resize-udp_baseline",
549      "topology": "1x4",
550      "workload": "snapshot_output_resize",
551      "transport": "udp_baseline",
552      "roles": [
553        "daemon",
554        "client",
555        "udp_peer"
556      ]
557    },
558    {
559      "id": "1x4-snapshot_output_resize-udp_25ms",
560      "topology": "1x4",
561      "workload": "snapshot_output_resize",
562      "transport": "udp_25ms",
563      "roles": [
564        "daemon",
565        "client",
566        "udp_peer"
567      ]
568    },
569    {
570      "id": "1x4-snapshot_output_resize-udp_100ms",
571      "topology": "1x4",
572      "workload": "snapshot_output_resize",
573      "transport": "udp_100ms",
574      "roles": [
575        "daemon",
576        "client",
577        "udp_peer"
578      ]
579    },
580    {
581      "id": "1x4-snapshot_output_resize-udp_loss_1pct",
582      "topology": "1x4",
583      "workload": "snapshot_output_resize",
584      "transport": "udp_loss_1pct",
585      "roles": [
586        "daemon",
587        "client",
588        "udp_peer"
589      ]
590    },
591    {
592      "id": "1x4-attach_restore_tab_switch-local",
593      "topology": "1x4",
594      "workload": "attach_restore_tab_switch",
595      "transport": "local",
596      "roles": [
597        "daemon",
598        "client"
599      ]
600    },
601    {
602      "id": "1x4-attach_restore_tab_switch-ssh_stdio",
603      "topology": "1x4",
604      "workload": "attach_restore_tab_switch",
605      "transport": "ssh_stdio",
606      "roles": [
607        "daemon",
608        "client",
609        "ssh_stdio_peer"
610      ]
611    },
612    {
613      "id": "1x4-attach_restore_tab_switch-udp_baseline",
614      "topology": "1x4",
615      "workload": "attach_restore_tab_switch",
616      "transport": "udp_baseline",
617      "roles": [
618        "daemon",
619        "client",
620        "udp_peer"
621      ]
622    },
623    {
624      "id": "1x4-attach_restore_tab_switch-udp_25ms",
625      "topology": "1x4",
626      "workload": "attach_restore_tab_switch",
627      "transport": "udp_25ms",
628      "roles": [
629        "daemon",
630        "client",
631        "udp_peer"
632      ]
633    },
634    {
635      "id": "1x4-attach_restore_tab_switch-udp_100ms",
636      "topology": "1x4",
637      "workload": "attach_restore_tab_switch",
638      "transport": "udp_100ms",
639      "roles": [
640        "daemon",
641        "client",
642        "udp_peer"
643      ]
644    },
645    {
646      "id": "1x4-attach_restore_tab_switch-udp_loss_1pct",
647      "topology": "1x4",
648      "workload": "attach_restore_tab_switch",
649      "transport": "udp_loss_1pct",
650      "roles": [
651        "daemon",
652        "client",
653        "udp_peer"
654      ]
655    },
656    {
657      "id": "4x1-idle-local",
658      "topology": "4x1",
659      "workload": "idle",
660      "transport": "local",
661      "roles": [
662        "daemon",
663        "client"
664      ]
665    },
666    {
667      "id": "4x1-idle-ssh_stdio",
668      "topology": "4x1",
669      "workload": "idle",
670      "transport": "ssh_stdio",
671      "roles": [
672        "daemon",
673        "client",
674        "ssh_stdio_peer"
675      ]
676    },
677    {
678      "id": "4x1-idle-udp_baseline",
679      "topology": "4x1",
680      "workload": "idle",
681      "transport": "udp_baseline",
682      "roles": [
683        "daemon",
684        "client",
685        "udp_peer"
686      ]
687    },
688    {
689      "id": "4x1-idle-udp_25ms",
690      "topology": "4x1",
691      "workload": "idle",
692      "transport": "udp_25ms",
693      "roles": [
694        "daemon",
695        "client",
696        "udp_peer"
697      ]
698    },
699    {
700      "id": "4x1-idle-udp_100ms",
701      "topology": "4x1",
702      "workload": "idle",
703      "transport": "udp_100ms",
704      "roles": [
705        "daemon",
706        "client",
707        "udp_peer"
708      ]
709    },
710    {
711      "id": "4x1-idle-udp_loss_1pct",
712      "topology": "4x1",
713      "workload": "idle",
714      "transport": "udp_loss_1pct",
715      "roles": [
716        "daemon",
717        "client",
718        "udp_peer"
719      ]
720    },
721    {
722      "id": "4x1-active_output-local",
723      "topology": "4x1",
724      "workload": "active_output",
725      "transport": "local",
726      "roles": [
727        "daemon",
728        "client"
729      ]
730    },
731    {
732      "id": "4x1-active_output-ssh_stdio",
733      "topology": "4x1",
734      "workload": "active_output",
735      "transport": "ssh_stdio",
736      "roles": [
737        "daemon",
738        "client",
739        "ssh_stdio_peer"
740      ]
741    },
742    {
743      "id": "4x1-active_output-udp_baseline",
744      "topology": "4x1",
745      "workload": "active_output",
746      "transport": "udp_baseline",
747      "roles": [
748        "daemon",
749        "client",
750        "udp_peer"
751      ]
752    },
753    {
754      "id": "4x1-active_output-udp_25ms",
755      "topology": "4x1",
756      "workload": "active_output",
757      "transport": "udp_25ms",
758      "roles": [
759        "daemon",
760        "client",
761        "udp_peer"
762      ]
763    },
764    {
765      "id": "4x1-active_output-udp_100ms",
766      "topology": "4x1",
767      "workload": "active_output",
768      "transport": "udp_100ms",
769      "roles": [
770        "daemon",
771        "client",
772        "udp_peer"
773      ]
774    },
775    {
776      "id": "4x1-active_output-udp_loss_1pct",
777      "topology": "4x1",
778      "workload": "active_output",
779      "transport": "udp_loss_1pct",
780      "roles": [
781        "daemon",
782        "client",
783        "udp_peer"
784      ]
785    },
786    {
787      "id": "4x1-all_output-local",
788      "topology": "4x1",
789      "workload": "all_output",
790      "transport": "local",
791      "roles": [
792        "daemon",
793        "client"
794      ]
795    },
796    {
797      "id": "4x1-all_output-ssh_stdio",
798      "topology": "4x1",
799      "workload": "all_output",
800      "transport": "ssh_stdio",
801      "roles": [
802        "daemon",
803        "client",
804        "ssh_stdio_peer"
805      ]
806    },
807    {
808      "id": "4x1-all_output-udp_baseline",
809      "topology": "4x1",
810      "workload": "all_output",
811      "transport": "udp_baseline",
812      "roles": [
813        "daemon",
814        "client",
815        "udp_peer"
816      ]
817    },
818    {
819      "id": "4x1-all_output-udp_25ms",
820      "topology": "4x1",
821      "workload": "all_output",
822      "transport": "udp_25ms",
823      "roles": [
824        "daemon",
825        "client",
826        "udp_peer"
827      ]
828    },
829    {
830      "id": "4x1-all_output-udp_100ms",
831      "topology": "4x1",
832      "workload": "all_output",
833      "transport": "udp_100ms",
834      "roles": [
835        "daemon",
836        "client",
837        "udp_peer"
838      ]
839    },
840    {
841      "id": "4x1-all_output-udp_loss_1pct",
842      "topology": "4x1",
843      "workload": "all_output",
844      "transport": "udp_loss_1pct",
845      "roles": [
846        "daemon",
847        "client",
848        "udp_peer"
849      ]
850    },
851    {
852      "id": "4x1-inactive_output-local",
853      "topology": "4x1",
854      "workload": "inactive_output",
855      "transport": "local",
856      "roles": [
857        "daemon",
858        "client"
859      ]
860    },
861    {
862      "id": "4x1-inactive_output-ssh_stdio",
863      "topology": "4x1",
864      "workload": "inactive_output",
865      "transport": "ssh_stdio",
866      "roles": [
867        "daemon",
868        "client",
869        "ssh_stdio_peer"
870      ]
871    },
872    {
873      "id": "4x1-inactive_output-udp_baseline",
874      "topology": "4x1",
875      "workload": "inactive_output",
876      "transport": "udp_baseline",
877      "roles": [
878        "daemon",
879        "client",
880        "udp_peer"
881      ]
882    },
883    {
884      "id": "4x1-inactive_output-udp_25ms",
885      "topology": "4x1",
886      "workload": "inactive_output",
887      "transport": "udp_25ms",
888      "roles": [
889        "daemon",
890        "client",
891        "udp_peer"
892      ]
893    },
894    {
895      "id": "4x1-inactive_output-udp_100ms",
896      "topology": "4x1",
897      "workload": "inactive_output",
898      "transport": "udp_100ms",
899      "roles": [
900        "daemon",
901        "client",
902        "udp_peer"
903      ]
904    },
905    {
906      "id": "4x1-inactive_output-udp_loss_1pct",
907      "topology": "4x1",
908      "workload": "inactive_output",
909      "transport": "udp_loss_1pct",
910      "roles": [
911        "daemon",
912        "client",
913        "udp_peer"
914      ]
915    },
916    {
917      "id": "4x1-interactive_flood-local",
918      "topology": "4x1",
919      "workload": "interactive_flood",
920      "transport": "local",
921      "roles": [
922        "daemon",
923        "client"
924      ]
925    },
926    {
927      "id": "4x1-interactive_flood-ssh_stdio",
928      "topology": "4x1",
929      "workload": "interactive_flood",
930      "transport": "ssh_stdio",
931      "roles": [
932        "daemon",
933        "client",
934        "ssh_stdio_peer"
935      ]
936    },
937    {
938      "id": "4x1-interactive_flood-udp_baseline",
939      "topology": "4x1",
940      "workload": "interactive_flood",
941      "transport": "udp_baseline",
942      "roles": [
943        "daemon",
944        "client",
945        "udp_peer"
946      ]
947    },
948    {
949      "id": "4x1-interactive_flood-udp_25ms",
950      "topology": "4x1",
951      "workload": "interactive_flood",
952      "transport": "udp_25ms",
953      "roles": [
954        "daemon",
955        "client",
956        "udp_peer"
957      ]
958    },
959    {
960      "id": "4x1-interactive_flood-udp_100ms",
961      "topology": "4x1",
962      "workload": "interactive_flood",
963      "transport": "udp_100ms",
964      "roles": [
965        "daemon",
966        "client",
967        "udp_peer"
968      ]
969    },
970    {
971      "id": "4x1-interactive_flood-udp_loss_1pct",
972      "topology": "4x1",
973      "workload": "interactive_flood",
974      "transport": "udp_loss_1pct",
975      "roles": [
976        "daemon",
977        "client",
978        "udp_peer"
979      ]
980    },
981    {
982      "id": "4x1-copy_search-local",
983      "topology": "4x1",
984      "workload": "copy_search",
985      "transport": "local",
986      "roles": [
987        "daemon",
988        "client"
989      ]
990    },
991    {
992      "id": "4x1-copy_search-ssh_stdio",
993      "topology": "4x1",
994      "workload": "copy_search",
995      "transport": "ssh_stdio",
996      "roles": [
997        "daemon",
998        "client",
999        "ssh_stdio_peer"
1000      ]
1001    },
1002    {
1003      "id": "4x1-copy_search-udp_baseline",
1004      "topology": "4x1",
1005      "workload": "copy_search",
1006      "transport": "udp_baseline",
1007      "roles": [
1008        "daemon",
1009        "client",
1010        "udp_peer"
1011      ]
1012    },
1013    {
1014      "id": "4x1-copy_search-udp_25ms",
1015      "topology": "4x1",
1016      "workload": "copy_search",
1017      "transport": "udp_25ms",
1018      "roles": [
1019        "daemon",
1020        "client",
1021        "udp_peer"
1022      ]
1023    },
1024    {
1025      "id": "4x1-copy_search-udp_100ms",
1026      "topology": "4x1",
1027      "workload": "copy_search",
1028      "transport": "udp_100ms",
1029      "roles": [
1030        "daemon",
1031        "client",
1032        "udp_peer"
1033      ]
1034    },
1035    {
1036      "id": "4x1-copy_search-udp_loss_1pct",
1037      "topology": "4x1",
1038      "workload": "copy_search",
1039      "transport": "udp_loss_1pct",
1040      "roles": [
1041        "daemon",
1042        "client",
1043        "udp_peer"
1044      ]
1045    },
1046    {
1047      "id": "4x1-resize_sweep-local",
1048      "topology": "4x1",
1049      "workload": "resize_sweep",
1050      "transport": "local",
1051      "roles": [
1052        "daemon",
1053        "client"
1054      ]
1055    },
1056    {
1057      "id": "4x1-resize_sweep-ssh_stdio",
1058      "topology": "4x1",
1059      "workload": "resize_sweep",
1060      "transport": "ssh_stdio",
1061      "roles": [
1062        "daemon",
1063        "client",
1064        "ssh_stdio_peer"
1065      ]
1066    },
1067    {
1068      "id": "4x1-resize_sweep-udp_baseline",
1069      "topology": "4x1",
1070      "workload": "resize_sweep",
1071      "transport": "udp_baseline",
1072      "roles": [
1073        "daemon",
1074        "client",
1075        "udp_peer"
1076      ]
1077    },
1078    {
1079      "id": "4x1-resize_sweep-udp_25ms",
1080      "topology": "4x1",
1081      "workload": "resize_sweep",
1082      "transport": "udp_25ms",
1083      "roles": [
1084        "daemon",
1085        "client",
1086        "udp_peer"
1087      ]
1088    },
1089    {
1090      "id": "4x1-resize_sweep-udp_100ms",
1091      "topology": "4x1",
1092      "workload": "resize_sweep",
1093      "transport": "udp_100ms",
1094      "roles": [
1095        "daemon",
1096        "client",
1097        "udp_peer"
1098      ]
1099    },
1100    {
1101      "id": "4x1-resize_sweep-udp_loss_1pct",
1102      "topology": "4x1",
1103      "workload": "resize_sweep",
1104      "transport": "udp_loss_1pct",
1105      "roles": [
1106        "daemon",
1107        "client",
1108        "udp_peer"
1109      ]
1110    },
1111    {
1112      "id": "4x1-snapshot_output_resize-local",
1113      "topology": "4x1",
1114      "workload": "snapshot_output_resize",
1115      "transport": "local",
1116      "roles": [
1117        "daemon",
1118        "client"
1119      ]
1120    },
1121    {
1122      "id": "4x1-snapshot_output_resize-ssh_stdio",
1123      "topology": "4x1",
1124      "workload": "snapshot_output_resize",
1125      "transport": "ssh_stdio",
1126      "roles": [
1127        "daemon",
1128        "client",
1129        "ssh_stdio_peer"
1130      ]
1131    },
1132    {
1133      "id": "4x1-snapshot_output_resize-udp_baseline",
1134      "topology": "4x1",
1135      "workload": "snapshot_output_resize",
1136      "transport": "udp_baseline",
1137      "roles": [
1138        "daemon",
1139        "client",
1140        "udp_peer"
1141      ]
1142    },
1143    {
1144      "id": "4x1-snapshot_output_resize-udp_25ms",
1145      "topology": "4x1",
1146      "workload": "snapshot_output_resize",
1147      "transport": "udp_25ms",
1148      "roles": [
1149        "daemon",
1150        "client",
1151        "udp_peer"
1152      ]
1153    },
1154    {
1155      "id": "4x1-snapshot_output_resize-udp_100ms",
1156      "topology": "4x1",
1157      "workload": "snapshot_output_resize",
1158      "transport": "udp_100ms",
1159      "roles": [
1160        "daemon",
1161        "client",
1162        "udp_peer"
1163      ]
1164    },
1165    {
1166      "id": "4x1-snapshot_output_resize-udp_loss_1pct",
1167      "topology": "4x1",
1168      "workload": "snapshot_output_resize",
1169      "transport": "udp_loss_1pct",
1170      "roles": [
1171        "daemon",
1172        "client",
1173        "udp_peer"
1174      ]
1175    },
1176    {
1177      "id": "4x1-attach_restore_tab_switch-local",
1178      "topology": "4x1",
1179      "workload": "attach_restore_tab_switch",
1180      "transport": "local",
1181      "roles": [
1182        "daemon",
1183        "client"
1184      ]
1185    },
1186    {
1187      "id": "4x1-attach_restore_tab_switch-ssh_stdio",
1188      "topology": "4x1",
1189      "workload": "attach_restore_tab_switch",
1190      "transport": "ssh_stdio",
1191      "roles": [
1192        "daemon",
1193        "client",
1194        "ssh_stdio_peer"
1195      ]
1196    },
1197    {
1198      "id": "4x1-attach_restore_tab_switch-udp_baseline",
1199      "topology": "4x1",
1200      "workload": "attach_restore_tab_switch",
1201      "transport": "udp_baseline",
1202      "roles": [
1203        "daemon",
1204        "client",
1205        "udp_peer"
1206      ]
1207    },
1208    {
1209      "id": "4x1-attach_restore_tab_switch-udp_25ms",
1210      "topology": "4x1",
1211      "workload": "attach_restore_tab_switch",
1212      "transport": "udp_25ms",
1213      "roles": [
1214        "daemon",
1215        "client",
1216        "udp_peer"
1217      ]
1218    },
1219    {
1220      "id": "4x1-attach_restore_tab_switch-udp_100ms",
1221      "topology": "4x1",
1222      "workload": "attach_restore_tab_switch",
1223      "transport": "udp_100ms",
1224      "roles": [
1225        "daemon",
1226        "client",
1227        "udp_peer"
1228      ]
1229    },
1230    {
1231      "id": "4x1-attach_restore_tab_switch-udp_loss_1pct",
1232      "topology": "4x1",
1233      "workload": "attach_restore_tab_switch",
1234      "transport": "udp_loss_1pct",
1235      "roles": [
1236        "daemon",
1237        "client",
1238        "udp_peer"
1239      ]
1240    },
1241    {
1242      "id": "4x4-idle-local",
1243      "topology": "4x4",
1244      "workload": "idle",
1245      "transport": "local",
1246      "roles": [
1247        "daemon",
1248        "client"
1249      ]
1250    },
1251    {
1252      "id": "4x4-idle-ssh_stdio",
1253      "topology": "4x4",
1254      "workload": "idle",
1255      "transport": "ssh_stdio",
1256      "roles": [
1257        "daemon",
1258        "client",
1259        "ssh_stdio_peer"
1260      ]
1261    },
1262    {
1263      "id": "4x4-idle-udp_baseline",
1264      "topology": "4x4",
1265      "workload": "idle",
1266      "transport": "udp_baseline",
1267      "roles": [
1268        "daemon",
1269        "client",
1270        "udp_peer"
1271      ]
1272    },
1273    {
1274      "id": "4x4-idle-udp_25ms",
1275      "topology": "4x4",
1276      "workload": "idle",
1277      "transport": "udp_25ms",
1278      "roles": [
1279        "daemon",
1280        "client",
1281        "udp_peer"
1282      ]
1283    },
1284    {
1285      "id": "4x4-idle-udp_100ms",
1286      "topology": "4x4",
1287      "workload": "idle",
1288      "transport": "udp_100ms",
1289      "roles": [
1290        "daemon",
1291        "client",
1292        "udp_peer"
1293      ]
1294    },
1295    {
1296      "id": "4x4-idle-udp_loss_1pct",
1297      "topology": "4x4",
1298      "workload": "idle",
1299      "transport": "udp_loss_1pct",
1300      "roles": [
1301        "daemon",
1302        "client",
1303        "udp_peer"
1304      ]
1305    },
1306    {
1307      "id": "4x4-active_output-local",
1308      "topology": "4x4",
1309      "workload": "active_output",
1310      "transport": "local",
1311      "roles": [
1312        "daemon",
1313        "client"
1314      ]
1315    },
1316    {
1317      "id": "4x4-active_output-ssh_stdio",
1318      "topology": "4x4",
1319      "workload": "active_output",
1320      "transport": "ssh_stdio",
1321      "roles": [
1322        "daemon",
1323        "client",
1324        "ssh_stdio_peer"
1325      ]
1326    },
1327    {
1328      "id": "4x4-active_output-udp_baseline",
1329      "topology": "4x4",
1330      "workload": "active_output",
1331      "transport": "udp_baseline",
1332      "roles": [
1333        "daemon",
1334        "client",
1335        "udp_peer"
1336      ]
1337    },
1338    {
1339      "id": "4x4-active_output-udp_25ms",
1340      "topology": "4x4",
1341      "workload": "active_output",
1342      "transport": "udp_25ms",
1343      "roles": [
1344        "daemon",
1345        "client",
1346        "udp_peer"
1347      ]
1348    },
1349    {
1350      "id": "4x4-active_output-udp_100ms",
1351      "topology": "4x4",
1352      "workload": "active_output",
1353      "transport": "udp_100ms",
1354      "roles": [
1355        "daemon",
1356        "client",
1357        "udp_peer"
1358      ]
1359    },
1360    {
1361      "id": "4x4-active_output-udp_loss_1pct",
1362      "topology": "4x4",
1363      "workload": "active_output",
1364      "transport": "udp_loss_1pct",
1365      "roles": [
1366        "daemon",
1367        "client",
1368        "udp_peer"
1369      ]
1370    },
1371    {
1372      "id": "4x4-all_output-local",
1373      "topology": "4x4",
1374      "workload": "all_output",
1375      "transport": "local",
1376      "roles": [
1377        "daemon",
1378        "client"
1379      ]
1380    },
1381    {
1382      "id": "4x4-all_output-ssh_stdio",
1383      "topology": "4x4",
1384      "workload": "all_output",
1385      "transport": "ssh_stdio",
1386      "roles": [
1387        "daemon",
1388        "client",
1389        "ssh_stdio_peer"
1390      ]
1391    },
1392    {
1393      "id": "4x4-all_output-udp_baseline",
1394      "topology": "4x4",
1395      "workload": "all_output",
1396      "transport": "udp_baseline",
1397      "roles": [
1398        "daemon",
1399        "client",
1400        "udp_peer"
1401      ]
1402    },
1403    {
1404      "id": "4x4-all_output-udp_25ms",
1405      "topology": "4x4",
1406      "workload": "all_output",
1407      "transport": "udp_25ms",
1408      "roles": [
1409        "daemon",
1410        "client",
1411        "udp_peer"
1412      ]
1413    },
1414    {
1415      "id": "4x4-all_output-udp_100ms",
1416      "topology": "4x4",
1417      "workload": "all_output",
1418      "transport": "udp_100ms",
1419      "roles": [
1420        "daemon",
1421        "client",
1422        "udp_peer"
1423      ]
1424    },
1425    {
1426      "id": "4x4-all_output-udp_loss_1pct",
1427      "topology": "4x4",
1428      "workload": "all_output",
1429      "transport": "udp_loss_1pct",
1430      "roles": [
1431        "daemon",
1432        "client",
1433        "udp_peer"
1434      ]
1435    },
1436    {
1437      "id": "4x4-inactive_output-local",
1438      "topology": "4x4",
1439      "workload": "inactive_output",
1440      "transport": "local",
1441      "roles": [
1442        "daemon",
1443        "client"
1444      ]
1445    },
1446    {
1447      "id": "4x4-inactive_output-ssh_stdio",
1448      "topology": "4x4",
1449      "workload": "inactive_output",
1450      "transport": "ssh_stdio",
1451      "roles": [
1452        "daemon",
1453        "client",
1454        "ssh_stdio_peer"
1455      ]
1456    },
1457    {
1458      "id": "4x4-inactive_output-udp_baseline",
1459      "topology": "4x4",
1460      "workload": "inactive_output",
1461      "transport": "udp_baseline",
1462      "roles": [
1463        "daemon",
1464        "client",
1465        "udp_peer"
1466      ]
1467    },
1468    {
1469      "id": "4x4-inactive_output-udp_25ms",
1470      "topology": "4x4",
1471      "workload": "inactive_output",
1472      "transport": "udp_25ms",
1473      "roles": [
1474        "daemon",
1475        "client",
1476        "udp_peer"
1477      ]
1478    },
1479    {
1480      "id": "4x4-inactive_output-udp_100ms",
1481      "topology": "4x4",
1482      "workload": "inactive_output",
1483      "transport": "udp_100ms",
1484      "roles": [
1485        "daemon",
1486        "client",
1487        "udp_peer"
1488      ]
1489    },
1490    {
1491      "id": "4x4-inactive_output-udp_loss_1pct",
1492      "topology": "4x4",
1493      "workload": "inactive_output",
1494      "transport": "udp_loss_1pct",
1495      "roles": [
1496        "daemon",
1497        "client",
1498        "udp_peer"
1499      ]
1500    },
1501    {
1502      "id": "4x4-interactive_flood-local",
1503      "topology": "4x4",
1504      "workload": "interactive_flood",
1505      "transport": "local",
1506      "roles": [
1507        "daemon",
1508        "client"
1509      ]
1510    },
1511    {
1512      "id": "4x4-interactive_flood-ssh_stdio",
1513      "topology": "4x4",
1514      "workload": "interactive_flood",
1515      "transport": "ssh_stdio",
1516      "roles": [
1517        "daemon",
1518        "client",
1519        "ssh_stdio_peer"
1520      ]
1521    },
1522    {
1523      "id": "4x4-interactive_flood-udp_baseline",
1524      "topology": "4x4",
1525      "workload": "interactive_flood",
1526      "transport": "udp_baseline",
1527      "roles": [
1528        "daemon",
1529        "client",
1530        "udp_peer"
1531      ]
1532    },
1533    {
1534      "id": "4x4-interactive_flood-udp_25ms",
1535      "topology": "4x4",
1536      "workload": "interactive_flood",
1537      "transport": "udp_25ms",
1538      "roles": [
1539        "daemon",
1540        "client",
1541        "udp_peer"
1542      ]
1543    },
1544    {
1545      "id": "4x4-interactive_flood-udp_100ms",
1546      "topology": "4x4",
1547      "workload": "interactive_flood",
1548      "transport": "udp_100ms",
1549      "roles": [
1550        "daemon",
1551        "client",
1552        "udp_peer"
1553      ]
1554    },
1555    {
1556      "id": "4x4-interactive_flood-udp_loss_1pct",
1557      "topology": "4x4",
1558      "workload": "interactive_flood",
1559      "transport": "udp_loss_1pct",
1560      "roles": [
1561        "daemon",
1562        "client",
1563        "udp_peer"
1564      ]
1565    },
1566    {
1567      "id": "4x4-copy_search-local",
1568      "topology": "4x4",
1569      "workload": "copy_search",
1570      "transport": "local",
1571      "roles": [
1572        "daemon",
1573        "client"
1574      ]
1575    },
1576    {
1577      "id": "4x4-copy_search-ssh_stdio",
1578      "topology": "4x4",
1579      "workload": "copy_search",
1580      "transport": "ssh_stdio",
1581      "roles": [
1582        "daemon",
1583        "client",
1584        "ssh_stdio_peer"
1585      ]
1586    },
1587    {
1588      "id": "4x4-copy_search-udp_baseline",
1589      "topology": "4x4",
1590      "workload": "copy_search",
1591      "transport": "udp_baseline",
1592      "roles": [
1593        "daemon",
1594        "client",
1595        "udp_peer"
1596      ]
1597    },
1598    {
1599      "id": "4x4-copy_search-udp_25ms",
1600      "topology": "4x4",
1601      "workload": "copy_search",
1602      "transport": "udp_25ms",
1603      "roles": [
1604        "daemon",
1605        "client",
1606        "udp_peer"
1607      ]
1608    },
1609    {
1610      "id": "4x4-copy_search-udp_100ms",
1611      "topology": "4x4",
1612      "workload": "copy_search",
1613      "transport": "udp_100ms",
1614      "roles": [
1615        "daemon",
1616        "client",
1617        "udp_peer"
1618      ]
1619    },
1620    {
1621      "id": "4x4-copy_search-udp_loss_1pct",
1622      "topology": "4x4",
1623      "workload": "copy_search",
1624      "transport": "udp_loss_1pct",
1625      "roles": [
1626        "daemon",
1627        "client",
1628        "udp_peer"
1629      ]
1630    },
1631    {
1632      "id": "4x4-resize_sweep-local",
1633      "topology": "4x4",
1634      "workload": "resize_sweep",
1635      "transport": "local",
1636      "roles": [
1637        "daemon",
1638        "client"
1639      ]
1640    },
1641    {
1642      "id": "4x4-resize_sweep-ssh_stdio",
1643      "topology": "4x4",
1644      "workload": "resize_sweep",
1645      "transport": "ssh_stdio",
1646      "roles": [
1647        "daemon",
1648        "client",
1649        "ssh_stdio_peer"
1650      ]
1651    },
1652    {
1653      "id": "4x4-resize_sweep-udp_baseline",
1654      "topology": "4x4",
1655      "workload": "resize_sweep",
1656      "transport": "udp_baseline",
1657      "roles": [
1658        "daemon",
1659        "client",
1660        "udp_peer"
1661      ]
1662    },
1663    {
1664      "id": "4x4-resize_sweep-udp_25ms",
1665      "topology": "4x4",
1666      "workload": "resize_sweep",
1667      "transport": "udp_25ms",
1668      "roles": [
1669        "daemon",
1670        "client",
1671        "udp_peer"
1672      ]
1673    },
1674    {
1675      "id": "4x4-resize_sweep-udp_100ms",
1676      "topology": "4x4",
1677      "workload": "resize_sweep",
1678      "transport": "udp_100ms",
1679      "roles": [
1680        "daemon",
1681        "client",
1682        "udp_peer"
1683      ]
1684    },
1685    {
1686      "id": "4x4-resize_sweep-udp_loss_1pct",
1687      "topology": "4x4",
1688      "workload": "resize_sweep",
1689      "transport": "udp_loss_1pct",
1690      "roles": [
1691        "daemon",
1692        "client",
1693        "udp_peer"
1694      ]
1695    },
1696    {
1697      "id": "4x4-snapshot_output_resize-local",
1698      "topology": "4x4",
1699      "workload": "snapshot_output_resize",
1700      "transport": "local",
1701      "roles": [
1702        "daemon",
1703        "client"
1704      ]
1705    },
1706    {
1707      "id": "4x4-snapshot_output_resize-ssh_stdio",
1708      "topology": "4x4",
1709      "workload": "snapshot_output_resize",
1710      "transport": "ssh_stdio",
1711      "roles": [
1712        "daemon",
1713        "client",
1714        "ssh_stdio_peer"
1715      ]
1716    },
1717    {
1718      "id": "4x4-snapshot_output_resize-udp_baseline",
1719      "topology": "4x4",
1720      "workload": "snapshot_output_resize",
1721      "transport": "udp_baseline",
1722      "roles": [
1723        "daemon",
1724        "client",
1725        "udp_peer"
1726      ]
1727    },
1728    {
1729      "id": "4x4-snapshot_output_resize-udp_25ms",
1730      "topology": "4x4",
1731      "workload": "snapshot_output_resize",
1732      "transport": "udp_25ms",
1733      "roles": [
1734        "daemon",
1735        "client",
1736        "udp_peer"
1737      ]
1738    },
1739    {
1740      "id": "4x4-snapshot_output_resize-udp_100ms",
1741      "topology": "4x4",
1742      "workload": "snapshot_output_resize",
1743      "transport": "udp_100ms",
1744      "roles": [
1745        "daemon",
1746        "client",
1747        "udp_peer"
1748      ]
1749    },
1750    {
1751      "id": "4x4-snapshot_output_resize-udp_loss_1pct",
1752      "topology": "4x4",
1753      "workload": "snapshot_output_resize",
1754      "transport": "udp_loss_1pct",
1755      "roles": [
1756        "daemon",
1757        "client",
1758        "udp_peer"
1759      ]
1760    },
1761    {
1762      "id": "4x4-attach_restore_tab_switch-local",
1763      "topology": "4x4",
1764      "workload": "attach_restore_tab_switch",
1765      "transport": "local",
1766      "roles": [
1767        "daemon",
1768        "client"
1769      ]
1770    },
1771    {
1772      "id": "4x4-attach_restore_tab_switch-ssh_stdio",
1773      "topology": "4x4",
1774      "workload": "attach_restore_tab_switch",
1775      "transport": "ssh_stdio",
1776      "roles": [
1777        "daemon",
1778        "client",
1779        "ssh_stdio_peer"
1780      ]
1781    },
1782    {
1783      "id": "4x4-attach_restore_tab_switch-udp_baseline",
1784      "topology": "4x4",
1785      "workload": "attach_restore_tab_switch",
1786      "transport": "udp_baseline",
1787      "roles": [
1788        "daemon",
1789        "client",
1790        "udp_peer"
1791      ]
1792    },
1793    {
1794      "id": "4x4-attach_restore_tab_switch-udp_25ms",
1795      "topology": "4x4",
1796      "workload": "attach_restore_tab_switch",
1797      "transport": "udp_25ms",
1798      "roles": [
1799        "daemon",
1800        "client",
1801        "udp_peer"
1802      ]
1803    },
1804    {
1805      "id": "4x4-attach_restore_tab_switch-udp_100ms",
1806      "topology": "4x4",
1807      "workload": "attach_restore_tab_switch",
1808      "transport": "udp_100ms",
1809      "roles": [
1810        "daemon",
1811        "client",
1812        "udp_peer"
1813      ]
1814    },
1815    {
1816      "id": "4x4-attach_restore_tab_switch-udp_loss_1pct",
1817      "topology": "4x4",
1818      "workload": "attach_restore_tab_switch",
1819      "transport": "udp_loss_1pct",
1820      "roles": [
1821        "daemon",
1822        "client",
1823        "udp_peer"
1824      ]
1825    },
1826    {
1827      "id": "8x1-idle-local",
1828      "topology": "8x1",
1829      "workload": "idle",
1830      "transport": "local",
1831      "roles": [
1832        "daemon",
1833        "client"
1834      ]
1835    },
1836    {
1837      "id": "8x1-idle-ssh_stdio",
1838      "topology": "8x1",
1839      "workload": "idle",
1840      "transport": "ssh_stdio",
1841      "roles": [
1842        "daemon",
1843        "client",
1844        "ssh_stdio_peer"
1845      ]
1846    },
1847    {
1848      "id": "8x1-idle-udp_baseline",
1849      "topology": "8x1",
1850      "workload": "idle",
1851      "transport": "udp_baseline",
1852      "roles": [
1853        "daemon",
1854        "client",
1855        "udp_peer"
1856      ]
1857    },
1858    {
1859      "id": "8x1-idle-udp_25ms",
1860      "topology": "8x1",
1861      "workload": "idle",
1862      "transport": "udp_25ms",
1863      "roles": [
1864        "daemon",
1865        "client",
1866        "udp_peer"
1867      ]
1868    },
1869    {
1870      "id": "8x1-idle-udp_100ms",
1871      "topology": "8x1",
1872      "workload": "idle",
1873      "transport": "udp_100ms",
1874      "roles": [
1875        "daemon",
1876        "client",
1877        "udp_peer"
1878      ]
1879    },
1880    {
1881      "id": "8x1-idle-udp_loss_1pct",
1882      "topology": "8x1",
1883      "workload": "idle",
1884      "transport": "udp_loss_1pct",
1885      "roles": [
1886        "daemon",
1887        "client",
1888        "udp_peer"
1889      ]
1890    },
1891    {
1892      "id": "8x1-active_output-local",
1893      "topology": "8x1",
1894      "workload": "active_output",
1895      "transport": "local",
1896      "roles": [
1897        "daemon",
1898        "client"
1899      ]
1900    },
1901    {
1902      "id": "8x1-active_output-ssh_stdio",
1903      "topology": "8x1",
1904      "workload": "active_output",
1905      "transport": "ssh_stdio",
1906      "roles": [
1907        "daemon",
1908        "client",
1909        "ssh_stdio_peer"
1910      ]
1911    },
1912    {
1913      "id": "8x1-active_output-udp_baseline",
1914      "topology": "8x1",
1915      "workload": "active_output",
1916      "transport": "udp_baseline",
1917      "roles": [
1918        "daemon",
1919        "client",
1920        "udp_peer"
1921      ]
1922    },
1923    {
1924      "id": "8x1-active_output-udp_25ms",
1925      "topology": "8x1",
1926      "workload": "active_output",
1927      "transport": "udp_25ms",
1928      "roles": [
1929        "daemon",
1930        "client",
1931        "udp_peer"
1932      ]
1933    },
1934    {
1935      "id": "8x1-active_output-udp_100ms",
1936      "topology": "8x1",
1937      "workload": "active_output",
1938      "transport": "udp_100ms",
1939      "roles": [
1940        "daemon",
1941        "client",
1942        "udp_peer"
1943      ]
1944    },
1945    {
1946      "id": "8x1-active_output-udp_loss_1pct",
1947      "topology": "8x1",
1948      "workload": "active_output",
1949      "transport": "udp_loss_1pct",
1950      "roles": [
1951        "daemon",
1952        "client",
1953        "udp_peer"
1954      ]
1955    },
1956    {
1957      "id": "8x1-all_output-local",
1958      "topology": "8x1",
1959      "workload": "all_output",
1960      "transport": "local",
1961      "roles": [
1962        "daemon",
1963        "client"
1964      ]
1965    },
1966    {
1967      "id": "8x1-all_output-ssh_stdio",
1968      "topology": "8x1",
1969      "workload": "all_output",
1970      "transport": "ssh_stdio",
1971      "roles": [
1972        "daemon",
1973        "client",
1974        "ssh_stdio_peer"
1975      ]
1976    },
1977    {
1978      "id": "8x1-all_output-udp_baseline",
1979      "topology": "8x1",
1980      "workload": "all_output",
1981      "transport": "udp_baseline",
1982      "roles": [
1983        "daemon",
1984        "client",
1985        "udp_peer"
1986      ]
1987    },
1988    {
1989      "id": "8x1-all_output-udp_25ms",
1990      "topology": "8x1",
1991      "workload": "all_output",
1992      "transport": "udp_25ms",
1993      "roles": [
1994        "daemon",
1995        "client",
1996        "udp_peer"
1997      ]
1998    },
1999    {
2000      "id": "8x1-all_output-udp_100ms",
2001      "topology": "8x1",
2002      "workload": "all_output",
2003      "transport": "udp_100ms",
2004      "roles": [
2005        "daemon",
2006        "client",
2007        "udp_peer"
2008      ]
2009    },
2010    {
2011      "id": "8x1-all_output-udp_loss_1pct",
2012      "topology": "8x1",
2013      "workload": "all_output",
2014      "transport": "udp_loss_1pct",
2015      "roles": [
2016        "daemon",
2017        "client",
2018        "udp_peer"
2019      ]
2020    },
2021    {
2022      "id": "8x1-inactive_output-local",
2023      "topology": "8x1",
2024      "workload": "inactive_output",
2025      "transport": "local",
2026      "roles": [
2027        "daemon",
2028        "client"
2029      ]
2030    },
2031    {
2032      "id": "8x1-inactive_output-ssh_stdio",
2033      "topology": "8x1",
2034      "workload": "inactive_output",
2035      "transport": "ssh_stdio",
2036      "roles": [
2037        "daemon",
2038        "client",
2039        "ssh_stdio_peer"
2040      ]
2041    },
2042    {
2043      "id": "8x1-inactive_output-udp_baseline",
2044      "topology": "8x1",
2045      "workload": "inactive_output",
2046      "transport": "udp_baseline",
2047      "roles": [
2048        "daemon",
2049        "client",
2050        "udp_peer"
2051      ]
2052    },
2053    {
2054      "id": "8x1-inactive_output-udp_25ms",
2055      "topology": "8x1",
2056      "workload": "inactive_output",
2057      "transport": "udp_25ms",
2058      "roles": [
2059        "daemon",
2060        "client",
2061        "udp_peer"
2062      ]
2063    },
2064    {
2065      "id": "8x1-inactive_output-udp_100ms",
2066      "topology": "8x1",
2067      "workload": "inactive_output",
2068      "transport": "udp_100ms",
2069      "roles": [
2070        "daemon",
2071        "client",
2072        "udp_peer"
2073      ]
2074    },
2075    {
2076      "id": "8x1-inactive_output-udp_loss_1pct",
2077      "topology": "8x1",
2078      "workload": "inactive_output",
2079      "transport": "udp_loss_1pct",
2080      "roles": [
2081        "daemon",
2082        "client",
2083        "udp_peer"
2084      ]
2085    },
2086    {
2087      "id": "8x1-interactive_flood-local",
2088      "topology": "8x1",
2089      "workload": "interactive_flood",
2090      "transport": "local",
2091      "roles": [
2092        "daemon",
2093        "client"
2094      ]
2095    },
2096    {
2097      "id": "8x1-interactive_flood-ssh_stdio",
2098      "topology": "8x1",
2099      "workload": "interactive_flood",
2100      "transport": "ssh_stdio",
2101      "roles": [
2102        "daemon",
2103        "client",
2104        "ssh_stdio_peer"
2105      ]
2106    },
2107    {
2108      "id": "8x1-interactive_flood-udp_baseline",
2109      "topology": "8x1",
2110      "workload": "interactive_flood",
2111      "transport": "udp_baseline",
2112      "roles": [
2113        "daemon",
2114        "client",
2115        "udp_peer"
2116      ]
2117    },
2118    {
2119      "id": "8x1-interactive_flood-udp_25ms",
2120      "topology": "8x1",
2121      "workload": "interactive_flood",
2122      "transport": "udp_25ms",
2123      "roles": [
2124        "daemon",
2125        "client",
2126        "udp_peer"
2127      ]
2128    },
2129    {
2130      "id": "8x1-interactive_flood-udp_100ms",
2131      "topology": "8x1",
2132      "workload": "interactive_flood",
2133      "transport": "udp_100ms",
2134      "roles": [
2135        "daemon",
2136        "client",
2137        "udp_peer"
2138      ]
2139    },
2140    {
2141      "id": "8x1-interactive_flood-udp_loss_1pct",
2142      "topology": "8x1",
2143      "workload": "interactive_flood",
2144      "transport": "udp_loss_1pct",
2145      "roles": [
2146        "daemon",
2147        "client",
2148        "udp_peer"
2149      ]
2150    },
2151    {
2152      "id": "8x1-copy_search-local",
2153      "topology": "8x1",
2154      "workload": "copy_search",
2155      "transport": "local",
2156      "roles": [
2157        "daemon",
2158        "client"
2159      ]
2160    },
2161    {
2162      "id": "8x1-copy_search-ssh_stdio",
2163      "topology": "8x1",
2164      "workload": "copy_search",
2165      "transport": "ssh_stdio",
2166      "roles": [
2167        "daemon",
2168        "client",
2169        "ssh_stdio_peer"
2170      ]
2171    },
2172    {
2173      "id": "8x1-copy_search-udp_baseline",
2174      "topology": "8x1",
2175      "workload": "copy_search",
2176      "transport": "udp_baseline",
2177      "roles": [
2178        "daemon",
2179        "client",
2180        "udp_peer"
2181      ]
2182    },
2183    {
2184      "id": "8x1-copy_search-udp_25ms",
2185      "topology": "8x1",
2186      "workload": "copy_search",
2187      "transport": "udp_25ms",
2188      "roles": [
2189        "daemon",
2190        "client",
2191        "udp_peer"
2192      ]
2193    },
2194    {
2195      "id": "8x1-copy_search-udp_100ms",
2196      "topology": "8x1",
2197      "workload": "copy_search",
2198      "transport": "udp_100ms",
2199      "roles": [
2200        "daemon",
2201        "client",
2202        "udp_peer"
2203      ]
2204    },
2205    {
2206      "id": "8x1-copy_search-udp_loss_1pct",
2207      "topology": "8x1",
2208      "workload": "copy_search",
2209      "transport": "udp_loss_1pct",
2210      "roles": [
2211        "daemon",
2212        "client",
2213        "udp_peer"
2214      ]
2215    },
2216    {
2217      "id": "8x1-resize_sweep-local",
2218      "topology": "8x1",
2219      "workload": "resize_sweep",
2220      "transport": "local",
2221      "roles": [
2222        "daemon",
2223        "client"
2224      ]
2225    },
2226    {
2227      "id": "8x1-resize_sweep-ssh_stdio",
2228      "topology": "8x1",
2229      "workload": "resize_sweep",
2230      "transport": "ssh_stdio",
2231      "roles": [
2232        "daemon",
2233        "client",
2234        "ssh_stdio_peer"
2235      ]
2236    },
2237    {
2238      "id": "8x1-resize_sweep-udp_baseline",
2239      "topology": "8x1",
2240      "workload": "resize_sweep",
2241      "transport": "udp_baseline",
2242      "roles": [
2243        "daemon",
2244        "client",
2245        "udp_peer"
2246      ]
2247    },
2248    {
2249      "id": "8x1-resize_sweep-udp_25ms",
2250      "topology": "8x1",
2251      "workload": "resize_sweep",
2252      "transport": "udp_25ms",
2253      "roles": [
2254        "daemon",
2255        "client",
2256        "udp_peer"
2257      ]
2258    },
2259    {
2260      "id": "8x1-resize_sweep-udp_100ms",
2261      "topology": "8x1",
2262      "workload": "resize_sweep",
2263      "transport": "udp_100ms",
2264      "roles": [
2265        "daemon",
2266        "client",
2267        "udp_peer"
2268      ]
2269    },
2270    {
2271      "id": "8x1-resize_sweep-udp_loss_1pct",
2272      "topology": "8x1",
2273      "workload": "resize_sweep",
2274      "transport": "udp_loss_1pct",
2275      "roles": [
2276        "daemon",
2277        "client",
2278        "udp_peer"
2279      ]
2280    },
2281    {
2282      "id": "8x1-snapshot_output_resize-local",
2283      "topology": "8x1",
2284      "workload": "snapshot_output_resize",
2285      "transport": "local",
2286      "roles": [
2287        "daemon",
2288        "client"
2289      ]
2290    },
2291    {
2292      "id": "8x1-snapshot_output_resize-ssh_stdio",
2293      "topology": "8x1",
2294      "workload": "snapshot_output_resize",
2295      "transport": "ssh_stdio",
2296      "roles": [
2297        "daemon",
2298        "client",
2299        "ssh_stdio_peer"
2300      ]
2301    },
2302    {
2303      "id": "8x1-snapshot_output_resize-udp_baseline",
2304      "topology": "8x1",
2305      "workload": "snapshot_output_resize",
2306      "transport": "udp_baseline",
2307      "roles": [
2308        "daemon",
2309        "client",
2310        "udp_peer"
2311      ]
2312    },
2313    {
2314      "id": "8x1-snapshot_output_resize-udp_25ms",
2315      "topology": "8x1",
2316      "workload": "snapshot_output_resize",
2317      "transport": "udp_25ms",
2318      "roles": [
2319        "daemon",
2320        "client",
2321        "udp_peer"
2322      ]
2323    },
2324    {
2325      "id": "8x1-snapshot_output_resize-udp_100ms",
2326      "topology": "8x1",
2327      "workload": "snapshot_output_resize",
2328      "transport": "udp_100ms",
2329      "roles": [
2330        "daemon",
2331        "client",
2332        "udp_peer"
2333      ]
2334    },
2335    {
2336      "id": "8x1-snapshot_output_resize-udp_loss_1pct",
2337      "topology": "8x1",
2338      "workload": "snapshot_output_resize",
2339      "transport": "udp_loss_1pct",
2340      "roles": [
2341        "daemon",
2342        "client",
2343        "udp_peer"
2344      ]
2345    },
2346    {
2347      "id": "8x1-attach_restore_tab_switch-local",
2348      "topology": "8x1",
2349      "workload": "attach_restore_tab_switch",
2350      "transport": "local",
2351      "roles": [
2352        "daemon",
2353        "client"
2354      ]
2355    },
2356    {
2357      "id": "8x1-attach_restore_tab_switch-ssh_stdio",
2358      "topology": "8x1",
2359      "workload": "attach_restore_tab_switch",
2360      "transport": "ssh_stdio",
2361      "roles": [
2362        "daemon",
2363        "client",
2364        "ssh_stdio_peer"
2365      ]
2366    },
2367    {
2368      "id": "8x1-attach_restore_tab_switch-udp_baseline",
2369      "topology": "8x1",
2370      "workload": "attach_restore_tab_switch",
2371      "transport": "udp_baseline",
2372      "roles": [
2373        "daemon",
2374        "client",
2375        "udp_peer"
2376      ]
2377    },
2378    {
2379      "id": "8x1-attach_restore_tab_switch-udp_25ms",
2380      "topology": "8x1",
2381      "workload": "attach_restore_tab_switch",
2382      "transport": "udp_25ms",
2383      "roles": [
2384        "daemon",
2385        "client",
2386        "udp_peer"
2387      ]
2388    },
2389    {
2390      "id": "8x1-attach_restore_tab_switch-udp_100ms",
2391      "topology": "8x1",
2392      "workload": "attach_restore_tab_switch",
2393      "transport": "udp_100ms",
2394      "roles": [
2395        "daemon",
2396        "client",
2397        "udp_peer"
2398      ]
2399    },
2400    {
2401      "id": "8x1-attach_restore_tab_switch-udp_loss_1pct",
2402      "topology": "8x1",
2403      "workload": "attach_restore_tab_switch",
2404      "transport": "udp_loss_1pct",
2405      "roles": [
2406        "daemon",
2407        "client",
2408        "udp_peer"
2409      ]
2410    },
2411    {
2412      "id": "1x4-idle-udp_loss_0pct",
2413      "topology": "1x4",
2414      "workload": "idle",
2415      "transport": "udp_loss_0pct",
2416      "roles": [
2417        "daemon",
2418        "client",
2419        "udp_peer"
2420      ]
2421    },
2422    {
2423      "id": "1x4-active_output-udp_loss_0pct",
2424      "topology": "1x4",
2425      "workload": "active_output",
2426      "transport": "udp_loss_0pct",
2427      "roles": [
2428        "daemon",
2429        "client",
2430        "udp_peer"
2431      ]
2432    },
2433    {
2434      "id": "1x4-all_output-udp_loss_0pct",
2435      "topology": "1x4",
2436      "workload": "all_output",
2437      "transport": "udp_loss_0pct",
2438      "roles": [
2439        "daemon",
2440        "client",
2441        "udp_peer"
2442      ]
2443    },
2444    {
2445      "id": "1x4-inactive_output-udp_loss_0pct",
2446      "topology": "1x4",
2447      "workload": "inactive_output",
2448      "transport": "udp_loss_0pct",
2449      "roles": [
2450        "daemon",
2451        "client",
2452        "udp_peer"
2453      ]
2454    },
2455    {
2456      "id": "1x4-interactive_flood-udp_loss_0pct",
2457      "topology": "1x4",
2458      "workload": "interactive_flood",
2459      "transport": "udp_loss_0pct",
2460      "roles": [
2461        "daemon",
2462        "client",
2463        "udp_peer"
2464      ]
2465    },
2466    {
2467      "id": "1x4-copy_search-udp_loss_0pct",
2468      "topology": "1x4",
2469      "workload": "copy_search",
2470      "transport": "udp_loss_0pct",
2471      "roles": [
2472        "daemon",
2473        "client",
2474        "udp_peer"
2475      ]
2476    },
2477    {
2478      "id": "1x4-resize_sweep-udp_loss_0pct",
2479      "topology": "1x4",
2480      "workload": "resize_sweep",
2481      "transport": "udp_loss_0pct",
2482      "roles": [
2483        "daemon",
2484        "client",
2485        "udp_peer"
2486      ]
2487    },
2488    {
2489      "id": "1x4-snapshot_output_resize-udp_loss_0pct",
2490      "topology": "1x4",
2491      "workload": "snapshot_output_resize",
2492      "transport": "udp_loss_0pct",
2493      "roles": [
2494        "daemon",
2495        "client",
2496        "udp_peer"
2497      ]
2498    },
2499    {
2500      "id": "1x4-attach_restore_tab_switch-udp_loss_0pct",
2501      "topology": "1x4",
2502      "workload": "attach_restore_tab_switch",
2503      "transport": "udp_loss_0pct",
2504      "roles": [
2505        "daemon",
2506        "client",
2507        "udp_peer"
2508      ]
2509    },
2510    {
2511      "id": "4x1-idle-udp_loss_0pct",
2512      "topology": "4x1",
2513      "workload": "idle",
2514      "transport": "udp_loss_0pct",
2515      "roles": [
2516        "daemon",
2517        "client",
2518        "udp_peer"
2519      ]
2520    },
2521    {
2522      "id": "4x1-active_output-udp_loss_0pct",
2523      "topology": "4x1",
2524      "workload": "active_output",
2525      "transport": "udp_loss_0pct",
2526      "roles": [
2527        "daemon",
2528        "client",
2529        "udp_peer"
2530      ]
2531    },
2532    {
2533      "id": "4x1-all_output-udp_loss_0pct",
2534      "topology": "4x1",
2535      "workload": "all_output",
2536      "transport": "udp_loss_0pct",
2537      "roles": [
2538        "daemon",
2539        "client",
2540        "udp_peer"
2541      ]
2542    },
2543    {
2544      "id": "4x1-inactive_output-udp_loss_0pct",
2545      "topology": "4x1",
2546      "workload": "inactive_output",
2547      "transport": "udp_loss_0pct",
2548      "roles": [
2549        "daemon",
2550        "client",
2551        "udp_peer"
2552      ]
2553    },
2554    {
2555      "id": "4x1-interactive_flood-udp_loss_0pct",
2556      "topology": "4x1",
2557      "workload": "interactive_flood",
2558      "transport": "udp_loss_0pct",
2559      "roles": [
2560        "daemon",
2561        "client",
2562        "udp_peer"
2563      ]
2564    },
2565    {
2566      "id": "4x1-copy_search-udp_loss_0pct",
2567      "topology": "4x1",
2568      "workload": "copy_search",
2569      "transport": "udp_loss_0pct",
2570      "roles": [
2571        "daemon",
2572        "client",
2573        "udp_peer"
2574      ]
2575    },
2576    {
2577      "id": "4x1-resize_sweep-udp_loss_0pct",
2578      "topology": "4x1",
2579      "workload": "resize_sweep",
2580      "transport": "udp_loss_0pct",
2581      "roles": [
2582        "daemon",
2583        "client",
2584        "udp_peer"
2585      ]
2586    },
2587    {
2588      "id": "4x1-snapshot_output_resize-udp_loss_0pct",
2589      "topology": "4x1",
2590      "workload": "snapshot_output_resize",
2591      "transport": "udp_loss_0pct",
2592      "roles": [
2593        "daemon",
2594        "client",
2595        "udp_peer"
2596      ]
2597    },
2598    {
2599      "id": "4x1-attach_restore_tab_switch-udp_loss_0pct",
2600      "topology": "4x1",
2601      "workload": "attach_restore_tab_switch",
2602      "transport": "udp_loss_0pct",
2603      "roles": [
2604        "daemon",
2605        "client",
2606        "udp_peer"
2607      ]
2608    },
2609    {
2610      "id": "4x4-idle-udp_loss_0pct",
2611      "topology": "4x4",
2612      "workload": "idle",
2613      "transport": "udp_loss_0pct",
2614      "roles": [
2615        "daemon",
2616        "client",
2617        "udp_peer"
2618      ]
2619    },
2620    {
2621      "id": "4x4-active_output-udp_loss_0pct",
2622      "topology": "4x4",
2623      "workload": "active_output",
2624      "transport": "udp_loss_0pct",
2625      "roles": [
2626        "daemon",
2627        "client",
2628        "udp_peer"
2629      ]
2630    },
2631    {
2632      "id": "4x4-all_output-udp_loss_0pct",
2633      "topology": "4x4",
2634      "workload": "all_output",
2635      "transport": "udp_loss_0pct",
2636      "roles": [
2637        "daemon",
2638        "client",
2639        "udp_peer"
2640      ]
2641    },
2642    {
2643      "id": "4x4-inactive_output-udp_loss_0pct",
2644      "topology": "4x4",
2645      "workload": "inactive_output",
2646      "transport": "udp_loss_0pct",
2647      "roles": [
2648        "daemon",
2649        "client",
2650        "udp_peer"
2651      ]
2652    },
2653    {
2654      "id": "4x4-interactive_flood-udp_loss_0pct",
2655      "topology": "4x4",
2656      "workload": "interactive_flood",
2657      "transport": "udp_loss_0pct",
2658      "roles": [
2659        "daemon",
2660        "client",
2661        "udp_peer"
2662      ]
2663    },
2664    {
2665      "id": "4x4-copy_search-udp_loss_0pct",
2666      "topology": "4x4",
2667      "workload": "copy_search",
2668      "transport": "udp_loss_0pct",
2669      "roles": [
2670        "daemon",
2671        "client",
2672        "udp_peer"
2673      ]
2674    },
2675    {
2676      "id": "4x4-resize_sweep-udp_loss_0pct",
2677      "topology": "4x4",
2678      "workload": "resize_sweep",
2679      "transport": "udp_loss_0pct",
2680      "roles": [
2681        "daemon",
2682        "client",
2683        "udp_peer"
2684      ]
2685    },
2686    {
2687      "id": "4x4-snapshot_output_resize-udp_loss_0pct",
2688      "topology": "4x4",
2689      "workload": "snapshot_output_resize",
2690      "transport": "udp_loss_0pct",
2691      "roles": [
2692        "daemon",
2693        "client",
2694        "udp_peer"
2695      ]
2696    },
2697    {
2698      "id": "4x4-attach_restore_tab_switch-udp_loss_0pct",
2699      "topology": "4x4",
2700      "workload": "attach_restore_tab_switch",
2701      "transport": "udp_loss_0pct",
2702      "roles": [
2703        "daemon",
2704        "client",
2705        "udp_peer"
2706      ]
2707    },
2708    {
2709      "id": "8x1-idle-udp_loss_0pct",
2710      "topology": "8x1",
2711      "workload": "idle",
2712      "transport": "udp_loss_0pct",
2713      "roles": [
2714        "daemon",
2715        "client",
2716        "udp_peer"
2717      ]
2718    },
2719    {
2720      "id": "8x1-active_output-udp_loss_0pct",
2721      "topology": "8x1",
2722      "workload": "active_output",
2723      "transport": "udp_loss_0pct",
2724      "roles": [
2725        "daemon",
2726        "client",
2727        "udp_peer"
2728      ]
2729    },
2730    {
2731      "id": "8x1-all_output-udp_loss_0pct",
2732      "topology": "8x1",
2733      "workload": "all_output",
2734      "transport": "udp_loss_0pct",
2735      "roles": [
2736        "daemon",
2737        "client",
2738        "udp_peer"
2739      ]
2740    },
2741    {
2742      "id": "8x1-inactive_output-udp_loss_0pct",
2743      "topology": "8x1",
2744      "workload": "inactive_output",
2745      "transport": "udp_loss_0pct",
2746      "roles": [
2747        "daemon",
2748        "client",
2749        "udp_peer"
2750      ]
2751    },
2752    {
2753      "id": "8x1-interactive_flood-udp_loss_0pct",
2754      "topology": "8x1",
2755      "workload": "interactive_flood",
2756      "transport": "udp_loss_0pct",
2757      "roles": [
2758        "daemon",
2759        "client",
2760        "udp_peer"
2761      ]
2762    },
2763    {
2764      "id": "8x1-copy_search-udp_loss_0pct",
2765      "topology": "8x1",
2766      "workload": "copy_search",
2767      "transport": "udp_loss_0pct",
2768      "roles": [
2769        "daemon",
2770        "client",
2771        "udp_peer"
2772      ]
2773    },
2774    {
2775      "id": "8x1-resize_sweep-udp_loss_0pct",
2776      "topology": "8x1",
2777      "workload": "resize_sweep",
2778      "transport": "udp_loss_0pct",
2779      "roles": [
2780        "daemon",
2781        "client",
2782        "udp_peer"
2783      ]
2784    },
2785    {
2786      "id": "8x1-snapshot_output_resize-udp_loss_0pct",
2787      "topology": "8x1",
2788      "workload": "snapshot_output_resize",
2789      "transport": "udp_loss_0pct",
2790      "roles": [
2791        "daemon",
2792        "client",
2793        "udp_peer"
2794      ]
2795    },
2796    {
2797      "id": "8x1-attach_restore_tab_switch-udp_loss_0pct",
2798      "topology": "8x1",
2799      "workload": "attach_restore_tab_switch",
2800      "transport": "udp_loss_0pct",
2801      "roles": [
2802        "daemon",
2803        "client",
2804        "udp_peer"
2805      ]
2806    }
2807  ]
2808}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 13

↑↓ moveenter openesc close