graph "stp" { layout="neato"; overlap="false"; esep="+80"; node [shape=record, fontname="DejaVu Sans Mono, Book"]; edge [penwidth="2", fontname="DejaVu Serif, Book"]; host [ label="{ { mgmtd | d | mgmta | a | b | mgmtb | c | mgmtc } | host }", color="grey",fontcolor="grey",pos="9,0!", requires="controller", ]; A [ label="{ A | { mgmt | h } } | { b | c | d }", pos="6,6!", requires="infix", ]; B [ label="{ a | d | c } | { B | { h | mgmt } }", pos="12,6!", requires="infix", ]; C [ label="{ b | a | d } | { C | { h | mgmt } }", pos="12,3!", requires="infix", ]; D [ label="{ D | { mgmt | h } } | { a | b | c }", pos="6,3!", requires="infix", ]; host:mgmta -- A:mgmt [requires="mgmt", color="lightgrey"] host:mgmtb -- B:mgmt [requires="mgmt", color="lightgrey"] host:mgmtc -- C:mgmt [requires="mgmt", color="lightgrey"] host:mgmtd -- D:mgmt [requires="mgmt", color="lightgrey"] host:a -- A:h [color="cornflowerblue"] host:b -- B:h [color="cornflowerblue"] host:c -- C:h [color="cornflowerblue"] host:d -- D:h [color="cornflowerblue"] # Ring A:b -- B:a B:c -- C:b C:d -- D:c D:a -- A:d # Cross-links A:c -- C:a B:d -- D:b }