User Manual

Driver FeaturesRev 2.2-1.0.1
Mellanox Technologies
122
4.15.6.2 Virtual Function InfiniBand Ports
Each VF presents itself as an independent vHCA to the host, while a single HCA is observable
by the network which is unaware of the vHCAs. No changes are required by the InfiniBand sub-
system, ULPs, and applications to support SR-IOV, and vHCAs are interoperable with any exist-
ing (non-virtualized) IB deployments.
Sharing the same physical port(s) among multiple vHCAs is achieved as follows:
Each vHCA port presents its own virtual GID table
For further details, please refer to Section 4.15.6.2.3, on page 123.
Each vHCA port presents its own virtual PKey table
The virtual PKey table (presented to a VF) is a mapping of selected indexes of the physical
PKey table.
The host admin can control which PKey indexes are mapped to which virtual
indexes using a sysfs interface. The physical PKey table may contain both full and partial mem-
berships of the same PKey to allow different membership types in different virtual tables.
Each vHCA port has its own virtual port state
A vHCA port is up if the following conditions apply:
The physical port is up
The virtual GID table contains the GIDs requested by the host admin
The SM has acknowledged the requested GIDs since the last time that the physical port
went up
Other port attributes are shared, such as: GID prefix, LID, SM LID, LMC mask
To allow the host admin to control the virtual GID and PKey tables of vHCAs, a new sysfs 'iov'
sub-tree has been added under the PF InfiniBand device.
4.15.6.2.1SR-IOV sysfs Administration Interfaces on the Hypervisor
Administration of GUIDs and PKeys is done via the sysfs interface in the Hypervisor (Dom0).
This interface is under:
/sys/class/infiniband/<infiniband device>/iov
Under this directory, the following subdirectories can be found:
ports - The actual (physical) port resource tables
Port GID tables:
ports/<n>/gids/<n> where 0 <= n <= 127 (the physical port gids)
ports/<n>/admin_guids/<n> where 0 <= n <= 127 (allows examining or changing the
administrative state of a given GUID>
ports/<n>/pkeys/<n> where 0 <= n <= 126 (displays the contents of the physical pkey
table)
<pci id> directories - one for Dom0 and one per guest. Here, you may see the map-
ping between virtual and physical pkey indices, and the virtual to physical gid 0.
Currently, the GID mapping cannot be modified, but the pkey virtual to physical mapping can .
These directories have the structure:
<pci_id>/port/<m>/gid_idx/0 where m = 1..2 (this is read-only)
and