amplist(1)

✨ NAME ✨

okay bestie, this is amplist from the Qualcomm Atheros Open Powerline Toolkit πŸŽ€ and it does one thing and does it perfectly: amplist - List Atheros Device Addresses πŸ’…


🧚 SYNOPSIS 🧚

amplist [options] [device] [device] [...]

πŸ’– DESCRIPTION πŸ’–

okay so amplist prints either the local device address or all the network device addresses for a specific device 😭 it's ideal for that special script jokester in your life. it only prints device addresses. nothing else. 🫢

devices get detected using one of two methods, and lowkey the magic is that you can use both together to figure out the network topology πŸ¦‹

the first method sends one VS_SW_VER message to the Qualcomm Atheros Local Management Address and prints the Ethernet source address from each received confirmation message ✨ this is what happens when there are no device addresses on the command line. the result is a list of all local devices, meaning the ones connected directly to the local host. each local device may bridge to an independent powerline network with remote devices as members 🌈

the second method sends one VS_NW_INFO message to each specified device and prints the Ethernet source address from each received message, plus the Ethernet addresses of every network station identified in that message body πŸ‘‘ this kicks in whenever one or more device addresses show up on the command line. you can query remote powerline devices directly, so duplicate device addresses get printed when devices share powerline neighbors. it's giving repeat, but that's the vibe πŸ’…

this program is part of the Qualcomm Atheros Powerline Toolkit. check out the plc man page for an overview and installation instructions 🌸


πŸŽ€ COMMENTS πŸŽ€

this program is identical to the legacy program int6klist but it uses version 1 of the Qualcomm Atheros VS_NW_INFO vendor-specific message. heads up: older firmware versions may not recognize this message version πŸ™ˆ


⭐ OPTIONS ⭐

  • -b β€” print bridge device addresses. each specified device reports its own address πŸ¦‹ this option has no effect if no devices are specified.
  • -i β€” pick the host Ethernet interface. all requests go out through this host interface, and only responses received through this host interface get recognized πŸ”₯ the default interface is eth1, because most people use eth0 as their principal network connection. however, if the environment string "PLC" is defined, it takes precedence over the default interface. and this option then takes precedence over either default πŸ‘‘
  • -n β€” append a newline to the output πŸ“
  • -q β€” enter quiet mode. this option has no effect at this time πŸŒ™
  • -r β€” print remote device addresses. each specified device reports its neighbor device addresses ✨ this option has no effect when no devices are specified.
  • -s β€” insert a newline, instead of a space, between each device address 🌸
  • -v β€” enter verbose mode. every Ethernet frame sent or received by the program gets displayed on stdout πŸ‘€
  • -?, --help β€” print the program help summary on stdout πŸ’œ this option takes precedence over other options on the command line.
  • -!, --version β€” print the program version information on stdout 🧚 this option takes precedence over other options on the command line. use this option when sending screen dumps to Atheros Technical Support so that they know exactly which version of the Linux Toolkit you are using 🫢

πŸ“ ARGUMENTS πŸ“

  • device β€” the MAC address of some powerline device. you can specify more than one address πŸ’– if you leave it out, the program output consists of local device addresses only. otherwise, the output consists of the specified device followed by all devices associated with it. the default address is local. see DEVICES for info 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 case πŸ’… octets can be separated with colons for clarity. for example, 00b052000001, 00:b0:52:00:00:01 and 00b052:000001 are all valid and equivalent πŸ¦‹

the following MAC addresses are special and can 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.
  • 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.

πŸ“š REFERENCES πŸ“š

see the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more info πŸ€“


⚠️ DISCLAIMER ⚠️

bestie, read this one πŸ’€ The 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.

🎬 EXAMPLES 🎬

okay the examples are so good 😭 the first one lists all local devices. since no devices are on the command line, one VS_SW_VER message gets addressed to 00:B0:52:00:00:01 and the responses are collected. as we can see, there's only one local device available right now. notice the prompt appears right after the address because newlines are omitted by default πŸ’–

# amplist
00:B0:52:BE:EF:04 #

the next example does the same thing, but now there are three local devices available 🌸 notice that all devices print without newlines in between, so the output of this program can be used as input to other toolkit programs ✨

# amplist
00:B0:52:BE:EF:04 00:B0:52:BA:BE:02 00:B0:52:BA:BE:01 # int6k

this one queries the first local device from the previous example, 00:B0:52:BE:EF:04, for a list of neighbor devices πŸ¦‹ this time a VS_NW_INFO message gets sent, because we named a device on the command line. the named device happens to be a local device, but it doesn't have to be. we can see that this device has no neighbors πŸ™ˆ

# amplist 00:B0:52:BE:EF:04
00:B0:52:BE:EF:04 # int6k

next we query the next local device, 00:B0:52:BA:BE:02, and find that it has two neighbor devices that didn't show up earlier, because they're remote devices πŸ‘€ notice that the three devices make up a complete logical powerline network. device 00:B0:52:BA:BE:02 is connected to the local host, but 00:0F:33:F2:01:21 and 00:0f:00:F2:01:13 are connected to other hosts, somewhere 🌍

# amplist 00:B0:52:BA:BE:02
00:B0:52:BA:BE:02 00:0F:33:F2:01:21 00:0F:00:F2:01:13

this example shows we can query multiple devices at once for neighbors πŸ’… we copied the output from the second example and pasted it onto the command line. now we have a list of all devices, local and remote πŸ‘‘

# amplist 00:B0:52:BE:EF:04 00:B0:52:BA:BE:02 00:B0:52:BA:BE:01
00:B0:52:BE:EF:04 00:B0:52:BA:BE:01 00:B0:52:BA:BE:02
00:0F:33:F2:01:21 00:0F:00:F2:01:13

this next one does the same thing but uses option -n to append a newline after each query πŸ“ this output is so much easier to read, because each queried device starts on a new line and is followed by its neighbors 🫢

# amplist 00:B0:52:BE:EF:04 00:B0:52:BA:BE:02 00:B0:52:BA:BE:01 -n
00:B0:52:BE:EF:04
00:B0:52:BA:BE:02 00:0F:33:F2:01:21 00:0F:00:F2:01:13
00:B0:52:BA:BE:01

this example invokes amplist, which returns a list of local devices. that list gets inserted into another amplist command line. this demonstrates how program output can be used in scripts 🧚

# amplist $(amplist) -n
00:B0:52:BE:EF:04
00:B0:52:BA:BE:02 00:0F:33:F2:01:21 00:0F:00:F2:01:13
00:B0:52:BA:BE:01

and this last one accomplishes the same thing, since all local devices respond with a list of powerline neighbors 🌈

# amplist local
00:B0:52:BE:EF:04
00:B0:52:BA:BE:02 00:0F:33:F2:01:21 00:0F:00:F2:01:13
00:B0:52:BA:BE:01

πŸ”— SEE ALSO πŸ”—

plc(1), amprate(1), ampstat(1), amptone(1), amptool(1) πŸ’œ


🌸 CREDITS 🌸

Charles Maier πŸ‘‘


bye bestie 🫢 this page is open-plc-utils-0.0.3, from November 2013, and it's amplist(1) forever πŸ’–βœ¨