Conversation
|
@ipspace Tested it. the graph topology looks cleaner, but now we are missing IP prefixes under node names, and device type in r1[device] . Maybe sometimes in the future we could use dashed lines -- or a similar stye for tunnel links to make them apart ? Up to you, ofc. |
Thank you, will fix.
Sure. I just have to apply the BGP session type logic to link types. |
21fa5d0 to
cc8b8f5
Compare
Implementing ideas from #2535, add code that creates generic graph data structure for topology and BGP graphs, and use that data structure to generate D2 graphs with generic primitives (d2_cluster, d2_node, and d2_edge)
|
This should be equivalent to the old functionality, but refactored to use the shared "create graph" functions. Once this is merged, I'll redo the GraphViz graphs, and then start adding new functionality (like the tunnel links) |
DanPartelly
left a comment
There was a problem hiding this comment.
This looks very nice, and it's getting to a stage where you can drop it in a lab as topology illustration and be done with it.
An observation: if you add a stub LAN to one of the devices in AS 6500, it will be rendered outside the AS. Maybe we should find another way to represent router stubs which have no device attached. See png below.
Ideas for further improvements: if we add different styles to links according to their netlab role, people who used netlab enough will start to have a fair initial idea how IGPs, if any, advertise in the topology.
Second, I know I said maybe we should put the networks on the links as labels, but it was a bad idea. First, you seldom care, and second, it really bloats the topology.
To make this work, we'd have to trace the real extent of an AS (explore the connectivity graph until you hit links with role set to external... assuming the user hasn't changed that role). Not sure I want to go there (yet) |
Found it. Have to use elk layout |

Implementing ideas from #2535, add code that creates generic graph data structure for topology and BGP graphs, and use that data structure to generate D2 graphs with generic primitives (d2_cluster, d2_node, and d2_edge)