SMP_ZONED_BROADCAST(8)
β¨ SMP_ZONED_BROADCAST(8) β the smp_zoned_broadcast glow-up β¨
ok so bestie, you found your way to smp_zoned_broadcast in the smp_utils manual (section 8, we're in sysadmin territory π
), and I'm gonna walk you through it like we're texting at 1am. sit down, hydrate, let's go π«Ά
πΈ NAME πΈ
smp_zoned_broadcast β invoke ZONED BROADCAST SMP function. that's it, that's the whole vibe. it literally does one thing and it serves π
π¦ SYNOPSIS π¦
smp_zoned_broadcast [--broadcast=BT] [--expected=EX] [--fszg=FS]
[--help] [--hex] [--interface=PARAMS] [--raw] [--sa=SAS_ADDR]
[--szg=ZGL] [--verbose] [--version] SMP_DEVICE[,N]
like, look at her. a whole lineup of options. main character energy fr fr π
π DESCRIPTION π
so what's actually happening here? this little icon sends a SAS Serial Management Protocol (SMP) ZONED BROADCAST function request off to an SMP target. and who is that target, you ask? it's identified by the SMP_DEVICE and the --sa=SAS_ADDR, okay?
depending on the interface, the SAS_ADDR may just be deduced from the SMP_DEVICE β no extra work needed, slay. but the mpt interface is a lil different: it uses SMP_DEVICE to identify a HBA (that's an SMP initiator, iykyk) and it needs that extra ,N to tell apart HBAs if there's more than one hanging around. multiple HBAs? not me having to differentiate π
heads up: this function requires zoning to be enabled. no zoning, no vibes.
and if you're sitting there like "but bestie, how do I send a Broadcast (Change) when there's no zoning at all?" β the least intrusive way seems to be to use a PHY CONTROL request to send a link reset to an expander phy. that's the move π
and why do we even care? because Broadcast (Change) should cause a management application client behind an SMP initiator port (think: a SAS HBA) to start a discover process. it's giving "hey girl, wake up, go look around" β
π OPTIONS π
ok mandatory-arguments-to-long-options-are-mandatory-for-short-options-as-well, that classic line. here's every single one, no skips, no cap:
-b,--broadcast=BTβBTis the broadcast type, an integer from0(the default, bestie) to15.0is Broadcast (Change) and it makes SMP initiators that receive it go do their discover process. the other known broadcast types? they're listed down in NOTES, keep scrolling π.BTcan be decimal (that's the default) or hexadecimal, prefixed with'0x'(or'0X') or with a'h'(or'H') suffix.-E,--expected=EXβ sets the'expected expander change count'field in the SMP request.EXgoes from0to65535inclusive, and0is the default value. so whenEXis greater than zero, if the value doesn't match the expander change count of the SMP target (i.e. the expander) when the request arrives, then the target ignores the request and sets a function result of"invalid expander change count"in the response. rude, but fair π. also in SPL-1 this field is marked as"restricted (for expected expander change count)".-F,--fszg=FSβ whereFSis the name of a file containing one or more source zone groups to send a broadcast to π. the zone groups can be given in decimal (default) or hexadecimal prefixed by'0x'(or'0X') or with a'h'(or'H') suffix. a zone group is a number in the range0to255. each zone group can be separated by space, tab, comma or newline. empty lines, and lines starting with"#", are ignored. cute and tidy β¨-h,--helpβ outputs the usage message then exits. the classic "help me bestie" button π«Ά-H,--hexβ outputs the response (less the CRC field) in hexadecimal.-I,--interface=PARAMSβ interface specific parameters. in this case "interface" means the path through the operating system to the SMP initiator. for more info, go read thesmp_utilsman page π-r,--rawβ sends the response (less the CRC field) tostdoutin binary. all error messages go tostderr. keeping the streams separated, we love a clean setup πΈ-s,--sa=SAS_ADDRβ specifies the SAS address of the SMP target device. themptinterface needs this option, and it'll typically be an expander's SAS address.SAS_ADDRis 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,--szg=ZGLβ one or more source zone groups for broadcast, appearing as a comma separated listZGL. they may be decimal (default) or hexadecimal prefixed by'0x'(or'0X') or with a'h'(or'H') suffix. a zone group is a number in the range0to255. and listen: either this option or--fszg=FS(but not both) should be given. pick a lane, bestie π-v,--verboseβ increases the verbosity of the output. can be used multiple times, so go off, stack them, get all the tea β-V,--versionβ prints the version string and then exits.
π NOTES π
here's the full list of broadcast types, no gatekeeping:
0 Broadcast (Change)
1 Broadcast (Reserved change 0)
2 Broadcast (Reserved change 1)
3 Broadcast (SES)
4 Broadcast (Expander)
5 Broadcast (Asynchronous event)
6 Broadcast (Reserved 3)
7 Broadcast (Reserved 4)
8 Broadcast (Zone activate)
and the remaining zone types (9 to 15) may be issued by the ZONED BROADCAST function. so there's more where that came from β¨
π CONFORMING TO π
the SMP ZONED BROADCAST function was introduced in SAS-2. periodt. she's been around π
π AUTHORS π
written by Douglas Gilbert. the icon who built all of this, we stan π«Ά
π REPORTING BUGS π
found a bug? report bugs to <dgilbert at interlog dot com>. don't be shy, they wanna know fr fr
π COPYRIGHT π
copyright Β© 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. so like, if it breaks, it's not their problem, ngl π
β SEE ALSO β
smp_utilssmp_zone_locksmp_zone_unlocksmp_ena_dis_zoning(smp_utils)
go read those next, bestie, the lore runs deep π¦
ok that's the whole page!! π this was smp_utils-0.96 from June 2011, and yes the version is giving vintage but she still eats. love u, go broadcast something responsibly πβ¨
π¦ 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