sg_stpg - sends a SCSI SET TARGET PORT GROUPS command
sg_stpg [--active] [--help] [--hex] [--offline] [--optimized] [--raw]
[--standby] [--state=S,S...] [--tp=P,P...] [--unavailable] [--verbose]
Send a SCSI SET TARGET PORT GROUPS command to DEVICE. This utility has
different modes depending on whether the --tp= option is given.
If --tp= is given then the SET TARGET PORT GROUPS command parameter
block is built with a descriptor for each element in the list given to
--tp=. The corresponding asymmetric access state value is either taken
from the --state= list or, if that is not given, from one of the
explicit state options (e.g. --unavailable), used repeatedly if
If --tp= is not given then a sequence of SCSI commands are sent to the
DEVICE leading up to the SET TARGET PORT GROUPS command. First an
INQUIRY is sent to fetch the device identification VPD page to find the
(primary) target port group associated with DEVICE. Then a REPORT
TARGET PORT GROUPS command is issued to find the current state and
whether a transition to the requested state is supported. If so the SET
TARGET PORT GROUPS command is sent.
Target port group access is described in SPC-4 found at www.t10.org in
section 5.8 (in rev 11 dated 2007/5/14). The SET TARGET PORT GROUPS
command is also described in that document.
Arguments to long options are mandatory for short options as well. The
options are arranged in alphabetical order based on the long option
set active/non-optimized state.
output the usage message then exit.
output response to the REPORT TARGET PORT GROUPS command in hex
-O, -l, --offline
set offline state. This is the appropriate state to set a target
port to prior to removing the device. Note that a relative
target port identifier should be given with this state (rather
than a target port group identifier that all other states take).
set active/optimized state. If no other state options or --tp=
option are given then active/optimized is the default state.
output response to the REPORT TARGET PORT GROUPS command in
binary to stdout then exit.
set standby state. Port group shall accept those commands listed
for "unavailable" state plus LOG SELECT/SENSE, MODE
SELECT/SENSE, RECEIVE DIAGNOSTIC RESULTS, SEND DIAGNOSTIC,
PERSISTENT RESERVE IN/OUT commands.
specifies a comma separated list (one element of more) of
states. Either a number or an abbreviation can be given. A
number is assumed to be a decimal number unless it is prefixed
by "0x" or has a trailing "h" in which case a hexadecimal value
is assumed. Only the values 0, 1, 2, 3 or 14 are accepted. The
accepted abbreviations are "an", "ao", "o", "s" or "u"; which
represent active/non-optimized(1), active/optimized(0),
offline(14), standby(2) or unavailable(3) respectively.
specifies a comma separated list (one element of more). Each
elements is either a target port group identifier (when the
corresponding state is other than "offline") or a relative
target port identifier (when the corresponding state is
"offline"). Each element is assumed to be a decimal number
unless it is prefixed by "0x" or has a trailing "h" in which
case a hexadecimal value is assumed.
set unavailable state. Port group shall only accept INQUIRY,
REPORT LUNS, REPORT/SET TARGET PORT GROUPS, REQUEST SENSE and
READ/WRITE BUFFER commands.
increase the level of verbosity, (i.e. debug output).
print the version string and then exit.
The SET TARGET PORT GROUPS command should be supported whenever the
TPGS value in a standard INQUIRY response is 2 or 3. [View with sg_inq
Notice that the offline state is termed as a "secondary target port
asymmetric access state" and takes a relative target port identifier
(i.e. acts on a single target port). All the other states are termed
as "primary target port asymmetric access states" and each takes a
target port group identifier (i.e. acts on one or more target ports).
When --tp= is given then the same number of elements should be given to
the --state= option. If more than one list element is given to --tp=
and an equal number of elements is _not_ given to the the --state=
option, then if only one state is specified then it is repeated.
The exit status of sg_stpg is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
Written by Douglas Gilbert.
Report bugs to <dgilbert at interlog dot com>.
Copyright © 2007 Hannes Reinecke, Christophe Varoqui and Douglas
This software is distributed under a FreeBSD license. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
sg_inq, sg_rtpg (sg3_utils)