SMP_CONF_GENERAL(8)

✨ SMP_CONF_GENERAL(8) ✨

okay bestie, sit down, we're doing the smp_conf_general page from smp_utils and honestly? it's giving "expander whisperer" energy. it invokes the CONFIGURE GENERAL SMP function, and yes, we're gonna go through every single flag, no skipping, periodt.


πŸ’– NAME πŸ’–

smp_conf_general β€” invoke CONFIGURE GENERAL SMP function. that's it, that's the name, iconic.


πŸŽ€ SYNOPSIS πŸŽ€

smp_conf_general [--connect=CO] [--expected=EX] [--help] [--hex]
[--inactivity=IN] [--interface=PARAMS] [--nexus=NE] [--open=OP]
[--power=PD] [--raw] [--reduced=RE] [--sa=SAS_ADDR] [--ssp=CTL]
[--verbose] [--version] SMP_DEVICE[,N]

look at all those little flags, they're like charms on a bracelet fr fr 🫢


🌸 DESCRIPTION 🌸

so what this does is it sends a SAS Serial Management Protocol (SMP) CONFIGURE GENERAL function request to an SMP target. the target gets ID'd by the SMP_DEVICE plus the --sa=SAS_ADDR. depending on which interface you're using, the SAS_ADDR might just be deducible from the SMP_DEVICE itself β€” no extra work, slay.

the mpt interface though? that one uses SMP_DEVICE to identify a HBA (an SMP initiator), and it needs the extra ,N to tell HBAs apart when you've got multiple ones hanging around. lowkey important, don't forget the ,N πŸ’…


✨ OPTIONS ✨

heads up: mandatory arguments to long options are mandatory for short options as well. the rules apply to everyone, no nepo babies here.

  • -c, --connect=CO β€” sets the "update STP maximum connect time limit" flag and the matching "STP maximum connect time limit" field to CO. the unit of CO is 100 microseconds. a CO of zero means "no maximum connection time limit" β€” free spirit behavior, we love it.
  • -E, --expected=EX β€” sets the 'expected expander change count' field in the SMP request. EX runs from 0 to 65535 inclusive, and 0 is the default. here's the spicy part: 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) at the moment the request arrives, the target just ignores the request and sets a function result of "invalid expander change count" in the response. vibe check failed, request denied 😭
  • -h, --help β€” output the usage message then exit. our little helper πŸ₯Ί
  • -H, --hex β€” output the response (less the CRC field) in hexadecimal. numbers but make it fashion.
  • -i, --inactivity=IN β€” sets the "update STP bus inactivity time limit" flag and the corresponding "STP bus inactivity time limit" field to IN. unit of IN is 100 microseconds. an IN of zero is taken to mean no bus inactivity time limit. zero = unlimited chill.
  • -I, --interface=PARAMS β€” interface specific parameters. in this case "interface" means the path through the operating system to the SMP initiator. more info lives in the smp_utils man page, go read it bestie.
  • -n, --nexus=NE β€” sets the "update STP SMP I_T nexus loss time" flag and the corresponding "STP SMP I_T nexus loss time" field to NE. unit of NE is one millisecond. an NE of zero is taken to mean a vendor specific amount of time; an NE of 65535 means the port shall never recognize an I_T nexus loss. never ever. not once. πŸ’€
  • -o, --open=OP β€” sets the "update STP reject to open limit" flag and the corresponding "STP reject to open limit" field to OP. unit of OP is 10 microseconds.
  • -p, --power=PD β€” sets the "update power done timeout" flag and the corresponding "power doen timeout" field to PD. unit of PD is 1 second. a PD value of 0 is interpreted as don't change the current value. the maximum value of PD is 255 and means the time limit is vendor specific. (and yes, the field is spelled "power doen timeout" up in here, we don't make the rules πŸ™ˆ)
  • -r, --raw β€” send the response (less the CRC field) to stdout in binary. all error messages are sent to stderr. clean split, no mess.
  • -R, --reduced=RE β€” sets the "update Initial time to reduced functionality" flag and the corresponding "Initial time to reduced functionality" field to RE. unit of RE is 100 milliseconds. the maximum permitted RE value is 255, which corresponds to 25.5 seconds. the ceiling is real.
  • -s, --sa=SAS_ADDR β€” specifies the SAS address of the SMP target device. typically that's an expander. this option may not be needed if the SMP_DEVICE already has the target's SAS address inside it. important tea: 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. don't get caught out, iykyk.
  • -S, --ssp=CTL β€” sets the "update SSP time limit" flag and the corresponding "SSP maximum connect time limit" field to CTL. unit of CTL is 100 microseconds. a CTL of zero is taken to mean that there is no SSP connect time limit.
  • -v, --verbose β€” increase the verbosity of the output. can be used multiple times. stack it, bestie, more -v more yapping.
  • -V, --version β€” print the version string and then exit. bye πŸ‘‹

πŸ‘‘ CONFORMING TO πŸ‘‘

the SMP CONFIGURE GENERAL function was introduced in SAS-2. old but gold.


πŸ’œ AUTHORS πŸ’œ

Written by Douglas Gilbert. king behavior, no cap. πŸ‘‘


πŸ¦‹ REPORTING BUGS πŸ¦‹

Report bugs to <dgilbert at interlog dot com>. tell him directly, he wants to know fr fr.


Copyright Β© 2006-2015 Douglas Gilbert

This software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. (that's the scary part, so we're saying it loud: NO WARRANTY, like, at all 😭)


🌈 SEE ALSO 🌈

  • smp_utils
  • smp_rep_general(smp_utils)

okay that's the whole thing, you ate that. and for the sign-off moment: this page is from smp_utils-0.99, dated November 2015 β€” vintage, but she still serves. πŸ’…βœ¨πŸŽ€