netlab supports dynamically loadable plugins allowing you to implement custom data model transformations or other functionality without adding nerd knobs to the core topology transformation. You might want to write your own plugins or use plugins shipped with netlab:
Plugins needed by a topology file are listed in the plugin top-level element, for example:
plugin: [ bgp.session ] module: [ ospf, bgp ]
Plugins can define their own netlab attributes that you can use to configure plugin-provided functionality. For example, the BGP sessions plugin defines bgp.password attribute that can be used to enable MD5 authentication of EBGP sessions:
--- provider: clab defaults.device: eos module: [ bgp ] plugin: [ bgp.session ] nodes: r1: bgp.as: 65101 r2: bgp.as: 65000 links: - r1: r2: bgp.password: Test
Plugins providing support for additional networking features usually rely on Jinja2 templates to configure those features, limiting their use to a subset of supported platforms. Please check the plugin documentation for more details.