Skip to content

Kinds#

Containerlab launches, wires up and manages container-based labs. The steps required to launch a vanilla debian or centos container image aren't at all different. On the other hand, Nokia SR Linux launching procedure is nothing like the one for Arista cEOS.

Things like required syscalls, mounted directories, entrypoint and commands to execute are all different for the containerized NOS'es. To let containerlab understand which launching sequence to use, the notion of a kind was introduced. Essentially kinds abstract away the need to understand certain setup peculiarities of different NOS'es.

Given the following topology definition file, containerlab is able to know how to launch node1 as an SR Linux container and node2 as a cEOS one because they are associated with the kinds:

name: srlceos01

topology:
  nodes:
    node1:
      kind: srl              # node1 is of srl kind
      type: ixrd2
      image: ghcr.io/nokia/srlinux
    node2:
      kind: ceos             # node2 is of ceos kind
      image: ceos:4.25F

  links:
    - endpoints: ["node1:e1-1", "node2:eth1"]

Containerlab supports a fixed number of platforms. Most platforms are identified with both a short and a long kind name; these names can be used interchangeably.

Within each predefined kind, we store the necessary information that is used to successfully launch the container. The following kinds are supported by containerlab:

Name Short/Long kind name Status Packaging
Nokia SR Linux srl/nokia_srlinux supported container
Nokia SR OS vr-sros/nokia_sros supported VM
Arista cEOS ceos/arista_ceos supported container
Arista vEOS vr-veos/vr-arista_veos supported VM
Juniper cRPD crpd/juniper_crpd supported container
Juniper vMX vr-vmx/vr-juniper_vmx supported VM
Juniper vQFX vr-vqfx/vr-juniper_vqfx supported VM
Juniper vSRX vr-vsrx/vr-juniper_vsrx supported VM
Cisco XRv9k vr-xrv9k/vr-cisco_xrv9k supported VM
Cisco XRv vr-xrv/vr-cisco_xrv supported VM
Cisco Nexus 9000v vr-n9kv/vr-cisco_n9kv supported VM
Cumulus VX cvx/cumulus_cvx supported container
SONiC sonic supported container
Dell FTOS vr-ftosv/vr-dell_ftos supported VM
Mikrotik Router OS vr-ros/vr-mikrotik_ros supported VM
Palo Alto PAN OS vr-panos/vr-paloalto_panos supported VM
IPInfusion OcNOS ipinfusion_ocnos supported VM
Keysight ixia-c-one keysight_ixia-c-one supported container
Checkpoint Cloudguard checkpoint_cloudguard supported VM
Linux container linux supported container
Linux bridge bridge supported N/A
OvS bridge ovs-bridge supported N/A
mysocketio node mysocketio supported N/A
RARE/freeRtr node rare supported container
Aruba ArubaOS-CX vr-aoscx/vr-aruba_aoscx supported VM

Refer to a specific kind documentation article for kind-specific details.