NVIDIA DOCA DPU CLI
This guide provides quick access to a useful set of CLI commands and utilities on the NVIDIA® BlueField® DPU environment.
This guide provides a concise guide on useful commands for DOCA deployment and configuration.
The tables in this guide provide two categories of commands:
General commands for Linux/networking environment
DOCA/DPU-specific commands
For more information about these commands, such as usage instructions, flag options, arguments and so on, use the -h option after the command or use the manual (e.g., man lspci).
Command |
Description |
ifconfig |
Used to configure kernel-resident network interfaces. It is used at boot time to set up interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed. If no arguments are given, ifconfig displays the status of the currently active interfaces. If a single interface argument is given, it displays the status of the given interface only. If a single -a argument is given, it displays the status of all interfaces, even those that are down. Otherwise, it configures an interface. |
ethtool <devname> |
Used to query and control network device driver and hardware settings, particularly for wired Ethernet devices. <devname> is the name of the network device on which ethtool should operate. Note
This command shows the speed of the network card of the DPU.
|
lspci |
Displays information about PCIe buses in the system and devices connected to them. By default, it shows a brief list of devices. |
tcpdump |
Dump traffic on a network. Usage: tcpdump -i <interface> where <interface> is any port interface (physical/SF rep/VF port rep). |
ovs-vsctl |
Utility for querying and configuring ovs-vswitchd. The ovs-vsctl program supports the model of a bridge implemented by Open vSwitch in which a single bridge supports ports on multiple VLANs. |
mount 10.0.0.10:/vol/myshare/ myshare/ |
Used for mounting a work directory on the DPU. Note
Must be used after creating a new directory named myshare under root (i.e., mkdir /myshare)
|
scp |
Secure copy (remote file copy program). Useful for copying files from BlueField to the host and vice versa. |
iperf |
Used for server-client connection. Useful to check if the network connection achieves the speed of the network card on the DPU (line rate). |
Command |
Description |
ibdev2netdev |
Displays available mlnx interfaces |
mst |
Used to start MST service, to stop it, and for other operations with NVIDIA devices like reset and enabling remote access |
cat /etc/mlnx-release |
Displays the full BlueField image (bfb) version |
cat /etc/os-release |
Displays the details of the underlying OS installed on BlueField |
ibv_devinfo |
Displays the current InfiniBand connected devices and relevant information. Useful for checking current firmware version. |
ipmitool power cycle |
Power cycle Note
Prior to performing a power cycle, make sure to do a graceful shutdown.
|
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
DPDK setup. Allocates hugepages for DPDK environment abstraction layer (EAL). |
mlxdevm tool |
The mlxdevm tool is found under /opt/mellanox/iproute2/sbin/. With this tool it is possible to create an SF and set its state to active, configure a HW address and set it to trusted, deploy the created SF and print info about it. |
/opt/mellanox/iproute2/sbin/mlxdevm port add pci/<pci_address> flavour pcisf pfnum <correspondig_physical_function_number> sfnum <unique_sf_number> |
Creates an SF in the flavor of the given PF with the given unique SF number. Example:
|
/opt/mellanox/iproute2/sbin/mlxdevm port show |
Displays information about the available SFs |
/opt/mellanox/iproute2/sbin/mlxdevm port function set pci/0000:03:00.0/<sf_index> hw_addr <HW_address> trust on state active |
Configures SF capabilities such as setting the HW address, making it "trusted", and setting its state to active. <sf_index> the SF. To obtain this index, you may run mlxdevm port show. Example:
|
$ echo mlx5_core.sf.<next_serial> > /sys/bus/auxiliary/drivers/mlx5_core.sf_cfg/unbind $ echo mlx5_core.sf. <next_serial> > /sys/bus/auxiliary/drivers/mlx5_core.sf/bind |
These two commands deploy the created SF. The first command unbinds the SF from the default driver, while the second command binds the SF to the actual driver. The deployment phase should be done after the capabilities of the SF are configured. The SF is identified by <next_serial> which can be obtained by running the command below. |
ls /sys/bus/auxiliary/devices/mlx5_core.sf.* |
Displays additional information about the created SFs and their "next serial numbers". For example, if mlx5_core.sf.2 exists in the output of the command, then running cat /sys/bus/auxiliary/devices/mlx5_core.sf.2/sfnum would output the sfnum related to mlx5_core.sf.2. |
/opt/mellanox/iproute2/sbin/mlxdevm port function set pci/<pci_address>/<sf_index> state inactive /opt/mellanox/iproute2/sbin/mlxdevm port del pci/<pci_address>/<sf_index> |
These two commands must be executed to delete a given SF. First, users must set the state of the SF to inactive, and only then should it be deleted. |
/opt/mellanox/iproute2/sbin/mlxdevm port help |
Displays additional information about operations that can be used on created SF ports |
crictl pods |
Displays currently active K8S pods, and their IDs (it might take up to 20-30 seconds for the pod to start) |
crictl ps |
Displays currently active containers and their IDs |
crictl ps -a |
Displays all containers, including containers that recently finished their execution |
crictl logs <container-id> |
Examines the logs of a given container |
crictl exec -it <container-id> /bin/bash |
Attaches a shell to a running container |
journalctl -u kubelet |
Examines the Kubelet logs. Useful when a pod/container fails to spawn. |
crictl stopp <pod-id> |
Stops a running K8S pod |
crictl stop <container-id> |
Stops a running container |
crictl rmi <image-id> |
Removes a container image from the local K8S registry |