Skip to content
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

🏗 Leshan 2.0 : LWM2M 1.1 🚧 #563

Open
sbernard31 opened this issue Sep 3, 2018 · 73 comments
Open

🏗 Leshan 2.0 : LWM2M 1.1 🚧 #563

sbernard31 opened this issue Sep 3, 2018 · 73 comments
Labels
discussion Discussion about anything

Comments

@sbernard31
Copy link
Contributor

sbernard31 commented Sep 3, 2018

Leshan v2.0.0 (master branch) is currently in development and aims to support LWM2M 1.1 (or at least some part of it).

You can have a look to currently supported or in development features or current roadmap.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fit your needs.

(If you need stable API and are fine with LWM2M v1.0, you should use Leshan v1.x)

@sbernard31 sbernard31 added the discussion Discussion about anything label Sep 3, 2018
@wenzheng
Copy link

wenzheng commented Sep 4, 2018

Hi Bernard

I would be very interested in the newly introduced Non-IP binding for NB-IOT, where we can use 3GPP SCEF to carry LwM2M traffic, though the spec is released, however a reference design regarding how to integrate with T8 interface would be a good start for us to contribute

BR/Vincent

@rikard-sics
Copy link
Contributor

rikard-sics commented Feb 13, 2019

As a part of a joint project with Ericsson about contributing OSCORE to Californium we at RISE have also been working on using OSCORE in Leshan, as OSCORE is part of LWM2M 1.1.

Currently we have code produced for enabling communication over OSCORE between the Leshan server, bootstrap server and client. In addition we have added support to bootstrap a client so it receives information to generate an OSCORE context for communication with the Leshan server. We would be interested in contributing this code to Leshan.

@sbernard31
Copy link
Contributor Author

@wenzheng, sry for the delay response, I have no experience about NB-iot but I suppose the first step must be to have a way to make CoAP and DTLS working over NB-IOT in Java. In a californium context that means create new Connector(s) for NB-IOT.

@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)

But I ask myself how we could handle this because as explained we plan to firstly release a 1.0.0 of Leshan which supports LWM2M v1.0.x. (so without 1.1 feature)

Maybe we could integrate this in another branch of Leshan which would aim to support LWM2M v1.1.
I suppose the contribution is pretty big, right?
Did you plan to continue to actively maintain this part of the code after your contribution?

@sbernard31
Copy link
Contributor Author

It seems there is some interests about Observe-Composite and Cancel Observation-Composite at eclipse-californium/californium#881.

@rikard-sics
Copy link
Contributor

@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)

But I ask myself how we could handle this because as explained we plan to firstly release a 1.0.0 of Leshan which supports LWM2M v1.0.x. (so without 1.1 feature)

Maybe we could integrate this in another branch of Leshan which would aim to support LWM2M v1.1.

Yes it could make sense to put it in a separate LWM2M 1.1 branch since OSCORE is not part of LWM2M 1.0.x

I suppose the contribution is pretty big, right?

Actually the contribution is not that big since we made it very targeted on providing OSCORE support. Since the actual code for OSCORE communication is in Californium, for Leshan it was more about adding code to use it.

Did you plan to continue to actively maintain this part of the code after your contribution?

This work is part of a joint project with Ericsson and for the future we have the ambition to continue to use and support this code.

@yemkay
Copy link

yemkay commented Feb 23, 2019

We at HPE are interested in developing 1.1 features like CBOR, Composite Read,Write,Observe., Bootstrap trigger and Non-IP transport. We will start a new branch and contribute in coming days.

@sgoyaldel
Copy link

@yemkay : i would like to request you, please share further information once 1.1 feature available to use

@sbernard31
Copy link
Contributor Author

@yemkay, good to know :) ! There is already some contribution about CBOR :#656 . If you are interested by this subject. (It's the very beginning of the contribution)

@rikard-sics
Copy link
Contributor

@rikard-sics, That's a good news to know we could get a new contribution from RISE. :)

Just to come back to this regarding OSCORE in Leshan. Would it be fine if we made a pull request with the code we currently have putting it into a separate branch of Leshan? I suppose such a branch would have to be created first?

@sbernard31
Copy link
Contributor Author

@rikard-sics I created a 2.0.x branch and its jenkins job.

I suppose you need OSCORE feature from Californium, so the first step will be to wait for a Californium v2.0.0M14, right ?
Please if you can try to make several simple, little, self-sufficient PRs. This could help review and integration. 🙏

