In my basic ADRadioNet evaluation demo (with CP => R => EP), the commands I sent from the CenterPoint are not immediately reaching the endpoint. Is there something wrong with the way I am sending these commands?. I expect the EP to respond right away without any delay.
The commands from the Center Point (CP), using the ANodeCenterPoint tool, are sent to intended End Point (EP) by appending them as a message to the acknowledgement. Please note, the command moves downstream every time the upstream data is received.
Suppose, the EP is operating in an event driven mode with the evaluation demo topology (EP<=>R<=>CP) as shown below.
Consider the command (Command 1) is sent from the CP. This has to first reach the router before it reaches the EP to respond back. The message received from the ANodeCenterPoint tool (at the CP) is intended to be sent to EP. This is first stored in the MSG buffer of the CP device. Whenever the Center Point receives the message from that particular EP via the router (R), it attaches the command (Command 1) to the acknowledgement and forwards it to the Router (as “ACK 1 + Command 1 to R”), as shown in the flow diagram below. The router now stores this command and waits for the next messages from EP, to attach the command intended for EP to the acknowledgement sent from Router (as “ACK 2 + Command 1 to EP”). In a nut shell, we can see from this example that for every message sent from the CP, the EP can react only after sending 2 messages upstream.
What is the maximum size of the queue in the Router for storing the downstream messages ?
does it work like a FIFO or a LIFO as the last command could be the most relevant one ?
Since AdRadioNET uses stateless routing consecutive packets may not traverse through the same router in which case does the CP retransmit the packet to another Router if Message 2 was received at the CP Via R2.
Q>> What is the maximum size of the queue in the Router for storing the downstream messages ?
A>>Currently 3 downstream messages are buffered. The messages are never deleted, they will be over-written. Downstream messages are attached to acknowledgements where appropriate. Each message has an index which in addition to the orbit number and mac address is used to decide when and what message is attached to the acknowledgement.
Q>> Does it work like a FIFO or a LIFO as the last command could be the most relevant one ?
A>>In the current implementation, the FIFO model is used for the following reason. If two or three End Points are communicating via the same router with the CP, then FIFO model holds good for reliable delivery of messages.
Q>> Since ADRadioNet uses stateless routing consecutive packets may not traverse through the same router in which case, does the CP re-transmit the packet to another Router if Message 2 was received at the CP via R2.
A>> I think this question of packets traversing through different routers is asked mainly because you may be thinking of a case where several packets (corresponding to a single message) are sent from CP. This question does not arise, as each of the commands in ADRadioNet constitute of just a single packet. Simple commands like turn on/off lights is an example. The CP transmits this command to first router (say, R1) and clears the memory. As you can see from the flow diagram, for every command from CP, the EP reacts only after sending 2 messages upstream.
Thanks. My last question was not related to Fragementation but it is good to know that the protocol doesn't use fragmentation.
My quesiton was for a case where R1 is not reachable when EP sends Message 2(may be due to change in network conditions) and if another Rotuer R2 on a different downlink channel forwards this message to the CP. As command 1 was buffered at R1 does the CP identify that a different router was used this time and retransmitt Command 1 to R2 or Command 1 will be delivered to EP only when the next timer EP uses R1 for forwarding a message to CP.