NVIDIA UFM Cable Validation Tool v1.6.0

Deploying the Module

Fabric Size

CPU Requirements*

Memory Requirements

Disk Space Requirements

Minimum

Recommended

Up to 1000 nodes

4-core server

4 GB

20 GB

50 GB

1000-5000 nodes

8-core server

16 GB

40 GB

120 GB

5000-10000 nodes

16-core server

32 GB

80 GB

160 GB

Above 10000 nodes

Contact NVIDIA Support

The Cable Validation tool can be deployed in two methods:

Deploy the cables_bringupcontainer on a host as described below:

  1. docker load -i <image_path>/cables_bringup_<version>.tar.gz

  2. docker run --name cables_bringup -itd --network=host cables_bringup

  3. docker exec -it cables_bringup /bin/bash

Setting Docker Environment

Environment Variable Configuration File

To enhance flexibility and usability, CVT supports environment variable management through a dedicated file. All variables listed below can be set in the configuration file, which includes default values for easy customization. If an environment variable is defined in both the Docker environment and the configuration file, the Docker environment value takes precedence.

Step 1: Configuration File

The cvt_env.conf file is installed with CVT and comes preloaded with default values.

You can modify this file to match your environment requirements.

Step 2: Updating Variables

To update an environment variable:

  1. Edit the /etc/cablevalidation/cvt_env.conf file.

  2. Save your changes.

  3. Restart the CVT collector for the changes to take effect.

    Note

    Note: A Docker container restart is not required—only the CVT collector needs to be restarted.

Sample cvt_env.conf file:

Copy
Copied!
            

# Variable names are case-sensitive, and should be unique among sections.   # Network Configuration [network] # IP addresses used by the agents: # if no Environment Variable is set, the IP address of the default interface will be used. # if AGENTS_COLLECTOR_NAT_IP is set # - the agents (switch and host) will use this IP address # otherwise # - if DEFAULT_AGENTS_INTERFACE_NAME is set, switch and host agents will use the IP address of the interface # specified by DEFAULT_AGENTS_INTERFACE_NAME # - if HOST_SPECIFIC_INTERFACE_NAME is set, host agents will use the IP address of the interface # specified by HOST_SPECIFIC_INTERFACE_NAME   # Collector External (NAT) IP address; define if there is a NAT between the collector and the agents # this IP address is used by the agents to communicate the collector # fetch images and send data/reports to the collector # Leave empty if there is no NAT between the collector and the agents AGENTS_COLLECTOR_NAT_IP=   # Interface name of the collector over which all the agents (switch and host) will communicate # The IP address of this interface will be used by all agents (switch and host) to communicate to the # collector to fetch images and send data/reports DEFAULT_AGENTS_INTERFACE_NAME=   # Use the following variable if you want to use a different interface of the collector for the host agents # Define if the interface to connect with hosts is different from the one used for switch agents # specified by DEFAULT_AGENTS_INTERFACE_NAME # The IP address of this interface will be used by the host agents to communicate to the # collector to fetch images and send data/reports # Leave empty if you want to use the same interface as DEFAULT_AGENTS_INTERFACE_NAME HOST_SPECIFIC_INTERFACE_NAME=   # Agent Configuration [agent] # set True if the switch hostname contains a dot (other than the domain part) CV_DOT_IN_HOSTNAME= # Max time to wait for an agent to become inactive in minutes MAX_INACTIVE_INTERVAL=15 # Interval to check for new switches in minutes CHECK_NEW_SWITCHES_INTERVAL=15 # Time to wait for an agent to become active after start validation START_VALIDATION_TIMEOUT=5 # Time to wait for an agent to become inactive in minutes WAIT_TIME_INACTIVE_AGENTS=1 # Max number of workers to run in parallel CVT_MAX_WORKERS=30 # Time after which a full report is forced to be generated. # Value to be provided in minutes. Default is 720 minutes (12 hours). # Interval less than 10 mins is not supported. FORCE_FULL_REPORT_INTERVAL=720   # SSH Configuration [ssh] # SSH key file for the collector CV_SSH_KEY_FILE=./ssh_key # SSH connection timeout in seconds SSH_CONN_TIMEOUT=20


Configuration Parameters

Section

Parameter

Description

network

AGENTS_COLLECTOR_NAT_IP

NAT IP address between collector and agents. Leave empty if no NAT.

DEFAULT_AGENTS_INTERFACE_NAME

