-
Notifications
You must be signed in to change notification settings - Fork 52
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
Report client "unbootstrap" or factory reset reason to the server #573
Comments
I understand you want a way for a LWM2M server to know if a LWM2M client did a Reset Factory. Here I suppose that a Reset Factory will lead to :
Using only Core Device Object (Id:3) : Maybe it's possible for a server to read resource /3/0/3 Firmware version at each new registration and maybe guess if device was reset ? Using Device Extension Object (Id:3410): In this object there is some resource which could maybe be used :
like for option above ☝️, maybe you can read the resource at each new registration ? Using Reboot Status Object (Id:10371): Some time ago, I register an object which contains :
Maybe a server could observe Reset Factory State ? Or a client use send Operation about Reset Factory State ? (with value Ideally those resource should haven added to Device Object : OpenMobileAlliance/lwm2m-registry#504 If you want to adapt this object (adding Factory Reset Reason ?), we can adapt it and push a new version in LWM2M Registry but this could take time. About observing the resource : My personal understanding is that observation is tied to only 1 registration. @mlasch, let me know if this helps and which process you plan to use. |
Yes, for example, when a reset button on the device was pressed.
It is not guaranteed that the version or any other device property changes. In some cases just the configuration is wiped.
I think this is the way to go and I agree the Reset Factory State would fit very well into the Device Object to report the result of executing
Not sure I understand you correctly, but in my opinion the client should report the state before doing a deregistration and reboot, kind of sending a "last will". In case of a "factory reset", the client might end up in bootstrap mode without any relation to the old server. |
👍
I just wanted to clarify that as I understand the specification, an observe relation can not survive to a de-register/register.
Yep an probably that "last will", should be in a "confirmable" way so client is sure that server get the information. |
This issue is implementation specific and the behaviors of how a "factory reset" are not in scope of OMA and LwM2M. @AlexBHQ may be a new object or resource of an existing object |
Clients which were provisioned by "client initiated bootstrap" might be factory reset manually or out-of-bound. What is the typical approach to report such an event to the server?
From my understanding, in case of a manual factory reset, the client must do a de-registration from the server to close the current session. Also the security and server object would be manipulated or deleted and a new bootstrap sequence should be initiated, maybe only after a reboot.
One approach would be, to signal the bootstrap state before de-registration with a dedicated resource in a core object like "Device Object". The server would need to observe the object or the client can use a LwM2M 1.1 send operation for signaling. The device object already has a resource "Factory Reset" which would do the in-band reset. However there is also no method so signal a successful reset after execution.
As a result, something like a "Factory Reset State" or "Factory Reset Reason" resource might be useful. Using an Enum type would further enable reporting different reset reasons like "manual reset", "reset initiated from server", etc.
The text was updated successfully, but these errors were encountered: