1SMP_DISCOVER(8) SMP_UTILS SMP_DISCOVER(8)
2
3
4
6 smp_discover - invoke DISCOVER SMP function
7
9 smp_discover [--brief] [--help] [--hex] [--ignore] [--interface=PARAMS]
10 [--list] [--multiple] [--num=NUM] [--phy=ID] [--raw] [--sa=SAS_ADDR]
11 [--verbose] [--version] SMP_DEVICE[,N]
12
14 Sends a SAS Management Protocol (SMP) DISCOVER request function to a
15 SMP target and decodes or outputs the response. The SMP target is iden‐
16 tified by the SMP_DEVICE and the SAS_ADDR. Depending on the interface,
17 the SAS_ADDR may be deduced from the SMP_DEVICE. With one interface
18 there is one SMP_DEVICE per machine so the SMP_DEVICE,N syntax is
19 needed to differentiate between HBAs if there are multiple present.
20
22 Mandatory arguments to long options are mandatory for short options as
23 well.
24
25 -b, --brief
26 reduce the decoded response output. If used twice will exit if
27 there is no attached device (after outputting that). When used
28 with --multiple, unattached phys are not listed; when used
29 twice, trims attached phys output.
30
31 -h, --help
32 output the usage message then exit.
33
34 -H, --hex
35 output the response in hexadecimal.
36
37 -i, --ignore
38 sets the Ignore Zone Group bit in the SMP Discover request.
39
40 -I, --interface=PARAMS
41 interface specific parameters. In this case "interface" refers
42 to the path through the operating system to the SMP initiator.
43 See the smp_utils man page for more information.
44
45 -l, --list
46 list attributes in "name=value" form, one entry per line.
47
48 -m, --multiple
49 loops over multiple phys within SMP target (typically an
50 expander) and does a DISCOVER request and outputs a one line
51 summary. Phy 0 is queried first, then phy 1, continuing until an
52 error occurs. If --brief is given then there is no output for
53 phys that indicate there is no attached device; when used twice
54 additionally trims the output line of attached phys.
55
56 -n, --num=NUM
57 number of phys to fetch, starting at --phy=ID when the --multi‐
58 ple option is given. The default value is 0 which is interpreted
59 as "the rest" (i.e. until a "phy does not exist" function result
60 is received). This option is ignored in the absence of the
61 --multiple option.
62
63 -p, --phy=ID
64 phy identifier. ID is a value between 0 and 127. Default is 0.
65
66 -r, --raw
67 send the response to stdout in binary. All error messages are
68 sent to stderr.
69
70 -s, --sa=SAS_ADDR
71 specifies the SAS address of the SMP target device. Typically
72 this is an expander. This option may not be needed if the
73 SMP_DEVICE has the target's SAS address within it. The SAS_ADDR
74 is in decimal but most SAS addresses are shown in hexadecimal.
75 To give a number in hexadecimal either prefix it with '0x' or
76 put a trailing 'h' on it.
77
78 -v, --verbose
79 increase the verbosity of the output. Can be used multiple times
80
81 -V, --version
82 print the version string and then exit.
83
85 The --multiple option causes SMP DISCOVER responses to be compressed to
86 a header followed by one line per phy. To save space SAS addresses are
87 shown in hex without a '0x' prefix or 'h' suffix. The header line gives
88 the SAS address of the SMP target itself and assumes it is an expander.
89
90 Each line starts with " phy <n>:" where <n> is the phy identifier
91 (and they are origin zero). That is followed by the routing attribute
92 represented by a single letter which is either "D" for direct routing,
93 "S" to subtractive routing or "T" for table routing. Then comes the
94 negotiated physical link rate which is either "disabled", "reset prob‐
95 lem" or "spinup hold". Other states are mapped to "attached". This
96 includes enabled phys with nothing connected which appear as
97 "attached:[0000000000000000:00]".
98
99 Information shown between the brackets is for the attached device.
100 Phys that are connected display something like:
101 "attached:[5000c50000520a2a:01 " where the first number is the attached
102 SAS address (in hex) and the second number is the attached device's phy
103 identifier. If the attached device type is other than an end device
104 then one of these abbreviations is output: "exp" (for expander), "fex"
105 (for fanout expander) or "res" (for unknown attached device type). If a
106 phy is flagged as "virtual" then the letter "V" appears next. Next are
107 the protocols supported by the attached device which are shown as
108 "i(<list>)" for initiator protocols and/or "t(<list>)" for target pro‐
109 tocols. The <list> is made up of "PORT_SEL", "SSP", "STP", "SMP" and
110 "SATA" with "+" used as a separator. For example a SAS host adapter
111 wi11 most likely appear as: "i(SSP+STP+SMP)". This completes the infor‐
112 mation about the attached phy, hence the closing right bracket.
113
114 Finally, if appropriate, the negotiated physical link rate is shown in
115 gigabits per second. Here is an example of a line for expander phy
116 identifier 11 connected to a SATA target (or SATA "device" to use the
117 t13.org term):
118
119 phy 11:T:attached:[500605b000000afb:00 t(SATA)] 1.5 Gbps
120
122 The SMP DISCOVER function was introduced in SAS-1, with small additions
123 in SAS-1.1 . There have been a large number of additions in SAS-2 .
124
126 Written by Douglas Gilbert.
127
129 Report bugs to <dgilbert at interlog dot com>.
130
132 Copyright © 2006-2008 Douglas Gilbert
133 This software is distributed under a FreeBSD license. There is NO war‐
134 ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
135 POSE.
136
138 smp_utils, smp_discover_list, smp_phy_control
139
140
141
142smp_utils-0.93 January 2008 SMP_DISCOVER(8)