-
-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature request] TTDP support (Railways protocol) #378
Comments
About milliseconds periodicity, I don't know if lldpd is optimized enough to be able to do that. The frame is always rebuilt from scratch. This will incur high CPU usage. Moreover, without realtime, Linux won't schedule lldpd often enough to achieve such a periodicity. As for the ability to detect changes, it's already implemented. If you use Question 1: lldpd doesn't have a plugin system. But you can enable/disable part of the code at compile time. This is done for the various third-party protocols (CDP, NDP, EDP). You can do the same. As you will reuse mostly the same code for TTDP and LLDP, just look at how this is done for CDPv1/CDPv2. You can either define a new protocol or just make Question 2: I think that you can just specify add a unit to Question 3: if the information of the other TTDP frame can be built from the information in |
Indeed on my platform, there seems to be a bottom limit of 125 ms under which lldpd eats all the CPU, which is strange because above this limit (say, 126ms) the CPU consomption is very low. I am searching through libevent to understand this. Any better idea ? |
Maybe try to do a CPU flamegraph. Look at http://www.brendangregg.com/flamegraphs.html. You need debug symbols to make it meaningful. |
Ok thanks. In the meantime I found a side effect of using ms timers: TTL becomes 0 which is wrong. |
Well, command parsing is not easy in lldpd, and there are 2 issues here: parsing and transmitting.
What would you prefer ?
|
There is no ABI between lldpd and liblldpctl. We can manage an ABI change inside liblldpctl, but it should be easier to not. We cannot break the API in a backward-incompatible way. What I propose:
|
hi MR Tosoni, now , I want to learn the TTDP, could you help me, Have you completed the code for the TTDP protocol? Apologize again for my audacity! |
Hello,
The standard IEC 61375-2-5 defines the TTDP protocol. It uses 2 types of frames, one of which is an LLDP frame with one custom TLV with OUI 200E95 (the other frame is somewhat unrelated).
There is already some support for custom TLVs in lldpd. What is missing AFAICT is
Question 1
I am willing to implement this but I wonder what is the best way ?
Can I achieve this in form of a plugin for example ?
Question 2
I had no difficulty to make periodicity work in milliseconds, but, for compatibility, I guess I should add a configuration parameter to indicate the time unit, how can I do this ?
Question 3
Is it worth considering to process the other TTDP frame inside lldpd, or is it completely out of the scope of this software ?
The text was updated successfully, but these errors were encountered: