Reading LWM2M-v1.2.1@core§Table: E.2-2 LwM2M Object: LwM2M Server Resource definitions
| ID |
Name |
Operations |
Description |
| 4 |
Disable |
E |
If this Resource is executed, this LwM2M Server Object is disabled for a certain period defined in the Disabled Timeout Resource. After receiving "Execute" operation, LwM2M Client MUST send response of the operation and perform de-registration process, and underlying network connection between the Client and Server MUST be disconnected to disable the LwM2M Server account. After the above process, the LwM2M Client MUST NOT send any message to the Server and ignore all the messages from the LwM2M Server for the period. |
| 5 |
Disable Timeout |
RW |
A period to disable the Server. After this period, the LwM2M Client MUST perform registration process to the Server. If this Resource is not set, a default timeout value is 86400 (1 day). |
| 6 |
Notification Storing When Disabled or Offline |
RW |
If true, the LwM2M Client stores "Notify" operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored "Notify" operations to the Server. If false, the LwM2M Client discards all the "Notify" operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true. The maximum number of storing Notifications per Server is up to the implementation. |
So I understand that "notification storing" with server disabled works like :
- Server send an Observe Request.
- Client answers with 2.05 Content response => observe relation is established for registration before disabling.
- Server send Execute Request on /1/x/4.
- (Client answers 2.04 Changed response.)
- Client send De-registration request.
- (Server answers with 2.02 Deleted response)
- Client is off line for "Disable Timeout" seconds
- Client store the notifications
- Client send Register request.
- Server answers with 2.01 created
- Client send Notify 2.05 Content with timestamped value.
But reading the specification I understand that an observe relation is tied to 1 registration. so on de-Registration observation relation must be deleted and so last notify will just be ignored by the server. (This makes sense to not keep state for a deregistered client)
See LWM2M-v1.2.1@core§6.2. Client Registration Interface :
If the lifetime of a registration expires without receiving an update from the LwM2M Client, the LwM2M Server will consider it a de-registration:
- The LwM2M Server MUST remove the registration of that LwM2M Client and existing observations. ...
And LWM2M-v1.2.1@core§6.4.1. Observe Operation:
Until the LwM2M Client sends a new registration, the LwM2M Server expects the LwM2M Client to remember the observation requests. ...
...
...
Note: When a LwM2M Client deregisters, the LwM2M Server should assume past states are nullified including the previous observations.
Reading LWM2M-v1.2.1@core§Table: E.2-2 LwM2M Object: LwM2M Server Resource definitions
So I understand that "notification storing" with server disabled works like :
But reading the specification I understand that an observe relation is tied to 1 registration. so on de-Registration observation relation must be deleted and so last notify will just be ignored by the server. (This makes sense to not keep state for a deregistered client)
See LWM2M-v1.2.1@core§6.2. Client Registration Interface :
And LWM2M-v1.2.1@core§6.4.1. Observe Operation: