Identifiers

7.1 LPAR mode z/VM guest KVM guest

When working with PCI network adapters on IBM Z and IBM LinuxONE there is a somewhat intimidating amount of objects and object identifiers to keep track of. Let us talk about the most relevant identifiers and their relationships.

Generic PCI identifiers

The following identifiers are commonly used for PCI devices, across various hardware platforms.
PCI ID
The PCI ID is the function address that identifies the PCI function in the PCI stack, see PCI Express support.
If UID uniqueness checking is enforced for Linux with a unique UID, the PCI ID has this format: <UID>:00:<device>.<function>. All elements of the function address represent aspects of the logical PCI topology. The <device>.<function> part is usually 00.0.
A PCI ID function with a non unique UID has this format: <domain>:00:<device>.<function>. For <domain>, consecutive numbers, starting from 0000, are assigned to the functions.
In some cases for NETD PCI functions, the <device>.<function> attributes can be non zero and match the cards internal PCI topology. These PCI function addresses are similar to general PCI function addresses as seen on architectures like x86.
The lspci command lists PCI devices by PCI ID.
IB device name
The name that the InfiniBand (IB) device driver uses for the PCI function. Because RDMA is based on the IB communications standard, some terms that are used in the RDMA context refer to IB.