Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Wednesday, July 27, 2022

smp_conf_zone_perm_tbl (8)


smp_conf_zone_perm_tbl - tion


smp_conf_zone_perm_tbl  [--deduce]  [--expected=EX]  [--help]   [--hex]
[--interface=PARAMS]  [--numzg=NG]  --permf=FN  [--raw] [--sa=SAS_ADDR]
[--save=SAV] [--start=SS] [--verbose] [--version] SMP_DEVICE[,N]



       smp_conf_zone_perm_tbl  -  invoke CONFIGURE ZONE PERMISSION TABLE func-

       smp_conf_zone_perm_tbl  [--deduce]  [--expected=EX]  [--help]   [--hex]
       [--interface=PARAMS]  [--numzg=NG]  --permf=FN  [--raw] [--sa=SAS_ADDR]
       [--save=SAV] [--start=SS] [--verbose] [--version] SMP_DEVICE[,N]

       Sends one or more SAS Serial Management Protocol (SMP)  CONFIGURE  ZONE
       PERMISSION  TABLE function requests to an SMP target. The SMP target is
       identified by the SMP_DEVICE and the --sa=SAS_ADDR.  Depending  on  the
       interface,  the  SAS_ADDR  may  be deduced from the SMP_DEVICE. The mpt
       interface uses SMP_DEVICE to identify an HBA  (an  SMP  initiator)  and
       needs the additional ,N to differentiate between HBAs if there are mul-
       tiple present.

       The zone permission table has a row for each source zone  group  and  a
       column  for  each  destination  zone  group.  Each element in the table
       (ZP[s,d]) is a single bit indicating whether the source zone group  can
       access  the  destination zone group (the bit is set: 1) or not (the bit
       is clear: 0).  There are two different table sizes: 128  and  256  zone
       groups.  Descriptors  provided  to  this function request are either 16
       bytes (128 bits) or 32 bytes (256 bits) long. Each descriptor is  basi-
       cally a row in the zone permission table.

       Apart  from  being  row in the zone permission table each descriptor is
       transposed and applied to the corresponding destination  column.   This
       "maintains  symmetry  about the ZP[s,s] table axis" in the words of the
       draft. Also descriptors are applied in the order that  they  appear  in
       the request (i.e. ascending source zone group numbers).

       The  maximum  number  of descriptors that one CONFIGURE ZONE PERMISSION
       TABLE function request can hold is limited to 63 if there are 128  zone
       groups;  and is limited to 31 if there are 256 zone groups. A full zone
       table will contain 128 (or 256) descriptors so to configure a full  ta-
       ble requires multiple CONFIGURE ZONE PERMISSION TABLE requests.

       The  number  of zone permission configuration descriptors is determined
       by reading the FN file associated with the --permf=FN option.  If there
       are  more descriptors than can fit in one CONFIGURE ZONE PERMISSION TA-
       BLE function request then multiple requests are sent.  All  descriptors
       found  in  the FN file will be sent unless an earlier function response
       indicates there has been an error.

       Mandatory arguments to long options are mandatory for short options  as

       -d, --deduce
              deduce  number  of zone groups from number of bytes on active FN
              lines.  With 128 zone groups each active line  will  contain  16
              (or less) bytes.  With this option if any active line in FN con-
              tains more than 16 bytes then 256 zone groups are assumed,  oth-
              erwise  128 zone groups are assumed. This option cannot be given
              with the --numzg=NG option (as they may contradict one another).

       -E, --expected=EX
              set the 'expected  expander  change  count'  field  in  the  SMP
              request.  The value EX is from 0 to 65535 inclusive with 0 being
              the default value. When EX is greater  than  zero  then  if  the
              value  doesn't match the expander change count of the SMP target
              (i.e. the expander) when the request  arrives  then  the  target
              ignores  the  request  and  sets  a  function result of "invalid
              expander change count" in the response.

       -f, --start=SS
              starting (first) source zone group (default: zone group  0).  If
              multiple  function  requests  are sent, this field in subsequent
              function requests will be adjusted to reflect those  descriptors
              already  sent.  Note  that the SS value may be picked up from FN
              and if this option and that value are not the same, an error  is

       -h, --help
              output the usage message then exit.

       -H, --hex
              output the response (less the CRC field) in hexadecimal.

       -I, --interface=PARAMS
              interface  specific  parameters. In this case "interface" refers
              to the path through the operating system to the  SMP  initiator.
              See the smp_utils man page for more information.

       -n, --numzg=ZG
              number of zone groups. ZG can be 0 (default) or 1. 0 implies 128
              zone groups while 1 implies 256 zone groups. This option  cannot
              be used with the --deduce option.

       -P, --permf=FN
              FN  is  a file containing zone permission configuration descrip-
              tors in ASCII hexadecimal; either as bytes separated  by  space,
              tab, comma or newline, or as longer strings of hexadecimal bytes
              in which every 2 digits represents a byte. Empty lines and those
              starting with "#" are ignored.  A line with "--start=<num>" will
              be taken as the starting source zone group  number  (i.e.  <num>
              becomes  SS)  unless  it contradicts the command line --start=SS
              option. Otherwise lines starting with "-" are ignored.

       -r, --raw
              send the response (less the CRC field) to stdout in binary.  All
              error messages are sent to stderr.

       -s, --sa=SAS_ADDR
              specifies  the  SAS  address  of  the SMP target device. The mpt
              interface  needs  this  option  and  it  will  typically  be  an
              expander's  SAS address. The SAS_ADDR is in decimal but most SAS
              addresses are shown in hexadecimal.  To give a number  in  hexa-
              decimal either prefix it with '0x' or put a trailing 'h' on it.

       -S, --save=SAV
              set the 'save' field in the SMP request. SAV may take these val-
              ues: 0 for updating the shadow values (default), 1 for  updating
              the  saved values, 2 for updating shadow values and if available
              the saved values, 3 for updating both saved and shadow values.

       -f, --start=SS
              See entry above, listed in order  by  its  short  option  letter
              (i.e.  -f).

       -v, --verbose
              increase  the  verbosity  of  the  output.  Can be used multiple

       -V, --version
              print the version string and then exit.

       See attributes(7) for descriptions of the following attributes:

       |Availability   | system/storage/smp_utils |
       |Stability      | Uncommitted              |

       For simplicity, each active line in the FN file should contain 16 or 32
       bytes.  16  bytes if there are 128 zone groups or 32 bytes if there are
       256 zone groups.

       SCSI is big endian. So for 128 zone groups, the first  byte  placed  in
       the  zone  permission configuration descriptor is ZP[0,127-120]. If the
       --start=SS option is given then the first byte is  ZP[SS,127-120].  For
       256  zone  groups, the first bytes are ZP[0,255-248] and ZP[SS,255-248]

       There is an annex  called  "Zone  permission  configuration  descriptor
       examples" in recent SAS-2 and later drafts (Annex H in spl2r03.pdf).

       There are some examples of the --permf=FN format in the examples direc-
       tory. Not all SAS-2 expanders properly implement  descriptor  transpose
       and  only  place  the descriptor in the row corresponding to the source
       zone group.

       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  http://sg.danny.cz/sg/p/smp_utils-0.98.tgz.

       Further information about this software can be found on the open source
       community website at http://sg.danny.cz/sg/smp_utils.html.

       The  SMP  CONFIGURE  ZONE  PERMISSION  TABLE function was introduced in
       SAS-2 .

       Written by Douglas Gilbert.

       Report bugs to <dgilbert at interlog dot com>.

       Copyright (C) 2011 Douglas Gilbert
       This software is distributed under a FreeBSD license. There is NO  war-
       ranty;  not  even  for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR-

       smp_utils, smp_conf_zone_phy_info, smp_zone_activate(smp_utils)

smp_utils-0.97                  September 2011       SMP_CONF_ZONE_PERM_TBL(8)