chirpstack-network-server icon indicating copy to clipboard operation
chirpstack-network-server copied to clipboard

Queue problems in Class-B with Class-A simultaneously

Open RobertoHE opened this issue 4 years ago • 0 comments

  • [x] I have searched the issues of this repository and believe that this is not a duplicate.

Summary

Queue problems in Class-B with Class-A simultaneously https://forum.chirpstack.io/t/queue-problems-in-class-b-with-class-a-simultaneously/12534?u=robertohe

The queue doesn't refresh the ping-slot scheduler of a Class-B queued message after a downlink in Class-A. This causes that Class-B messages to be delayed although previous messages are sent before correctly and some previous ping-slots are free/unused.

After a Class-A downlink, all queued items must be updated and refreshed their Class-B time-slot scheduler sending.

What is the use-case?

When uses a node in Class-B and the node uses Class-A uplinks to respond. This new Class-A uplink trigs a Class-A downlink, and it may trigger another response. This may cause that some messages may down to the node after a Class-B message, and those Class-A sent messages set free some ping-slot. Those ping-slots can't be used by other queued messages, which causes that these messages are delayed.

Implementation description

After a Class-A downlink or periodically, the network-server must check if any ping-slot are free/unused and refresh and re-assign ping-slots to the queued messages.

Can you implement this by yourself and make a pull request?

I think that no, because I haven't coded anything in GO before.

RobertoHE avatar Nov 02 '21 08:11 RobertoHE