ContainerLab support
Drop any *.clab.yaml in the editor. NetWeave detects the topology: root key and parses nodes / links into the same internal graph model used for native topologies, so all rendering, layout and export features apply identically.
Kind → stencil mapping
NetWeave uses the ContainerLab kind (and, as a fallback, the image string) to pick a stencil. The current mapping:
- nokia_srlinux / srl → l3-switch
- arista_ceos / ceos → l3-switch
- vr-veos → l3-switch
- juniper_crpd / crpd → router
- vr-xrv / vr-csr / vr-vmx → router
- vr-vsrx → firewall
- paloalto_panos → firewall
- checkpoint_cloudguard → firewall
- f5_tmos → load-balancer
- linux / host → server
- bridge / ovs-bridge → l2-switch
Anything unrecognised falls back to router. PRs welcome for additional kinds — the mapping lives in src/lib/yaml/parse.ts.
Link parsing
ContainerLab links have the form ["nodeA:ifA", "nodeB:ifB"]. NetWeave splits on :, seeds the referenced interfaces on each node (so the canvas has somewhere to attach handles), and labels the edge with the interface names.
What is not used
topology.kinds and topology.defaults are parsed but not rendered — they don't affect the diagram. Management IPs (mgmt_ipv4, mgmt_ipv6) are surfaced on the node as a mgmt0 interface so you can see them at a glance.