[lldp-devel] Question on is_valid_lldp_device function

John Fastabend john.fastabend at gmail.com
Wed Nov 13 21:39:51 UTC 2013

On 11/10/2013 10:52 PM, Paddu Krishnan (padkrish) wrote:
> Hello,
> I see that this function seems to return false for regular Linux bridges
> as well as OVS bridges created using 1.4 version.
> I see that the called function 'is_bridge' checks for the presence
> of /sys/class/net/%s/bridge directory.
> I am trying to understand the reason behind this.
> I understand from our discussion earlier that there are interop issues
> in LLDP with virtual switches like OVS. But, if one is able to get
> around this in OVS, LLDPAD still may not receive the frames because of
> the above check due to which the interface may not get added (function
> 'add_port') does not get called.
> Can someone please help me understand this behavior?

lldpad uses the ports attached to the bridge and has no code to support
running on the bridge interfaces.

For example if eth0, eth1 are slaves of the bridge interface br0 lldpad
will manage eth0 and eth1 sending/receiving lldpdu's over those
interfaces. The standard linux bridge ./net/bridge supports this.

If we ran lldpad over the br0 interface there would need to be code to
learn which interface the lldpdu was received on and which interface to
send a lldpdu out. It was easier to run over the non-bridge interfaces
and let the bridge devices pass mac addresses that are reserved by
"IEEE 802.1D Table 7-10 Reserved addresses" up the stack. The kernel
function is_link_local_ether_addr() is used to do this check in the
bridge module.


> Thanks,
> Paddu
> _______________________________________________
> lldp-devel mailing list
> lldp-devel at open-lldp.org
> http://lists.open-lldp.org/mailman/listinfo/lldp-devel

John Fastabend         Intel Corporation

More information about the lldp-devel mailing list