smp_rep_zone_perm_tbl - invoke REPORT ZONE PERMISSION TABLE function
smp_rep_zone_perm_tbl [--append] [--bits=COL]
[--help] [--hex] [--interface=PARAMS] [--multiple]
[--nocomma] [--num=MD] [--permf=FN] [--raw]
[--report=RT] [--sa=SAS_ADDR] [--start=SS]
[--verbose] [--version] SMP_DEVICE[,N]
Sends one or more SAS Serial Management Protocol (SMP) REPORT 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 a HBA (an SMP initiator) and
needs the additional ,N to differentiate between HBAs if there are
multiple present.
This SMP function returns zone permission descriptors which
represent rows of the zone permission table. There is a row for each source
zone group starting at zone group 0 and finishing at zone group 127 or zone
group 255. Due to the SMP response size restriction of 1028 bytes (including
trailing CRC), not all the zone permission table rows can be returned in one
REPORT ZONE PERMISSION TABLE function response. So multiple function calls
may be required with the --start=SS option being used on the latter
calls to specify the next starting source zone group.
The --multiple option will send multiple REPORT ZONE
PERMISSION TABLE requests until all source zone groups (or starting from
--start=SS) are output. This option is the most convenient way to
output the whole zone permission table. In the absence of the
--multiple option only one REPORT ZONE PERMISSION TABLE request is
sent.
The output of this utility is designed to be useful as input to
the smp_conf_zone_perm_tbl utility. In other words these utilities can be
used to save and restore zone permission table settings.
Mandatory arguments to long options are mandatory for short options as well.
- -a, --append
- used in conjunction with --permf=FN to append to FN if it
already exists. If FN does not exist then it is created.
- -B, --bits=COL
- This is an alternate zone permission table represention showing single
bits with the origin (i.e. ZP[0,0]) in the top left. The output is a bit
array with COL columns and up to COL rows. This output
resembles the example zone permission tables shown in the SAS draft
documents (at t10.org). The default (i.e. without this option) is output
that reflects the byte oriented, big endian nature of SCSI (and hence SMP)
commands. The output produced by this option is not suitable as input for
the smp_conf_zone_perm_tbl utility.
- -f, --start=SS
- starting (first and lowest numbered) source zone group (default: zone
group 0).
- -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.
- -m, --multiple
- starting at source zone group 0 (or SS), multiple REPORT ZONE
PERMISSION TABLE requests are issued until the last (127th and 255th)
source zone descriptor is output. This option should not be given together
with the --num=MD option.
- -N, --nocomma
- output each zone group descriptor as a long string of hexadecimal digits,
two digits per byte. Default action is to output a comma separated list of
hexadecimal ASCII bytes for each zone group descriptor.
- -n, --num=MD
- where MD is the maximum number of descriptors that can be reported
in the one response. The default value is 63. 63 is the maximum number of
"128 zone groups" sized descriptors that can fit in one
response. If the expander is using "256 zone groups" sized
descriptors then a maximum of 31 descriptors can fit in one response. This
option should not be given together with the --multiple
option.
- -P, --permf=FN
- FN is a file to write the zone permission descriptors to. The
default action is to output the zone permissions descriptors to stdout.
Note that the whole permissions table may not fit in one response. If the
FN exists then it is truncated prior to the write unless
--append is given. To append to the existing FN add the
--append option.
- -r, --raw
- send the response (less the CRC field) to stdout in binary. All error
messages are sent to stderr.
- -R, --report=RT
- set the 'report type' field in the SMP request. RT may take these
values: 0 for report current values (default); 1 for report the shadow
values; 2 for report saved values; 3 for report default values.
- -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 hexadecimal either prefix it with '0x' or
put a trailing 'h' on it.
- -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 times.
- -V, --version
- print the version string and then exit.
When the --permf=FN is given and SS is greater than zero then a
line of the form "--start=SS" is written to FN just
prior to the first row of zone permissions.
There are some examples of the --permf=FN format in the
examples directory.
The SMP REPORT ZONE PERMISSION TABLE function was introduced in SAS-2 .
Written by Douglas Gilbert.
Report bugs to <dgilbert at interlog dot com>.
Copyright © 2011 Douglas Gilbert
This software is distributed under a FreeBSD license. There is NO warranty; not
even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
smp_utils, smp_conf_zone_perm_tbl, smp_zone_lock(smp_utils)