smp_zoned_broadcast - invoke ZONED BROADCAST SMP function
] [ --help
] [ --verbose
Sends a SAS Serial Management Protocol (SMP) ZONED BROADCAST function request to
an SMP target. The SMP target is identified by the SMP_DEVICE
. Depending on the interface, the SAS_ADDR
deduced from the SMP_DEVICE
. The mpt interface uses SMP_DEVICE
to identify a HBA (an SMP initiator) and needs the additional ,N
differentiate between HBAs if there are multiple present.
This function requires zoning to be enabled. To send a Broadcast (Change) in the
absence of zoning, the least intrusive way seems to be to use a PHY CONTROL
request to send a link reset to an expander phy. Broadcast (Change) should
cause a management application client behind an SMP initiator port (e.g. a SAS
HBA) to start a discover process.
Mandatory arguments to long options are mandatory for short options as well.
- -b, --broadcast=BT
- BT is the broadcast type, an integer in the range 0
(default) to 15. Broadcast (Change) corresponds to 0 and will cause SMP
initiators that receive it to do their discover process. Other known
broadcast types are listed in the NOTES section. BT may be decimal
(default) or hexadecimal prefixed by '0x' (or '0X') or with a 'h' (or 'H')
- -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. In SPL-1 this field is marked as "restricted (for expected
expander change count)".
- -F, --fszg=FS
- where FS is the name of a file which contains one or
more source zone groups to send a broadcast to. The zone groups can be
given in decimal (default) or hexadecimal prefixed by '0x' (or '0X') or
with a 'h' (or 'H') suffix. A zone group is a number in the range 0 to
255. Each zone group can be separated by space, tab, comma or newline.
Empty lines and those starting with "#" are ignored.
- -h, --help
- output the usage message then exit.
- -H, --hex
- output the response (less the CRC field) in
- -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.
- -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 hexadecimal either prefix it
with '0x' or put a trailing 'h' on it.
- -S, --szg=ZGL
- one or more source zone groups for broadcast can appear as
a comma separated list ZGL. The may be decimal (default) or
hexadecimal prefixed by '0x' (or '0X') or with a 'h' (or 'H') suffix. A
zone group is a number in the range 0 to 255. Either this option or
--fszg=FS (but not both) should be given.
- -v, --verbose
- increase the verbosity of the output. Can be used multiple
- -V, --version
- print the version string and then exit.
The following is a list of broadcast types:
0 Broadcast (Change)
1 Broadcast (Reserved change 0)
2 Broadcast (Reserved change 1)
3 Broadcast (SES)
4 Broadcast (Expander)
5 Broadcast (Asynchronous event)
6 Broadcast (Reserved 3)
7 Broadcast (Reserved 4)
8 Broadcast (Zone activate)
The remaining zone types (9 to 15) may be issued by the ZONED BROADCAST
The SMP ZONED BROADCAST 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_zone_lock, smp_zone_unlock,