leshan icon indicating copy to clipboard operation
leshan copied to clipboard

🏗 Leshan 2.0 : LWM2M 1.1 🚧

Open sbernard31 opened this issue 6 years ago • 70 comments

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 avatar Sep 03 '18 13:09 sbernard31

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

wenzheng avatar Sep 04 '18 03:09 wenzheng

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.

rikard-sics avatar Feb 13 '19 16:02 rikard-sics

@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 avatar Feb 15 '19 15:02 sbernard31

It seems there is some interests about Observe-Composite and Cancel Observation-Composite at https://github.com/eclipse/californium/issues/881.

sbernard31 avatar Feb 19 '19 10:02 sbernard31

@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.

rikard-sics avatar Feb 22 '19 14:02 rikard-sics

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.

yemkay avatar Feb 23 '19 08:02 yemkay

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

sgoyaldel avatar Feb 24 '19 16:02 sgoyaldel

@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)

sbernard31 avatar Feb 26 '19 10:02 sbernard31

@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?

rikard-sics avatar Mar 06 '19 11:03 rikard-sics

@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. :pray:

sbernard31 avatar Mar 06 '19 16:03 sbernard31

@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.

rikard-sics avatar Mar 14 '19 11:03 rikard-sics

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

sbernard31 avatar Mar 14 '19 11:03 sbernard31

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

sbernard31 avatar Mar 15 '19 10:03 sbernard31

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

sbernard31 avatar Mar 15 '19 11:03 sbernard31

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

sbernard31 avatar Mar 15 '19 14:03 sbernard31

@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.

rikard-sics avatar Mar 21 '19 10:03 rikard-sics

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

tuve avatar Apr 11 '19 08:04 tuve

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.

sbernard31 avatar Apr 11 '19 08:04 sbernard31

Is OSCORE available in branch 2.0 now ? Thanks.

Kenny-SZ avatar Jul 31 '19 12:07 Kenny-SZ

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: https://github.com/eclipse/leshan/pull/718 More information can be found in that PR.

rikard-sics avatar Jul 31 '19 12:07 rikard-sics

@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

Kenny-SZ avatar Aug 20 '19 12:08 Kenny-SZ

@Kenny-SZ, as far as I know nobody is working on this.

sbernard31 avatar Aug 20 '19 12:08 sbernard31

@sbernard31, thanks for your response. In my opinion, Send operation is a very important functionality, for example: when there is a fault in a LwM2M client, it should send it out immediately in order for operators to be aware of this fault, instead of waitting for obervation from the LwM2M server. Please prioritize it if possible, thanks a lot.

B.R. Kenny

Kenny-SZ avatar Aug 21 '19 01:08 Kenny-SZ

@Kenny-SZ we agree that send is really good feature because observation has too many drawback. (https://github.com/OpenMobileAlliance/OMA_LwM2M_for_Developers/issues/171)

sbernard31 avatar Aug 21 '19 08:08 sbernard31

Hi @sbernard31 & All, does anyone know the progress to support LwM2M 1.1? Thanks.

Kenny-SZ avatar Jan 21 '20 10:01 Kenny-SZ

Personnally, I'm still focus on the 1.0.0 release. We hope we will be able to release it soon (maybe during spring 2020) and then we would be able to start to work on LWM2M 1.1 support.

There is already some contribution from community :

  • @rikard-sics is working on OSCORE support.
  • @cavenaghi9 started to work on senML json & cbor content format.

sbernard31 avatar Jan 21 '20 10:01 sbernard31

Hi, just curious on how 1.1 topic is proceeding? I mean standard is already moving to 1.2, so I think some kind of 1.1 subset should be prioritized. For me the most important feature would be SEND, as that would enable use cases leveraging LwM2M for real-time control and alarms, like what is currently doable with MQTT (more or less successfully)

henris42 avatar Jun 08 '20 18:06 henris42

@henris42, I agree with you (see https://github.com/eclipse/leshan/issues/563#issuecomment-523350573)

The only missing part is time to do it :-)

sbernard31 avatar Jun 09 '20 09:06 sbernard31

@henris42, I agree with you (see #563 (comment))

The only missing part is time to do it :-)

@sbernard31: One problems is to have some kind of incentive to contribute.

Observation: most activity seem to happen in master branch.

You have also a policy not to take any non 1.0.2 changes to master.

As an example you have 2.0.x branch which is over year old and doesn't really invite contributing. There are several other work branches that has "expired" too.

Where as in my view only LWM2M 1.1 makes LWM2M actually usable for deployments as that has better EST support than 1.0.2. There are other features like send that was mentioned also in here.

Sticking to LWM2M 1.0.2 is making current Leshan releases uninteresting.

Currently there does not seem to be good path to contribute changes with target of having LWM2M 1.1 features supported in Leshan releases.

Would you be willing to start taking 1.1 (or later) changes to your master branch? If master branch would be following latest released standard then it could bring incentive for others to contribute.

Some changes also require a bit larger changes making this API protection mechanism a bit harder to tackle. Used quite a lot of time to fight that when I was testing some certificate usage improvements with Leshan code base.

dachaac avatar Jul 07 '20 12:07 dachaac

most activity seem to happen in master branch You have also a policy not to take any non 1.0.2 changes to master.You have also a policy not to take any non 1.0.2 changes to master.

This is correct because main contributor was interested in a 1.x release of Leshan which supports LWM2M 1.0.x We started to develop Leshan long time ago and we didn't want to shift from LWM2M 1.0.x to LWM2M 1.1 without providing a polished release with stable API. Now Leshan 1.0.x is released and we plan a last 1.1 version for LWM2M 1.0.x, then we will mainly focus on LWM2M 1.1 (so Leshan 2.0)

As an example you have 2.0.x branch which is over year old and doesn't really invite contributing. There are several other work branches that has "expired" too.

We created this branch to help some contributor to start to work in Leshan 2.0 which will supports LWM2M 1.1 waiting we finish the work on LWM2M 1.0.x but contributors disappear without saying a word. Currently the only active one (LWM2M 1.1) works on OSCORE in its own branch and I take time to review it works. (as I tried to do for SenML before contributor vanished)

Sticking to LWM2M 1.0.2 is making current Leshan releases uninteresting.

I hope you mean "uninteresting for me" or this sounds a bit peremptory.

Currently there does not seem to be good path to contribute changes with target of having LWM2M 1.1 features supported in Leshan releases.

Because as explained, there was no more contributors who need that. But if needed I can create it again. I mean an up to date 2.0.0 branch.

Some changes also require a bit larger changes making this API protection mechanism a bit harder to tackle. Used quite a lot of time to fight that when I was testing some certificate usage improvements with Leshan code base.

We are using semantic versioning and as explained above we aim a version 2.0 of Leshan for LWM2M 1.1 so API can be break so don't worry about that.

sbernard31 avatar Jul 07 '20 13:07 sbernard31