A)
The LLDP forwarding problem was detected two years ago :
viewtopic.php?t=182667
I think that the default should be filtering of the reserved LLDP multicast MAC address (01:80:c2:00:00:0e), even if (R/M)STP is disabled. And eventually give an option to disable the filtering but obviously i can't imagine a case where this would be necessary. All manageable switches and even probably all switches are filtering this address.
The IEEE reserved addresses table indicate that the LLDP multicast destination address should never be forwarded :
b It is intended that no IEEE 802.1 relay device will be defined that will forward frames that carry this destination address.
https://standards.ieee.org/products-pro ... ac/public/
B)
My discovery config is actually very simple, the discovery interface list has only the LANs bridge in it. No other interfaces.
I reverted to that because it is the default RouterOS 7 configuration : that should works.
To test the voice VLAN ID diffusion and catching by the phone, i did put the phone port PVID = 1.
In this setup, i do not get the double LLDP announcements anymore, i can get the voice vlan (id = 4000) announced in the LLDP network policy, but Mitel phones still do not want to accept it.
I'm still trying to understand why.
The same phone that will receive LLDP from a Procurve switch will switch to the voice VLAN. For some reason, it doesn't work if the phone is connected to a RB5009 router port.
It could be because Emergency Location Identification Number (ELIN) is not supported in Mikrotik LLDP. But i'm not sure about that.
This function is used to change the caller ID to a number given by the switch for urgency calls.
Edit : no; i tried to add this capability and inject the modified LLDP packet, without success.
LLDP LIN.png
This is supported on HP switches.
Another small difference is the Ethernet II trailer of LLDP packets, it is 0xae0000 for Procurve LLDP Frames, and 0x000000 for Mikrotik LLDP. Not sure if that could have an influence.
Edit : no, this seems to be a Wireshark dissecting problem.
I did notice that Mikrotik LLDP is using the port MAC address instead of the bridge mac address. But that seems to be the same for Procurve switches. The 802.1AB LLDP standard does not seem to forbid that :
Edit, after a few tries changing the LLDP packet source address, this had no effect.
8.2 Source address
The source address shall be the MAC address of the sending station or port."
Then i did see another small difference, Procurve switches announce the COS and DSCP priorities in the MED Network policy, this is not the case for Mikrotik.
Edit : i tried to modify and inject a Mikrotik LLDP packet, using COS = 6 and DSCP = 46, this had no influence.
lldp COS and DSCP.png
Edit, ----- An interesting finding :
I found something interesting watching the captures, it seems that RouterOS does not have an LLDP fast timer.
A device that is enabled with Link Layer Discovery Protocol (LLDP) transmits LLDP packets to neighboring nodes at a specified time interval. Fast transmission periods are initiated when a new neighbor is detected, and cause LLDP packets to be transmitted at a shorter time interval than during normal operation of the protocol. The fast transmission period ensures that more than one LLDP packet is transmitted when a new neighbor is detected. The first transmission is immediate, and the subsequent transmissions occur at the specified fast transmission (TX) interval.
When LLDP receives an
advertisement indicating a newly connected LLDP-MED-capable device on a port, it
transmits one LLDP-MED advertisement per second via this port, a configurable number
of times (the fast start count). Thereafter, it sends regular advertisements at the LLDP
transmit interval. When the last advertisement for an LLDP-MED-capable device
connected to the port times out, it stops sending LLDP-MED advertisements via the port.
This fast timer is generally 1 second. I do not see those packets in the capture, neither the router LLDP packet that should immediately follow an LLDP phone announcement.
On the Procurve switches, i can see the change in LLDP TX timings, and i can observe an LLDP packet that is immediately sent after the switch receives a phone LLDP packet.
This is probably the reason why the phones are not catching the router LLDP announcements.
Here is an LLDP capture where we can see the Procurve switch LLDP fast timer coming into action :
lldp fast timer.png
In this capture we can see a 1 second timing in the LLDP packets, and a fast answer of the HP switch, as soon as it receives an LLDP packet from the Mitel phone. This is not the case with Mikrotik RouterOS. Seems like RouterOS does not have an LLDP state machine that controls timing changes.
Edit : i did try to manually inject Mikrotik LLDP packets during phone boot to mimic the LLDP fast timer. No effect...
This does not really mean that the fast timer and state machine is not mandatory. But there is still something else preventing the phone to take the received LLDP MED voice vlan.
Then i did try to manually inject clones of the Procurve LLDP MED packets during phone boot.
It did work.
In fact there is no need for an immediate send after receiving a phone LLDP packet. This mean that the LLDP state machine is here to speedup things, and at least with Mitel phones, the faster LLDP timer and state machine is not mandatory.
This mean that the problem does come from the formatting of the Mikrotik LLDP packet. Perhaps because the 802.3 MAC/phy TLV is missing. I need to check that, if i can add this TLV to a Mikrotik LLDP packet, and inject that in the phone link. Not so simple...
You do not have the required permissions to view the files attached to this post.