test: update virt topologies, add lag

This commit adds two SVGs for previewing the virtual test topologies.

quad: fix a lot of copy-paste mistakes, rename nodes and ports to their
      correct names.  Replace shell comments with C++ style comments,
      not all tools, e.g., dotty, support shell comments.  The neato
      absolute positioning has also been fixed to make it possible to
      see all the edges, to facilitate this the used ports have been
      swapped around a abit.  Colors are used according to the schema
      agreed on for tests.  Finally, a second link for lag tests have
      been added between dut2 and dut3.

dual: coloring similar to quad, update to new edge attribute matcher.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2025-02-12 23:21:08 +01:00
committed by Tobias Waldekranz
parent 773683bfd5
commit 9782ac9afa
5 changed files with 414 additions and 40 deletions
+3 -3
View File
@@ -43,19 +43,19 @@ graph "ring-4-duts" {
host:mgmt3 -- R3:mgmt [kind=mgmt, color="lightgray"]
host:mgmt4 -- R4:mgmt [kind=mgmt, color="lightgray"]
# host-Dut links
// host-Dut links
host:data1 -- R1:data [color="darkgreen"]
host:data2 -- R2:data [color="darkgreen"]
host:data3 -- R3:data [color="darkgreen"]
host:data4 -- R4:data [color="darkgreen"]
# Ring
// Ring
R1:ring1 -- R2:ring2 [color="blue",headlabel=".2", label="10.0.12.1/30", taillabel=".1", labeldistance=1, fontcolor="blue"]
R2:ring1 -- R3:ring2 [color="blue",headlabel=".2", label="10.0.23.0/30", taillabel=".1", labeldistance=1, fontcolor="blue"]
R3:ring1 -- R4:ring2 [color="blue",headlabel=".2", label="192.168.4.0/24", taillabel=".1", labeldistance=1 fontcolor="blue"]
R4:ring1 -- R1:ring2 [color="blue",headlabel=".2", label="10.0.41.0/30", taillabel=".1", labeldistance=1, fontcolor="blue"]
# Cross
// Cross
R1:cross -- R3:cross [color="black", label="10.0.13.0/30\n\n"]
R2:cross -- R4:cross [color="brown", label="\n\n10.0.24.0/30", fontcolor="brown"]
}
+17 -14
View File
@@ -2,7 +2,8 @@ graph "dual" {
layout="neato";
overlap="false";
splines="true";
esep="+20";
esep="+30";
sep="+30";
node [shape=record, fontname="monospace"];
edge [color="cornflowerblue", penwidth="2"];
@@ -14,14 +15,16 @@ graph "dual" {
host [
label="host | { <d1a> d1a | <d1b> d1b | <d1c> d1c | <d2a> d2a | <d2b> d2b | <d2c> d2c }",
color="grey",fontcolor="grey",pos="0,15!",
kind="controller",
color="grey",
fontcolor="grey",
pos="0,15!",
provides="controller",
];
dut1 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut1 | { <e4> e4 | <e5> e5 | <e6> e6 }",
pos="10,18!",
kind="infix",
provides="infix",
qn_console=9001,
qn_mem="384M",
qn_usb="dut1.usb"
@@ -29,21 +32,21 @@ graph "dual" {
dut2 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 }",
pos="10,12!",
kind="infix",
provides="infix",
qn_console=9002,
qn_mem="384M",
qn_usb="dut2.usb"
];
host:d1a -- dut1:e1 [kind=mgmt]
host:d1b -- dut1:e2
host:d1c -- dut1:e3
host:d1a -- dut1:e1 [provides=mgmt, color="lightgray"]
host:d1b -- dut1:e2 [provides="ieee-mc"]
host:d1c -- dut1:e3 [provides="ieee-mc"]
host:d2a -- dut2:e1 [kind=mgmt]
host:d2b -- dut2:e2
host:d2c -- dut2:e3
host:d2a -- dut2:e1 [provides=mgmt, color="lightgray"]
host:d2b -- dut2:e2 [provides="ieee-mc"]
host:d2c -- dut2:e3 [provides="ieee-mc"]
dut1:e4 -- dut2:e6
dut1:e5 -- dut2:e5
dut1:e6 -- dut2:e4
dut1:e4 -- dut2:e6 [color="black"]
dut1:e5 -- dut2:e5 [color="red"]
dut1:e6 -- dut2:e4 [color="black"]
}
+112
View File
@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: dual Pages: 1 -->
<svg width="365pt" height="208pt"
viewBox="0.00 0.00 365.08 208.01" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 204.01)">
<title>dual</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-204.01 361.08,-204.01 361.08,4 -4,4"/>
<!-- host -->
<g id="node1" class="node">
<title>host</title>
<polygon fill="none" stroke="grey" points="0,-31.01 0,-169.01 91,-169.01 91,-31.01 0,-31.01"/>
<text text-anchor="middle" x="25" y="-96.31" font-family="monospace" font-size="14.00" fill="grey">host</text>
<polyline fill="none" stroke="grey" points="50,-31.01 50,-169.01 "/>
<text text-anchor="middle" x="70.5" y="-153.81" font-family="monospace" font-size="14.00" fill="grey">d1a</text>
<polyline fill="none" stroke="grey" points="50,-146.01 91,-146.01 "/>
<text text-anchor="middle" x="70.5" y="-130.81" font-family="monospace" font-size="14.00" fill="grey">d1b</text>
<polyline fill="none" stroke="grey" points="50,-123.01 91,-123.01 "/>
<text text-anchor="middle" x="70.5" y="-107.81" font-family="monospace" font-size="14.00" fill="grey">d1c</text>
<polyline fill="none" stroke="grey" points="50,-100.01 91,-100.01 "/>
<text text-anchor="middle" x="70.5" y="-84.81" font-family="monospace" font-size="14.00" fill="grey">d2a</text>
<polyline fill="none" stroke="grey" points="50,-77.01 91,-77.01 "/>
<text text-anchor="middle" x="70.5" y="-61.81" font-family="monospace" font-size="14.00" fill="grey">d2b</text>
<polyline fill="none" stroke="grey" points="50,-54.01 91,-54.01 "/>
<text text-anchor="middle" x="70.5" y="-38.81" font-family="monospace" font-size="14.00" fill="grey">d2c</text>
</g>
<!-- dut1 -->
<g id="node2" class="node">
<title>dut1</title>
<polygon fill="none" stroke="black" points="204.19,-130.51 204.19,-199.51 320.19,-199.51 320.19,-130.51 204.19,-130.51"/>
<text text-anchor="middle" x="220.69" y="-184.31" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="204.19,-176.51 237.19,-176.51 "/>
<text text-anchor="middle" x="220.69" y="-161.31" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="204.19,-153.51 237.19,-153.51 "/>
<text text-anchor="middle" x="220.69" y="-138.31" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="237.19,-130.51 237.19,-199.51 "/>
<text text-anchor="middle" x="262.19" y="-161.31" font-family="monospace" font-size="14.00">dut1</text>
<polyline fill="none" stroke="black" points="287.19,-130.51 287.19,-199.51 "/>
<text text-anchor="middle" x="303.69" y="-184.31" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="287.19,-176.51 320.19,-176.51 "/>
<text text-anchor="middle" x="303.69" y="-161.31" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="287.19,-153.51 320.19,-153.51 "/>
<text text-anchor="middle" x="303.69" y="-138.31" font-family="monospace" font-size="14.00">e6</text>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge1" class="edge">
<title>host:d1a&#45;&#45;dut1:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-158.01C91.5,-158.01 204.19,-188.01 204.19,-188.01"/>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge2" class="edge">
<title>host:d1b&#45;&#45;dut1:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-135.01C91.5,-135.01 204.19,-165.01 204.19,-165.01"/>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge3" class="edge">
<title>host:d1c&#45;&#45;dut1:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-112.01C91.5,-112.01 204.19,-142.01 204.19,-142.01"/>
</g>
<!-- dut2 -->
<g id="node3" class="node">
<title>dut2</title>
<polygon fill="none" stroke="black" points="204.19,-0.5 204.19,-69.5 320.19,-69.5 320.19,-0.5 204.19,-0.5"/>
<text text-anchor="middle" x="220.69" y="-54.3" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="204.19,-46.5 237.19,-46.5 "/>
<text text-anchor="middle" x="220.69" y="-31.3" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="204.19,-23.5 237.19,-23.5 "/>
<text text-anchor="middle" x="220.69" y="-8.3" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="237.19,-0.5 237.19,-69.5 "/>
<text text-anchor="middle" x="262.19" y="-31.3" font-family="monospace" font-size="14.00">dut2</text>
<polyline fill="none" stroke="black" points="287.19,-0.5 287.19,-69.5 "/>
<text text-anchor="middle" x="303.69" y="-54.3" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="287.19,-46.5 320.19,-46.5 "/>
<text text-anchor="middle" x="303.69" y="-31.3" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="287.19,-23.5 320.19,-23.5 "/>
<text text-anchor="middle" x="303.69" y="-8.3" font-family="monospace" font-size="14.00">e6</text>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge4" class="edge">
<title>host:d2a&#45;&#45;dut2:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-88.01C91.5,-88.01 204.19,-58 204.19,-58"/>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge5" class="edge">
<title>host:d2b&#45;&#45;dut2:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-65.01C91.5,-65.01 204.19,-35 204.19,-35"/>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge6" class="edge">
<title>host:d2c&#45;&#45;dut2:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-42.01C91.5,-42.01 204.19,-12 204.19,-12"/>
</g>
<!-- dut1&#45;&#45;dut2 -->
<g id="edge7" class="edge">
<title>dut1:e4&#45;&#45;dut2:e6</title>
<path fill="none" stroke="black" stroke-width="2" d="M320.27,-187.95C320.27,-187.95 357,-140.44 350.19,-99.5 343.45,-58.98 320.27,-12.06 320.27,-12.06"/>
</g>
<!-- dut1&#45;&#45;dut2 -->
<g id="edge8" class="edge">
<title>dut1:e5&#45;&#45;dut2:e5</title>
<path fill="none" stroke="red" stroke-width="2" d="M320.29,-165.01C320.29,-165.01 343.38,-131.37 350.19,-100.51 357.08,-69.26 320.29,-35 320.29,-35"/>
</g>
<!-- dut1&#45;&#45;dut2 -->
<g id="edge9" class="edge">
<title>dut1:e6&#45;&#45;dut2:e4</title>
<path fill="none" stroke="black" stroke-width="2" d="M304.19,-130.01C304.19,-130.01 304.19,-70 304.19,-70"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

