digraph T {
    /* Make sure our payloads are always drawn below the driver node */
    subgraph cluster_driver {
        fillcolor = grey;
        style = filled;
        edge [dir=none];
        driver -> payload1;
        driver -> payload2 [penwidth=3];
        edge [dir=""];
    }

    /* Driver malloc references */
    edge [style=dashed];
    driver -> port1;
    driver -> port2;
    driver -> port3:e;
    driver -> port4 [color=grey];
    payload1:s -> port1:e;
    payload2:s -> port3:e [penwidth=3];
    edge [style=""];

    subgraph cluster_topology {
        label="Topology Manager";
        labelloc=bottom;

        /* Topology references */
        mstb1 -> {port1, port2};
        port1 -> mstb2;
        edge [color=grey];
        port2 -> mstb3 -> {port3, port4};
        port3 -> mstb4;
        edge [color=""];

        /* Malloc references */
        edge [style=dashed;dir=back];
        mstb1 -> {port1, port2};
        port1 -> mstb2;
        port2 -> mstb3 [penwidth=3];
        mstb3 -> port3 [penwidth=3];
        edge [color=grey];
        mstb3 -> port4;
        port3 -> mstb4;
    }

    mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
    mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
    mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
    mstb4 [label="MSTB #4";style=filled;fillcolor=grey];

    port1 [label="Port #1"];
    port2 [label="Port #2";penwidth=5];
    port3 [label="Port #3";penwidth=3];
    port4 [label="Port #4";style=filled;fillcolor=grey];

    driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];

    payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
    payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
}
