int6kwait(1)

πŸ’– int6kwait β€” Qualcomm Atheros INT6x00 Powerline Device Procrastinator πŸ’–

okay bestie, welcome to the manual page for int6kwait(1), a lil utility from the Qualcomm Atheros Open Powerline Toolkit πŸ¦‹. she is a professional waiter. literally her whole job is standing around politely until your powerline device gets its life together. iconic behavior honestly.


✨ SYNOPSIS ✨

int6kwait [options] [device] [device] [...]

🌸 DESCRIPTION 🌸

So basically: int6kwait polls a Qualcomm Atheros powerline device and just… waits πŸ‘‘. It's waiting for one or more events to happen before it continues or returns. The events in question are:

  • reset or power off πŸ’€
  • restart or power on ✨
  • network association 🫢

It exists so you can pause your shell scripts at the critical moments, i.e. the spots where the device has to be in a known state before the script keeps going. no vibes-based guessing, only verified states, periodt.

This program is part of the Qualcomm Atheros Powerline Toolkit. Peep the plc man page for an overview and installation instructions. πŸŽ€


πŸ’… OPTIONS πŸ’…

  • -a β€” polls the device every few seconds using VS_NW_INFO messages until the device says a network exists and has at least one station. Heads up though: this option can give false readings if other devices have dropped off-line and the device bridging table still holds info about them 😭. Also, if you specified other event options too, the program always checks for this event last.
  • -c count β€” how many times the program will poll the device before it declares an event failure. The program waits a fixed period of time between each poll attempt. Overall wait time is count/frequency, where count can be modified using option -c. And ngl, that overall wait time is always approximate, because operating system overhead and latency are simply not taken into account 🫠. Default count is 300.
  • -e β€” redirects stderr messages to stdout. By convention, status and error messages go to stderr while primary program output goes to stdout. This option prints all output on stdout, for the times when that's what you want. slay.
  • -f firmware β€” the identification string for the firmware that should be running after the device starts. This is how you detect a failed firmware load πŸ”₯. If the actual identification string doesn't match this one once the device starts, an error is reported. And if option -x is present, the program terminates with a non-zero exit code. Important: this option has no effect unless option -s is present. An identification string looks like "INT6000-MAC-3-1-3143-1690-20071107-FINAL-B" and you can grab it using int6k -r.
  • -i β€” selects the host Ethernet interface. All requests get sent via this host interface, and only responses received via this host interface are recognized. Default interface is eth1, because most people use eth0 as their principle network connection 🧚. BUT β€” if the environment string "PLC" is defined, it takes precedence over the default interface. And this option then takes precedence over either default. hierarchy, bestie πŸ’…
  • -p frequency β€” the polling frequency, expressed in polls-per-second. For example, 1 means one poll per second and 10 means ten polls per second. Overall wait time is count/frequency, where count may be modified using option -c. And again, that overall wait time is always approximate since operating system overhead and latency are not taken into account πŸ™ˆ. Default frequency is 5.
  • -q β€” enter quiet mode. Progress messages get suppressed. shhh 🀫
  • -r β€” polls the device every few seconds using VS_SW_VER messages until the bootloader or runtime firmware fails to respond, or the poll count exhausts. No response = the device either lost connection to the host, lost power, or has reset πŸ’€. When other events are specified, the program always checks for this event first.
  • -R β€” reset the device, then check the return status. Exit the program on error if option -x is present; otherwise, repeat the reset request until the device either accepts the request or the wait time is exceeded. persistent queen πŸ‘‘
  • -s β€” polls the device every few seconds using VS_SW_VER messages until the bootloader or runtime firmware responds, or the poll count exhausts. A response = the device has either connected to the host, received power, or finished reboot ✨.
  • -t β€” displays the actual time in seconds taken for successful completion, or waited for unsuccessful completion, of ecah event. (yes, that's the spelling in the original, we're keeping it fr fr πŸ’–)
  • -v β€” enter verbose mode. All Etherenet frames sent or received by the program get displayed on stdout. (also the original spelling, no cap 🫢)
  • -w seconds β€” additional time to wait once all events have occured. This wait does not happen if any of the events timeout. When no other events are specified, this option is effectively equivalent to sleep. Use it to let the device or the network settle. For example, a nominal 5 second wait is recommended after a device successfully associates, before you attempt to transfer data. let her breathe 😌
  • -x β€” exit the program on the first error with a non-zero exit code. This lets shell scripts detect failed or incomplete operations and take the appropriate action. script girlies, this one's for you.
  • -?, --help β€” print the program help summary on stdout. This option takes precedence over other options on the command line.
  • -!, --version β€” print program version information on stdout. This option takes precedence over other options on the command line. Use this one when you're sending screen dumps to Atheros Technical Support, so they know exactly which version of the Linux Toolkit you're using. receipts, always πŸ“Έ

