smp_rep_zone_perm_tbl man page

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.

Conforming to

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


Written by Douglas Gilbert.

Reporting Bugs

Report bugs to <dgilbert at interlog dot com>.

See Also

smp_utils, smp_conf_zone_perm_tbl, smp_zone_lock(smp_utils)


smp_utils 0.96 June 2011