SMP_CONF_ZONE_PHY_INFO(8)

πŸ’– SMP_CONF_ZONE_PHY_INFO(8) πŸ’–

okay bestie, welcome to the glow-up guide for smp_conf_zone_phy_info, one of the lil legends that lives in the smp_utils family. she's a section 8 girlie, she speaks SAS Serial Management Protocol, and she's about to invoke the CONFIGURE ZONE PHY INFORMATION function. no cap. πŸ¦‹


✨ NAME ✨

smp_conf_zone_phy_info β€” invoke CONFIGURE ZONE PHY INFORMATION function πŸ’…


🌸 SYNOPSIS 🌸

smp_conf_zone_phy_info [--expected=EX] [--help] [--hex]
[--interface=PARAMS] --pconf=FN [--raw] [--sa=SAS_ADDR] [--save=SAV]
[--verbose] [--version] SMP_DEVICE[,N]

πŸŽ€ DESCRIPTION πŸŽ€

so what she actually does: she sends a SAS Serial Management Protocol (SMP) CONFIGURE ZONE PHY INFORMATION function request to an SMP target. slay. πŸ’…

the SMP target gets ID'd by the SMP_DEVICE plus the --sa=SAS_ADDR. depending on which interface you're rolling with, the SAS_ADDR might just be deduced from the SMP_DEVICE β€” the universe provides, iykyk. ✨

the mpt interface is a lil extra though: it uses SMP_DEVICE to identify a HBA (an SMP initiator), and it needs that additional ,N tacked on to tell the difference between HBAs if there's more than one hanging around. not her fault, she's just being specific. πŸ™ˆ

now, the tea on the descriptors πŸ«–: each zone phy configuration descriptor is 4 bytes long. let's break it down byte by byte, bestie:

  • first byte β€” an (expander) phy identifier.
  • second byte β€” has 3 modifiable bits: bit 5 is "inside ZPSDS persistent"; bit 4 is "requested inside ZPSDS"; and bit 2 is "zone group persistent". the other bits in this second byte are reserved and should be 0.
  • third byte β€” reserved and should be 0.
  • fourth byte β€” the zone group.

periodt. ✨


πŸ’… OPTIONS πŸ’…

heads up: mandatory arguments to long options are mandatory for short options as well. no skipping, bestie.

  • -E, --expected=EX β€” sets the 'expected expander change count' field in the SMP request. EX is from 0 to 65535 inclusive, with 0 being the default value. 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) when the request arrives, then the target ignores the request and sets a function result of "invalid expander change count" in the response. she said nope. πŸ’€
  • -h, --help β€” outputs the usage message, then exits. classic.
  • -H, --hex β€” outputs the response (less the CRC field) in hexadecimal. ✨
  • -I, --interface=PARAMS β€” interface specific parameters. in this case "interface" refers to the path through the operating system to the SMP initiator. see the smp_utils man page for more info. πŸ‘‘
  • -p, --pconf=FN β€” FN is a file containing zone phy configuration descriptors in ASCII hexadecimal; either as bytes separated by space, tab, comma or newline, or as longer strings of hexadecimal bytes in which every 2 digits represents a byte. empty lines and those starting with # are ignored. and since each zone phy configuration descriptor is 4 bytes long, the number of bytes in FN is expected to be a multiple of 4. math is math. 🧚
  • -r, --raw β€” sends the response (less the CRC field) to stdout in binary. all error messages are sent to stderr. she keeps the drama on a separate channel. 😭
  • -s, --sa=SAS_ADDR β€” specifies the SAS address of the SMP target device. the mpt interface needs this option and it will typically be an expander's SAS address. 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. πŸ’œ
  • -S, --save=SAV β€” sets the 'save' field in the SMP request. SAV may take these values: 0 for updating the shadow values (default), 1 for updating the saved values, 2 for updating shadow values and if available the saved values, 3 for updating both saved and shadow values. pick your fighter. πŸ”₯
  • -v, --verbose β€” increases the verbosity of the output. can be used multiple times. more -v, more lore. 🌈
  • -V, --version β€” prints the version string and then exits. ✨

πŸ¦‹ NOTES πŸ¦‹

the expander phys that make up a wide port (2 or more attached to phys with the same SAS address) must be set to the same zone phy configuration settings β€” other than the phy id. they're a unit, they match, that's the vibe. πŸ‘‘

zone phy information can be read back from an expander and placed in a file with the smp_discover_list utility's --zpi=FN option. and the format of that file should be suitable for this utility's --pconf=FN option. look at the synergy. chef's kiss. πŸ’–


⭐ CONFORMING TO ⭐

the SMP CONFIGURE ZONE PHY INFORMATION function was introduced in SAS-2. iconic behavior, honestly.


🌸 AUTHORS 🌸

written by Douglas Gilbert. πŸ‘‘


πŸ™ˆ REPORTING BUGS πŸ™ˆ

report bugs to <dgilbert at interlog dot com>. she wants to know, fr fr.


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, no promises, bestie, that's just how it is. 😭


πŸŽ€ SEE ALSO πŸŽ€

  • smp_utils
  • smp_conf_zone_perm_tbl
  • smp_zone_activate
  • smp_discover_list(smp_utils)

and that's the whole page, babes 🫢 this was smp_utils-0.96, dated May 2011 β€” she's vintage, she's stable, she ate and left no crumbs. mwah. πŸ’…βœ¨