Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
The ib (IB nexus) driver is a pseudo nexus driver that supports enumeration of port devices, VPPA (Virtual Physical Point Attachment), HCA_SVC (HCA Service) devices, and I/O controllers (IOC) on the InfiniBand fabric that are visible to the host and provides interfaces to cfgadm_ib(8) to manage hot-plugging of IB devices. The ib nexus driver enumerates the port device, VPPA devices and HCA_SVC devices based on entries specified in the ib.conf file. IOC devices are enumerated on demand. The IB nexus driver uses InfiniBand Device Manager services (ibdm(4D)) to enumerate port devices, VPPA devices, HCA_SVC devices, and IOCs on the IB fabric.
You configure the ib driver by defining properties in the ib.conf file. The IB nexus driver supports the following properties:
PROPERTY NAME DEFAULT POSSIBLE VALUES |
port-svc-list "" |
List of service names, for example: srv |
vppa-svc-list "" List of service names, for example: ipib |
hca-svc-list "" |
List of service names, for example: hca_nfs |
The port-svc-list property defines the list of port communication service names per port. The IB nexus driver creates a device instance for each entry in this property per Host Channel Adapter (HCA) port. The ib.conf file contains a port-svc-list="" entry by default. You update port-svc-list with service names you want to add to the system.
The vppa-svc-list property defines the list of VPPA communication service names per port per partition key. The IB nexus driver creates a device instance for each entry in this property per Host Channel Adapter (HCA) port. The ib.conf file contains a vppa-svc-list="" entry by default. You update vppa-svc-list with service names you want to add to the system.
The hca-svc-list property defines the list of HCA_SVC communication service names per HCA. The IB nexus driver creates a device instance for each entry in this property per Host Channel Adapter (HCA). The ib.conf file contains a hca-svc-list="" entry by default. You update hca-svc-list with service names you want to add to the system.
The service name specified in port-svc-list, vppa-svc-list and hca-svc-list must be unique, be a maximum of four characters long, and is limited to digits 0-9 and letters a-z and A-Z.
IOC drivers (which are parented by the IB nexus driver) may themselves have .conf files. To distinguish those cases from pseudo drivers parented by IB nexus, such drivers should include the "ib-node-type" property with value merge in the IOC driver.conf file. That property ensures that properties from the .conf file are merged with other properties found through hardware probing.
Example 1: A sample ib.conf file with one service name entry for PORT communication services.
# # Copyright 2001-2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # port-svc-list="" vppa-svc-list=""; hca-svc-list="";
In Example 1, the IB nexus driver does not create any port/vppa/hca_svc device instances.
Example 2: A sample ib.conf file with one entry for "srv" service:
port-svc-list="srv" vppa-svc-list=""; hca-svc-list="";
The IB nexus driver creates one srv service instance for every HCA port that exists on the host. For example, if there are two HCAs, each with two ports on the host, the IB nexus driver creates four instances of the srv service.
Example 3: A sample ib.conf file with one service name entry for each of Port and VPPA communication services:
port-svc-list="srv" vppa-svc-list="ipib"; hca-svc-list="";
If there are two HCAs in the system with two ports each and each port has two valid PKEY values, the IB nexus driver creates four instances of srv service (one for each port). It also creates eight instances of ipd service (one per each port/PKEY combination).
Example 4: A sample ib.conf file with one service name entry for each of Port, VPPA and HCA_SVC communication services:
port-svc-list="srv"; vppa-svc-list="ipib"; hca-svc-list="hca_nfs";
The IB nexus driver creates one instance of hca_nfs service for each HCA in the system.
Example 5: IOC driver .conf
ib-node-type="merge"; enable-special-mode="on";
32-bit x86 ELF kernel module
64-bit x86 ELF kernel module
64-bit SPARC ELF kernel module
driver configuration file
See attributes(7) for a description of the following attribute:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Architecture SPARC, x86 |
Interface Stability Consolidation Private |
ibcm (4D), ibdm (4D), ibtl (4D), driver.conf (5), ib (5), attributes (7), cfgadm_ib (8)
Writing Device Drivers
InfiniBand Architecture Specification, Volume 1: Release 1.1
System Administration Guide: Basic Administration
In addition to being logged, the following messages may appear on the system console. All messages are formatted in the following manner:
ib: WARNING: Error message...unit-address property in %s.conf not well-formed.
The driver.conf file does not have a valid "unit-addr" property defined. This property is an array of strings.
The driver.conf file does not have a valid "unit-addr" property defined. This property is an array of strings.
Waiting for port initialization from subnet manager.