Hi Erez,

On 17.06.23 00:54, Erez wrote:


On Fri, 16 Jun 2023 at 13:13, Walfred Tedeschi <wtedes...@googlemail.com> wrote:

    On 15.06.23 17:37, Erez wrote:


    On Thu, 15 Jun 2023 at 06:26, Richard Cochran
    <richardcoch...@gmail.com> wrote:

        On Wed, Jun 14, 2023 at 03:51:08PM +0200, Walfred Tedeschi
        via Linuxptp-devel wrote:

        > Covering for Industrial/Process automation customers that
        are willing to use
        > PMC interface to gather status of the time synchronization
        for their stack
        > and enable them to take actions upon the values received.

        Here is a nice pmc library licensed under LGPL:

        https://github.com/erezgeva/libptpmgmt


    +1

    I wrote the library for application integration, as I was working
    on TSN :-)
    I also add the wrapper languages, so developers can use
    scripting in addition to C++.

    Erez

    In terms of license, we see a mix of GPL and LPGL code in the
    library and that makes things difficult, as it is not completely
    clear what is what.


Indeed, there was misunderstood from our side.

We will be using your Library in the solution we are preparing for industrial customers.

In addition, I would like to thank you Erez for the willing to help and to contribute! Appreciated!

I hope we continue working together.





The library is under LGPL
https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
The other non library parts are GPL
https://en.wikipedia.org/wiki/GNU_General_Public_License

I do not see any issue.
However, as I am the copyright holder, if you find any issue with licensing, we can fix it. As long as you use the shared library, you can use it with any application and any license you choose: free software or proprietary,.


    But more decisive, on the solution we are looking for low latency
    is needed and therefore the usage of threads is mandatory.


The library was designed to be used in any manners your application chooses, including threads. Unlike linuxptp that uses an "agent" which sends and receives the management packets.
The library breaks down the process to small unblocking functions.
The only blocking calls are the socket poll functions.
As the library provides the file descriptors of the sockets, you can implement the poll/select yourself.
If you need protection on the data, you can wrapp it in your application.

As I work with real-time threads.
I am aware of how real-time applications are designed, and took it into consideration when writing the library. I was using the library with a real TSN application that sends TSN traffic in real-time!

Anyhow, the project is open for more additions and changes on the matter.

P.S.
threads are not a guarantee of low latency.
The TSN application can read the PHC clock directly from the kernel using the clock_gettime(), the library provides the clock ID!


    This way, unfortunately, this library might not be used.


Following your questions. I am not sure you looked at the libptpmgmt code, or looked at the samples.


    I will be more verbose in what we are doing. In general, SoftPLC
    vendors need a way to control the quality of the running clocks
    from within their real-time stacks, while the application will be
    informed by the stack and will take the decision on how to proceed.


The library is *NOT *part of the ptp4l itself, but does provide the same functionality the pmc tool provides. The ptp4l does not run very fast. So real-time probing of the PTP does not help much. However the library will not interfere with the application real-time, as it is completely passive by design. The library does not create any threads or change any running thread in any way.

    This way the library has to be performant and ready for real-time
    and still have a permissive license, LGPL would be fine.


    From Intel side we would be adding some more code on top to allow
    for notifications methods. Considering also for the multidomain
    topic to join Chrony and Linuxptp world in a single library,
    leveraging the work done by Miroslav ( Libchrony - Thanks again
    for that) as well.


notifications require active parts in the library.
As libptpmgmt is passive, it does not push or notify.
Intel can add notifications very easily on top of libptpmgmt.

Technically as libptpmgmt is a library, it can be used with any other library. The code is used under C++ namespace, to prevent conflict with other libraries.

As for Miroslav Lichvar, Libchrony, I do not know what license it uses.
You should ask Miroslav directly.


    We would be happy to hear feedback from the community!



I can give feedback on libptpmgmt.
As for the linuxptp project, I do not think Richard will add any library in the project. Or change the license from GPL.

Erez

    Best regards,

    -Fred



        HTH,
        Richard


        _______________________________________________
        Linuxptp-devel mailing list
        Linuxptp-devel@lists.sourceforge.net
        https://lists.sourceforge.net/lists/listinfo/linuxptp-devel


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to