Interface for all agents to communicate with the collector.

HOST_SPECIFIC_INTERFACE_NAME

Interface for host agents if different from default.

agent

CV_DOT_IN_HOSTNAME

Set True if hostname contains extra dots (not in domain).

MAX_INACTIVE_INTERVAL

Minutes before inactive agent is considered down.

CHECK_NEW_SWITCHES_INTERVAL

Minutes between checks for new switches.

START_VALIDATION_TIMEOUT

Minutes allowed for agent to become active after start.

WAIT_TIME_INACTIVE_AGENTS

Minutes to wait before confirming inactivity.

CVT_MAX_WORKERS

Max parallel workers.

FORCE_FULL_REPORT_INTERVAL

Minutes until forced full report; min 10 mins.

ssh

CV_SSH_KEY_FILE

Path to SSH private key file.

SSH_CONN_TIMEOUT

SSH connection timeout in seconds.

Setting Environmental Variables with Docker Run

Specifying the Network Interface

If the host system is equipped with multiple network interfaces and the switches are connected to the host through an interface that differs from the default management interface, the user can designate this particular interface by utilizing a specific environment variable, namely AGENTS_IFC_NAME. To illustrate, assuming the hypothetical interface name is eno3:

Copy
Copied!
            

docker run --name cables_bringup -itd --network=host --env AGENTS_IFC_NAME=eno3


Adding Hostnames

If the switches are not configured in the DNS server, you may add hostnames; the user may use the --add-host option when running the container. For example (assuming the switch name is switch-3245fa and its IP is 192.168.1.1):

Copy
Copied!
            

docker run --name cables_bringup -itd --network=host --add-host=switch-3245fa:192.168.1.1 cables_bringup


Using Volumes

Volumes can be used for data persistence or easier file transfer to the cables_bringup container. The volume must be mapped to /cable_bringup_root in the container for data persistence. This volume can also be used for loading topology files. Example:

Copy
Copied!
            

docker run --name cables_bringup -itd --network=host -v /opt/bringup_data:/cable_bringup_root cables_bringup


Overriding Apache Configuration

In the event that a host machine is running another Apache instance and utilizing the default ssh ports 443, an alternative port may be designated for the bringup server by the user, these ports should be available and free. To accomplish this, the APACHE_HTTPS_PORT environment variables can be employed. Consider the following example:

Copy
Copied!
            

docker run --name cables_bringup -itd --network=host --env APACHE_HTTPS_PORT=9443 cables_bringup

Warning

Warning: Please note that Running Cable Validation as plugin is not supported on UFM Gen2.0.

Deploy the module as a UFM Enterprise plugin as follows:

  1. docker load -i /<image_path>/ufm-plugin-cablevalidation-<version>.tar.gz

  2. ./manage_ufm_plugins.sh add -p cablevalidation -t <version>

  3. ./manage_ufm_plugins.sh start -p cablevalidation

  4. docker exec -it ufm-plugin-cablevalidation bash

Copy Files to the Plugin

Users have two methods for copying files, such as topology files, to the Cable Validation plugin:

  1. Copy the files to the plugin's data volume /opt/ufm/ufm_plugins_data/cablevalidation which is mapped to /data/ inside the plugin container.

  2. Use docker cp to copy the needed files to the container.

Overriding the Apache Configuration

When using Cable Validation as a plugin, the default ports 443 are already in use by UFM Enterprise. Therefore, port 8633 will be used for HTTPS by default. Users can opt to use different ports for the bring-up server, provided that these ports are available and free.

The plugin config.cfg file can be modified to update APACHE_HTTPS_PORT variables for that purpose. To make this adjustment, follow these steps:

  1. Execute /opt/ufm/scripts/manage_ufm_plugins.sh add -p cablevalidation to add the Cable Validation plugin.

  2. Stop the plugin using /opt/ufm/scripts/manage_ufm_plugins.sh stop -p cablevalidation

  3. Use vim /opt/ufm/files/conf/plugins/cablevalidation/config.cfg to modify the 'APACHE_HTTPS_PORT' variable.

  4. Update and save the file.

  5. Start the plugin again with /opt/ufm/scripts/manage_ufm_plugins.sh start -p cablevalidation.

With these changes, the new configuration will take effect, and Apache will run with the updated ports.

© Copyright 2025, NVIDIA. Last updated on Aug 7, 2025.