Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SMP_DISCOVER(8) 		    SMP_UTILS			 SMP_DISCOVER(8)

NAME
     smp_discover - invoke DISCOVER SMP function

SYNOPSIS
     smp_discover  [--adn] [--brief] [--cap] [--dsn] [--help] [--hex] [--ignore]
     [--interface=PARAMS] [--list] [--multiple]  [--my]  [--num=NUM]  [--phy=ID]
     [--raw]   [--sa=SAS_ADDR]	 [--summary]  [--verbose]  [--version]	[--zero]
     SMP_DEVICE[,N]

DESCRIPTION
     Sends one or more SAS Serial Management Protocol  (SMP)  DISCOVER	function
     requests  to  an  SMP  target and decodes or outputs the responses. The SMP
     target is identified by the SMP_DEVICE and the SAS_ADDR. Depending  on  the
     interface, the SAS_ADDR may be deduced from the SMP_DEVICE.  The mpt inter-
     face uses SMP_DEVICE to identify a HBA (an SMP initiator) and needs the ad-
     ditional ,N to differentiate between HBAs if there are multiple present.

     If  the --phy=ID option is not given then --summary is assumed. When --sum-
     mary is given or assumed, this utility shows the disposition of each active
     expander phy in table form. One row is shown for each phy and is  described
     in  the SINGLE LINE PER PHY FORMAT section below. For this purpose disabled
     expander phys and those with errors are considered "active" and can be sup-
     pressed from the output by adding the --brief option.

     Rather than supply options and SMP_DEVICE[,N] on every invocation some  can
     be supplied via environment variables. See the section on ENVIRONMENT VARI-
     ABLES below.

OPTIONS
     Mandatory	arguments  to  long  options  are mandatory for short options as
     well.

     -A, --adn
	    causes the "attached device name" field to be output when the --mul-
	    tiple or --summary option is also given. See the  section  below  on
	    SINGLE  LINE  PER  PHY FORMAT. Note the "attached device name" field
	    was added is SAS-2.

     -b, --brief
	    reduce the decoded response output. If used twice will exit if there
	    is no attached device (after outputting that). When used with --mul-
	    tiple, unattached phys are not listed; when used  twice,  trims  at-
	    tached phys output.

     -c, --cap
	    decode  and print phy capabilities bits fields (see SNW-3 in draft).
	    Each expander phy has three of these fields: programmed, current and
	    attached.  By default these fields are only printed out in	hex,  or
	    not  at  all if the --brief option is given or implied. Of the three
	    the attached phy capability field is probably the most  interesting.
	    If	the  --verbose option is given, then the various "G" identifiers
	    are expanded (e.g. instead of "G4:" it prints "G4 (12 Gbps):").

     -h, --help
	    output the usage message then exit.

     -D, --dsn
	    outputs the device slot number at the end of each summary  line.  In
	    summary  mode  one	line is output per expander phy. It is output in
	    the form "dsn=<val>" where <val> is decimal in the range from  0  to
	    254  inclusive.   It is not output if it is not available or has the
	    value 255. An expander typically contains a SES device which  yields
	    device  slot  numbers  in  its  Additional Element Status diagnostic
	    page.

     -H, --hex
	    output the response (less the CRC field) in hexadecimal.

     -i, --ignore
	    sets the Ignore Zone Group bit in the SMP Discover request. Expander
	    phys hidden by zoning will appear as "phy vacant" unless this option
	    is given.

     -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.

     -l, --list
	    list attributes in "name=value" form, one entry per line.

     -m, --multiple
	    loops over multiple phys within SMP target (typically  an  expander)
	    and does a DISCOVER request and outputs a one line summary. Phy 0 is
	    queried  first,  then  phy	1, continuing until an error occurs. The
	    starting phy and the number of phys "discovered" can  be  controlled
	    by --phy=ID and --num=NUM. If --brief is given then there is no out-
	    put  for  phys  that indicate there is no attached device. When this
	    option is used twice then multi-line output  is  produced  for  each
	    phy. See the section below on SINGLE LINE PER PHY FORMAT.

     -M, --my
	    outputs  my (this expander's) SAS address in hex (prefixed by "0x").
	    This is obtained from the DISCOVER response  of  phy  id  0  (unless
	    --phy=ID  is  given). The expander's SAS address is typically avail-
	    able even if a phy is not connected, "vacant" or disabled. This  op-
	    tion  overrides  most  other  options (e.g. overrides --multiple and
	    --summary options).

     -n, --num=NUM
	    number of phys to fetch, starting at --phy=ID  when  the  --multiple
	    option is given. The default value is 0 which is interpreted as "the
	    rest"  (i.e.  until  a  "phy  does not exist" function result is re-
	    ceived). This option is ignored in the absence of the --multiple op-
	    tion.

     -p, --phy=ID
	    phy identifier. ID is a value between 0 and 254. If this  option  is
	    not given then the --summary option is assumed.

     -r, --raw
	    send  the response (less the CRC field) to stdout in binary. All er-
	    ror messages are sent to stderr.

     -s, --sa=SAS_ADDR
	    specifies the SAS address of the SMP target device.  Typically  this
	    is	an expander. This option may not be needed if the SMP_DEVICE has
	    the target's SAS address within it. 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, --summary
	    output a multi line summary, with one line per  active  phy.  Checks
	    all  phys (or less is --num=NUM is given), starting at phy 0 (unless
	    --phy=ID is given). Equivalent to '--multiple --brief' ('-mb').  See
	    the section below on SINGLE LINE PER PHY FORMAT. If the --phy=ID  is
	    not given then this option is assumed.

     -v, --verbose
	    increase the verbosity of the output. Can be used multiple times

     -V, --version
	    print the version string and then exit.

     -z, --zero
	    zero the Allocated Response Length field in the request. This option
	    also zeros the Request Length field in the request. This is required
	    for  strict  SAS-1.1  compliance.  However this option should not be
	    given in SAS-2 and later; if it is given an  abridged  response  may
	    result.

