The InfiniBand (IB) bus is an I/O transport based on switched fabrics. IB devices are managed by the ib(7D) nexus driver. There are three categories of InfiniBand devices:
IB port/IB VPPA/IB HCA_SVC devices
IB IOC devices
IB Pseudo devices
The IB port/IB VPPA/IB HCA_SVC devices are enumerated by way of the ib.conf file. See ib(7D).
The IB IOC devices are enumerated using the InfiniBand Device management class. See ibdm(7D).
For devices not in these two categories, most notably IB Pseudo devices, the driver must provide configuration files to inform the system of the IB devices to be created. Configuration parameters are represented in the form of name value pairs you can retrieve using the DDI property interfaces. See ddi_prop_op(9F) for details.
Configuration files for IB device drivers must identify the parent driver explicitly as ib, and must create a string array property called unit-address which is unique to this entry in the configuration file. Drivers name ibport and ioc are reserved by ib(7D) and should not be used.
Each entry in the configuration file creates a prototype devinfo node. Each node is assigned a unit address which is determined by the value of the unit-address property. This property is only applicable to children of the IB parent and is required. See driver.conf(4) for further details on configuration file syntax.
Example 1: Sample configuration file
Here is a configuration file called ibgen.conf for an IB device driver that implements a generic IB driver. This file creates a node called ibgen.
# # Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "@(#)ibgen.conf 1.3 03/05/01 SMI" name="ibgen" parent="ib" unit-address="0";