+28 -23
View File
@@ -2,7 +2,8 @@ graph "quad" {
layout="neato";
overlap="false";
splines="true";
esep="+20";
esep="+30";
sep="+30";
node [shape=record, fontname="monospace"];
edge [color="cornflowerblue", penwidth="2"];
@@ -13,30 +14,31 @@ graph "quad" {
qn_append="quiet";
host [
label="host | { <d1a> d1a | <d1b> d1b | <d1c> d1c | <d1c> d1d | <d2a> d2a | <d2b> d2b | <d2c> d2c | <d2d> d2d | <d2a> d3a | <d3b> d3b | <d3c> d3c | <d3c> d3d | <d4a> d4a | <d4b> d4b | <d4c> d4c | <d4c> d4d }",
color="grey",fontcolor="grey",pos="0,15!",
label="host | { <d1a> d1a | <d1b> d1b | <d1c> d1c | <d1d> d1d | <d2a> d2a | <d2b> d2b | <d2c> d2c | <d2d> d2d | <d3a> d3a | <d3b> d3b | <d3c> d3c | <d3d> d3d | <d4a> d4a | <d4b> d4b | <d4c> d4c | <d4d> d4d }",
color="grey", fontcolor="grey",
pos="-15,15!",
provides="controller",
];
dut1 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut1 | { <e4> e4 | <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,18!",
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut1 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,30!",
provides="infix",
qn_console=9001,
qn_mem="384M",
qn_usb="dut1.usb"
];
dut2 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,12!",
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut2 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="0,20!",
provides="infix",
qn_console=9002,
qn_mem="384M",
qn_usb="dut2.usb"
];
dut3 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,12!",
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut3 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="0,10!",
provides="infix",
qn_console=9003,
qn_mem="384M",
@@ -44,41 +46,44 @@ graph "quad" {
];
dut4 [
label="{ <e1> e1 | <e2> e2 | <e3> e3 } | dut2 | { <e4> e4 | <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,12!",
label="{ <e1> e1 | <e2> e2 | <e3> e3 | <e4> e4 } | dut4 | { <e5> e5 | <e6> e6 | <e7> e7 | <e8> e8}",
pos="10,0!",
provides="infix",
qn_console=9004,
qn_mem="384M",
qn_usb="dut4.usb"
];
host:d1a -- dut1:e1 [provides="mgmt"]
host:d1a -- dut1:e1 [provides="mgmt", color="lightgray"]
host:d1b -- dut1:e2 [provides="ieee-mc"]
host:d1c -- dut1:e3 [provides="ieee-mc"]
host:d1d -- dut1:e4 [provides="ieee-mc"]
host:d2a -- dut2:e1 [provides="mgmt"]
host:d2a -- dut2:e1 [provides="mgmt", color="lightgray"]
host:d2b -- dut2:e2 [provides="ieee-mc"]
host:d2c -- dut2:e3 [provides="ieee-mc"]
host:d2d -- dut2:e4 [provides="ieee-mc"]
host:d3a -- dut3:e1 [provides="mgmt"]
host:d3a -- dut3:e1 [provides="mgmt", color="lightgray"]
host:d3b -- dut3:e2 [provides="ieee-mc"]
host:d3c -- dut3:e3 [provides="ieee-mc"]
host:d3d -- dut3:e4 [provides="ieee-mc"]
host:d4a -- dut4:e1 [provides="mgmt"]
host:d4a -- dut4:e1 [provides="mgmt", color="lightgray"]
host:d4b -- dut4:e2 [provides="ieee-mc"]
host:d4c -- dut4:e3 [provides="ieee-mc"]
host:d4d -- dut4:e4 [provides="ieee-mc"]
# Ring
dut1:e5 -- dut2:e6
dut2:e5 -- dut3:e6
dut3:e5 -- dut4:e6
dut4:e5 -- dut1:e6
// Lag
dut2:e7 -- dut3:e6 [color="black", penwidth="3"]
dut2:e8 -- dut3:e5 [color="black", penwidth="3"]
# Cross-links
dut3:e7 -- dut1:e7
dut2:e7 -- dut4:e7
// Ring
dut1:e8 -- dut2:e5 [color="black"]
dut3:e8 -- dut4:e5 [color="black"]
dut4:e8 -- dut1:e5 [color="black"]
// Cross-links
dut1:e6 -- dut3:e7 [color="red"]
dut2:e6 -- dut4:e7 [color="red"]
}
+254
View File
@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: quad Pages: 1 -->
<svg width="542pt" height="560pt"
viewBox="0.00 0.00 541.97 560.05" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 556.05)">
<title>quad</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-556.05 537.97,-556.05 537.97,4 -4,4"/>
<!-- host -->
<g id="node1" class="node">
<title>host</title>
<polygon fill="none" stroke="grey" points="0,-92.02 0,-460.02 91,-460.02 91,-92.02 0,-92.02"/>
<text text-anchor="middle" x="25" y="-272.32" font-family="monospace" font-size="14.00" fill="grey">host</text>
<polyline fill="none" stroke="grey" points="50,-92.02 50,-460.02 "/>
<text text-anchor="middle" x="70.5" y="-444.82" font-family="monospace" font-size="14.00" fill="grey">d1a</text>
<polyline fill="none" stroke="grey" points="50,-437.02 91,-437.02 "/>
<text text-anchor="middle" x="70.5" y="-421.82" font-family="monospace" font-size="14.00" fill="grey">d1b</text>
<polyline fill="none" stroke="grey" points="50,-414.02 91,-414.02 "/>
<text text-anchor="middle" x="70.5" y="-398.82" font-family="monospace" font-size="14.00" fill="grey">d1c</text>
<polyline fill="none" stroke="grey" points="50,-391.02 91,-391.02 "/>
<text text-anchor="middle" x="70.5" y="-375.82" font-family="monospace" font-size="14.00" fill="grey">d1d</text>
<polyline fill="none" stroke="grey" points="50,-368.02 91,-368.02 "/>
<text text-anchor="middle" x="70.5" y="-352.82" font-family="monospace" font-size="14.00" fill="grey">d2a</text>
<polyline fill="none" stroke="grey" points="50,-345.02 91,-345.02 "/>
<text text-anchor="middle" x="70.5" y="-329.82" font-family="monospace" font-size="14.00" fill="grey">d2b</text>
<polyline fill="none" stroke="grey" points="50,-322.02 91,-322.02 "/>
<text text-anchor="middle" x="70.5" y="-306.82" font-family="monospace" font-size="14.00" fill="grey">d2c</text>
<polyline fill="none" stroke="grey" points="50,-299.02 91,-299.02 "/>
<text text-anchor="middle" x="70.5" y="-283.82" font-family="monospace" font-size="14.00" fill="grey">d2d</text>
<polyline fill="none" stroke="grey" points="50,-276.02 91,-276.02 "/>
<text text-anchor="middle" x="70.5" y="-260.82" font-family="monospace" font-size="14.00" fill="grey">d3a</text>
<polyline fill="none" stroke="grey" points="50,-253.02 91,-253.02 "/>
<text text-anchor="middle" x="70.5" y="-237.82" font-family="monospace" font-size="14.00" fill="grey">d3b</text>
<polyline fill="none" stroke="grey" points="50,-230.02 91,-230.02 "/>
<text text-anchor="middle" x="70.5" y="-214.82" font-family="monospace" font-size="14.00" fill="grey">d3c</text>
<polyline fill="none" stroke="grey" points="50,-207.02 91,-207.02 "/>
<text text-anchor="middle" x="70.5" y="-191.82" font-family="monospace" font-size="14.00" fill="grey">d3d</text>
<polyline fill="none" stroke="grey" points="50,-184.02 91,-184.02 "/>
<text text-anchor="middle" x="70.5" y="-168.82" font-family="monospace" font-size="14.00" fill="grey">d4a</text>
<polyline fill="none" stroke="grey" points="50,-161.02 91,-161.02 "/>
<text text-anchor="middle" x="70.5" y="-145.82" font-family="monospace" font-size="14.00" fill="grey">d4b</text>
<polyline fill="none" stroke="grey" points="50,-138.02 91,-138.02 "/>
<text text-anchor="middle" x="70.5" y="-122.82" font-family="monospace" font-size="14.00" fill="grey">d4c</text>
<polyline fill="none" stroke="grey" points="50,-115.02 91,-115.02 "/>
<text text-anchor="middle" x="70.5" y="-99.82" font-family="monospace" font-size="14.00" fill="grey">d4d</text>
</g>
<!-- dut1 -->
<g id="node2" class="node">
<title>dut1</title>
<polygon fill="none" stroke="black" points="370.04,-459.55 370.04,-551.55 486.04,-551.55 486.04,-459.55 370.04,-459.55"/>
<text text-anchor="middle" x="386.54" y="-536.35" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="370.04,-528.55 403.04,-528.55 "/>
<text text-anchor="middle" x="386.54" y="-513.35" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="370.04,-505.55 403.04,-505.55 "/>
<text text-anchor="middle" x="386.54" y="-490.35" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="370.04,-482.55 403.04,-482.55 "/>
<text text-anchor="middle" x="386.54" y="-467.35" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="403.04,-459.55 403.04,-551.55 "/>
<text text-anchor="middle" x="428.04" y="-501.85" font-family="monospace" font-size="14.00">dut1</text>
<polyline fill="none" stroke="black" points="453.04,-459.55 453.04,-551.55 "/>
<text text-anchor="middle" x="469.54" y="-536.35" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="453.04,-528.55 486.04,-528.55 "/>
<text text-anchor="middle" x="469.54" y="-513.35" font-family="monospace" font-size="14.00">e6</text>
<polyline fill="none" stroke="black" points="453.04,-505.55 486.04,-505.55 "/>
<text text-anchor="middle" x="469.54" y="-490.35" font-family="monospace" font-size="14.00">e7</text>
<polyline fill="none" stroke="black" points="453.04,-482.55 486.04,-482.55 "/>
<text text-anchor="middle" x="469.54" y="-467.35" font-family="monospace" font-size="14.00">e8</text>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge1" class="edge">
<title>host:d1a&#45;&#45;dut1:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-449.02C91.5,-449.02 370.04,-540.55 370.04,-540.55"/>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge2" class="edge">
<title>host:d1b&#45;&#45;dut1:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-426.02C91.5,-426.02 370.04,-517.55 370.04,-517.55"/>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge3" class="edge">
<title>host:d1c&#45;&#45;dut1:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-403.02C91.5,-403.02 370.04,-493.55 370.04,-493.55"/>
</g>
<!-- host&#45;&#45;dut1 -->
<g id="edge4" class="edge">
<title>host:d1d&#45;&#45;dut1:e4</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-380.02C91.5,-380.02 142.26,-412.3 187.02,-428.53 265.48,-456.97 370.04,-470.55 370.04,-470.55"/>
</g>
<!-- dut2 -->
<g id="node3" class="node">
<title>dut2</title>
<polygon fill="none" stroke="black" points="217.02,-306.53 217.02,-398.53 333.02,-398.53 333.02,-306.53 217.02,-306.53"/>
<text text-anchor="middle" x="233.52" y="-383.33" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="217.02,-375.53 250.02,-375.53 "/>
<text text-anchor="middle" x="233.52" y="-360.33" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="217.02,-352.53 250.02,-352.53 "/>
<text text-anchor="middle" x="233.52" y="-337.33" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="217.02,-329.53 250.02,-329.53 "/>
<text text-anchor="middle" x="233.52" y="-314.33" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="250.02,-306.53 250.02,-398.53 "/>
<text text-anchor="middle" x="275.02" y="-348.83" font-family="monospace" font-size="14.00">dut2</text>
<polyline fill="none" stroke="black" points="300.02,-306.53 300.02,-398.53 "/>
<text text-anchor="middle" x="316.52" y="-383.33" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="300.02,-375.53 333.02,-375.53 "/>
<text text-anchor="middle" x="316.52" y="-360.33" font-family="monospace" font-size="14.00">e6</text>
<polyline fill="none" stroke="black" points="300.02,-352.53 333.02,-352.53 "/>
<text text-anchor="middle" x="316.52" y="-337.33" font-family="monospace" font-size="14.00">e7</text>
<polyline fill="none" stroke="black" points="300.02,-329.53 333.02,-329.53 "/>
<text text-anchor="middle" x="316.52" y="-314.33" font-family="monospace" font-size="14.00">e8</text>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge5" class="edge">
<title>host:d2a&#45;&#45;dut2:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-357.02C91.5,-357.02 217.02,-387.53 217.02,-387.53"/>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge6" class="edge">
<title>host:d2b&#45;&#45;dut2:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-334.02C91.5,-334.02 217.02,-364.53 217.02,-364.53"/>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge7" class="edge">
<title>host:d2c&#45;&#45;dut2:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-311.02C91.5,-311.02 217.02,-340.53 217.02,-340.53"/>
</g>
<!-- host&#45;&#45;dut2 -->
<g id="edge8" class="edge">
<title>host:d2d&#45;&#45;dut2:e4</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-288.02C91.5,-288.02 217.02,-317.53 217.02,-317.53"/>
</g>
<!-- dut3 -->
<g id="node4" class="node">
<title>dut3</title>
<polygon fill="none" stroke="black" points="217.02,-153.52 217.02,-245.52 333.02,-245.52 333.02,-153.52 217.02,-153.52"/>
<text text-anchor="middle" x="233.52" y="-230.32" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="217.02,-222.52 250.02,-222.52 "/>
<text text-anchor="middle" x="233.52" y="-207.32" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="217.02,-199.52 250.02,-199.52 "/>
<text text-anchor="middle" x="233.52" y="-184.32" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="217.02,-176.52 250.02,-176.52 "/>
<text text-anchor="middle" x="233.52" y="-161.32" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="250.02,-153.52 250.02,-245.52 "/>
<text text-anchor="middle" x="275.02" y="-195.82" font-family="monospace" font-size="14.00">dut3</text>
<polyline fill="none" stroke="black" points="300.02,-153.52 300.02,-245.52 "/>
<text text-anchor="middle" x="316.52" y="-230.32" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="300.02,-222.52 333.02,-222.52 "/>
<text text-anchor="middle" x="316.52" y="-207.32" font-family="monospace" font-size="14.00">e6</text>
<polyline fill="none" stroke="black" points="300.02,-199.52 333.02,-199.52 "/>
<text text-anchor="middle" x="316.52" y="-184.32" font-family="monospace" font-size="14.00">e7</text>
<polyline fill="none" stroke="black" points="300.02,-176.52 333.02,-176.52 "/>
<text text-anchor="middle" x="316.52" y="-161.32" font-family="monospace" font-size="14.00">e8</text>
</g>
<!-- host&#45;&#45;dut3 -->
<g id="edge9" class="edge">
<title>host:d3a&#45;&#45;dut3:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-264.02C91.5,-264.02 217.02,-234.52 217.02,-234.52"/>
</g>
<!-- host&#45;&#45;dut3 -->
<g id="edge10" class="edge">
<title>host:d3b&#45;&#45;dut3:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-241.02C91.5,-241.02 217.02,-211.52 217.02,-211.52"/>
</g>
<!-- host&#45;&#45;dut3 -->
<g id="edge11" class="edge">
<title>host:d3c&#45;&#45;dut3:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-218.02C91.5,-218.02 217.02,-187.52 217.02,-187.52"/>
</g>
<!-- host&#45;&#45;dut3 -->
<g id="edge12" class="edge">
<title>host:d3d&#45;&#45;dut3:e4</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-195.02C91.5,-195.02 217.02,-164.52 217.02,-164.52"/>
</g>
<!-- dut4 -->
<g id="node5" class="node">
<title>dut4</title>
<polygon fill="none" stroke="black" points="370.04,-0.5 370.04,-92.5 486.04,-92.5 486.04,-0.5 370.04,-0.5"/>
<text text-anchor="middle" x="386.54" y="-77.3" font-family="monospace" font-size="14.00">e1</text>
<polyline fill="none" stroke="black" points="370.04,-69.5 403.04,-69.5 "/>
<text text-anchor="middle" x="386.54" y="-54.3" font-family="monospace" font-size="14.00">e2</text>
<polyline fill="none" stroke="black" points="370.04,-46.5 403.04,-46.5 "/>
<text text-anchor="middle" x="386.54" y="-31.3" font-family="monospace" font-size="14.00">e3</text>
<polyline fill="none" stroke="black" points="370.04,-23.5 403.04,-23.5 "/>
<text text-anchor="middle" x="386.54" y="-8.3" font-family="monospace" font-size="14.00">e4</text>
<polyline fill="none" stroke="black" points="403.04,-0.5 403.04,-92.5 "/>
<text text-anchor="middle" x="428.04" y="-42.8" font-family="monospace" font-size="14.00">dut4</text>
<polyline fill="none" stroke="black" points="453.04,-0.5 453.04,-92.5 "/>
<text text-anchor="middle" x="469.54" y="-77.3" font-family="monospace" font-size="14.00">e5</text>
<polyline fill="none" stroke="black" points="453.04,-69.5 486.04,-69.5 "/>
<text text-anchor="middle" x="469.54" y="-54.3" font-family="monospace" font-size="14.00">e6</text>
<polyline fill="none" stroke="black" points="453.04,-46.5 486.04,-46.5 "/>
<text text-anchor="middle" x="469.54" y="-31.3" font-family="monospace" font-size="14.00">e7</text>
<polyline fill="none" stroke="black" points="453.04,-23.5 486.04,-23.5 "/>
<text text-anchor="middle" x="469.54" y="-8.3" font-family="monospace" font-size="14.00">e8</text>
</g>
<!-- host&#45;&#45;dut4 -->
<g id="edge13" class="edge">
<title>host:d4a&#45;&#45;dut4:e1</title>
<path fill="none" stroke="lightgray" stroke-width="2" d="M91.5,-172.02C91.5,-172.02 142.26,-139.74 187.02,-123.52 265.48,-95.07 370.04,-81.5 370.04,-81.5"/>
</g>
<!-- host&#45;&#45;dut4 -->
<g id="edge14" class="edge">
<title>host:d4b&#45;&#45;dut4:e2</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-149.02C91.5,-149.02 370.04,-58.5 370.04,-58.5"/>
</g>
<!-- host&#45;&#45;dut4 -->
<g id="edge15" class="edge">
<title>host:d4c&#45;&#45;dut4:e3</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-126.02C91.5,-126.02 370.04,-34.5 370.04,-34.5"/>
</g>
<!-- host&#45;&#45;dut4 -->
<g id="edge16" class="edge">
<title>host:d4d&#45;&#45;dut4:e4</title>
<path fill="none" stroke="cornflowerblue" stroke-width="2" d="M91.5,-103.02C91.5,-103.02 370.04,-11.5 370.04,-11.5"/>
</g>
<!-- dut1&#45;&#45;dut2 -->
<g id="edge19" class="edge">
<title>dut1:e8&#45;&#45;dut2:e5</title>
<path fill="none" stroke="black" stroke-width="2" d="M470.04,-459.55C470.04,-459.55 333.02,-387.53 333.02,-387.53"/>
</g>
<!-- dut1&#45;&#45;dut3 -->
<g id="edge22" class="edge">
<title>dut1:e6&#45;&#45;dut3:e7</title>
<path fill="none" stroke="red" stroke-width="2" d="M486.13,-517.51C486.13,-517.51 522.61,-470.31 516.04,-429.55 494.57,-296.4 333.02,-187.52 333.02,-187.52"/>
</g>
<!-- dut2&#45;&#45;dut3 -->
<g id="edge17" class="edge">
<title>dut2:e7&#45;&#45;dut3:e6</title>
<path fill="none" stroke="black" stroke-width="3" d="M333.12,-340.57C333.12,-340.57 369.92,-306.58 363.02,-275.52 356.22,-244.85 333.12,-211.48 333.12,-211.48"/>
</g>
<!-- dut2&#45;&#45;dut3 -->
<g id="edge18" class="edge">
<title>dut2:e8&#45;&#45;dut3:e5</title>
<path fill="none" stroke="black" stroke-width="3" d="M317.02,-306.53C317.02,-306.53 317.02,-245.52 317.02,-245.52"/>
</g>
<!-- dut2&#45;&#45;dut4 -->
<g id="edge23" class="edge">
<title>dut2:e6&#45;&#45;dut4:e7</title>
<path fill="none" stroke="red" stroke-width="2" d="M333.02,-364.53C333.02,-364.53 494.57,-255.64 516.04,-122.5 522.61,-81.73 486.13,-34.54 486.13,-34.54"/>
</g>
<!-- dut3&#45;&#45;dut4 -->
<g id="edge20" class="edge">
<title>dut3:e8&#45;&#45;dut4:e5</title>
<path fill="none" stroke="black" stroke-width="2" d="M333.02,-164.52C333.02,-164.52 470.04,-92.5 470.04,-92.5"/>
</g>
<!-- dut4&#45;&#45;dut1 -->
<g id="edge21" class="edge">
<title>dut4:e8&#45;&#45;dut1:e5</title>
<path fill="none" stroke="black" stroke-width="2" d="M486.1,-11.58C486.1,-11.58 509.33,-71.88 516.04,-122.5 533.97,-257.78 533.97,-294.26 516.04,-429.55 509.33,-480.17 486.1,-540.47 486.1,-540.47"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB