User Manual

Features Overview and ConfigurationRev 2.3-1.0.1
Mellanox Technologies
180
Only the PFs are set via this mechanism. The VFs inherit their port types from their asso-
ciated PF.
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 3.4.1.6.3, on page 182.
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.
3.4.1.6.1 SR-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)