SINGLE LINE PER PHY FORMAT
     The  --summary  option  causes SMP DISCOVER responses to be compressed to a
     header followed by one line per phy. To save space SAS addresses are  shown
     in  hex  without a '0x' prefix or 'h' suffix. The header line gives the SAS
     address of the SMP target itself and assumes it is an expander.

     Each line starts with "  phy  <n>:" where <n> is the  phy	identifier  (and
     they  are	origin	zero).	That is followed by the routing attribute repre-
     sented by a single letter which is either "D" for direct routing,	"S"  for
     subtractive  routing, "T" or "U". Both "T" and "U" imply table routing, the
     difference is that if REPORT GENERAL indicates "table to  table  supported"
     then "U" is output to indicate that phy can be part of an enclosure univer-
     sal  port;  otherwise  "T" is used. Next comes the negotiated physical link
     rate which is either "disabled", "reset problem" or  "spinup  hold".  Other
     states  are  mapped  to "attached". This includes enabled phys with nothing
     connected which appear as "attached:[0000000000000000:00]".

     Information shown between the brackets is for the	attached  device.   Phys
     that are connected display something like: "attached:[5000c50000520a2a:01 "
     where  the first number is the attached SAS address (in hex) and the second
     number is the attached device's phy identifier. If the attached device type
     is other than a SAS or SATA device then one of these abbreviations is  out-
     put:  "exp"  (for	expander), "fex" (for fanout expander) or "res" (for un-
     known attached device type). If a phy is flagged as "virtual" then the let-
     ter "V" appears next. Next are the protocols supported by the attached  de-
     vice  which  are  shown  as  "i(<list>)"  for  initiator  protocols  and/or
     "t(<list>)" for target protocols. The <list>  is  made  up  of  "PORT_SEL",
     "SSP",  "STP", "SMP" and "SATA" with "+" used as a separator. For example a
     SAS host adapter will most likely appear as:  "i(SSP+STP+SMP)".  This  com-
     pletes  the  information  about  the  attached phy, hence the closing right
     bracket.

     If appropriate, the negotiated physical link rate is shown in gigabits  per
     second.  Here  is	an example of a line for expander phy identifier 11 con-
     nected to a SATA target (or SATA "device" to use the t13.org term):

       phy  11:T:attached:[500605b000000afb:00	t(SATA)]  1.5 Gbps

     If the expander has zoning enabled (i.e. REPORT GENERAL  response	bit  for
     'zoning enabled' is set) and a phy's zone group is other than zg 1 then the
     phy's zone group is shown (e.g. "ZG:2").

     If  the  --adn  option is given then after the attached SAS address and the
     attached device's phy identifier are output an extra field is inserted con-
     taining the "attached device name" field. For a SAS disk this should be its
     target device name (in NAA-5 format) and for a SATA disk its WWN  (if  pro-
     vided,  also  in NAA-5 format). Also when the --adn option is given the phy
     speed and zone group are not output in order to keep the line  length  rea-
     sonable.

     If  the  --dsn option is given and device slot number information is avail-
     able for the current phy, then "dsn=<num>" is appended to the line.  Device
     slot numbers range from 0 to 254 with 255 meaning there is no corresponding
     slot so it is not listed.

