lldpd #9

Supports: trusty xenial bionic focal groovy hirsute


LLDP is an industry standard protocol designed to supplant proprietary Link-Layer protocols such as Extreme's EDP (Extreme Discovery Protocol) and CDP (Cisco Discovery Protocol). The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver Link-Layer notifications to adjacent network devices. This implementation provides LLDP sending and reception, supports VLAN and includes an SNMP subagent that can interface to an SNMP agent through AgentX protocol. This daemon is also able to deal with CDP, SONMP, FDP and EDP protocol. It also handles LLDP-MED extension.


Purpose of this charm is to install and configure LLDP daemon (lldpd). LLDP is used by network administrators to detect how machines are connected to switches and routers.


Start by installing the lldpd charm and relating it to another application:

juju deploy lldpd

juju add-relation lldpd application-on-physical-machine

Being a subordinate charm it needs to be related to an application running on physical machine. It doesn't make much sense to install LLDP on a VM or LXD container, because Linux bridge will terminate LLDP traffic.

Scale out Usage

By scaling your application, subordinate charm will get installed automatically.

Known Limitations and Issues

LLDP is not very useful on containers and virtual machines and therefore it's use on those is not recommended.


By default LLDPd will listen on all interfaces and pick, more or less, a random systemid. Two given configuration options allow user to specify which interfaces will be used to broadcast LLDP data and which will be used for systemid.

One additional option, i40e-lldp-stop, is included because some Intel NICs block user-space LLDP generated data and instead broadcast their own. By setting this option to True (default), NIC's built-in LLDP daemon will be disabled, if such a NIC has been discovered on the system.


(boolean) Enable the SNMP agent for LLDPD
(boolean) "This allows control over Intel's i40e NIC driver. By default i40e blocks userspace LLDP and does it on its own. Setting this option to 'True' means charm will disable this functionality in the NIC and do it within userspace."
(string) "Which interfaces should lldpd announce details. If you want lldpd to listen on multiple interfaces, set it here. Examples: seth*,meth* You can also use exclamation mark to exclude an interface: eth*,!eth1 This way lldpd will listen on all eth* interfaces with an exception of eth1. By default this is set to None, which puts lldpd in listening mode only."
(string) A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
(string) Comma separated list of nagios servicegroups for the check
(boolean) Set short name in SysName instead of FQDN
(string) Pull systemID from this interface