Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[leshan-dev] Info Queue Mode Leshan server

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

Back to the top