@rikard-sics
Copy link
Contributor

@rikard-sics I created a 2.0.x branch and its jenkins job.

I suppose you need OSCORE feature from Californium, so the first step will be to wait for a Californium v2.0.0M14, right ?
Please if you can try to make several simple, little, self-sufficient PRs. This could help review and integration.

Thanks a lot for creating the branch.

I see that Californium 2.0.0-M14 has now been released. I will proceed with making smaller pull requests with parts of our code as you requested.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Mar 14, 2019

@rikard-sics , just to let you know I plan to create a PR to integrate Californium 2.0.0-M14 this afternoon.

@sbernard31
Copy link
Contributor Author

@rikard-sics branch 2.0.x is ready with cf 2.0.0-M14.

@sbernard31
Copy link
Contributor Author

@rikard-sics oops not so ready, build failed because of new legal bundle in californium. I will try to fix it.

@sbernard31
Copy link
Contributor Author

@rikard-sics this time it's really OK.

@rikard-sics
Copy link
Contributor

rikard-sics commented Mar 21, 2019

@rikard-sics this time it's really OK.

Thanks for setting up the branch. I will proceed with the pull requests in steps as you mentioned.

@tuve
Copy link

tuve commented Apr 11, 2019

Is there any estimated time frame as to when lwm2m 1.1 is supported?

@sbernard31
Copy link
Contributor Author

Is there any estimated time frame as to when lwm2m 1.1 is supported?

Question : what means "LWM2M 1.1 is supported" ? Do you mean full support of all defined features.. Even for 1.0 we didn't cover 100% of the specification. So you should ask yourself which part of the specification you need and share this with us. This could help to define priorities !

Anyway, I will not be able to give you any date. This is just the beginning for 1.1 implementations. Some contributors just started to work on this. Personally, I'm focus on the version 1.0.x. and maybe I will be able to start to develop some 1.1 features at the end of the year.

All the work about LWM2M 1.1 is available in branch 2.0.x.

@Kenny-SZ
Copy link

Is OSCORE available in branch 2.0 now ? Thanks.

@rikard-sics
Copy link
Contributor

Is OSCORE available in branch 2.0 now ? Thanks.

There is an open pull request to add support for OSCORE communication between a Leshan client and server to the 2.0.x branch here:
#718
More information can be found in that PR.

@Kenny-SZ
Copy link

@sbernard31 , @rikard-sics , do you know the progress to implement "Send" Operation defined in LwM2M 1.1? Has it been implemented, or is someone working on it now?

Thanks.
Kenny

@sbernard31
Copy link
Contributor Author

Just to let you know that Read Composite(#958) and Write Composite(#959) operation support are in development.

@zakharenkodmytro
Copy link
Contributor

Thanks for update, i will check it out, i have no idea for now what it is)

@sbernard31
Copy link
Contributor Author

A first try about supporting Send Operation is available at #971.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Apr 7, 2021

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M3.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jul 7, 2021

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M4. 🎉

Please do not hesitate to test and give us feedback. 🙏
We are also interested to know which features are missing you the most.
Look at the roadmap, already open issues or LWM2M 1.1 supported features, LWM2M 1.0 supported features or anything we didn't identified.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Oct 21, 2021

A new milestone release containing new LWM2M 1.1 features is out : 2.0.0-M5. 🎉

We still take feedback about the release or the needed features. 🙏 (see comment just above ☝️)

Next release (M6) will be about cleaning (like removing old UI demo, keeping only one JSON or CBOR lib, more feature in demos, some code cleaning or more little missing feature about LWM2M v1.1 ...)

