plcrate(1)

πŸ’… plcrate(1) β€” Qualcomm Atheros AR7x00 PHY Rate Monitor πŸ’…

okay bestie, sit down, hydrate, because we're about to talk about the Qualcomm Atheros Open Powerline Toolkit and specifically this little icon, plcrate. πŸ¦‹ It polls your powerline gear and tells you how fast it's actually talking. Let's go.


✨ NAME ✨

plcrate β€” the Qualcomm Atheros AR7x00 PHY Rate Monitor. that's her. that's the whole job. πŸ‘‘


🌸 SYNOPSIS 🌸

plcrate [options] [device] [device] [...]

πŸ’– DESCRIPTION πŸ’–

The Atheros PHY Rate Utility polls one or more devices and prints the average transmit and receive PHY rates between a device and each neighboring network device. so like, who's talking to whom and how fast, bestie.

The output is column-oriented, which means it's literally built to be dropped straight into a spreadsheet or slurped up by a simple program. it's giving "data, but make it tidy." πŸ“Š

This program is part of the Qualcomm Atheros Powerline Toolkit. See the plc man page for an overview and installation instructions β€” that's your orientation episode, this one's the spinoff. πŸŽ€


πŸ”₯ CHIPSETS πŸ”₯

  • QCA6410
  • QCA7000
  • QCA7420

those three. that's the guest list. no cap. ✨


πŸ‘‘ OPTIONS πŸ‘‘

  • -c β€” display coded PHY rates. plot twist: coded PHY rates are already displayed by default, so this option is redundant β€” it's been kept around for backword compatibility (yes, "backword", we love her, she's legacy πŸ’€). This option and option -u are mutually exclusive, so pick a lane.
  • -d seconds β€” traffic duration in seconds, per connection. directional traffic is systematically sent between each pair of powerline network devices for this exact period of time. which means the total time needed to generate traffic between all network devices will be approximately n! times this value β€” so don't get carried away, bestie, that factorial will humble you. The minimum value is 1 second and the maximum value is 60 seconds.
  • -e β€” redirects stderr messages to stdout. by convention, status and error messages get printed on stderr while the primary program output goes to stdout. this option prints all output on stdout for the times when that's what you want. one stream, one vibe. 🫢
  • -i interface β€” select the host Ethernet interface. all requests are sent via this host interface, and only reponses received via this host interface are recognized. the default interface is eth1, because most people use eth0 as their principle network connection. however, if the environment string "PLC" is defined then it takes precedence over the default interface. and this option then takes precedence over either default. so: option > PLC env var > eth1. a whole little hierarchy, slay. πŸ’…
  • -n β€” reads the average transmit and receive PHY rate for wach device using VS_NW_INFO and prints it on stdout. each output line displays the ethernet interface, source address, destination address, and either the transmit or receive PHY rate. (yes it says "wach". typo rights. 😭)
  • -o milliseconds β€” read timeout in milliseconds. values range from 0 through UINT_MAX. this is the maximum time allowed for a response. the default is shown in brackets on the program menu.
  • -q β€” enter quiet mode. progress messages are suppressed. 🀫
  • -r β€” reads device hardware and software revision information using VS_SW_VER and prints it on stdout.
  • -R β€” resets the device using VS_RS_DEV. it resets the device!! that's the whole thing, she's not subtle. πŸ’€
  • -s β€” generate only TX traffic between the local device and each remote device on the powerline network. this is useful to speed up PLC network testing if the test is run on every node and each receiving side is checked individually. in other words: this flag is only used in combination with -t (one-to-many), not when generating traffic between all powerline peers.
  • -t β€” generate powerline traffic between the local device and each remote device on each powerline network connected to the host. it does not generate any traffic between remote powerline device pairs. this is especially useful when remote powerline devices are not connected to Ethernet devices capable of sending traffic back to the host. local-to-everyone, one-to-many, iconic. 🌈
  • -T β€” generate powerline traffic between all devices on each powerline network connected to the host. similar to option -t but it takes much longer because traffic is systematically generated between each pair of powerline devices. consequently, the time to complete will increase factorially as the number of network devices increases. such complete traffic path coverage is not always needed. (repeating for emphasis: factorial. she said factorial. 🫠)
  • -u β€” display un-coded PHY rates. coded PHY rates are displayed by default. this option and option -c are mutually exclusive β€” you literally cannot have both, that's the rule.
  • -v β€” enter verbose mode. all Etherenet frames sent or received by the program are displayed on stdout. every single one. no thoughts, just frames. πŸ“‘
  • -x β€” exit the program on the first error with a non-zero exit code. this option lets shell scripts detect failed or incomplete operations and take the appropriate action. script-friendly behavior, we stan. βœ…
  • -?, --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 sending screen dumps to Atheros Technical Support so they know exactly which version of the Linux Toolkit you are using. receipts matter, bestie. 🧾

