graph "dual" {
	layout="neato";
	overlap="false";
	splines="true";
	esep="+30";
	sep="+30";

        node [shape=record, fontname="monospace"];
	edge [color="cornflowerblue", penwidth="2"];

	qn_template="infix-bios-x86_64";
	qn_image="infix-x86_64-disk-test.img"
	qn_oui="00:a0:85";
	qn_append="quiet";

        host [
	    label="host | { <d1a> d1a | <d1b> d1b | <d1c> d1c | <d2a> d2a | <d2b> d2b | <d2c> d2c }",
	    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!",
	    provides="infix watchdog",
	    expected_boot="primary",
	    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 }",
	    pos="10,12!",
	    provides="infix watchdog",
	    expected_boot="primary",
	    qn_console=9002,
	    qn_mem="384M",
	    qn_usb="dut2.usb"
	];

	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 [provides=mgmt, color="lightgray"]
	host:d2b -- dut2:e2 [provides="ieee-mc"]
	host:d2c -- dut2:e3 [provides="ieee-mc"]

	dut1:e4 -- dut2:e6 [color="black"]
	dut1:e5 -- dut2:e5 [color="red"]
	dut1:e6 -- dut2:e4 [color="black"]
}
