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.
Step by step instructions on using the charm:
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) "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) Pull systemID from this interface