You're reading the development documentation. Release version of the same page is here.

Lab Topology Reference

The lab topology is described in a YAML file using a dictionary format. You could use hierarchical attribute names as dictionary keys to make the topology file more readable.

The three major components that should be present in every topology file are:

Other topology elements include:

  • addressingIPv4 and IPv6 pools used to address management, loopback, LAN, P2P and stub interfaces

  • componentsreusable components that you can include in multiple places in the lab topology

  • groups – optional groups of nodes

  • module – default list of modules used by this network topology. You can use device-level module attribute to override this setting for individual nodes.

  • plugin – list of plugins used by this topology.

  • tools – dictionary of external network management tools deployed after the lab has been started and configured.

Finally, you can set these topology-level parameters:

  • provider – virtualization provider (default: libvirt)

  • message – a help message to display after successful netlab initial or netlab up commands. You can use that message to tell the end-user how to use the lab (example: VLAN integration test cases).

  • name – topology name (used in bridge names)

Notes:

  • All elements apart from nodes are optional – missing links element indicates a topology without inter-node links (just the management interfaces)

  • Default values of defaults and addressing elements are taken from default settings.

  • List of modules is used to specify additional initial configuration elements (example: OSPF routing)

  • Default topology name is the directory name1.

You’ll find sample topology files in the tutorials.

Topology Components


1

The first twelve characters of the directory name are used. Spaces and dots within the directory name are replaced with underscores.