1digraph { 2 node [shape="box"]; 3 subgraph { 4 node [shape=plaintext]; 5 6 ncsid [label=< 7 <table> 8 <tr> 9 <td bgcolor="lightblue" colspan="2" port="config">net::ConfigBase</td> 10 <td port="sockio" bgcolor="lightblue">net::SockIO</td> 11 </tr> 12 <tr><td bgcolor="lightblue" colspan="3">ncsi::StateMachine</td></tr> 13 <tr> 14 <td bgcolor="black"><font color="white">L2 FSM</font></td> 15 <td bgcolor="black"><font color="white">L3/4 FSM</font></td> 16 <td bgcolor="black"><font color="white">Test FSM</font></td> 17 </tr> 18 </table> 19 >]; 20 } 21 22 subgraph notes { 23 node [shape="note" style="filled"]; 24 core [label="NC-SId Core" fillcolor="lightblue"]; 25 hardware [label="Hardware" fillcolor="limegreen"]; 26 external [label="External Components" color="magenta" fillcolor="white"]; 27 ec [label="EC" fillcolor="black" fontcolor="white"]; 28 } -> NIC [style="invis"]; 29 30 subgraph external { 31 node [color="magenta"]; 32 p_networkd [label="phosphord-networkd"]; 33 systemd; 34 d_bus [shape="doublecircle" label="DBus"]; 35 } 36 37 subgraph core_comps { 38 node [fillcolor="lightblue" style="filled"]; 39 p_config [label="net::PhosphorConfig"]; 40 ncsi_sockio [label="ncsi::SockIO"]; 41 net_ifacebase [label="net::IFaceBase"]; 42 net_iface [label="net::IFace"]; 43 44 net_iface -> net_ifacebase [arrowhead="diamond"]; 45 ncsi_sockio -> net_iface [label="bind"]; 46 ncsid; 47 } 48 49 NIC [shape="tab" fillcolor="limegreen" style="filled"]; 50 51 ncsi_sockio -> ncsid:sockio [arrowhead="diamond"]; 52 NIC -> ncsi_sockio [dir="both" label="NC-SI Cable" color="limegreen"]; 53 54 p_config -> ncsid:config [arrowhead="diamond"]; 55 p_config -> p_networkd [style="dashed"]; 56 p_config -> d_bus; 57 p_networkd -> d_bus [dir="both"]; 58 d_bus -> systemd; 59 p_networkd -> systemd [style="dashed"]; 60} 61