ENVIRONMENT VARIABLES
     If SMP_DEVICE[,N] is not given then the SMP_UTILS_DEVICE environment  vari-
     able is checked and if present its contents are used instead.

     If  the  SAS  address  (of  the SMP target) is not given and it is required
     (i.e.  it is not implicit in SMP_DEVICE[,N])  then  the  SMP_UTILS_SAS_ADDR
     environment variable is checked and if present its contents are used as the
     SAS  address. SAS addresses are usually given in hex indicated by a leading
     '0x' or trailing 'h'.

     A device slot number (dsn) is important for establishing  the  relationship
     between  an  expander  phy  and  a SES array element. Newer expanders (e.g.
     SAS-3) support dsn_s in the DISCOVER (and DISCOVER LIST)  functions.  These
     can  be  shown,  if  available,  with  the --dsn option to smp_discover and
     smp_discover_list	utilities..  To  ease  typing  that  option  often,  the
     SMP_UTILS_DSN environment variableriable, if present, has the same effect.

NOTES
     In SAS-2 and later both the DISCOVER and DISCOVER LIST functions are avail-
     able.  The  DISCOVER  LIST function should be favoured for several reasons:
     its response can hold up to 40 descriptors each describing the state of one
     expander phy. The vast majority of expander chips on the market support  36
     phys or less so one DISCOVER LIST response will summarize the states of all
     its  phys.  With the DISCOVER function only one expander phy's state is re-
     turned in its response. Other advantages of the DISCOVER LIST function  are
     its "phy filter" and "descriptor type" function request fields.

EXAMPLES
     See "Examples" section in http://sg.danny.cz/sg/smp_utils.html

CONFORMING TO
     The  SMP DISCOVER function was introduced in SAS-1, with small additions in
     SAS-1.1 . There were a large number of additions in SAS-2 . After SAS-2 the
     protocol sections of SAS were split into another document series  known  as
     the  SAS  Protocol  Layer	(SPL) and it was standardized as SPL ANSI INCITS
     476-2011. Next came SPL-2 which  was  standardized  as  SPL-2  ANSI  INCITS
     505-2013.	 Then  came  SPL-3  which  was standardized as SPL-3 ANSI INCITS
     492-2015. SPL-4 is near  standardization  and  its  most  recent  draft  is
     spl4r13.pdf  while  SPL-5	work  has  started  and its most recent draft is
     spl5r03.pdf.

AUTHORS
     Written by Douglas Gilbert.

REPORTING BUGS
     Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
     Copyright (C) 2006-2018 Douglas Gilbert
     This software is distributed under a FreeBSD license. There is NO warranty;
     not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO
     smp_utils, smp_discover_list, smp_phy_control

smp_utils-0.99			  February 2018 		 SMP_DISCOVER(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=smp_discover&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help