st(7D)




NAME

     st - driver for SCSI tape devices


SYNOPSIS

     st@target,lun:[l,m,h,c,u][b][n]


DESCRIPTION

     The st device driver is an interface to  various  SCSI  tape
     devices.  Supported  tape  devices include 1/4" Tandberg 2.5
     Gigabyte QIC tape drive, 1/4" Archive Viper QIC-150  stream-
     ing  tape drive, 1/4" Emulex MT-02 tape controller, HP-88780
     1/2" tape drive, Exabyte EXB-8200/8500/8505/8505XL 8mm  car-
     tridge   tape,  the  Archive Python 4 mm DAT tape subsystem,
     and USB tape devices. st provides a  standard  interface  to
     these various  devices; see mtio(7I) for details.

     To detemine if the st device driver supports your tape  dev-
     ice, enter the following on a command line:

     % strings /kernel/drv/st | grep <tape device name> (e.g. "Quantam").

     The driver can be opened with either rewind on close  or  no
     rewind  on  close  options.   It can also be opened with the
     O_NDELAY (see open(2)) option when there is no tape inserted
     in the drive.  A maximum of four tape formats per device are
     supported (see FILES below). The tape  format  is  specified
     using  the  device name. (Tape format is also referred to as
     tape density).

     The driver reserves the tape drive upon open and releases it
     at  close for use in multi-initiator environments.  Refer to
     the MTIOCRESERVE and MTIOCRELEASE  ioctls  in  mtio(7I)  for
     information  about  how  to  allow  a  tape  drive to remain
     reserved upon close.  See the flag options below for  infor-
     mation about disabling this feature.

     If the tape drive is opened in O_NDELAY mode, no reservation
     will   occur during the open, as per the POSIX standard (see
     standards(5)). However, before the first tape  operation  or
     I/O   occurs,   a    reservation   will   occur  to  provide
     reserve/release functionality.

  Persistent Errors and Asynchronous Tape Operation
     The st driver now supports persistent errors  (see  mtio(7I)
     and    asynchronous    tape    operations   (see   mtio(7I),
     aioread(3AIO), and aiowrite(3AIO)).

  Read Operation
     If the driver is opened for reading in  a  different  format
     than  the tape is written in, the driver overrides the user-
     selected format. For example, if a 1/4"  cartridge  tape  is
     written  in QIC-24 format and opened for reading in QIC-150,
     the driver will detect a read failure on the first read  and
     automatically switch to QIC-24 to read the data.

     Note that if the low density format is used,  no  indication
     is  given  that  the driver has overridden the user-selected
     format. Other formats issue a warning message  to inform the
     user   of  an  overridden  format  selection.  Some  devices
     automatically perform  this  function  and  do  not  require
     driver support (1/2" reel tape drive, for example).

  Write Operation
     Writing from the beginning  of  tape  is  performed  in  the
     user-specified  format. The original tape format is used for
     appending onto previously written tapes.

  Tape Configuration
     The st tape driver has a built-in  configuration  table  for
     all  Sun  supported  tape drives. To support the addition of
     third party tape devices or to override  a  built-in  confi-
     guration,  device  information can be supplied in st.conf as
     global properties that apply to each node, or as  properties
     that  are  applicable  to one node only. The st driver looks
     for the property called  "tape-config-list."  The  value  of
     this property is a list of triplets, where each triplet con-
     sists of three strings.

     The formal syntax is:

     tape-config-list = <triplet> [, <triplet> *];
      where

     <triplet> := <vid+pid>, <pretty print>, <data-property-name>
     and

     <data-property-name> = <version>, <type>, <bsize>,
             <options>, <number of densities>,
             <density> [, <density>*], <default-density>;
     or

     <data-property-name> = <version 2>, <type>, <bsize>,
               <options>, <number of densities>,
               <density> [, <density>*], <default-density>,
               <non-motion time-out>, <I/O time-out>,
               <rewind time-out>, <space time-out>,
               <load time-out>, <unload time-out>,
               <erase time-out>;

     A semicolon (;) is used to  terminate  a  prototype  devinfo
     node  specification.   Individual elements listed within the
     specification should not be separated by a semicolon. (Refer
     to  driver.conf(4) for more information.)

     <vid+pid> is the string that is returned by the tape  device
     on a SCSI inquiry command. This string may contain any char-
     acter in the range 0x20-0x7e. Characters such as " " " (dou-
     ble  quote) or " ' " (single quote), which are not permitted
     in property value strings, are represented  by  their  octal
     equivalent  (for  example,  42 and  47). Trailing spaces may
     be truncated.

     <pretty print> is used to report the device on the  console.
     This  string  may  have  zero  length,  in  which  case  the
     <vid+pid> will be used to report the device.

     <data-property-name> is the name of the property which  con-
     tains  all  the  tape  configuration values (such as <type>,
     <bsize>, etc.) corresponding for  the  tape  drive  for  the
     specified <vid+pid>.

     <version> is a version number and should be 1 or 2.  In  the
     future,  higher  version  numbers  may  be used to allow for
     changes in the  syntax  of  the  <data-property-name>  value
     list.

     <type>  is  a  type  field.  Valid  types  are  defined   in
     /usr/include/sys/mtio.h. For third party tape configuration,
     the following generic types are recommended:

     MT_ISQIC                      0x32
     MT_ISREEL                     0x33
     MT_ISDAT                      0x34
     MT_IS8MM                      0x35
     MT_ISOTHER                    0x36

     <bsize> is the preferred block size of the tape device.  The
     value should be 0 for variable block size devices.

     <options> is a bit  pattern  representing  the  devices,  as
     defined   in   /usr/include/sys/scsi/targets/stdef.h.  Valid
     flags for tape configuration are:

     ST_VARIABLE                            0x0001
     ST_QIC                                 0x0002
     ST_REEL                                0x0004
     ST_BSF                                 0x0008
     ST_BSR                                 0x0010
     ST_LONG_ERASE                          0x0020
     ST_AUTODEN_OVERRIDE                    0x0040
     ST_NOBUF                               0x0080
     ST_KNOWS_EOD                           0x0200
     ST_UNLOADABLE                          0x0400
     ST_SOFT_ERROR_REPORTING                0x0800
     ST_LONG_TIMEOUTS                       0x1000
     ST_NO_RECSIZE_LIMIT                    0x8000
     ST_MODE_SEL_COMP                       0x10000
     ST_NO_RESERVE_RELEASE                  0x20000
     ST_READ_IGNORE_ILI                     0x40000
     ST_READ_IGNORE_EOFS                    0x80000
     ST_SHORT_FILEMARKS                     0x100000
     ST_EJECT_TAPE_ON_CHANGER_FAILURE       0x200000
     ST_RETRY_ON_RECOVERED_DEFERRED_ERROR   0x400000

     ST_VARIABLE
           The  flag indicates the  tape device supports variable
           length record sizes.

     ST_QIC
           The flag indicates  a  Quarter  Inch  Cartridge  (QIC)
           tape device.

     ST_REEL
           The  flag indicates a  1/2-inch reel tape device.

     ST_BSF
           If flag is set,  the device  supports  backspace  over
           EOF marks (bsf - see mt(1)).

     ST_BSR
           If flag is set, the tape device supports the backspace
           record  operation  (bsr  -  see mt(1)).  If the device
           does not support  bsr,  the  st  driver  emulates  the
           action  by  rewinding  the  tape and using the forward
           space record (fsf) operation to forward  the  tape  to
           the  correct  file. The driver then uses forward space
           record (fsr - see mt(1)) to forward the  tape  to  the
           correct record.

     ST_LONG_ERASE
           The flag indicates the tape device needs a longer time
           than normal to erase.

     ST_AUTODEN_OVERRIDE
           The auto-density override flag.  The device is capable
           of  determining the tape density automatically without
           issuing a "mode-select"/"mode-sense command."

     ST_NOBUF
           The   flag disables the device's  ability  to  perform
           buffered  writes.   A  buffered  write occurs when the
           device acknowledges the completion of a write  request
           after  the  data  has  been  written  to  the device's
           buffer, but before all of the data has been written to
           the tape.

     ST_KNOWS_EOD
           If  flag is set,   the device can determine  when  EOD
           (End of Data) has been reached. When this flag is set,
           the st driver uses  fast  file  skipping.   Otherwise,
           file skipping happens one file at a time.

     ST_UNLOADABLE
           The  flag indicates  the device will not  complain  if
           the  st  driver  is  unloaded  and  loaded  again (see
           modload(1M) and modunload(1M)). That  is,  the  driver
           will return the correct inquiry string.

     ST_SOFT_ERROR_REPORTING
           The  flag indicates the tape device   will  perform  a
           "request sense" or "log sense" command when the device
           is closed.  Currently, only  Exabyte  and  DAT  drives
           support this feature.

     ST_LONG_TIMEOUTS
           The  flag indicates  the tape device requires timeouts
           that  are   five  times  longer  than usual for normal
           operation.

     ST_BUFFERED_WRITES
           This option is obsolete; if specified, it is  ignored.
           Installations   which  previously  used  this  feature
           should refer to the documentation on asynchronous I/O:
           aioread(3AIO) and aiowrite(3AIO).

     ST_NO_RECSIZE_LIMIT (SPARC Only)
           The  flag applies to variable-length tape devices.  If
           this  flag is set, the record size is not limited to a
           64 Kbyte record size.  The record size is only limited
           by  the smaller of either the record size supported by
           the device or the maximum DMA  transfer  size  of  the
           system. (Refer to Large Record Sizes and WARNINGS.)

     ST_MODE_SEL_COMP
           If the ST_MODE_SEL_COMP flag is set, the driver deter-
           mines  which of the two mode pages the device supports
           for selecting or deselecting  compression.   It  first
           tries  the Data Compression mode page  (0x0F); if this
           fails, it tries the  Device  Configuration  mode  page
           (0x10).  Some  devices,  however,  may need a specific
           density code for  selecting  or  deselecting  compres-
           sion.   Please  refer  to  the  device  specific  SCSI
           manual.  When the flag is  set,  compression  will  be
           enabled  only   if the "c" or "u" device is used.  For
           any other device densities, compression will  be  dis-
           abled.

     ST_NO_RESERVE_RELEASE
           The ST_NO_RESERVE_RELEASE flag  disables  the  use  of
           reserve on open and release on close. If an attempt to
           use a ioctl of MTRESERVE or MTRELEASE on a drive  with
           this  flag  set,  it  will  return  an error of ENOTTY
           (inappropriate ioctl for device).

     ST_READ_IGNORE_ILI
           The ST_READ_IGNORE_ILI  flag  is  applicable  only  to
           variable  block  devices  which  support  the SILI bit
           option. The  ST_READ_IGNORE_ILI  flag  indicates  that
           SILI  (supress incorrect length indicator) bit will be
           set during reads. When this flag is set,  short  reads
           (requested  read  size is less than the record size on
           the tape) will be successful and the number  of  bytes
           transferred  will  be  equal to the record size on the
           tape. The tape will be positioned at the start of  the
           next  record skipping over the extra data (the remain-
           ing  data  has  been  has  been  lost).   Long   reads
           (requested  read  size is more than the record size on
           the tape) will see a large performance gain when  this
           flag is set, due to overhead reduction. When this flag
           is not set,  short  reads  will  return  an  error  of
           ENOMEM.

     ST_READ_IGNORE_EOFS
           The ST_READ_IGNORE_EOFS flag  is  applicable  only  to
           1/2"  Reel Tape drives and when performing consecutive
           reads only. It should not be used for any  other  tape
           command.  Usually End-of-recorded-media (EOM) is indi-
           cated by two EOF marks on 1/2"  tape  and  application
           cannot  read  past EOM. When this flag is set, two EOF
           marks no longer indicate EOM allowing applications  to
           read  past  two  EOF  marks.  In  this  case it is the
           responsibility of the application  to  detect  end-of-
           recorded-media  (EOM).  When  this  flag  is set, tape
           operations (like MTEOM) which positions  the  tape  at
           end-of-recorded-media  will  fail  since  detection of
           end-of-recorded-media (EOM) is to be  handled  by  the
           application.  This  flag  should  be  used when backup
           applications have embedded  double  filemarks  between
           files.

     ST_SHORT_FILEMARKS
           The ST_SHORT_FILEMARKS flag is applicable only to EXA-
           BYTE  8mm  tape drives which supports short filemarks.
           When this flag is set, short filemarks  will  be  used
           for  writing filemarks.  Short filemarks could lead to
           tape incompatible with some otherwise compatible  dev-
           ice.  By default long filemarks will be used for writ-
           ing filemarks.

     ST_EJECT_TAPE_ON_CHANGER_FAILURE
           If ST_EJECT_TAPE_ON_CHANGER_FAILURE flag is  set,  the
           tape  will  be  ejected automatically if the tape car-
           tridge is trapped in the  medium  due  to  positioning
           problems of the medium changer.

           The following ASC/ASCQ keys are defined to the reasons
           for        causing        tape       ejection       if
           ST_EJECT_TAPE_ON_CHANGER_FAILURE  option  is  set   to
           0x200000:

                Sense  ASC/ASCQ  Description
                Key
                4      15/01     Mechanical Failure
                4      44/00     Internal Target Failure
                2      53/00     Media Load or Eject Failed
                4      53/00     Media Load or Eject Failed
                4      53/01     Unload Tape Failure

     ST_RETRY_ON_RECOVERED_DEFERRED_ERROR
           If ST_RETRY_ON_RECOVERED_DEFERRED_ERROR flag  is  set,
           the  st  driver  will retry the last write if this cmd
           caused a check condition  with  error  code  0x71  and
           sense  code  0x01.   Some tape drives, notably the IBM
           3090, require this option.

     <number of densities> is the number of densities  specified.
     Each  tape drive can support up to four densities. The value
     entered should therefore be between 1 and 4; if less than 4,
     the remaining densities will be assigned a value of 0x0.

     <density> is a single-byte hexadecimal number. It can either
     be  found  in the device specification manual or be obtained
     from the device vendor.

     <default-density> has a value between 0 and (<number of den-
     sities> - 1).

     <non-motion time-out> Time in seconds that the drive  should
     be  able  to  perform  any SCSI command that doesn't require
     tape to be moved. This includes  mode  sense,  mode  select,
     reserve, release, read block limits, and test unit ready.

     <I/O time-out> Time in seconds to perform data transfer  I/O
     to or from tape including worst case error recovery.

     <rewind time-out> Time in seconds to rewind from anywhere on
     tape  to  BOT including worst case recovery forcing buffered
     write data to tape.

     <space time-out> Time in seconds to space to any file, block
     or  end  of data on tape. Including worst case when any form
     of cataloging is invalid.

     <load time-out> Time in seconds to load tape and be ready to
     transfer   first  block.  This  should  include  worst  case
     recovery reading tape catalog or drive  specific  operations
     done at load.

     <unload time-out> Time in seconds  to  unload  tape.  Should
     include  worst  case time to write to catalog, unthread, and
     tape cartridge unloading. Also  should  include  worst  case
     time for any drive specific operations that are preformed at
     unload. Should not include rewind time as the driver rewinds
     tape before issuing the unload.

     <erase time-out> Time in seconds to preform a full  (BOT  to
     EOT) erase of longest medium with worst case error recovery.

  Device Statistics Support
     Each device maintains I/O statistics both for the device and
     for   each  partition   allocated  on  that device. For each
     device/partition,  the  driver  accumulates  reads,  writes,
     bytes  read,  and  bytes  written. The driver also takes hi-
     resolution time stamps at  queue  entry  and   exit  points,
     which  facilitates monitoring the residence time and cumula-
     tive residence-length product for each queue.

     Each device also has error statistics  associated  with  it.
     These must include counters for hard errors, soft errors and
     transport errors. Other data may be implemented as required.


IOCTLS

     The behavior of SCSI tape positioning  ioctls  is  the  same
     across  all devices which support them. (Refer to mtio(7I).)
     However, not all devices  support  all  ioctls.  The  driver
     returns an  ENOTTY error on unsupported ioctls.

     The retension ioctl only applies to 1/4" cartridge tape dev-
     ices. It is used to restore tape tension, thus improving the
     tape's soft error rate after extensive start-stop operations
     or long-term storage.

     In order to increase  performance  of  variable-length  tape
     devices (particularly when they are used to read/write small
     record sizes), two operations in the MTIOCTOP ioctl,  MTSRSZ
     and MTGRSZ, can be used to set and get fixed record lengths.
     The ioctl also works with  fixed-length  tape  drives  which
     allow  multiple  record  sizes. The min/max limits of record
     size allowed on a driver are found by using  a  SCSI-2  READ
     BLOCK  LIMITS  command to the device. If this command fails,
     the default min/max record sizes allowed are 1 byte and  63k
     bytes.  An  application that needs to use a different record
     size opens the device, sets the size with the MTSRSZ  ioctl,
     and  then  continues  with  I/O.  The scope of the change in
     record size remains until the device  is  closed.  The  next
     open  to  the  device  resets the record size to the default
     record size (retrieved from st.conf).

     Note that the error status is reset  by  the   MTIOCGET  get
     status ioctl call or by the next read, write, or other ioctl
     operation. If no error has occurred (sense key  is  0),  the
     current file and record position is returned.


ERRORS

     EACCES
           The driver is opened for write access and the tape  is
           write-protected  or  the  tape  unit  is  reserved  by
           another host.

     EBUSY The tape drive is in use by another process.  Only one
           process  can use the tape drive at a time.  The driver
           will allow  a grace period for the  other  process  to
           finish before reporting this error.

     EINVAL
           The number of bytes read or written is not a  multiple
           of the physical record size (fixed-length tape devices
           only).

     EIO   During opening, the tape device is not  ready  because
           either  no  tape  is in the drive, or the drive is not
           on-line.  Once open, this error  is  returned  if  the
           requested I/O transfer could not be completed.

     ENOTTY
           This indicates that the tape device does  not  support
           the requested ioctl function.

     ENXIO During opening, the tape device does not exist.

     ENOMEM
           This indicates that the record size on the tape  drive
           is more than the requested size during read operation.


EXAMPLES

     Example 1: Global tape-config list property

     The following is an example  of  a  global  tape-config-list
     property:

     tape-config-list =
                                                                       "Magic DAT", "Magic 4mm Helical Scan", "magic-data",
                                                                       "Major Appliance", "Major Appliance Tape", "major-tape";

     magic-data    = 1,0x34,1024,0x1639,4,0,0x8c,0x8c,0x8c,3;
     major-tape = 2,0x3c,0,0x18619,4,0x0,0x0,0x0,0x0,3,0,0,30,120,0,0,36000;

     name="st" class="scsi"
               target=0 lun=0;
     name="st" class="scsi"
               target=1 lun=0;
     name="st" class="scsi"
               target=2 lun=0;
               .
               .
               .
     name="st" class="scsi"
               target=6 lun=0;

     Example 2: Tape-config-list property applicable to target  2
     only

     The following is an example of a  tape-config-list  property
     applicable to  target 2 only:

     name="st" class="scsi"
             target=0 lun=0;
     name="st" class="scsi"
             target=1 lun=0;
     name="st" class="scsi"
             target=2 lun=0
             tape-config-list =
             "Magic   DAT", "Magic 4mm Helical Scan", "magic-data"
             magic-data = 1,0x34,1024,0x1639,4,0,0x8c,0x8c,0x8c,3;
     name="st" class="scsi"
             target=3 lun=0;
               .
               .
               .
     name="st" class="scsi"
             target=6 lun=0;

  Large Record Sizes
     To  support  applications  such  as  seismic  programs  that
     require  large  record  sizes, the flag  ST_NO_RECSIZE_LIMIT
     must be set in drive option in the  configuration  entry.  A
     SCSI  tape drive that needs to transfer large records should
     OR this flag with other flags  in  the  'options'  field  in
     st.conf.  (Refer  to  Tape Configuration.) By default,  this
     flag is set for the built-in config entries of  Archive  DAT
     and Exabyte drives.

     If this flag is set, the st  driver  issues  a  SCSI-2  READ
     BLOCK  LIMITS command to the device to determine the maximum
     record size allowed by it.  If the command fails, st contin-
     ues  to  use  the  maximum  record  sizes  mentioned  in the
     mtio(7I) man page.

     If the command succeeds, st restricts the  maximum  transfer
     size  of  a  variable-length  device to  the minimum of that
     record size and the maximum  DMA size that the host  adapter
     can  handle.   Fixed-length devices are bound by the maximum
     DMA size allocated by the machine.  Note that tapes  created
     with  a  large  record  size  may not be readable by earlier
     releases or on other platforms.

     (Refer to the WARNINGS section for more information.)

  EOT Handling
     The Emulex drives have only a physical end of  tape  (PEOT);
     thus  it is not possible to write past EOT. All other drives
     have a logical end of tape (LEOT) before PEOT  to  guarantee
     flushing  the  data  onto  the  tape.  The amount of storage
     between  LEOT and  PEOT varies from less  than  1  Mbyte  to
     about 20 Mbyte, depending on the tape drive.

     If EOT is encountered while writing an Emulex, no  error  is
     reported  but  the  number  of bytes transferred is 0 and no
     further writing is allowed. On all other drives,  the  first
     write that encounters EOT will return a short count or 0. If
     a short count is returned, then the next write  will  return
     0.  After a zero count is returned, the next write returns a
     full count or short  count.  A  following  write  returns  0
     again.  It  is important that the number and size of trailer
     records be kept as small as possible to prevent  data  loss.
     Therefore, writing after EOT is not recommended.

     Reading past  EOT is transparent to the  user.   Reading  is
     stopped  only by reading EOF's. For 1/2" reel devices, it is
     possible to read off the end of the reel if one  reads  past
     the two file marks which mark the end of recorded media.


FILES

     /kernel/drv/st.conf
           driver configuration file

     /usr/include/sys/mtio.h
           structures and definitions for  mag  tape  io  control
           commands

     /usr/include/sys/scsi/targets/stdef.h
           definitions for SCSI tape drives

     /dev/rmt/[0- 127][l,m,h,u,c][b][n]
           where l,m,h,u,c specifies the  density  (low,  medium,
           high,  ultra/compressed),  b the optional BSD behavior
           (see  mtio(7I)),  and   n  the  optional   no   rewind
           behavior. For example, /dev/rmt/0lbn specifies unit 0,
           low density, BSD behavior, and no rewind.

           For 1/2" reel tape devices (HP-88780),  the  densities
           are:

           l                             800 BPI density
           m                             1600 BPI density
           h                             6250 BPI density
           c                             data compression
                                         (not supported on all modules)

           For 8mm tape devices (Exabyte 8200/8500/8505):

           l                             Standard 2 Gbyte format
           m                             5 Gbyte format (8500, 8505 only)
           h,c                           5 Gbyte compressed format  (8505
                                         only)

           For 4mm DAT tape devices (Archive Python):

           l                             Standard format
           m,h,c                         data compression

           For all QIC (other than QIC-24) tape devices:

           l,m,h,c                       density of the tape cartridge type
                                         (not all devices can read and
                                         write all formats)

           For QIC-24 tape devices (Emulex MT-02):

           l                             QIC-11 Format
           m,h,c                         QIC-24 Format


SEE ALSO

     mt(1),   modload(1M),   modunload(1M),   open(2),   read(2),
     write(2),   aioread(3AIO),   aiowrite(3AIO),  kstat(3KSTAT),
     driver.conf(4),  scsi(4),  standards(5),  esp(7D),  isp(7D),
     scsa2usb(7D), mtio(7I), ioctl(9E)


DIAGNOSTICS

     The st driver diagnostics may be printed to the  console  or
     messages  file.

     Each diagnostic is dependent on  the  value  of  the  system
     variable  st_error_level.   st_error_level may be set in the
     /etc/system file. The default setting for  st_error_level is
     4  (SCSI_ERR_RETRYABLE)   which  is suitable for most confi-
     gurations since only actual fault diagnostics  are  printed.
     Settings  range  from  values 0 (SCSI_ERR_ALL) which is most
     verbose, to 6 (SCSI_ERR_NONE) which is least  verbose.   See
     stdef.h  for  the  full  list  of error-levels. SCSI_ERR_ALL
     level the amount of diagnostic information is likely  to  be
     excessive and unnecessary.

     The ST driver diagnostics are described below:

     Error for Command: <scsi_cmd_name()> Error Level:<error_class>
     Requested Block: <blkno>  Error Block: <err_blkno>
     Vendor: <name>: Serial Number: <inq_serial>
     Sense Key: <es_key> ASC: 0x<es_add_code> (scsi_asc_ascq_name()>), ASCQ:
     0x<es_qual_code>, FRU: 0x<ex_fru_code>

     where <error_class> may be any one of the following:  "All",
     "Unknown", "Informational","Recovered", "Retryable", "Fatal"

     The command  indicated by <scsi_cmd_name> failed.  Requested
     Block represents the block where the transfer started. Error
     Block represents the block that caused the error. Sense Key,
     ASC,  ASCQ  and FRU information is returned by the target in
     response to a request sense command. See SCSI protocol docu-
     mentation for description of Sense Key, ASC, ASCQ, FRU.

     Write/read: not modulo <n> block size

     The request size for fixed record size  devices  must  be  a
     multiple of the specified block size.

     Recovery by resets failed

     After a transport error, the driver attempted to recover  by
     issuing  a device reset and then a bus reset if device reset
     failed. These recoveries failed.

     Periodic head cleaning required

     The driver reported  that  periodic  head  cleaning  is  now
     required.  This  diagnostic  is  generated  either  due to a
     threshold number of retries, or due to the  device  communi-
     cating to the driver that head cleaning is required.

     Soft error rate (<n>%) during writing/reading was too high

     The soft error rate has exceeded the threshold specified  by
     the vendor.

     SCSI transport failed: reason 'xxxx': {retrying|giving up}

     The Host Bus Adapter (HBA) has failed to transport a command
     to  the target for the reason stated. The driver will either
     retry the command or, ultimately, give up.

     Tape not inserted in drive

     A media access command was attempted while there was no tape
     inserted  into  the specified drive. In this case, the drive
     returns sense key of DRIVE NOT READY.

     Transport rejected

     The Host Bus Adapter (HBA) driver is not accepting  commands
     after failing to successfully transport a scsi packet to the
     target. The actual status received by the st driver from the
     underlying   HBA   driver  was  either  TRAN_FATAL_ERROR  or
     TRAN_BADPKT.

     Retrying command

     The st driver failed to complete a command. However the com-
     mand is retryable and will be retried.

     Giving up

     The st driver has exhausted retries or otherwise  is  unable
     to retry the command and so is giving up.

     No target struct for st%d

     The st driver failed to obtain state information because the
     requested  state  structure was not allocated. The specified
     device was probably not attached.

     File mark detected

     The operation detected an end of file mark. (File marks sig-
     nify the end of a file on the tape media).

     End-of-media detected

     The operation reached the end of the tape media.

     Exabyte soft error reporting failed. DAT soft error reporting failed

     The st driver was unable to  determine  if  the  soft  error
     threshold  had been exceeded because it did not successfully
     read the data it requires or did  not  obtain  enough  data.
     This data is retrieved using the log sense command.

     Log sense parameter code does not make sense

     The log sense command retrieves hardware statistics that are
     stored  on  the  drive  (for  example, soft error counts and
     retries.) If the data retrieved from the drive  is  invalid,
     this message is printed and the data is not used.

     Restoring tape position at fileno=%x, blkno=%lx....

     The st driver is  positioning  to  the  specified  file  and
     block. This occurs on an open.

     Failed to restore the last <file/block> position:
     In this state, tape will be loaded at BOT during next open

     The st driver could not position to the  specified  location
     and  will  revert to the beginning of the tape when the next
     open is attempted.

     Device does not support compression

     The compression facility of the device was  requested.  How-
     ever  the  device does not have a hardware compression capa-
     bility.

     DAT soft error reset failed

     After DAT soft error reporting, the counters within the dev-
     ice  that  accumulate  this  sense   data need to be re-set.
     This operation failed.

     Errors after pkt alloc (b_flags=0x%x, b_error=0x%x)

     Memory allocation for a scsi packet failed.

     Incorrect length indicator set

     The drive reported the length of data requested  in  a  READ
     operation,  was  incorrect. Incorrect Length Indicator (ILI)
     is a very commonly used facility in SCSI tape  protocol  and
     should  not  be seen as an error per-se.  Applications typi-
     cally probe a new tape with a read of any length, using  the
     returned  length  to  the read system call for future reads.
     Along with  this  operation,  an  underlying  ILI  error  is
     received.  ILI  errors  are therefore informational only and
     are masked at the default st_error_level.

     Data property (%s) has no value
     Data property (%s) incomplete
     Version # for data property (%s) greater than 1

     These diagnostics indicate problems in retrieving the values
     of  the  various  property settings. The st driver is in the
     process of setting the  property/parameter  values  for  the
     tape  drive using information from either the built-in table
     within the driver or from uncommented entries in the st.conf
     file.  The  effect  on the system may be that the tape drive
     may be set with default or generic driver settings which may
     not  be  appropriate for the actual type of tape drive being
     used.

     st_attach-RESUME: tape failure tape position will be lost

     On a resume after a power management suspend, the previously
     known  tape  position  is no longer valid. This can occur if
     the tape was changed while the system was in  power  manage-
     ment suspend. The operation will not be retried.

     Write Data Buffering has been deprecated. Your applications should
     continue to work normally. However, they should be ported to use
     Asynchronous I/O.

     Indicates that buffering has been removed from Solaris.

     Cannot detach: fileno=%x, blkno=%lx

     The st driver cannot unload because the tape  is  not  posi-
     tioned  at  BOT  (beginning of tape).  May indicate hardware
     problems with the tape drive.

     Variable record length I/O
     Fixed record length (%d byte blocks) I/O

     Tape-drives can use either Fixed or Variable record  length.
     If  the  drive  uses Fixed length records, then the built in
     property table or the st.conf file will contain  a  non-zero
     record-length  property.  Most  DAT,  Exabyte and DLT drives
     support Variable record lengths. Many QIC format tape drives
     have historically been of Fixed record length.

     Command will be retried
      un_ncmds: %d can't retry cmd

     These diagnostics are only seen with tape  drives  with  the
     ST_RETRY_ON_RECOVERED_DEFERRED_ERROR  bit  set.  See stdef.h
     for explanation of the specific usage of this setting.


WARNINGS

     Effective with Solaris 2.4, the ST_NO_RECSIZE_LIMIT flag  is
     set  for the built-in config entries of the Archive  DAT and
     Exabyte drivers by default. (Refer to  Large Record  Sizes.)
     Tapes  written  with  large block sizes prior to Solaris 2.4
     may cause some applications to fail if the number  of  bytes
     returned  by a read request is less than the requested block
     size (for example, asking for 128 Kbytes and receiving  less
     than 64 Kbytes).
     The ST_NO_RECSIZE_LIMIT flag can be disabled in  the  config
     entry for the device as a work-around. (Refer to Tape Confi-
     guration.) This action disables  the  ability  to  read  and
     write  with  large   block  sizes  and allows the reading of
     tapes written prior to  Solaris 2.4 with large block sizes.

     (Refer to mtio(7I)  for  a  description  of  maximum  record
     sizes.)


BUGS

     Tape devices that do not return a BUSY  status  during  tape
     loading prevent user commands from being held until the dev-
     ice is ready. The user must delay issuing  any  tape  opera-
     tions  until the tape device is ready. This is not a problem
     for tape devices supplied by Sun Microsystems.

     Tape devices that do not report a blank check error  at  the
     end  of recorded media may cause file positioning operations
     to fail. Some tape drives, for  example,  mistakenly  report
     media error instead of blank check error.


Man(1) output converted with man2html