Then for M7, we will probably try begin to work on one of the bigger task: refactoring code to allow
to add more transport Layer (#1025).

⚠️ People who are using x509 and/or RPK with Leshan v2.0.0-M1 or v2.0.0-M4 MUST upgrade to 2.0.0-M5 version for security reason. ⚠️

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Oct 21, 2021

I forgot to mention that M6 should also be the first release which will be built with java 8 ( see #924) (until now that was java7)

@zakharenkodmytro
Copy link
Contributor

zakharenkodmytro commented Oct 21, 2021 via email

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jan 20, 2022

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M6. 🎉

About M7, next tasks should be about :

Adding more transport Layer (#1025) will probably be delaied to M8.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Mar 23, 2022

⚠️ 2.0.0-M2 to 2.0.0-M6 are affected by security issue because of com.upokecenter.cbor dependency. (See GHSA-fj2w-wfgv-mwq6)
This concerns you if you are using CBOR or SenML-CBOR decoding.
There is no milestones release planned at short term, waiting you should force the com.upokecenter.cbor version to 4.5.2.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Apr 28, 2022

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M7. 🎉

This 2.0.0-M7 contains com.upokecenter.cbor v4.5.2 which fix the security issue above ☝️.

About M8, next tasks should be about :

About OSCORE, there is testable demos in oscore branch.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jul 22, 2022

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M8. 🎉

Main focus for M9 : Adding more transport Layer (#1025)

❗☠️❗ Affected by security issue❗☠️❗

@boaks
Copy link

boaks commented Jul 26, 2022

Maybe I missed it, but for now, there is now schedule day for a 2.0.0 release?
I ask, because depending on the timeline, a cleaned up Californium 4.0.0 may be better for long term.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jul 26, 2022

Correct, there is no release day scheduled.

I think mandatory feature for 2.0.0 is at least #1025 and I guess this will be a long task to do.
I also hope we will have a usable OSCORE feature but depends a lot of @rikard-sics and how much he can move forward on this at californium side (#1231). (at worst this will be an experimental only feature)
Maybe an experimental support of coap over TCP based on californium.
And probably more little API improvement or refactoring.
So lot of work to do and so probably no 2.0.0 soon.

If one or more major release of californium is released during the development phase of Leshan 2.0.0 we will integrate it as soon as possible.

If needed, I can let you know when will be soon of a 2.0.0 release.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Oct 10, 2022

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M9. 🎉

⚠️ People who are using DTLS with Leshan v2.0.0-M1 to v2.0.0-M8 MUST upgrade to 2.0.0-M9 version for security reason. ⚠️

See : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-39368

Main focus for M10 : Adding Transport Layer Abstraction (#1025)

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jan 6, 2023

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M10. 🎉

This should be the last milestone release before massive changes about Transport Layer Abstraction. Lot of the new API is already in master.

If you are using Leshan 2.0.0-Mx or if you are curious about those changes, 📢 we strongly encourage you to take a look at #1025 (comment) 📢

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Mar 17, 2023

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M11.

📢 : This is first Milestone Release containing new Transport Layer Abstraction (GH-1025). This is massive changes and maybe not yet fully mature. So please read ⚠️ release warning before to use it.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jul 24, 2023

A new milestone release about LWM2M 1.1 support is out : 2.0.0-M12.

📢 : This is second Milestone Release containing new Transport Layer Abstraction (GH-1025). This is massive changes and maybe not yet fully mature. So please read ⚠️ release warning before to use it.

❗☠️❗ Affected by security issue❗☠️❗

@sbernard31
Copy link
Contributor Author

A new milestone release is out : 2.0.0-M13.

📢 : This mainly a security fix of 2.0.0-M12, please read release description ⚠️

@sbernard31
Copy link
Contributor Author

sbernard31 commented Nov 23, 2023

A new milestone release is out : 2.0.0-M14.

📢 : Thx to new Transport Layer Abstraction (GH-1025), this release contains a new experimental CoAP provider based on java-coap. Please do not hesitate to try it and give us feedback.

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jun 19, 2024

A new milestone release is out : 2.0.0-M15.

📢 : Thx to new Transport Layer Abstraction (GH-1025), this release contains a very experimental CoAP over TCP (and TLS) provider based on java-coap. Please do not hesitate to try it and give us feedback.

Next milestone (M16) should contain :

So a lot of classes will be moved and new maven module will be created but behavior should not changed.

@sbernard31
Copy link
Contributor Author

A new milestone release is out : 2.0.0-M16.

📢 : As plan this release is mainly about new maven module refactoring, so a lot of classes was moved and new maven module was created/renamed but behavior should not have changed. See Module Name and API Break.

This is strongly recommended to migrate to this version before to migrate to future 2.0.0-M17.

@jvermillard
Copy link
Contributor

any plan for M17? I'm mainly interested in the Californium upgrade which fixes a memory leak

@boaks
Copy link

boaks commented Nov 7, 2024

@sbernard31
Copy link
Contributor Author

any plan for M17? I'm mainly interested in the Californium upgrade which fixes a memory leak

I created a dedicated issue about that : #1670

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Discussion about anything
Projects
None yet
Development

No branches or pull requests