graph "ring-4-duts" {
	layout="neato";
	overlap=false;
	esep="+20";
	splines=true;
	size=10;

	node [shape=record, fontname="DejaVu Sans Mono, Book"];
	edge [color="cornflowerblue", penwidth="2", fontname="DejaVu Serif, Book"];

	host [
		label=" { host | { <mgmt4> mgmt4 | <data4> data4 | <mgmt1> mgmt1 | <data1> data1 | <data2> data2 | <mgmt2> mgmt2 | <data3> data3 | <mgmt3> mgmt3 } }",
		pos="150,200!"
		requires="controller",
	];

	R1 [
		label="{ { <mgmt> mgmt | <data> data } | \n R1 \n 10.0.0.1/32 \n(lo) } | { <ring1> ring1 | <cross> cross | <ring2> ring2 }",
		pos="50,150!",
		requires="infix",
	];

	R4 [
		label="{ { <mgmt> mgmt | <data> data } | \n R4 \n 10.0.0.4/32 \n(lo) } | { <ring1> ring1 | <cross> cross | <ring2> ring2 }",
		pos="50,50!"
		requires="infix",
	];

        R2 [
		label="{ <ring2> ring2 | <cross> cross | <ring1> ring1 } | { { <data> data | <mgmt> mgmt } | \n R2 \n10.0.0.2/32 \n(lo) }",
		pos="250,150!"
		requires="infix",
	];

        R3 [
		label="{ <ring2> ring2 | <cross> cross | <ring1> ring1 } | { { <data> data | <mgmt> mgmt } | \n R3 \n10.0.0.3/32 \n(lo) }",
		pos="250,50!"
		requires="infix",
	];

	host:mgmt1 -- R1:mgmt [requires="mgmt", color="lightgray"]
	host:mgmt2 -- R2:mgmt [requires="mgmt", color="lightgray"]
	host:mgmt3 -- R3:mgmt [requires="mgmt", color="lightgray"]
	host:mgmt4 -- R4:mgmt [requires="mgmt", color="lightgray"]

	// 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
	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
	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"]
}
