SMP_CONF_ROUTE_INFO(8)
โจ SMP_CONF_ROUTE_INFO(8) โจ
okay so bestie, welcome to the smp_utils corner of the manual, section 8, and today's main character is smp_conf_route_info ๐
๐ธ NAME ๐ธ
smp_conf_route_info โ bestie, this one goes and pokes the CONFIGURE ROUTE INFORMATION SMP function. that's the whole job. that's the vibe. ๐ซถ
๐ SYNOPSIS ๐
smp_conf_route_info [--disable] [--expected=EX] [--help] [--hex]
[--index=IN] [--interface=PARAMS] [--phy=ID] [--raw]
[--routed=R_SAS_ADDR] [--sa=SAS_ADDR] [--verbose] [--version]
SMP_DEVICE[,N]
๐ฆ DESCRIPTION ๐ฆ
So what are we even doing here? We're sending a SAS Serial Management Protocol (SMP) CONFIGURE ROUTE INFORMATION function request to an SMP target. โจ
Who is the SMP target, you ask? It's identified by the SMP_DEVICE and the --sa=SAS_ADDR. Depending on which interface you're rolling with, the SAS_ADDR might just be deduced straight out of the SMP_DEVICE โ no extra effort, slay. ๐
The mpt interface is a little needier though: it uses SMP_DEVICE to identify a HBA (an SMP initiator, basically the one doing the initiating, main character energy) and it needs that extra ,N on the end to tell apart multiple HBAs if more than one is hanging around. no cap. ๐
Now, plot twist, there are two expander route table types:
- phy-based
- expander-based
The expander-based route table showed up in SAS-2 and it straight-up supersedes the phy-based route tables (iconic behaviour, honestly ๐). But the CONFIGURE ROUTE INFORMATION function? That one is associated with a phy-based route table. And if you wanna report phy-based route table entries, there's a whole separate REPORT ROUTE INFORMATION function for that. iykyk. ๐
Also, lowkey important: every phy in a SAS expander that has an associated routing attribute of "table" gets its own router table. And the number of rows (aka entries) in each router table is given by the "expander route indexes" field in the response of the REPORT GENERAL function. ๐
๐ OPTIONS ๐
real talk: mandatory arguments to long options are mandatory for short options as well. so don't try to skip them, bestie. ๐ญ
-d,--disableโ sets the"disable expander route entry"flag in a row of the router table associated with--phy=IDof the given SMP target (like, say, an expander). Within that router table, the row getting disabled is the one identified by the expander route index you hand over in--index=IN. bye bye route entry ๐-E,--expected=EXโ sets the'expected expander change count'field in the SMP request.EXruns from 0 to 65535 inclusive, and 0 is the default. Here's the drama: whenEXis greater than zero, if the value doesn't match the expander change count of the SMP target (aka the expander) at the moment the request arrives, then the target ignores the request entirely and sets a function result of"invalid expander change count"in the response. ๐-h,--helpโ prints the usage message, then exits. the classic.-H,--hexโ spits out the response (minus the CRC field) in hexadecimal. ๐ข-i,--index=INโ the expander route index.INis a value between 0 and 65535, default is 0. More precisely though? The max index value is(expander_route_indexes - 1). math is math ๐งฎ-I,--interface=PARAMSโ interface specific parameters. and yes, "interface" here means the path through the operating system to the SMP initiator. go read thesmp_utilsman page for more on that. ๐ฃ๏ธ-p,--phy=IDโ the phy identifier.IDis a value between 0 and 254, default is 0.-r,--rawโ sends the response (minus the CRC field) tostdoutin binary. and all the error messages? those go tostderr. keeping them separated, as one does. ๐-R,--routed=R_SAS_ADDRโ specifies the SAS address to be placed in a row (the row given by--index=IN) of the router table associated with--phy=ID. Default value is 0. Heads up:R_SAS_ADDRis in decimal, but most SAS addresses are given in hexadecimal โ so to give a number in hex, either prefix it with'0x'or stick a trailing'h'on it. your choice, both eat. ๐-s,--sa=SAS_ADDRโ specifies the SAS address of the SMP target device. typically that's an expander. this option may not even be needed if theSMP_DEVICEalready has the target's SAS address inside it. same decimal/hex situation as above:SAS_ADDRis in decimal but most SAS addresses are shown in hexadecimal, so prefix with'0x'or slap a trailing'h'on it. ๐-v,--verboseโ increases the verbosity of the output. and bestie, you can use it multiple times. stack it. โจ-V,--versionโ prints the version string, then exits.
๐ CONFORMING TO ๐
The SMP CONFIGURE ROUTE INFORMATION function was introduced in SAS-1. And the "Expander change count" field? That got added later, in SAS-2. glow up ๐ซ
๐ AUTHORS ๐
Written by Douglas Gilbert. (the legend himself ๐ซถ)
๐ญ REPORTING BUGS ๐ญ
Report bugs to <dgilbert at interlog dot com>. don't be shy, they wanna know.
๐ COPYRIGHT ๐
Copyright ยฉ 2006-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. (yes it's giving all caps legal energy, that's on purpose ๐)
๐ง SEE ALSO ๐ง
smp_utilssmp_rep_generalsmp_rep_route_info(smp_utils)
and that's the whole page, bestie!! this lil cutie comes to you as part of smp_utils-0.96, dated May 2011, and it lives its life as SMP_CONF_ROUTE_INFO(8). periodt. ๐
โจ๐
๐ฆ where this page comes from
- debian bookworm: smp-utils 0.99-1 ยท BSD-3-Clause
- debian trixie: smp-utils 0.99-1 ยท BSD-3-Clause
- epel 10: smp_utils 0.99-1.el10_0 ยท BSD-3-Clause
- epel 9: smp_utils 0.99-5.el9 ยท BSD
- fedora 43: smp_utils 0.99-14.fc43 ยท BSD-3-Clause
- fedora 44: smp_utils 0.99-15.fc44 ยท BSD-3-Clause
- opensuse-leap 16.0: smp_utils 0.99-bp160.1.6 ยท BSD-3-Clause AND GPL-2.0-only
- opensuse-leap 16.0: smp_utils 0.99-bp160.1.6 ยท BSD-3-Clause AND GPL-2.0-only
- opensuse-leap 16.0: smp_utils 0.99-bp160.1.6 ยท BSD-3-Clause AND GPL-2.0-only
- opensuse-leap 16.0: smp_utils 0.99-bp160.1.6 ยท BSD-3-Clause AND GPL-2.0-only
- ubuntu jammy: smp-utils 0.99-1 ยท BSD-3-Clause
- ubuntu noble: smp-utils 0.99-1 ยท BSD-3-Clause
- ubuntu resolute: smp-utils 0.99-1build1 ยท BSD-3-Clause
- ubuntu stonking: smp-utils 0.99-1build1 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms