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

FreeBSD Manual Pages

  
 
  

home | help
SG_SES(8)			   SG3_UTILS			     SG_SES(8)

NAME
       sg_ses -	access a SCSI Enclosure	Services (SES) device

SYNOPSIS
       sg_ses  [--all]	[--ALL]	 [--descriptor=DES] [--dev-slot-num=SN]	[--ei-
       ioe=A_F]	[--filter] [--get=STR] [--hex] [--index=IIA |  --index=TIA,II]
       [--inner-hex]  [--join]	[--json[=JO]]  [--js-file=JFN]	[--maxlen=LEN]
       [--no-config] [--no-time] [--page=PG]  [--quiet]	 [--raw]  [--readonly]
       [--sas-addr=SA] [--status] [--verbose] [--warn] DEVICE

       sg_ses	 --control    [--byte1=B1]    [--clear=STR]    [--data=H,H...]
       [--data=@FN]  [--descriptor=DES]	 [--dev-slot-num=SN]  [--index=IIA   |
       --index=TIA,II]	    [--mask]	  [--maxlen=LEN]      [--nickname=SEN]
       [--nickid=SEID]	[--page=PG] [--readonly]  [--sas-addr=SA]  [--set=STR]
       [--verbose] DEVICE

       sg_ses  --data=@FN  --status  [--raw  --raw]  [<all  options from first
       form>]
       sg_ses --inhex=FN --status  [--raw  --raw]  [<all  options  from	 first
       form>]

       sg_ses [--enumerate] [--index=IIA] [--list] [--help] [--version]

DESCRIPTION
       Fetches	management information from a SCSI Enclosure Service (SES) de-
       vice.  This utility can also modify the state of	a SES device. The  DE-
       VICE should be a	SES device which may be	a dedicated enclosure services
       processor in which case an INQUIRY response's Peripheral	Device Type is
       13 [0xd].  Alternatively	it may be attached to another type of SCSI de-
       vice  (e.g. a disk) in which case the EncServ bit is set	in its INQUIRY
       response.

       If the DEVICE argument is given with no options then the	names  of  all
       SES  diagnostic	pages (dpages) supported are listed. Most of the named
       dpages are defined in the SES standards and  drafts.  The  most	recent
       reference for this utility is the draft SCSI Enclosure Services 4 docu-
       ment  T10/BSR  INCITS  555 Revision 5 at	https://www.t10.org . Existing
       standards for SES, SES-2	and SES-3 are ANSI INCITS  305-1998  and  ANSI
       INCITS 448-2008 and ANSI	INCITS 518-2017	respectively.

       SAS  expanders typically	have a SES device attached via a virtual port.
       Some HBAs (SCSI initiators) choose to expose a SES  device  internally.
       That  means  the	SCSI subsystem on the host machine can see the SES de-
       vice, but devices connected to that HBA (e.g. a	SAS  expander)	cannot
       see the HBA's SES device.  That internal	SES device might report	on the
       temperature(s) of the HBA and whether anything is connected to its SCSI
       ports.

       The  first  form	 shown	in  the	 SYNOPSIS is for fetching and decoding
       dpages or fields	from the SES DEVICE. A SCSI RECEIVE DIAGNOSTIC RESULTS
       command is sent to the DEVICE to	obtain each  dpage  response.	Rather
       than decoding a fetched dpage, its contents may be output in hex	or bi-
       nary with the --hex or --raw --raw options.

       The  second form	in the SYNOPSIS	is for modifying dpages	or fields held
       in the SES DEVICE. A SCSI SEND DIAGNOSTIC command  containing  a	 "con-
       trol"  dpage is sent to the DEVICE to cause changes. Changing the state
       of an enclosure (e.g. requesting	the "ident" (locate) LED to flash on a
       disk tray in an array) is typically done	using a	read-modify-write  cy-
       cle. See	the section on CHANGING	STATE below.

       The  third  form	 in the	SYNOPSIS has two equivalent invocations	shown.
       They decode the contents	of a file (named FN) that holds	a  hexadecimal
       or  binary  representation  of one, or many, SES	dpage responses. Typi-
       cally an	earlier	invocation of the first	form of	this utility with  the
       '-HHHH'	option	would have generated that file.	Since no SCSI commands
       are sent; the DEVICE argument, if given,	will be	ignored.

       The last	form in	the SYNOPSIS shows the options for  providing  command
       line  help (i.e.	usage information), listing out	dpage and field	infor-
       mation tables held by the utility (--enumerate),	or printing  the  ver-
       sion string of this utility.

       There	 is    a    web	   page	   discussing	 this	 utility    at
       https://sg.danny.cz/sg/sg_ses.html . Support for	downloading  microcode
       to a SES	device has been	placed in a separate utility called sg_ses_mi-
       crocode.

       In  the	following sections "dpage" refers to a diagnostic page,	either
       fetched with a SCSI RECEIVE DIAGNOSTIC RESULTS command, sent to the DE-
       VICE with a SCSI	SEND DIAGNOSTIC	command, or fetched from data supplied
       by the --data= or the --inhex=FN	option.

