1 # CDDL HEADER START
   2 #
   3 # The contents of this file are subject to the terms of the
   4 # Common Development and Distribution License (the "License").
   5 # You may not use this file except in compliance with the License.
   6 #
   7 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   8 # or http://www.opensolaris.org/os/licensing.
   9 # See the License for the specific language governing permissions
  10 # and limitations under the License.
  11 #
  12 # When distributing Covered Code, include this CDDL HEADER in each
  13 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  14 # If applicable, add the following below this CDDL HEADER, with the
  15 # fields enclosed by brackets "[]" replaced with your own identifying
  16 # information: Portions Copyright [yyyy] [name of copyright owner]
  17 #
  18 # CDDL HEADER END
  19 #
  20 
  21 #
  22 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23 # Use is subject to license terms.
  24 # Copyright 2018 Nexenta Systems, Inc.
  25 #
  26 
  27 name="scsi_vhci" class="root";
  28 
  29 # Load balancing global configuration: setting load-balance="none" will cause
  30 # all I/O to a given device (which supports multipath I/O) to occur via one
  31 # path.  Setting load-balance="round-robin" will cause each path to the device
  32 # to be used in turn.
  33 load-balance="logical-block";
  34 
  35 # Automatic failback configuration
  36 # possible values are auto-failback="enable" or auto-failback="disable"
  37 auto-failback="enable";
  38 
  39 #BEGIN: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
  40 #
  41 # Declare scsi_vhci failover module paths with 'ddi-forceload' so that
  42 # they get loaded early enough to be available for scsi_vhci root use.
  43 #
  44 # NOTE: Correct operation depends on the value of 'ddi-forceload', this
  45 # value should not be changed. The ordering of entries is from
  46 # most-specific failover modules (with a "probe" implementation that is
  47 # completely VID/PID table based), to most generic (failover modules that
  48 # are based on T10 standards like TPGS). By convention the last part of a
  49 # failover module path, after "/scsi_vhci_", is called the
  50 # "failover-module-name", which begins with "f_" (like "f_sym"). The
  51 # "failover-module-name" is also used in the override mechanism below.
  52 ddi-forceload =
  53         "misc/scsi_vhci/scsi_vhci_f_sym",
  54         "misc/scsi_vhci/scsi_vhci_f_tpgs";
  55 
  56 # For a device that has a GUID, discovered on a pHCI with mpxio enabled, vHCI
  57 # access also depends on one of the scsi_vhci failover modules accepting the
  58 # device.  The default way this occurs is by a failover module's "probe"
  59 # implementation (sfo_device_probe) indicating the device is supported under
  60 # scsi_vhci.  To override this default probe-oriented configuration in
  61 # order to
  62 #
  63 #    1) establish support for a device not currently accepted under scsi_vhci
  64 #
  65 # or 2) override the module selected by "probe"
  66 #
  67 # or 3) disable scsi_vhci support for a device
  68 #
  69 # You can add a 'scsi-vhci-failover-override' tuple, as documented in
  70 # scsi_get_device_type_string(9F). For each tuple, the first part provides
  71 # basic device identity information (vid/pid) and the second part selects
  72 # the failover module by "failover-module-name". If you want to disable
  73 # scsi_vhci support for a device, use the special failover-module-name "NONE".
  74 #
  75 #       "                  111111"
  76 #       "012345670123456789012345",     "failover-module-name" or "NONE"
  77 #       "|-VID--||-----PID------|",
  78 #
  79 # For example:
  80 #
  81 # scsi-vhci-failover-override =
  82 #       "STK     FLEXLINE 400",         "f_asym_lsi",
  83 #       "SUN     T4",                   "f_tpgs",
  84 #       "CME     XIRTEMMYS",            "NONE";
  85 #
  86 # Currently, scsi-vhci-failover-override is not specified, and  all devices are
  87 # accepted by f_sym module.
  88 #
  89 #END: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)