From a19324f63cad961e80254001614007d7c654b993 Mon Sep 17 00:00:00 2001 From: Shannon Byrnes Date: Mon, 3 Feb 2025 14:04:51 -0500 Subject: [PATCH] Consolidate internal READMEs --- internal-lab-setup-assets/README.md | 60 ++++++++++++++++++++-- internal-lab-setup-assets/images/README.md | 36 ------------- 2 files changed, 55 insertions(+), 41 deletions(-) delete mode 100644 internal-lab-setup-assets/images/README.md diff --git a/internal-lab-setup-assets/README.md b/internal-lab-setup-assets/README.md index 3b7ccb3..003a62a 100644 --- a/internal-lab-setup-assets/README.md +++ b/internal-lab-setup-assets/README.md @@ -12,14 +12,20 @@ Images for emulated network devices must also be available. See ./images/README. You must tune host settings https://hmntsharma.github.io/cisco-xrd/base_setup/#clone-the-xrd-tools-repository -As of March 2024, for XRd 7.11.1, the following sysctl settings were appropriate based on the above guide: +As of February 2025, for XRd 24.4.1, the following sysctl settings were appropriate based on the above guide: ``` # /etc/sysctl.conf -fs.inotify.max_user_instances=64000 -fs.inotify.max_user_watches=64000 +fs.inotify.max_user_instances=256000 +fs.inotify.max_user_watches=256000 +net.ipv4.udp_mem=1124736 10000000 67108864 net.core.rmem_default=67108864 -net.ipv4.udp_mem='1124736 10000000 67108864' +net.core.netdev_max_backlog=300000 +net.core.optmem_max=67108864 +net.core.rmem_default=67108864 +net.core.rmem_max=67108864 +net.core.wmem_default=67108864 +net.core.wmem_max=67108864 ``` Set mgmt address in the config (instead of automatically assigning) as XRd has a bug and a container keeps its old address if it's been assigned a new address. containerlab is non-deterministic when assigning mgmt IPs. @@ -28,11 +34,55 @@ Review the `Makefile` in `Getting_Started` `make clab-install` to install containerlab `make gen` to generate lab topologies based on `workshop.clab.yml.j2`. This currently creates 30 labs, set via `gen-topo.py`. -`make deploy` to start up all 30 labs. This will take some time but should complete without error. +`make deploy` to start up all labs. This will take some time but should complete without error. `make destroy` to tear down all labs. +`make deploy-lab num=20` to deploy, or redeploy, only lab #20. +`make destroy-lab num=20` to destroy only lab #20. `make inspect` to output lab info (this show local IPs, not port bindings) +`make poetry` to install poetry for use by this folder's tester code (written in Python) +`make test` to run the testing code that verifies both show commands and configuration of all Cisco XRd instances. `make container` to build new lab container based on `Containerfile` You can also run `containerlab` commands directly but they need to be run as root or via `sudo`. You can probably use the output of `sudo containerlab inspect -t workshop1.clab.yml -f json` to create something similar to the `containerlab inspect` table output that displays the port bindings. i.e., use this to generate workshop instructions. + + +## Regarding Images + +### Network Device Images + +The images/ folder is intended to contain images used by emulated network devices in ContainerLab. + +The images are not included in the git repository for obvious reasons. +- Licensing +- Size + +But... if you happen to have the Cisco XRd image from CCO, here are some notes. + +### Cisco XRd Control Plane + +1. Retrieve control plane version of XRd from Cisco: https://software.cisco.com/download/home/286331236/type/280805694 + +2. Move it into the `images/` folder in this repository on your lab VM. + +3. You may need to extract the image with something like `tar -xvzf xrd-control-plane-container-x86.24.4.1.tgz` + +4. Load it into docker and tag it locally with `docker load -i xrd-control-plane-container-x64.dockerv1.tgz` + +5. Note the image name in the output, probably something like "xrd-control-plane:24.4.1" + ``` + $ sudo docker load -i xrd-control-plane-container-x64.dockerv1.tgz + 826e1dd2a198: Loading layer [==================================================>] 1.32GB/1.32GB + Loaded image: ios-xr/xrd-control-plane:24.4.1 + ``` + +6. Update the workshop.clab.yml.j2 Jinja template at the top of this repository to use the image wherever you please. For instance, like so: + ``` + topology: + kinds: + cisco_xrd: + image: ios-xr/xrd-control-plane:24.4.1 + ``` + +7. You are ready to generate and load your lab! \ No newline at end of file diff --git a/internal-lab-setup-assets/images/README.md b/internal-lab-setup-assets/images/README.md deleted file mode 100644 index aaf6d70..0000000 --- a/internal-lab-setup-assets/images/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Network Device Images - -This folder is intended to contain images used by emulated network devices in ContainerLab. - -The images are not included in the git repository for obvious reasons. -- Licensing -- Size - -But... if you happen to have the Cisco XRd image from CCO, here are some notes. - -## Cisco XRd Control Plane - -1. Retrieve control plane version of XRd from Cisco: https://software.cisco.com/download/home/286331236/type/280805694 - -2. Move it into the `images/` folder in this repository on your lab VM. - -3. You may need to extract the image with something like `tar -xvzf xrd-control-plane-container-x86.7.11.1.tgz` - -4. Load it into docker and tag it locally with `docker load -i xrd-control-plane-container-x64.dockerv1.tgz` - -5. Note the image name in the output, probably something like "xrd-control-plane:7.11.1" - ``` - $ sudo docker load -i xrd-control-plane-container-x64.dockerv1.tgz - 826e1dd2a198: Loading layer [==================================================>] 1.32GB/1.32GB - Loaded image: ios-xr/xrd-control-plane:7.11.1 - ``` - -6. Update the workshop.clab.yml.j2 Jinja template at the top of this repository to use the image wherever you please. For instance, like so: - ``` - topology: - kinds: - cisco_xrd: - image: ios-xr/xrd-control-plane:7.11.1 - ``` - -7. You are ready to generate and load your lab! \ No newline at end of file