1SMP_CONF_ZONE_PERM_TBL(8) SMP_UTILS SMP_CONF_ZONE_PERM_TBL(8)
2
3
4
6 smp_conf_zone_perm_tbl - invoke CONFIGURE ZONE PERMISSION TABLE func‐
7 tion
8
10 smp_conf_zone_perm_tbl [--deduce] [--expected=EX] [--help] [--hex]
11 [--interface=PARAMS] [--numzg=NG] --permf=FN [--raw] [--sa=SAS_ADDR]
12 [--save=SAV] [--start=SS] [--verbose] [--version] SMP_DEVICE[,N]
13
15 Sends one or more SAS Serial Management Protocol (SMP) CONFIGURE ZONE
16 PERMISSION TABLE function requests to an SMP target. The SMP target is
17 identified by the SMP_DEVICE and the --sa=SAS_ADDR. Depending on the
18 interface, the SAS_ADDR may be deduced from the SMP_DEVICE. The mpt
19 interface uses SMP_DEVICE to identify an HBA (an SMP initiator) and
20 needs the additional ,N to differentiate between HBAs if there are mul‐
21 tiple present.
22
23 The zone permission table has a row for each source zone group and a
24 column for each destination zone group. Each element in the table
25 (ZP[s,d]) is a single bit indicating whether the source zone group can
26 access the destination zone group (the bit is set: 1) or not (the bit
27 is clear: 0). There are two different table sizes: 128 and 256 zone
28 groups. Descriptors provided to this function request are either 16
29 bytes (128 bits) or 32 bytes (256 bits) long. Each descriptor is basi‐
30 cally a row in the zone permission table.
31
32 Apart from being row in the zone permission table each descriptor is
33 transposed and applied to the corresponding destination column. This
34 "maintains symmetry about the ZP[s,s] table axis" in the words of the
35 draft. Also descriptors are applied in the order that they appear in
36 the request (i.e. ascending source zone group numbers).
37
38 The maximum number of descriptors that one CONFIGURE ZONE PERMISSION
39 TABLE function request can hold is limited to 63 if there are 128 zone
40 groups; and is limited to 31 if there are 256 zone groups. A full zone
41 table will contain 128 (or 256) descriptors so to configure a full ta‐
42 ble requires multiple CONFIGURE ZONE PERMISSION TABLE requests.
43
44 The number of zone permission configuration descriptors is determined
45 by reading the FN file associated with the --permf=FN option. If there
46 are more descriptors than can fit in one CONFIGURE ZONE PERMISSION TA‐
47 BLE function request then multiple requests are sent. All descriptors
48 found in the FN file will be sent unless an earlier function response
49 indicates there has been an error.
50
52 Mandatory arguments to long options are mandatory for short options as
53 well.
54
55 -d, --deduce
56 deduce number of zone groups from number of bytes on active FN
57 lines. With 128 zone groups each active line will contain 16
58 (or less) bytes. With this option if any active line in FN con‐
59 tains more than 16 bytes then 256 zone groups are assumed, oth‐
60 erwise 128 zone groups are assumed. This option cannot be given
61 with the --numzg=NG option (as they may contradict one another).
62
63 -E, --expected=EX
64 set the 'expected expander change count' field in the SMP
65 request. The value EX is from 0 to 65535 inclusive with 0 being
66 the default value. When EX is greater than zero then if the
67 value doesn't match the expander change count of the SMP target
68 (i.e. the expander) when the request arrives then the target
69 ignores the request and sets a function result of "invalid
70 expander change count" in the response.
71
72 -f, --start=SS
73 starting (first) source zone group (default: zone group 0). If
74 multiple function requests are sent, this field in subsequent
75 function requests will be adjusted to reflect those descriptors
76 already sent. Note that the SS value may be picked up from FN
77 and if this option and that value are not the same, an error is
78 generated.
79
80 -h, --help
81 output the usage message then exit.
82
83 -H, --hex
84 output the response (less the CRC field) in hexadecimal.
85
86 -I, --interface=PARAMS
87 interface specific parameters. In this case "interface" refers
88 to the path through the operating system to the SMP initiator.
89 See the smp_utils man page for more information.
90
91 -n, --numzg=ZG
92 number of zone groups. ZG can be 0 (default) or 1. 0 implies 128
93 zone groups while 1 implies 256 zone groups. This option cannot
94 be used with the --deduce option.
95
96 -P, --permf=FN
97 FN is a file containing zone permission configuration descrip‐
98 tors in ASCII hexadecimal; either as bytes separated by space,
99 tab, comma or newline, or as longer strings of hexadecimal bytes
100 in which every 2 digits represents a byte. Empty lines and those
101 starting with "#" are ignored. A line with "--start=<num>" will
102 be taken as the starting source zone group number (i.e. <num>
103 becomes SS) unless it contradicts the command line --start=SS
104 option. Otherwise lines starting with "-" are ignored.
105
106 -r, --raw
107 send the response (less the CRC field) to stdout in binary. All
108 error messages are sent to stderr.
109
110 -s, --sa=SAS_ADDR
111 specifies the SAS address of the SMP target device. The mpt
112 interface needs this option and it will typically be an
113 expander's SAS address. The SAS_ADDR is in decimal but most SAS
114 addresses are shown in hexadecimal. To give a number in hexa‐
115 decimal either prefix it with '0x' or put a trailing 'h' on it.
116
117 -S, --save=SAV
118 set the 'save' field in the SMP request. SAV may take these val‐
119 ues: 0 for updating the shadow values (default), 1 for updating
120 the saved values, 2 for updating shadow values and if available
121 the saved values, 3 for updating both saved and shadow values.
122
123 -f, --start=SS
124 See entry above, listed in order by its short option letter
125 (i.e. -f).
126
127 -v, --verbose
128 increase the verbosity of the output. Can be used multiple
129 times.
130
131 -V, --version
132 print the version string and then exit.
133
135 For simplicity, each active line in the FN file should contain 16 or 32
136 bytes. 16 bytes if there are 128 zone groups or 32 bytes if there are
137 256 zone groups.
138
139 SCSI is big endian. So for 128 zone groups, the first byte placed in
140 the zone permission configuration descriptor is ZP[0,127-120]. If the
141 --start=SS option is given then the first byte is ZP[SS,127-120]. For
142 256 zone groups, the first bytes are ZP[0,255-248] and ZP[SS,255-248]
143 respectively.
144
145 There is an annex called "Zone permission configuration descriptor
146 examples" in recent SAS-2 and later drafts (Annex H in spl2r03.pdf).
147
148 There are some examples of the --permf=FN format in the examples direc‐
149 tory. Not all SAS-2 expanders properly implement descriptor transpose
150 and only place the descriptor in the row corresponding to the source
151 zone group.
152
154 The SMP CONFIGURE ZONE PERMISSION TABLE function was introduced in
155 SAS-2 .
156
158 Written by Douglas Gilbert.
159
161 Report bugs to <dgilbert at interlog dot com>.
162
164 Copyright © 2011 Douglas Gilbert
165 This software is distributed under a FreeBSD license. There is NO war‐
166 ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
167 POSE.
168
170 smp_utils, smp_conf_zone_phy_info, smp_zone_activate(smp_utils)
171
172
173
174smp_utils-0.97 September 2011 SMP_CONF_ZONE_PERM_TBL(8)