Hi,
I am a student at the University of Udine (Italy), for my degree
in electronic engineering I'm working on a thesis on the
protocols for low power sensor networks: CoAP, OMA LWM2M,...etc.
In order to test my sensor network, I'm using the Eclipse Leshan
public server (
https://github.com/eclipse/leshan).
My work scenario consists of two or more nodes connected to a
Wi-Fi bridge that communicates with the public Leshan server.
When the nodes (LWM2M clients) are registered with Binding Mode
paratemer "U" (UDP), the system works perfectly. The nodes are
registered correctly on the Leshan server (web page) and I can
observe the different resources of the nodes without problems.
Now I would like to implement the Queue mode of LWM2M protocol.
I read that the Leshan server also supports this feature (
https://github.com/eclipse/leshan/pull/126).
Reading the LWM2M protocol and how Leshan implements the Queue
mode, I found some differencies.
With the Leshan implementation if the Leshan server by querying
a client receives a request timeout, then it understands that
the node is sleeping and puts the packages in a queue, when the
client makes the registration update, then the queue is emptied.
Instead according to the LWM2M protocol Queue mode a node must
wait a precise time interval (seconds) from the last CoAP
message it sent to the LWM2M Server before intentionally goes
offline. In other words, the server does not to need to receive
a request timeout to understand that the node is sleeping, it is
sufficient that the server is not speaking from a precise time
interval with the node to understand that the node went to
sleep.
In Leshan implementation of the Queue mode I do not find any
referencies about this time interval, beyond which the node goes
to sleep.
In addition to this I did a test, I set the LWM2M Binding Mode
equal to "UQ", so the node registered properly in Queue mode on
the Leshan public server. Then I unplugged the USB of the node
and asked the server to query this node. I got exactly a request
timeout error as when the node had Binding Mode set to "U" so
(without Queue mode active): I would have expected something
different. So I don't understand how the Leshan server
interprets the request timeout error as a state of sleep by the
node.
Could I have some clarifications on the considerations stated
here?
Could you explain how to test the Queue mode with the Leshan
server?
Thank you very much,
Yours faithfully
Jacopo Piani