plcfwd(1)
π plcfwd β Qualcomm Atheros Forward Configuration π
okay bestie, welcome to plcfwd from the Qualcomm Atheros Open Powerline Toolkit. this one's giving "let me handle your forwarding config" energy and honestly? it ate. let's get into it π«Ά
β¨ SYNOPSIS β¨
plcfwd [options] [device] [device] [...]
πΈ DESCRIPTION πΈ
so what this does is it sets VLAN and MAC address lookup for tx path traffic. you know how you need to tell a device "hey, when traffic goes out, look it up like this"? yeah. that.
the setup requests get processed by the master PLC device attached to the local device. and then β this is the cute part β once it receives the request MME, the PLC device sends a confirm MME right back with the results to the originating host. it's giving responsive. it's giving communicative. we love a device that answers π
also, this program is part of the Qualcomm Atheros Powerline Toolkit. if you want the whole overview and installation tea, go read the plc man page. iykyk.
π OPTIONS π
-Aβ add the VLANIDs of multiple slaves to memory. plural. multiple. slay.-Cβ commit configruation to flash memory. (yes, that's the original spelling, we don't gatekeep typos here π) like, save it for real so it survives a reboot.-DVLANID β set the default VLAN ID, expressed as a 32-bit decimal value.-eβ redirects stderr messages to stdout. so by convention, status and error messages go to stderr while the primary program output goes to stdout. this option prints all output on stdout for when that's what you want. merging the streams. one vibe. π-ffilename β read additional device addresses and VLAN IDs from the named file. this option can show up multiple times and can also appear alongside option-z. every single occurance of this option adds one or more entries to the VLANID table that options-Aor-Ruse. the format on each line of the file is identical to the format used by option-z. copy-paste energy, no cap.-iinterface β pick the host Ethernet interface. all requests get sent through this host interface and only reponses received via this host interface are recognized. the default interface iseth1, because most people useeth0as their principle network connection. but!! if the environment stringPLCis defined, then it takes precedence over the default interface. and this option takes precedence over either default. so the hierarchy is: option >PLCenv var >eth1. periodt.-llength β the read data length in bytes. this option is ignored during other operations. the length is expressed in decimal. the default is0bytes.-Mstate β enable or disable VLANID forwarding on the master. valid states are0to disable and1to enable, but values up to255are permitted. keywords"on"and"enable"are the same as1. keywords"off"and"disable"are the same as0.-ooffset β the read data offset in bytes. this option is ignored during other operations. the offset is expressed in hexadecimal. the default is0bytes;-qβ suppresses status messages on stderr. quiet mode. π€«-Rβ remove the VLANIDs of multiple slaves from memory. the inverse of-A, bestie.-Sstate β enable or disable VLANID forwarding on all slaves. valid states are0to disable and1to enable, but values up to255are permitted. keywords"on"and"enable"are the same as1. keywords"off"and"disable"are the same as0.-ttimeout β π yeah okay the original literally gives no description here. i'm not gonna make one up. it's a mystery. iconic of it, honestly.-vβ prints additional information on stdout. in particular, this option dumps outgoing Ethernet packets on stdout. nosy in the best way.-zaddress,id[,id[,...]] β a device address and associated VLAN IDs, separated by commas. this option may appear multiple times and may appear alongside option-f. each occurance of this option adds one entry to the VLANID table used by options-Aor-R. the string format used here is identical to the format used on each line of the input files named by option-f.-?,--helpβ displays program help information on stderr. this option takes precedence over all other options on the command line except version information. it's the main character of the command line. π-!,--versionβ displays program version information on stderr. this option takes precedence over all other options on the command line except help information. use this one when you're sending screen dumps to Atheros technical staff. they wanna see it. π
π¦ ARGUMENTS π¦
- device β the MAC address of some powerline device. more than one address may be specified. if you give more than one address, then operations are performed on each device in turn. the default address is
local. want the lore on symbolic device addresses? scroll down to DEVICES. π
π 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, these three are all valid and all equivalent:
00b052000001
00:b0:52:00:00:01
00b052:000001
the following MAC addresses are special and can be entered by name instead of by 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 π
go read the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual if you want the technical info. that's where the real lore lives.
β οΈ DISCLAIMER β οΈ
okay serious moment, bestie, pay attention:
Atheros HomePlug AV Vendor Specific Management Message 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.
so likeβ¦ they can change it whenever and you just have to deal. that's the deal. π
π EXAMPLES π
first up: this reads 100 bytes starting at offset 0x24. and why is it a read? because no other operation is specifed using -A, -C, -R, -M or -S. so it defaults to reading. also reminder: the offset is always in hexadecimal and the length is always in decimal. do not mix them up, i'm begging.
# plcfwd -o 24 -l 100
next: this adds three VLAN IDs to the VLANID table on device 00:B0:52:CA:FE:08. option -z creates the VLANID table and option -A adds the table content to the device. heads up though β this program supports up to 10 VLAN IDs per entry, but PLC firmware supports 8 maximum. mismatch behavior, we love to see it π
# plcfwd -A -z 00:B0:52:CA:FE:08,2300,2313,2415
now the same thing but with three table entries. the first entry is wrapped in quotes because spaces appear inside it. and the third entry has more than 10 VLAN IDs β the program will discard the last ID without indication, but PLC firmware should report an error, because there are more than 8 IDs reported in the request message.
# plcfwd -A -z "00:B0:52:CA:FE:08, 2300, 2313 , 2415" -z
00B052BABE01,0100 -z
00B052888888,100,200,300,400,500,600,700,800,900,1000,1100
and to avoid typing that whole command line a million times, you can just save the entries in a file called plcfwd.txt, like soβ¦
00:B0:52:CA:FE:08, 2300, 2313 , 2415
00B052BABE01,0100
00B052888888,100,200,300,400,500,600,700,800,900,1000,1100
and then this next one adds those entries to the VLANID table by naming the file that contains them, using option -f:
# plcfwd -A -f plcfwd.txt
and this next one removes the same entries from the VLANID table:
# plcfwd -R -f plcfwd.txt
and of course, you can combine options -z and -f for cumulative effect. stack them. go off. πβ¨
π SEE ALSO π
π CREDITS π
Charles Maier
and that's the whole page, bestie!! this was open-plc-utils-0.0.3, dated November 2013. go configure something responsibly, mwah π«Άπβ¨
π¦ where this page comes from
- alpine 3.24: open-plc-utils-doc 0_git20250712-r1 Β· BSD-3-Clause-Clear
- debian bookworm: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- debian trixie: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1 Β· BSD-3
- ubuntu noble: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- ubuntu questing: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1
- ubuntu resolute: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- ubuntu stonking: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms