CDP packets missing PortID TLV

I have a Mikrotik 750G running RouterOS 5.0.

After introducing my Mikrotik 750G into my network, I starting getting the following error logged on other network equipment (a Vyatta router).

lldpd: cdp_decode: some mandatory CDP/FDP tlv are missing for frame received on eth1

Searching on that error brought me to the source code file for the LLDPD project. see line 462 of https://trac.luffy.cx/lldpd/browser/src/cdp.c . This error is logged if all 7 checks do not pass.

I took a packet capture of the CDP packet sent from my 750G, and it appears that it is missing the TLV type 3 (Port ID) information. Can you add that TLV to the CDP packets sent from RouterOS?

I will try to attach the packet capture to this post.

Thank You!

CC: support@mikrotik.com
cdp.zip (246 Bytes)

it’s not exactly CDP - packet is MNDP (MikroTik Neighbor Discovery Protocol) based on CDP. Unfortunately (or fortunately) not easily distinguishable from CDP.

Searching on that error brought me to the source code file for the LLDPD project. see line 462 of > https://trac.luffy.cx/lldpd/browser/src/cdp.c > . This error is logged if all 7 checks do not pass.

i think right solutions is to implement MNDP in both LLDPD and Vyatta projects or you can disable MNDP (if you can live without it) by “/ip neighbor discovery set discover=no”.


Petr

If a packet sniffer shows that a MNDP frame, “…uses SNAP encapsulation with type code 2000. On Ethernet, ATM, and FDDI, the destination multicast address 01-00-0c-cc-cc-cc.”[1] and uses the same TLV (type-length-value) format to include information in the frame, then in my opinion it is basically a clone of CDP version 1.

Mikrotik can’t officially claim support for CDP unless they licensed the specification from Cisco, so that is why I think they named their implementation MNDP.

Good news though. I heard back from Support on my ticket 2011041866000048 and they said that:

“sending interface name will be sent as part of discovery packet in RouterOS 5.2 To see this information displayed you will have to have RouterOS 5.2 installed as well. In RouterOS this field will be available through ‘/ip neighbor print detail’”

So looks like things will be fixed in the next release of RouterOS. Exciting!

[1] http://www.cisco.com/en/US/products/hw/switches/ps663/products_tech_note09186a0080094713.shtml#cdp

This issue has been resolved in RouterOS 5.4. Thanks!