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