SMP_REP_EXP_ROUTE_TBL(8)

🌸 SMP_REP_EXP_ROUTE_TBL πŸ’…

okay bestie, gather round, because we're about to talk about smp_rep_exp_route_tbl β€” that's the smp_utils girlies' very own section 8 tool for poking at SAS expanders. she's an SMP function invoker and she's lowkey iconic 🫢


✨ SYNOPSIS ✨

smp_rep_exp_route_tbl [--brief] [--help] [--hex] [--index=IN]
[--interface=PARAMS] [--num=NUM] [--phy=ID] [--raw] [--sa=SAS_ADDR]
[--verbose] [--version] SMP_DEVICE[,N]

πŸ’– DESCRIPTION πŸ’–

so basically she sends a SAS Serial Management Protocol (SMP) REPORT EXPANDER ROUTE TABLE LIST function request to an SMP target, and then she either decodes the response or just yeets it out at you. that's the whole job. no cap.

the SMP target is identified by the SMP_DEVICE and the SAS_ADDR. depending on the interface, the SAS_ADDR may just be deduced from the SMP_DEVICE β€” she's smart like that. the mpt interface uses SMP_DEVICE to identify a HBA (that's an SMP initiator, for the uninitiated), and it needs the extra ,N on the end to tell HBAs apart if you've got multiple of them hanging around. it's giving "i have so many HBAs and they all look the same" 😭

now, the lore: there are two expander route table types β€” phy-based and expander-based. the expander-based route table was introduced in SAS-2 and it supersedes the phy-based route tables, like a glow-up that made the old one obsolete. the REPORT EXPANDER ROUTE TABLE LIST function is associated with an expander-based route table. and there is no corresponding CONFIGURE function, because an expander-based route table is self-configured. she configures herself. main character energy fr fr πŸ‘‘


🌈 OPTIONS 🌈

mandatory arguments to long options are mandatory for short options as well. periodt.

  • -b, --brief β€” reduce the decoded response output. short and sweet, minimal chatter πŸ’…
  • -h, --help β€” spits out the usage message then exits. your girl is helpful.
  • -H, --hex β€” output the response (less the CRC field) in hexadecimal. hex girl summer ✨
  • -i, --index=IN β€” IN is the starting routed SAS address index. default value is 0.
  • -I, --interface=PARAMS β€” interface specific parameters. in this case "interface" means the path through the operating system to the SMP initiator. go read the smp_utils man page for more info, bestie, i can't do everything for you πŸŽ€
  • -n, --num=NUM β€” maximum number of descriptors to fetch (default is 62). heads up tho: the maximum SMP frame size is 1028 bytes (including a trailing 4 byte CRC), so 62 descriptors is the absolute max that can fit in one response. the math is mathing πŸ”₯
  • -p, --phy=ID β€” starting phy identifier within bitmap. ID should be one of 0 (the default), or a multiple of 48. and just so you know: there is only one expander route table per expander, not one per phy. do not come for her with that per-phy nonsense πŸ™ˆ
  • -r, --raw β€” send the response (less the CRC field) to stdout in binary. all error messages are sent to stderr. raw, unfiltered, no makeup πŸ’€
  • -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 inside it already. the SAS_ADDR is in decimal, but most SAS addresses are shown in hexadecimal β€” so to give a number in hex, either prefix it with '0x' or slap a trailing 'h' on it. choose your fighter ⭐
  • -v, --verbose β€” increase the verbosity of the output. can be used multiple times. yes, multiple. stack her up 🧚
  • -V, --version β€” print the version string and then exit. bye bestie πŸ‘‹

πŸ‘‘ CONFORMING TO πŸ‘‘

the SMP REPORT EXPANDER ROUTE TABLE LIST function was introduced in SAS-2. vintage, but make it fashion.


πŸŽ€ AUTHORS πŸŽ€

written by Douglas Gilbert. yes, THE Douglas Gilbert. we stan.


😭 REPORTING BUGS 😭

found a bug? report it to <dgilbert at interlog dot com>. be nice, be specific, include the receipts.


Copyright Β© 2007-2011 Douglas Gilbert

this software is distributed under a FreeBSD license. there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. read that again. NO WARRANTY. she said what she said.


πŸ¦‹ SEE ALSO πŸ¦‹

  • smp_utils
  • smp_rep_route_info

ok that's the whole page, you're officially educated πŸ’–

and that's a wrap on the smp_rep_exp_route_tbl(8) page from the smp_utils crew β€” this version lived in smp_utils-0.96, dated May 2011. old money, still slaying ✨🌸