OPTIONS
       Arguments to long options are mandatory for short options as well.  The
       options are arranged in alphabetical order based	 on  the  long	option
       name.

       -a, --all
	      shows  the output	of the --join option followed by the other SES
	      dpages. Since a  single  --join  option  does  not  include  the
	      Threshold	 In  dpage,  it	is listed separately in	the "other SES
	      dpages" section. In this context,	"other"	means all  SES	dpages
	      that have	not (explicitly) been output by	the --join option.
	      To   output  all	pages  without	attempting  a  join,  use  the
	      --page=all option	rather than this option.
	      If this option is	used twice, the	Threshold In dpage (if	avail-
	      able) is included	in the --join option output. Note that now the
	      Threshold	 In  dpage  is not listed separately in	the "other SES
	      dpages" section. Using this option twice is equivalent to	invok-
	      ing the --ALL option.
	      This option implies the --status option as long as the --control
	      option has not been given.
	      Using this option	together with the -HHH,	-HHHH  or  -HHHHH  op-
	      tions  is	 considered  an	error as it produces confusing output.
	      To force the issue use -H	times (as discouragement). Instead us-
	      ing the --page=all option	together with the -HHH,	-HHHH or  -HH-
	      HHH  options will	more likely produce the	desired	output:	a dump
	      of all SES diagnostics pages in hex suitable for	later  parsing
	      or visual	inspection with	a text editor.

       -z, --ALL
	      shows the	output of the --join option invoked twice, followed by
	      the  other SES dpages. Since two --join options does include the
	      Threshold	In dpage, that dpage is	not listed separately  in  the
	      "other SES dpages" section.
	      This option implies the --status option as long as the --control
	      option has not been given.

       -b, --byte1=B1
	      some  modifiable	dpages	may need byte 1	(i.e. the second byte)
	      set. In the Enclosure Control dpage, byte	1 contains  the	 INFO,
	      NON-CRIT,	CRIT and UNRECOV bits. In the Subenclosure String Out,
	      Subenclosure  Nickname  Control  and  Download Microcode Control
	      dpages, byte 1 is	the Subenclosure identifier.  Active when  the
	      --control	 and  --data=H,H...  options  are used and the default
	      value is 0. If the --clear=STR or	--set=STR option is used  then
	      the  value read from byte	1 is written back to byte 1.  B1 is in
	      decimal unless it	is prefixed by '0x' or '0X' (or	has a trailing
	      'h' or 'H').

       -C, --clear=STR
	      Used to clear an element	field  in  the	Enclosure  Control  or
	      Threshold	 Out dpage. Must be used together with an indexing op-
	      tion to specify which element is to be  changed.	The  Enclosure
	      Control  dpage  is assumed if the	--page=PG option is not	given.
	      See the STR FORMAT and the CLEAR,	GET, SET sections below.

       -c, --control
	      will send	control	information to the DEVICE via a	SCSI SEND  DI-
	      AGNOSTIC	command.  Cannot  give	both this option and --status.
	      The Enclosure Control, String Out, Threshold Out,	Array  Control
	      (obsolete	in SES-2), Subenclosure	String Out, Subenclosure Nick-
	      name Control and Download	Microcode dpages can be	set currently.
	      This  option  is	assumed	if either the --clear=STR or --set=STR
	      option is	given.

       -d, --data=H,H...
	      permits a	string of comma	separated  (ASCII)  hex	 bytes	to  be
	      specified	(limit 1024). A	(single) space separated string	of hex
	      bytes  is	 also allowed but the list needs to be in quotes. This
	      option allows the	parameters to a	control	dpage to be specified.
	      The string given should not include the first 4 bytes (i.e. page
	      code and length).	See the	DATA SUPPLIED section below.

       -d, --data=-
	      reads one	or more	data strings from stdin,  limit	 almost	 2**16
	      bytes.  stdin  may  provide  ASCII hex as	a comma	separated list
	      (i.e. as with the	--data=H,H...  option).	 Additionally  spaces,
	      tabs  and	 line  feeds  are permitted as separators from stdin .
	      Stops reading stdin when an EOF is detected. See the  DATA  SUP-
	      PLIED section below.

       -d, --data=@FN
	      reads  one  or  more data	strings	from the file called FN, limit
	      almost 2**16 bytes. The contents of the file is decoded  in  the
	      same  fashion as stdin described in the previous option. See the
	      DATA SUPPLIED section below.

       -D, --descriptor=DES
	      where DES	is a descriptor	name (string) as found in the  Element
	      Descriptor dpage.	This is	a medium level indexing	alternative to
	      the  low level --index= options. If the descriptor name contains
	      a	space then DES needs to	be surrounded  by  quotes  (single  or
	      double) or the space escaped (e.g. preceded by a backslash). See
	      the  DESCRIPTOR NAME, DEVICE SLOT	NUMBER AND SAS ADDRESS section
	      below.

       -x, --dev-slot-num=SN, --dsn=SN
	      where SN is a device slot	number found in	the Additional Element
	      Status dpage. Only entries for FCP and SAS devices (with	EIP=1)
	      have  device slot	numbers. SN must be a number in	the range 0 to
	      255 (inclusive). 255 is used to indicate there is	no correspond-
	      ing device slot. This is a medium	level indexing alternative  to
	      the  low level --index= options. See the DESCRIPTOR NAME,	DEVICE
	      SLOT NUMBER AND SAS ADDRESS section below.

       -E, --eiioe=A_F
	      A_F is either the	string	'auto'	or  'force'.  There  was  some
	      fuzziness	 in the	interpretation of the 'element index' field in
	      the Additional Element Status  (AES)  dpage  between  SES-2  and
	      SES-3.  The  EIIOE bit was introduced to resolve the problem but
	      not all enclosures have caught up.  In  the  SES-3  revision  12
	      draft  the EIIOE bit was expanded	to a 2 bit EIIOE field.	 Using
	      '--eiioe=force' will decode the AES dpage	as if the EIIOE	 field
	      is  set to 1.  Using '--eiioe=auto' will decode the AES dpage as
	      if the EIIOE field is set	to 1 if	the first AES  descriptor  has
	      its EIP bit set and its element index field is 1 (in other words
	      a	 heuristic to guess whether the	EIIOE field should be set to 1
	      or 0).
	      If the enclosure sets the	actual EIIOE field to 1	or  more  then
	      this  option has no effect. It is	recommended that HP JBOD users
	      set --eiioe=auto .

       -e, --enumerate
	      enumerate	all known diagnostic page (dpage) names	and  SES  ele-
	      ments  that  this	 utility recognizes plus the abbreviations ac-
	      cepted by	this utility. Ignores DEVICE if	it  is	given.	Essen-
	      tially it	is dumping out tables held internally by this utility.
	      If  --enumerate is given twice, then the recognized acronyms for
	      the --clear=STR, --get=STR and --set=STR options are listed. The
	      utility exits after listing this information, so most other  op-
	      tions  and DEVICE	are ignored. Since there are many acronyms for
	      the Enclosure Control/Status dpage then the output can  be  fur-
	      ther  restricted	by giving the --index=IIA option (e.g. "sg_ses
	      -ee -I ts" to only show the acronyms associated with the	Enclo-
	      sure Control/Status dpage's Temperature Sensor Element Type).

       -f, --filter
	      cuts  down  on  the  amount  of output from the Enclosure	Status
	      dpage and	the Additional Element Status dpage. When this	option
	      is  given, any line which	has all	its binary flags cleared (i.e.
	      0) is filtered out (i.e.	ignored).  If a	line  has  some	 other
	      value  on	 it (e.g. a temperature) then it is output.  When this
	      option is	used twice only	elements  associated  with  the	 "sta-
	      tus=ok"  field  (in  the Enclosure status	dpage) are output. The
	      --filter option is useful	for reducing the amount	of output gen-
	      erated by	the --join option.

       -G, --get=STR
	      Used to read a field in a	status element.	Must be	used  together
	      with  a  an  indexing  option  to	specify	which element is to be
	      read. By default the Enclosure Status dpage is  read,  the  only
	      other  dpages  that  can	be read	are the	Threshold In and Addi-
	      tional Element Status dpages. If a value is found	it  is	output
	      in  decimal to stdout (by	default) or in hexadecimal preceded by
	      "0x" if the --hex	option is also given. See the STR  FORMAT  and
	      the CLEAR, GET, SET sections below.

       -h, --help
	      output  the usage	message	then exit. Since there is a lot	of in-
	      formation, it is split into two pages.  The  most	 important  is
	      shown  on	the first page.	 Use this option twice (e.g. '-hh') to
	      output the second	page. Note: the	--enumerate option might  also
	      be  viewed  as a help or usage type option. And like this	option
	      it has a "given twice" form: '-ee'.

       -H, --hex
	      If the --get=STR option is given then output the value found (if
	      any) in hexadecimal, with	a leading "0x".	Otherwise  output  the
	      response in hexadecimal; with a leading hex address/index	at the
	      start  of	each line.  If given twice an ASCII rendering is given
	      to the right of each line. If given three	 or  more  times,  the
	      hexadecimal  bytes  only	are output, 16 bytes (or less) on each
	      line.
	      Ignored when all elements	from several dpages are	being accessed
	      (e.g. when the --join option is used). Also see the --raw	option
	      which may	be used	with this option.
	      To dump one of more dpage	responses to stdout in ASCII  parsable
	      hexadecimal  use	-HHH  or -HHHH.	The triple H form only outputs
	      hexadecimal which	is fine	for a single dpage response. When  all
	      dpages  are  dumped (e.g.	 with --page=all) then the quad	H form
	      adds the name of each dpage preceded by a	hash mark ('#'). Hence
	      the output of the	quad H form is still parsable plus it is  eas-
	      ier  for	users  to  view	and possibly edit. Using this option 5
	      times (e.g. -HHHHH) adds the page	code in	hex after  the	page's
	      name in the comment before the hex rendering of that mode	page.
	      If the --inner-hex option	is also	given it changes the action of
	      this option. See the description of the --inner-hex option. Giv-
	      ing  both	 -HHHH	(or greater) and the --inner-hex option	is re-
	      ported as	an error.
	      Note that	the meaning of '-H' and	'-HH'  have  been  swapped  in
	      version  "2.72  20230130"	for compatibility with other utilities
	      in this package and  the	description  of	 this  option  in  the
	      sg3_utils(8) manpage.

       -I, --index=IIA
	      where  IIA is either an individual index (II) or an Element type
	      abbreviation  (A).  See  the  INDEXES  section  below.  If   the
	      --page=PG	option is not given then the Enclosure Status (or Con-
	      trol)  dpage  is assumed.	 May be	used with the --join option or
	      one of the --clear=STR, --get=STR	or --set=STR options. To  enu-
	      merate  the  available Element type abbreviations	use the	--enu-
	      merate option.

       -I, --index=TIA,II
	      where TIA,II is an type header index (TI)	or Element type	abbre-
	      viation (A) followed by an individual index (II).	 See  the  IN-
	      DEXES  section  below. If	the --page=PG option is	not given then
	      the Enclosure Status (or Control)	dpage is assumed. May be  used
	      with  the	 --join	option or one of the --clear=STR, --get=STR or
	      --set=STR	options. To enumerate the available Element  type  ab-
	      breviations use the --enumerate option.

       -X, --inhex=FN
	      where  FN	 is  a	filename.  It has the equivalent action	of the
	      --data=@FN option. If FN is '-' then stdin is read. This	option
	      has  been	 given	for compatibility with other utilities in this
	      package that use --inhex=FN (or --in=FN) is a similar  way.  See
	      the "HEX,	BINARY AND JSON	FORMATS" section in the	sg3_utils man-
	      page for more information.

       -i, --inner-hex
	      the  outer  levels of a status dpage are decoded and printed out
	      but the innermost	level(s) (e.g. the Element Status  Descriptor)
	      is  output  in hex.  For dpages that depend on the Configuration
	      dpage, its structure is taken into  account  with	 this  option,
	      while  when the --no-config option is used, its structure	is ig-
	      nored. Can be used with an indexing  option  and/or  --join  op-
	      tions. This option is mainly for debugging.
	      This  option  may	 also  be  used	with the --json[=JO] option to
	      lessen the decoding dependency on	other dpages. This option  may
	      be  used twice in	this context. See the JSON INFORMATION section
	      below.
	      The --hex	option may  be	given  with  this  option  to  control
	      whether ASCII appears to the right of each hex line of bytes, or
	      not.  Without a --hex option, ASCII appears to the right of each
	      hex line of bytes; if the	--hex option  appear  once,  no	 ASCII
	      rendering	appears.

       -j, --join
	      group elements from the Element Descriptor, Enclosure Status and
	      Additional  Element Status dpages. If this option	is given twice
	      then elements from the Threshold In dpage	are also grouped.  The
	      order  is	 dictated by the Configuration dpage but that dpage is
	      not explicitly shown.
	      There can	be a bewildering amount	of information in  the	"join"
	      output.  The default is to output	everything. Several additional
	      options are provided to cut down the amount  displayed.  If  the
	      indexing	options	is given, only the matching elements and their
	      associated fields	are output. The	--filter option	(see  its  de-
	      scription)  can  be  added to reduce the amount of output.  Also
	      "--page=aes" (or "-p 0xa") can be	added to suppress  the	output
	      of rows that don't have a	"aes" dpage component. See the INDEXES
	      and DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS ADDRESS sections
	      below.
	      This  option  implies  the --status option. Giving the --control
	      option with this option is an error.

       -J[=JO],	--json[=JO]
	      output is	in JSON	format instead of plain	text form.  Note  that
	      arguments	to the short and long form are themselves optional and
	      if  present start	with "=" and no	whitespace is permitted	around
	      that "=".
	      See sg3_utils_json manpage or use	'?' for	JO to get  a  summary.
	      For  more	specific information about JSON	output with this util-
	      ity, see the JSON	INFORMATION section below.

       -Q, --js-file=JFN
	      output is	in JSON	format and it is sent to a file	named JFN.  If
	      that file	exists then it is truncated. By	default, the JSON out-
	      put is sent to stdout.
	      When this	option is given, the --json[=JO] option	is implied and
	      need not be given. The --json[=JO] option	may still be needed to
	      set the JO parameter to non-default values.

       -l, --list
	      This option is equivalent	to --enumerate.	See that option.

       -M, --mask
	      When  modifying  elements,  the default action is	a read (status
	      element),	mask, modify (based on --clear=STR or --set=STR)  then
	      write  back  as  the  control  element.  The mask	step is	new in
	      sg_ses version 1.98 and is based on what is  allowable  (and  in
	      the  same	 location)  in draft SES-3 revision 6. Those masks may
	      evolve, as they have in the past.	This  option  re-instates  the
	      previous	logic  which  was to ignore the	mask step. The default
	      action (i.e. without this	option)	is to perform the mask step in
	      the read-mask-modify-write sequence.

       -m, --maxlen=LEN
	      LEN is placed in the ALLOCATION LENGTH field of the SCSI RECEIVE
	      DIAGNOSTIC RESULTS commands sent by the utility.	It  represents
	      the  maximum  size of data the SES device	can return (in bytes).
	      It cannot	exceed 65535 and defaults to 65532 (bytes). Some  sys-
	      tems may not permit such large sizes hence the need for this op-
	      tion.  If	LEN is less than 0 or greater than 65535 then an error
	      is generated. If LEN is 0	then the default value is used,	other-
	      wise if it is less than 4	then it	is ignored (and	a  warning  is
	      sent to stderr).

       -n, --nickname=SEN
	      where  SEN  is  the new Subenclosure Nickname. Only the first 32
	      characters (bytes) of SEN	are used, if more are given  they  are
	      ignored. See the SETTING SUBENCLOSURE NICKNAME section below.

       -N, --nickid=SEID
	      where  SEID is the Subenclosure identifier that the new Nickname
	      (SEN) will be applied to.	So SEID	must be	an existing  Subenclo-
	      sure identifier. The default value is 0 which is the main	enclo-
	      sure.

       -F, --no-config
	      the Element status, Array	status (obsolete), Element Descriptor,
	      Additional  element status and Threshold In dpages all depend on
	      the Configuration	dpage for decoding.  For  debugging  purposes,
	      when  there  is  something  wrong	 with the relationship between
	      these dpages, it may be useful to	look at	 those	pages  without
	      using  the  configuration	 dpage.	That is	what this option does.
	      Those dpages still have some structure that can be output	 with-
	      out  the	Configuration dpage, but the inner parts are typically
	      output in	hex when this option is	given. This option is somewhat
	      related to the --inner-hex option	which is also useful  for  de-
	      bugging.
	      This  option  is ignored on dpages that don't depend on the Con-
	      figuration dpage,	including the Configuration dpage itself.

       -y, --no-time
	      this utility now issues a	SCSI REPORT TIMESTAMP command just af-
	      ter an INQUIRY command at	the start of its execution.  This  en-
	      ables the	utility	to output a date-time stamp or an uptime dura-
	      tion. The	time value returned is in illiseconds from some	epoch.
	      If  the  value corresponds to a period of	less than 3 years then
	      it is considered to be an	uptime duration	and is output in days,
	      hours, minutes, seconds and milliseconds.	Unix systems including
	      Linux, FreeBSD and Solaris use 00:00 on 1st January 1970 UTC  as
	      their epoch. The date-time stamp output is in RFC	2822 date for-
	      mat  on  two  adjacent  lines, one in UTC	and the	other in local
	      time.
	      If for some reason calling the REPORT TIMESTAMP command causes a
	      problem, then this option	will disable this feature.
	      Note that	the time returned is from the enclosure, not  the  ma-
	      chine  that  the	utility	is executed from. This utility can use
	      modern SCSI disks	as the DEVICE to fetch that disk't  timestamp;
	      this  utility will then find thet	the DEVICE is not an enclosure
	      and exit without doing any harm.

       -p, --page=PG
	      where PG is a dpage abbreviation	or  code  (a  number).	If  PG
	      starts  with  a digit it is assumed to be	in decimal unless pre-
	      fixed by 0x for hex. Valid range is 0 to 255 (0x0	to  0xff)  in-
	      clusive. Default is dpage	'sdp' which is page_code 0 (i.e. "Sup-
	      ported Diagnostic	Pages")	if no other options are	given.
	      Page code	0xff or	abbreviation "all" is not a real dpage (as the
	      highest  real  dpage  is 0x3f) but instead causes	all SES	dpages
	      whose page code is 0x2f or less to be output. This can  be  used
	      with either the -HHHH or -rr to send either hexadecimal ASCII or
	      binary  respectively to stdout. If an error is detected fetching
	      or decoding a diagnostic page it is noted, the rest of the pages
	      are processed then the deferred error is reported	 in  the  exit
	      status.  If the --warn option is also given then --page=all will
	      exit immediately when an error is	detected.
	      To list the available dpage abbreviations	give "xxx" for PG; the
	      same information can also	be found with the --enumerate option.

       -q, --quiet
	      this suppresses the number of warnings and messages output.  The
	      exit status of the utility is unaffected by this option.

       -r, --raw
	      outputs  the  chosen status dpage	in ASCII hex in	a format suit-
	      able for a later invocation using	the --data=  option.  A	 dpage
	      less  its	 first	4 bytes	(page code and length) is output. When
	      used twice (e.g. -rr) the	full dpage contents is output  in  bi-
	      nary to stdout.
	      Note  that  the  use  of a single	--raw option is	different from
	      most other utilities in the sg3_utils package.
	      When -rr is used together	 with  the  --data=-,  --data=@FN,  or
	      --inhex=FN  then	stdin or file FN is decoded as a binary	stream
	      that continues to	be read	until an end of	file (EOF). Once  that
	      data is read then	the internal raw option	is cleared to 0	so the
	      output is	not effected. So the -rr option	either changes how the
	      input or output is treated, but not both in a single invocation.

       -R, --readonly
	      open the DEVICE read-only	(e.g. in Unix with the O_RDONLY	flag).
	      The default is to	open it	read-write.

       -A, --sas-addr=SA
	      this is an indexing method for SAS end devices (e.g. SAS disks).
	      The  utility  will  try to find the element or slot in the Addi-
	      tional Element Status dpage whose	SAS address matches SA.	For  a
	      SAS  disk	or tape	that SAS address is its	target port identifier
	      for the port connected to	that element or	slot.  Most SAS	 disks
	      and  tapes have two such target ports, usually numbered consecu-
	      tively.
	      SATA devices in a	SAS  enclosure	often  receive	"manufactured"
	      target port identifiers from a SAS expander; typically will have
	      a	 SAS  address close to,	but different from, the	SAS address of
	      the expander itself. Note	that  this  manufactured  target  port
	      identifier is different from a SATA disk's WWN.
	      SA  is  a	 hex number that is up to 8 digits long. It may	have a
	      leading '0x' or '0X' or a	trailing 'h' or	'H'. This option is  a
	      medium  level indexing alternative to the	low level --index= op-
	      tions.  See the DESCRIPTOR NAME, DEVICE SLOT NUMBER AND SAS  AD-
	      DRESS section below.

       -S, --set=STR
	      Used to set an element field in the Enclosure Control or Thresh-
	      old Out dpage.  Must be used together with an indexing option to
	      specify  which  element  is to be	changed. The Enclosure Control
	      dpage is assumed if the --page=PG	option is not given.  See  the
	      STR FORMAT and CLEAR, GET, SET sections below.

       -s, --status
	      will  fetch  dpage from the DEVICE via a SCSI RECEIVE DIAGNOSTIC
	      RESULTS command (or from --data=@FN). In the  absence  of	 other
	      options  that  imply  modifying  a  dpage	 (e.g.	 --control  or
	      --set=STR) then --status is assumed, except when the --data= op-
	      tion is given.  When the --data= option is given there is	no de-
	      fault action: either the --control or this option	must be	 given
	      to  distinguish between the two different	ways that data will be
	      treated.

       -v, --verbose
	      increase the level of verbosity. For example when	this option is
	      given four times (in which case the short	form  is  more	conve-
	      nient:  '-vvvv') then if the internal join array has been	gener-
	      ated then	it is output to	stderr in a form suitable  for	debug-
	      ging.

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

       -w, --warn
	      warn  about certain irregularities with warnings sent to stderr.
	      The join is a complex operation that requires fields  from  sev-
	      eral dpages to be	synchronized.  The quality of SES devices vary
	      and  to  be fair,	the descriptions from T10 drafts and standards
	      have been	tweaked	several	times (see the EIIOE field)  in	 order
	      to clear up confusion.
	      This  option  will cause fetching	all dpages with	the --page=all
	      option to	exit immediately when an error is detected.

INDEXES
       An enclosure can	have information about its disk	and tape  drives  plus
       other  supporting  components like power	supplies spread	across several
       dpages.	Addressing a specific element (overall or individual) within a
       dpage is	complicated. This section describes low	level  indexing	 (i.e.
       choosing	a single element (or a group of	related	elements) from a large
       number  of elements). If	available, the medium level indexing described
       in the following	section	(DESCRIPTOR NAME, DEVICE SLOT NUMBER  AND  SAS
       ADDRESS)	might be simpler to use.

       The  Configuration  dpage  is  key to low level indexing: it contains a
       list of "type headers", each of which contains an  Element  type	 (e.g.
       Array Device Slot), a Subenclosure identifier (0	for the	primary	enclo-
       sure)  and  a "Number of	possible elements". Corresponding to each type
       header, the Enclosure Status dpage has one "overall" element plus "Num-
       ber of possible elements" individual elements all  of  which  have  the
       given Element type. For some Element types the "Number of possible ele-
       ments"  will  be	0 so the Enclosure Status dpage	has only one "overall"
       element corresponding to	that type header. The Element Descriptor dpage
       and the Threshold (In and Out) dpages follow a similar pattern  as  the
       Enclosure Status	dpage.

       The  numeric index corresponding	to the overall element is "-1".	If the
       Configuration dpage indicates a particular element type	has  "n"  ele-
       ments then its indexes range from -1 to n-1 .

       The  Additional	Element	Status dpage is	a bit more complicated.	It has
       entries for "Number of possible elements" of certain Element types.  It
       does  not have entries corresponding to the "overall" elements. To make
       the correspondence a little clearer each	descriptor in this  dpage  op-
       tionally	contains an "Element Index Present" (EIP) indicator. If	EIP is
       set then	each element's "Element	Index" field refers to the position of
       the corresponding element in the	Enclosure Status dpage.

       Addressing  a  single overall element or	a single individual element is
       done with two indexes: TI and II. TI=0 corresponds to  the  first  type
       header  entry  which must be a Device Slot or Array Device Slot Element
       type (according to the SES-2 standard). To  address  the	 corresponding
       overall instance, II is set to -1, otherwise II can be set to the indi-
       vidual instance index. As an alternative	to the type header index (TI),
       an  Element  type  abbreviation (A) (e.g. "ps" for Power	Supply Element
       type) optionally	followed by a number (e.g. "ps"	refers	to  the	 first
       Power Supply Element type; "ps1"	refers to the second) can be given.

       One of two command lines	variants can be	used to	specify	indexes: --in-
       dex=TIA,II  where TIA is	either an type header index (TI) or an Element
       type abbreviation (A) (e.g. "ps"	or "ps1"). II is either	an  individual
       index  or  "-1"	to  specify the	overall	element. The second variant is
       --index=IIA where IIA is	either an individual index (II)	or an  Element
       type  abbreviation (A). When IIA	is an individual index then the	option
       is equivalent to	--index=0,II. When IIA is an Element type abbreviation
       then the	option is equivalent to	--index=A,-1.

       Wherever	an individual index is applicable, it can be  replaced	by  an
       individual  index range.	It has the form: <first_ii>:<last_ii>. For ex-
       ample: '3:5' will select	individual indexes 3, 4	and 5 .	Note that  the
       range -1:255 represents all possible elements of	an element type	and is
       not  an	error,	only those element that	exist will be selected.	Previ-
       ously '-' was used as an	index range separator but that leads  to  awk-
       ward syntax like	-1-1 for indexes: -1 (overall element),	0 and 1	(indi-
       vidual elements).

       To  cope	with vendor specific Element types (whose type codes should be
       in the range 128	to 255)	the Element type code can be given as a	number
       with a leading underscore. For  example	these  are  equivalent:	 --in-
       dex=arr	and  --index=_23 since the Array Device	Slot Element type code
       is 23.  Also --index=ps1	and --index=_2_1 are equivalent.

       Another example:	if the first type header in  the  Configuration	 dpage
       has  has	Array Device Slot Element type then --index=0,-1 is equivalent
       to --index=arr. Also --index=arr,3 is equivalent	to --index=3.

       The --index= option is used to reduce the amount	of output  (e.g.  only
       showing	the  element associated	with the second	12 volt	power supply).
       It may also be used together with with the --clear=STR,	--get=STR  and
       --set=STR options which are described in	the STR	section	below.

DESCRIPTOR NAME, DEVICE	SLOT NUMBER AND	SAS ADDRESS
       The    three    options:	   --descriptor=DES,   --dev-slot-num=SN   and
       --sas-addr=SA allow medium level	indexing, as an	alternative to the low
       level --index= option. Only one of the three options can	be used	in  an
       invocation.  When either	of these three option is used a	join operation
       is performed (but not displayed)	before element selection takes place.

       These medium level indexing options need	support	from  the  SES	device
       and  that  support  is optional.	For example the	--descriptor=DES needs
       the Element Descriptor dpage provided by	the SES	device however that is
       optional.  Also the provided descriptor names need to  be  useful,  and
       having descriptor names which are all "0" is not	very useful. Also some
       elements	(e.g. overall elements)	may not	have descriptor	names.

       These medium level indexing options can be used to reduce the amount of
       output  (e.g.  only  showing the	elements related to device slot	number
       3).  They  may  also  be	 used  together	 with  with  the  --clear=STR,
       --get=STR  and  --set=STR  options which	are described in the following
       section.	Note that even if a field can be set  (e.g.  "do  not  remove"
       (dnr))  and  that field can be read back	with --get=STR confirming that
       change, the disk	array may still	ignore it (e.g.	because	 it  does  not
       have the	mechanism to lock the disk drawer).

STR FORMAT
       The  STR	 operands  of the --clear=STR, --get=STR and --set=STR options
       all have	the same structure. There are two forms:

	     <acronym>[=<value>]
	     <start_byte>:<start_bit>[:<num_bits>][=<value>]

       The <acronym> is	one of a list  of  common  fields  (e.g.  "ident"  and
       "fault")	that the utility converts internally into the second form. The
       <start_byte> is usually in the range 0 to 3, the	<start_bit> must be in
       the  range  0 to	7 and the <num_bits> must be in	the range 1 to 64 (de-
       fault 1). The number of bits are	read in	the left to right sense	of the
       element tables shown in the various SES draft  documents.  For  example
       the  8  bits of byte 2 would be represented as 2:7:8 with the most sig-
       nificant	bit being 2:7 and the least significant	bit being 2:0 .

       The <value> is optional but is ignored if provided to  --get=STR.   For
       --set=STR  the  default	<value>	is 1 while for --clear=STR the default
       value is	0 . <value> is assumed to be decimal, hexadecimal  values  can
       be given	in the normal fashion.

       The supported list of <acronym>s	can be viewed by using the --enumerate
       option twice (or	"-ee").

CLEAR, GET, SET
       The  --clear=STR,  --get=STR  and --set=STR options can be used up to 8
       times in	the same invocation. Any <acronym>s used in the	 STR  operands
       must refer to the same dpage.

       When  multiple of these options are used	(maximum: 8), they are applied
       in the order in which they appear on the	command	line.  So  if  options
       contradict  each	other, the last	one appearing on the command line will
       be enforced. When there are multiple --clear=STR	and --set=STR options,
       then the	dpage they refer to is only written after the last one.

DATA SUPPLIED
       This section describes the  two	scenarios  that	 can  occur  when  the
       --data=	option	is given. These	scenarios are the same irrespective of
       whether the argument to the --data= option is a string of hex bytes  on
       the  command  line, stdin (indicated by --data=-) or names a file (e.g.
       --data=@thresh_in_dpage.hex).

       The first scenario is flagged by	the --control option. It uses the sup-
       plied data to build a 'control' dpage that will be sent to  the	DEVICE
       using  the  SCSI	 SCSI SEND DIAGNOSTIC command. The supplied dpage data
       should not include its first 4 bytes. Those 4 bytes are added  by  this
       utility using the --page=PG option with PG placed at byte offset	0). If
       needed,	the  --byte1=B1	option sets byte offset	1, else	0 is placed in
       that position. The number of bytes decoded from the data	provided (i.e.
       its length) goes	into byte offsets 2 and	3.

       The second scenario is flagged by the --status option (or  the  absence
       of the --control	option). It decodes the	supplied data assuming that it
       represents  the response	to one or more SCSI RECEIVE DIAGNOSTIC RESULTS
       commands. Those responses have typically	been captured from  some  ear-
       lier invocation(s) of this utility. Those earlier invocations could use
       the  '-HHH'  or '-HHHH' option and file redirection to capture that re-
       sponse (or responses) in	hexadecimal. The supplied dpage	response  data
       is decoded according to the other command line options. For example the
       --join  option could be given and that would require the	data from mul-
       tiple dpages typically:	Configuration, Enclosure status,  Element  de-
       scriptor	 and  Additional  element  status  dpages.  If	in  doubt  use
       --page=all in the capture phase;	having more dpages than	needed is  not
       a problem.

       By default the user supplied data is assumed to be ASCII	hexadecimal in
       lines that don't	exceed 512 characters. Anything	on a line from and in-
       cluding a hash mark ('#') to the	end of line is ignored.	An end of line
       can  be	a LF or	CR,LF and blank	lines are ignored. Each	separated pair
       (or single) hexadecimal digits represent	a byte (and neither a  leading
       '0x'  nor a trailing 'h'	should be given). Separators are either	space,
       tab, comma or end of line.

       Alternatively binary can	be used	and this is flagged by the  '-rr'  op-
       tion.   The  --data=H,H...  form	cannot use binary values for the 'H's,
       only ASCII hexadecimal. The other two forms (--data=-  and  --data=@FN)
       may  contain  binary data. Note that when the '-rr' option is used with
       --data=@FN that it only changes the interpretation of the  input	 data,
       it does not change the decoding and output representation.

CHANGING STATE
       This utility has	various	techniques for changing	the state of a SES de-
       vice.  As noted above this is typically a read-modify-write type	opera-
       tion.   Most  modifiable	dpages have a "status" (or "in") page that can
       be read,	and a corresponding "control" (or "out")  dpage	 that  can  be
       written back to change the state	of the enclosure.

       The  lower level	technique provided by this utility involves outputting
       a "status" dpage	in hex with --raw. Then	a text editor can be  used  to
       edit  the  hex (note: to	change an Enclosure Control descriptor the SE-
       LECT bit	needs to be set). Next the control dpage  data	can  fed  back
       with  the  --data=H,H...	option together	with the --control option; the
       --byte1=B1 option may need to be	given as well.

       Changes to the Enclosure	Control	dpage (and the	Threshold  Out	dpage)
       can  be done at a higher	level. This involves choosing a	dpage (the de-
       fault in	this case is the Enclosure Control dpage). Next	choose an  in-
       dividual	or overall element index (or name it with its Element Descrip-
       tor string). Then give the element's name (e.g. "ident" for RQST	IDENT)
       or  its position	within that element (e.g. in an	Array Device Slot Con-
       trol element RQST IDENT is byte 2, bit 1	and 1 bit long ("2:1:1")). Fi-
       nally a value can be given, if not the value for	--set=STR defaults  to
       1 and for --clear=STR defaults to 0.

SETTING	SUBENCLOSURE NICKNAME
       The format of the Subenclosure Nickname control dpage is	different from
       its  corresponding status dpage.	The status dpage reports all Subenclo-
       sure Nicknames (and Subenclosure	identifier 0 is	 the  main  enclosure)
       while  the  control dpage allows	only one of them to be changed.	There-
       fore using the --data option technique to change	a  Subenclosure	 nick-
       name is difficult (but still possible).

       To  simplify  changing  a  Subenclosure nickname	the --nickname=SEN and
       --nickid=SEID options have been	added.	If  the	 SEN  string  contains
       spaces  or other	punctuation, it	should be quoted: surrounded by	single
       or  double  quotes  (or	the  offending	characters  escaped).  If  the
       --nickid=SEID  is  not given then a Subenclosure	identifier of 0	is as-
       sumed. As a guard the --control option  must  also  be  given.  If  the
       --page=PG option	is not given then --page=snic is assumed.

       When  --nickname=SEN  is	 given	then  the Subenclosure Nickname	Status
       dpage is	read to	obtain the Generation Code field. That Generation Code
       together	with no	more than 32 bytes from	the  Nickname  (SEN)  and  the
       Subenclosure Identifier (SEID) are written to the Subenclosure Nickname
       Control dpage.

       There  is an example of changing	a nickname in the EXAMPLES section be-
       low.

NVME ENCLOSURES
       Support has been	added to sg_ses	(actually, its underlying library) for
       NVMe (also known	as NVM Express)	Enclosures. It can be  considered  ex-
       perimental in sg3_utils package version 1.43 and	sg_ses version 2.34 .

       This  support  is based on a decision by	NVME-MI	(Management Interface)
       developers to support the  SES-3	 standard.  This  was  facilitated  by
       adding NVME-MI SES Send and SES Receive commands	that tunnel dpage con-
       tents as	used by	SES.

JSON INFORMATION
       The  approach  taken with JSON output (i.e. when	the --json[=JO]	option
       is given) is to output diagnostic page information  unless  the	--join
       option  is  given.  A  problem  specific	to SES is that many diagnostic
       pages depend on other diagnostic	pages  (e.g.  decoding	the  Enclosure
       Status  and the Element Descriptor dpages both depend on	the Configura-
       tion dpage).

       When the	--json[=JO] and	--page=PG options are used in the same invoca-
       tion, then if PG	has any	dependencies on	other diagnostic  pages,  then
       those other pages are fetched. For example the Element Descriptor dpage
       depends	on the Configuration dpage. In some cases (e.g.	dpages miscon-
       figured or in the process of being changed) it may be useful to	decode
       whatever	 is  possible,	without	fetching other dpages. The --inner-hex
       option may be used for this. Some dpages	(e.g.  Enclosure Status	dpage)
       cannot be decoded at all, without fetching the Configuration dpage,  so
       each  4	byte element will be output in hex. In the case	of the Element
       Descriptor dpage, the descriptors may be	output in ASCII	and  are  when
       the  --inner-hex	 option	 is  given  once. If the --inner-hex option is
       given twice, then each descriptor will be output	in hex.

       When the	--json[=JO] and	--page=PG options are used in the same invoca-
       tion, then the top level	object name is the name	of PG in  snake	 nota-
       tion. This includes the "_diagnostic_page" suffix.

       When the	--json[=JO] and	--join options are used	in the same invocation
       (and  the  --page=PG  option is _not_ given), then the top level	object
       name is "join_of_diagnostic_pages" which	contain	a (JSON)  array	 named
       "element_list".	Each  element  in  that	 array	starts	with  an "ele-
       ment_type" field	followed by "descriptor" and "element_number"  fields.
       The  "descriptor" field's value is a string. All	elements with the same
       "element_type" are grouped together starting with the "overall_element"
       first.  The "overall_element" has an "element_number" value of -1.  In-
       dividual	elements of the	same "element_type" are	in the following "ele-
       ment_list"  array  elements  start with an "element_number" value of 0.
       After the "element_number" field	there is a "overall" field with	an in-
       teger value of 0	(for an	"individual" element) or a  value  of  1  (for
       "overall"  element).   To  reinforce that point there is	a "individual"
       field with a boolean value of true (for	an  "individual"  element)  or
       false.  Next there is an	object named "status_descriptor" that contains
       the corresponding "Enclosure Status" dpage's Enclosure status  element.
       As  required,  the corresponding	Additional element status, Element de-
       scriptor	by type	element, and Threshold status descriptors may also ap-
       pear.

       The plain text output (which is output by default) tends	to trim	output
       when a line of element values are all 0.	On the other  hand  when  JSON
       output is chosen, all fields, that meet the requirements	of the command
       line options, are output.

NOTES
       This  utility can be used to fetch arbitrary (i.e. non SES) dpages (us-
       ing the SCSI READ DIAGNOSTIC command). To this end  the	--page=PG  and
       --hex options would be appropriate. Non-SES dpages can be sent to a de-
       vice with the sg_senddiag utility.

       The  most  troublesome  part of the join	operation is associating Addi-
       tional Element Status descriptors correctly. At least  one  SES	device
       vendor  has  misinterpreted  the	 SES-2 standard, specifically with its
       "element	index" field interpretation. The code in this  utility	inter-
       prets  the  "element index" field as per	the SES-2 standard and if that
       yields an inappropriate Element type, adjusts its  indexing  to	follow
       that  vendor's  misinterpretation. The SES-3 drafts have	introduced the
       EIIOE (Element Index Includes Overall Elements) bit which later	became
       a 2 bit field to	resolve	this ambiguity.	See the	--eiioe=A_F option.

       In  draft  SES-3	revision 5 the "Door Lock" element name	was changed to
       the "Door" (and an OPEN field was added to the status  element).	 As  a
       consequence  the	former 'dl' element type abbreviation has been changed
       to 'do'.

       Some RAID controllers hide SES device nodes  from  the  host  Operating
       System.	 It  has  been reported	that some MegaRAID controllers do this
       and the following command is needed to expose them:

	  perccli /cx set backplane expose=<on/off>

       where perccli is	Dell's version of BroadCom's (LSI) storcli utility.

       There is	a related command set called SAF-TE (SCSI attached  fault-tol-
       erant  enclosure)  for  enclosure  (including RAID) status and control.
       SCSI devices that support SAF-TE	report "Processor"  peripheral	device
       type  (0x3) in their INQUIRY response. See the sg_safte utility in this
       package or the safte-monitor utility on the Internet.

       The internal join array is statically allocated and its	size  is  con-
       trolled by the MX_JOIN_ROWS define. Its current value is	520.

EXAMPLES
       Examples	can also be found at https://sg.danny.cz/sg/sg_ses.html

       The  following  examples	 use  Linux  device names. For suitable	device
       names in	other supported	Operating Systems  see	the  sg3_utils(8)  man
       page.

       To view the supported dpages:

	  sg_ses /dev/bsg/6:0:2:0

       To view the Configuration Diagnostic dpage:

	  sg_ses --page=cf /dev/bsg/6:0:2:0

       To view the Enclosure Status dpage:

	  sg_ses --page=es /dev/bsg/6:0:2:0

       To  get the (attached) SAS address of that device (which	is held	in the
       Additional Element Sense	dpage (dpage 10)) printed on hex:

	  sg_ses -p aes	-D ArrayDevice07 -G at_sas_addr	-H /dev/sg3

       To collate the information in the Enclosure Status, Element  Descriptor
       and Additional Element Status dpages the	--join option can be used:

	  sg_ses --join	/dev/sg3

       This  will produce a lot	of output. To filter out lines that don't con-
       tain much information add the --filter option:

	  sg_ses --join	--filter /dev/sg3

       Fields in the various elements of the Enclosure Control	and  Threshold
       dpages  can be changed with the --clear=STR and --set=STR options. [All
       modifiable dpages can be	changed	with the --raw and  --data=H,H...  op-
       tions.]	The  following	example	 looks at making the "ident" LED (also
       called "locate")	flash on "ArrayDevice07" which is a disk (or more pre-
       cisely the carrier drawer the disk is in):

	  sg_ses --index=7 --set=2:1:1 /dev/sg3

       In the above invocation,	the --set= option  implies  --control  so  the
       latter  does not	need to	be given. The same applies to --clear=.	On the
       other hand the --get= option implies --status .
       If the Element Descriptor diagnostic dpage shows	 that  "ArrayDevice07"
       is  the descriptor name associated with element index 7 then this invo-
       cation is equivalent to the previous one:

	  sg_ses --descriptor=ArrayDevice07 --set=2:1:1	/dev/sg3

       Further the byte	2, bit 1 (for 1	bit) field in the  Array  Device  Slot
       Control	element	is RQST	IDENT for asking a disk	carrier	to flash a LED
       so it can be located. In	this case "ident" (or "locate")	is accepted as
       an acronym for that field:

	  sg_ses --descriptor=ArrayDevice07 --set=ident	/dev/sg3

       To stop that LED	flashing:

	  sg_ses --dev-slot-num=7 --clear=ident	/dev/sg3

       The above assumes the descriptor	name  'ArrayDevice07'  corresponds  to
       device slot number 7.

       Now  for	 an  example  of  a more general but lower level technique for
       changing	a modifiable diagnostic	dpage. The String (In and  Out)	 diag-
       nostics	dpage  is  relatively simple (compared with the	Enclosure Sta-
       tus/Control dpage). However the use of this lower  level	 technique  is
       awkward involving three steps: read, modify then	write. First check the
       current String (In) dpage contents:

	  sg_ses --page=str /dev/bsg/6:0:2:0

       Now  the	 "read"	 step. The following command will send the contents of
       the String dpage	(from byte 4 onwards) to stdout. The output will be in
       ASCII hex with pairs of hex digits representing a byte,	16  pairs  per
       line,  space  separated.	 The  redirection puts stdout in a file	called
       "t":

	  sg_ses --page=str --raw /dev/bsg/6:0:2:0 > t

       Then with the aid of the	SES-3 document (in revision 3: section	6.1.6)
       use  your  favourite editor to change t.	The changes can	be sent	to the
       device with:

	  sg_ses --page=str --control --data=- /dev/bsg/6:0:2:0	< t

       If the above is successful, the String dpage should have	been  changed.
       To check	try:

	  sg_ses --page=str /dev/bsg/6:0:2:0

       To change the nickname on the main enclosure:

	  sg_ses --nickname='1st enclosure' --control /dev/bsg/6:0:2:0

       To capture the whole state of an	enclosure (from	a SES perspective) for
       later analysis, this can	be done:

	  sg_ses --page=all -HHHH /dev/sg5 > enc_sg5_all.hex

       Note  that  if there are	errors or warnings they	will be	sent to	stderr
       so they will appear on the command line (since  only  stdout  is	 redi-
       rected).	  A  text editor could be used to inspect enc_sg5_all.hex . If
       all looks in order at some later	time, potentially on a	different  ma-
       chine  where  enc_sg5_all.hex  has been copied, a "join"	could be done.
       Note that join reflects the state of the	enclosure when the capture was
       done.

	  sg_ses --data=@enc_sg5_all.hex --status --join

       The above invocation can	also be	expressed as:
	  sg_ses --inhex=enc_sg5_all.hex --join

       The --join option implies --status .

EXIT STATUS
       The exit	status of sg_ses is 0 when it is successful. Otherwise see the
       sg3_utils(8) man	page.

AUTHORS
       Written by Douglas Gilbert.

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

COPYRIGHT
       Copyright (C) 2004-2023 Douglas Gilbert
       This software is	distributed under a BSD-2-Clause license. There	is  NO
       warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR-
       POSE.

SEE ALSO
       sg_inq, sg_safte, sg_senddiag, sg_ses_microcode,	sg3_utils (sg3_utils);
       safte-monitor (Internet)

sg3_utils-1.48			   June	2023			     SG_SES(8)

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

home | help