inaccuracies.
+ Directly get media information for an interface without using
the privileged process.
+ + LLDP-MED capability TLV is not sent when LLDP-MED is not enabled,
+ even if other LLDP-MED TLV are present.
* Fix:
+ Compilation fix with older versions of GCC.
+ Don't use ethtool at all to get real MAC address for enslaved
#ifdef ENABLE_LLDPMED
if (port->p_med_cap_enabled) {
/* LLDP-MED cap */
- if (!(
- POKE_START_LLDP_TLV(LLDP_TLV_ORG) &&
- POKE_BYTES(med, sizeof(med)) &&
- POKE_UINT8(LLDP_TLV_MED_CAP) &&
- POKE_UINT16(chassis->c_med_cap_available) &&
- POKE_UINT8(chassis->c_med_type) &&
- POKE_END_LLDP_TLV))
- goto toobig;
+ if (port->p_med_cap_enabled & LLDP_MED_CAP_CAP) {
+ if (!(
+ POKE_START_LLDP_TLV(LLDP_TLV_ORG) &&
+ POKE_BYTES(med, sizeof(med)) &&
+ POKE_UINT8(LLDP_TLV_MED_CAP) &&
+ POKE_UINT16(chassis->c_med_cap_available) &&
+ POKE_UINT8(chassis->c_med_type) &&
+ POKE_END_LLDP_TLV))
+ goto toobig;
+ }
/* LLDP-MED inventory */
#define LLDP_INVENTORY(value, subtype) \