Cumulus Linux supports Power over Ethernet (PoE) and PoE+, so certain Cumulus Linux switches can supply power from Ethernet switch ports to enabled devices over the Ethernet cables that connect them. Power over Ethernet (PoE) is capable of powering devices up to 15W, while PoE+ can power devices up to 30W.
The currently supported platform is the Edge-Core AS4610-54P, which supports PoE and PoE+ and configuration over Ethernet layer 2 LLDP for power negotiation.
How It Works
PoE functionality is provided by the
cumulus-poe package. When a powered device is connected to the switch via an Ethernet cable:
- If the available power is greater than the power required by the connected device, power is supplied to the switch port, and the device powers on
- If available power is less than the power required by the connected device and the switch port's priority is less than the port priority set on all powered ports, power is not supplied to the port
- If available power is less than the power required by the connected device and the switch port's priority is greater than the priority of a currently powered port, power is removed from lower priority port(s) and power is supplied to the port
- If the total consumed power exceeds the configured power limit of the power source, low priority ports are turned off. In the case of a tie, the port with the lower port number gets priority
Power is available as follows:
|PSU 1||PSU 2||PoE Power Budget|
The AS4610-54P has an LED on the front panel to indicate PoE status:
- Green: The
poeddaemon is running and no errors are detected
- Yellow: One or more errors are detected or the
poeddaemon is not running
About Link State and PoE State
Link state and PoE state are completely independent of each other. When a link is brought down on a particular port using
ip link <port> down, power on that port is not turned off; however, LLDP negotiation is not possible.
You use the
poectl command utility to configure PoE on a switch that supports the feature. You can:
- Enable or disable PoE for a given switch port
- Set a switch port's PoE priority to one of three values: low, high or critical
The PoE configuration resides in
/etc/cumulus/poe.conf. The file lists all the switch ports, whether PoE is enabled for those ports and the priority for each port.
By default, PoE and PoE+ are enabled on all Ethernet/1G switch ports, and these ports are set with a low priority. Switch ports can have low, high or critical priority.
There is no additional configuration for PoE+.
To change the priority for one or more switch ports, run
poectl -p swp# [low|high|critical]. For example:
To disable PoE for one or more ports, run
poectl -d [port_numbers]:
To display PoE information for a set of switch ports, run
poectl -i [port_numbers]:
The Status can be one of the following:
- searching: PoE is enabled but no device has been detected.
- disabled: The PoE port has been configured as disabled.
- connected: A powered device is connected and receiving power.
- power-denied: There is insufficient PoE power available to enable the connected device.
The Allocated column displays how much PoE power has been allocated to the port, which can be one of the following:
- n/a: No device is connected or the connected device does not support LLDP negotiation.
- negotiating: An LLDP-capable device is connected and is negotiating for PoE power.
- XX.X W: An LLDP-capable device has negotiated for XX.X watts of power (for example, 51.0 watts for swp13 above).
To see all the PoE information for a switch, run
The set commands (priority, enable, disable) either succeed silently or display an error message if the command fails.
poectl command takes the following arguments:
|-h, --help||Show this help message and exit|
|-i, --port-info PORT_LIST|
Returns detailed information for the specified ports. You can specify a range of ports. For example:
On an Edge-Core AS4610-54P switch, the voltage reported by the
|-a, --all||Returns PoE status and detailed information for all ports.|
|-p, --priority PORT_LIST PRIORITY||Sets priority for the specified ports: low, high, critical.|
|-d, --disable-ports PORT_LIST||Disables PoE operation on the specified ports.|
|-e, --enable-ports PORT_LIST||Enables PoE operation on the specified ports.|
|-s, --system||Returns PoE status for the entire switch.|
|-r, --reset PORT_LIST||Performs a hardware reset on the specified ports. Use this if one or more ports are stuck in an error state. This does not reset any configuration settings for the specified ports.|
|-v, --version||Displays version information.|
|-j, --json||Displays output in JSON format.|
|--save||Saves the current configuration. The saved configuration is automatically loaded on system boot.|
|--load||Loads and applies the saved configuration.|
Troubleshooting PoE and PoE+
You can troubleshoot PoE and PoE+ using the following utilities and files:
poectl -s, as described above.
- The Cumulus Linux
cl-supportscript, which includes PoE-related output from
lldpcli show neighbors ports <swp> protocol lldp hidden details
tcpdump -v -v -i <swp> ether proto 0x88cc
- The contents of the PoE/PoE+
/etc/lldpd.d/poed.confconfiguration file, as described above.
Verify the Link Is Up
LLDP requires network connectivity, so verify that the link is up.
View LLDP Information Using lldpcli
You can run
lldpcli to view the LLDP information that has been received on a switch port. For example:
View LLDP Information Using tcpdump
You can use
tcpdump to view the LLDP frames being transmitted and received. For example:
Logging poed Events in syslog
poed service logs the following events to
- When a switch provides power to a powered device
- When a device that was receiving power is removed
- When the power available to the switch changes