Cisco 8000 platform emulator is identified with
cisco_c8000 kind in the topology file.
The 8000 emulator is an enhanced KVM hypervisor that emulates Cisco boards and chassis. The 8000 emulator VM is launched inside a container for ease of integration with ContainerLab.
Getting Cisco 8000 ContainerLab docker images#
Cisco customers can contact their Cisco account team to get access to Cisco 8000 ContainerLab docker images.
- Fixed form platforms
8101-32H, 8102-64H, 8201-32FH, 8201, 8202-32FH-M
- Modular chassis (8808 and 8804)
8800-LC-36FH, 8800-LC-48H, 8800-LC-36FH-M
Additional platforms will be supported on "as needed" basis.
Host server requirements#
- Open vSwitch
sysctl -w kernel.pid_max=1048575
Hardware resource requirements#
Memory and cpu usage depends on XR features enabled and control/data plane traffic
Fixed form platforms
Recommended 20GB memory and 4 cores per router
Recommended 64GB memory and 8 cores per router
Managing c8000 nodes#
Cisco 8000 nodes may take a few minutes to come to XR prompt. To monitor boot progress:
ssh cisco@<node-mgmt-address> Password:
Interface naming convention#
c8000 container uses the following naming convention for its managment and data interfaces:
eth0- management interface connected to the containerlab management network
Hu0_0_0_X- 100G data interface mapped to
FH0_0_0_X- 400G data interface mapped to
When containerlab launches c8000 node, it will set IPv4 address as assigned by docker to the
eth0 interface and c8000 node will boot with this address configured for its
RP/0/RP0/CPU0:r1#sh ip int br Wed Dec 21 12:04:13.049 UTC Interface IP-Address Status Protocol Vrf-Name MgmtEth0/RP0/CPU0/0 172.20.20.5 Up Up default
Features and options#
Default node configuration#
It is possible to launch nodes of
cisco_c8000 kind with a basic config or to provide a custom config file that will be used as a startup config instead.
When a node is defined without
startup-config statement present, containerlab will generate an empty config from this template and copy it to the config directory of the node.
User defined config#
startup-config property a user sets the path to the config file that will be mounted to a container and used as a startup-config:
When a config file is passed via
startup-config parameter it will be used during an initial lab deployment. However, a config file that might be in the lab directory of a node takes precedence over the startup-config1.
With such topology file containerlab is instructed to take a file
r1.cfg from the current working directory and copy it to the lab directory for that specific node under the
/first-boot.cfg name. This will result in this config acting as a startup-config for the node.
To provide a user-defined config, take the default configuration template and add the necessary configuration commands without changing the rest of the file. This will result in proper automatic assignment of IP addresses to the management interface, as well as applying user-defined commands.
if startup config needs to be enforced, either deploy a lab with
--reconfigureflag, or use