πŸŽ€ ARGUMENTS πŸŽ€

  • device β€” the MAC address of some powerline device. more than one address may be specified. if more than one address is specified, then operations are performed on each device in turn. the default address is local. see DEVICES for information about symbolic device addresses. πŸ”

πŸ¦‹ DEVICES πŸ¦‹

Powerline devices use Ethernet Media Access Control (MAC) addresses. a MAC address is a 48-bit value entered as 12 hexadecimal digits in upper, lower, or mixed character case. octets may be separated with colons for clarity. for example, "00b052000001", "00:b0:52:00:00:01" and "00b052:000001" are all valid and all equivalent. same girl, three outfits. πŸ’…

The following MAC addresses are special and may be entered by name instead of number:

  • all β€” same as "broadcast".
  • broadcast β€” a synonym for the Ethernet broadcast address, FF:FF:FF:FF:FF:FF. all devices, whether local, remote, or foreign, recognize messages sent to this address. a remote device is any device at the far end of a powerline connection. a foreign device is any device not manufactured by Atheros. everyone hears this one, it's the group chat. πŸ“’
  • local β€” a synonym for the Qualcomm Atheros vendor specific Local Management Address (LMA), 00:B0:52:00:00:01. all local Atheros devices recognize this address, but remote and foreign devices do not. a remote device is any device at the far end of a powerline connection. a foreign device is any device not manufactured by Atheros. it's giving private story, local only. πŸ”’

πŸ“š REFERENCES πŸ“š

See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. the lore is there. go read it. ⭐


✨ EXAMPLES ✨

The following example displays the average transmit and receive PHY rates from each of two devices. one is a local device connected to interface eth2 and the other is a remote device at the far end of the powerline. in this case, they are the only two devices on the powerline network. observe the recipricol rates shown. πŸ‘€

# plcrate -ni eth2 00:B0:52:00:00:AA 00:B0:52:00:00:BB
eth2 00:B0:52:00:00:AA 00:B0:52:00:00:BB TX 163 mbps
eth2 00:B0:52:00:00:AA 00:B0:52:00:00:BB RX 176 mbps
eth2 00:B0:52:00:00:BB 00:B0:52:00:00:AA TX 176 mbps
eth2 00:B0:52:00:00:BB 00:B0:52:00:00:AA RX 163 mbps

The following example generates powerline traffic between the local device and each remote device because option -t is present. it then displays the PHY rate read from the local device. 🫢

# plcrate -tni eth2
eth2 00:B0:52:00:00:AA 00:B0:52:00:00:BB TX 163 mbps
eth2 00:B0:52:00:00:AA 00:B0:52:00:00:BB RX 176 mbps

πŸ’€ 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.

read that twice, bestie. it's the fine print and the fine print is serious. 🚨


🌈 SEE ALSO 🌈

the whole friend group, go say hi. 🫢


πŸ’œ CREDITS πŸ’œ

  • Nathaniel Houghton
  • Charles Maier

the architects. the visionaries. the main characters of this page. πŸ‘‘


and that's the whole thing!! this page came to you from open-plc-utils-0.0.3, dated November 2013 β€” an absolute vintage icon that still eats, fr fr. go forth and measure those PHY rates. 163 mbps TX, 176 mbps RX, periodt. πŸ’–βœ¨πŸŽ€