SMP_CONF_ZONE_PERM_TBL(8) | SMP_UTILS | SMP_CONF_ZONE_PERM_TBL(8) |
smp_conf_zone_perm_tbl - invoke CONFIGURE ZONE PERMISSION TABLE function
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 multiple 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 basically 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 table 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 TABLE 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 well.
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] respectively.
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 directory. Not all SAS-2 expanders properly implement descriptor transpose and only place the descriptor in the row corresponding to the source zone group.
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 © 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_phy_info, smp_zone_activate(smp_utils)
September 2011 | smp_utils-0.97 |