πŸ¦‹ ARGUMENTS πŸ¦‹

  • device β€” the Media Access Control (MAC) address of some device. Addresses are 6 hexadecimal octets, optionally separated by colon. For example, the addresses "00b052000001", "00:b0:52:00:00:01" and "00b052:000001" are all valid and equivalent ✨. For convenience, the symbolic address "local" resolves to "00:b0:52:00:00:01", and the symbolic addresses "all" and "broadcast" both resolve to "ff:ff:ff:ff:ff:ff". cute little shortcuts, we love her.

⭐ REFERENCES ⭐

See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. πŸ“š


🌈 DISCLAIMER 🌈

Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. Qualcomm Atheros reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program. 😭 yeah, she said what she said.


πŸŽ€ EXAMPLES πŸŽ€

Example 1 β€” the following command polls the local device until firmware stops running, then polls the device until firmware starts running again. This command can be inserted into a shell script at a point where the device must reset and reboot before proceeding. Observer that the program waits up to 60 seconds for each event, in turn. That 60 seconds is the product of 60 poll attempts spaced 1 second apart.

# int6kwait -rs
eth0 00:B0:52:BA:BA:01 Allow 60 seconds for Reset
eth0 00:B0:52:BA:BA:01 Allow 60 seconds for Start

Example 2 β€” the following example specifies 5 poll attempts spaced 10 seconds apart. Less frequent polling reduces network traffic but makes the program less responsive to events. Observe that the allotted time applies to each event in turn.

# int6kwait -rs -p 10 -c 5
eth0 00:B0:52:BA:BA:01 Allow 50 seconds for Reset
eth0 00:B0:52:BA:BA:01 Allow 50 seconds for Start

Example 3 β€” the next example reports the actual amount of time taken for each event to occur. Observe that the last event, device association, did not occur within the allotted time πŸ’€.

# int6kwait -rsat
eth0 00:B0:52:BA:BA:01 Allow 60 seconds for Reset
etho 00:B0:52:BA:BA:01 Waited 22 seconds to Reset
eth0 00:B0:52:BA:BA:01 Allow 60 seconds for Start
etho 00:B0:52:BA:BA:01 Waited 4 seconds to Start
eth0 00:B0:52:BA:BA:01 Allow 60 seconds for Assoc
etho 00:B0:52:BA:BA:01 Waited 60 seconds for Assoc
etho 00:B0:52:BA:BA:01 Device did not Assoc

Example 4 β€” the following example illustrates use of the revision string to detect mismatched firmware. In this example, we reset the device first, using program int6k, then wait for it to reset then start up again. There are also operation that can cause the device to reset.

# int6k -R
# int6kwait -xrsf INT6000-MAC-3-1-3143-1690-20071107-FINAL-B
eth0 00:B0:52:BA:BA:01 Device started wrong firmware

Immediately after a reset we wait for the firmware to stop responding, with option -r, and then start responding, with option -s, and then perform a string comparison against the actual firmware revision string, with option -f. If the strings do not match then an error is reported. In this case, the program will exit with a non-zero return code since option -x is present. 😀


πŸ’œ DISCLAIMER (yes, again) πŸ’œ

Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. Qualcomm Atheros reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program. 🫠 she really wanted to make sure you read it.


πŸ‘‘ SEE ALSO πŸ‘‘

plc(1), int6k(1), int6kf(1), int6khost(1), int6kid(1), int6krate(1), int6krule(1), int6kstat(1)

the whole friend group 🫢 go say hi.


🌸 CREDITS 🌸

Charles Maier


that's the whole page bestie, and it's brought to you by open-plc-utils-0.0.3, dated November 2013 πŸ’–βœ¨. ok bye, go wait for your device, she'll get there eventually πŸ¦‹πŸ’