Replies: 1 comment 4 replies
-
There is not a need for more routers, there should be less. A router should be on a mountain, or the node should be a client. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
CLIENT_ROUTER
was initially confusing and was removed in favor of separateCLIENT
andROUTER
roles with the generally accepted wisdom to "Always selectCLIENT
unless you are in a highly advatageous location such as a mountain top". But I would argue that there is an in-between scenario whereROUTER
could be useful in a more localized context.Imagine a scenario where you are in an home or office building where your client nodes are able to reach the wider mesh via a neighboring client in another building nearby, but their range is extremely limited for the same reasons that your range is limited (physics). Placing a client outside of your building, say, on the roof provides much more advantageous position from which to access to the wider mesh. However, because the current routing algorithm for clients is based on SNR and the random wait from the contention window, it's highly likely that the poorly placed client node in the neighboring building will relay our message instead of our well placed node on the roof. It would be much better if there were some way to set up a client such that if it were to recieve a packet from a predefined set of clients, it would behave as a
ROUTER
and immediately relay packets that it hears from these clients.There are two possible approaches to implementing this:
Of the two options, "managed" requires less changes to the existing meshtastic system. The administrator of the relay node need only configure the IDs of it's clients in order to recognize the packets in which is should act as the router.
The second option is more flexible, allowing clients to decide what node they want to act as their first hop, but requires changing the packet encoding to extend the length of the header. The additional header space would be used to encode the ID of the client's "preferred router". Upon receiving a packet, any node on the network can read this information and decide whether to relay the packet like any other
CLIENT
on the network or to relay the packet immeditaely, likeROUTER
.Doing this would allow for well placed nodes, even in areas with very dense meshtastic presence, to act as routers within a limited scope without impacting the performance of the larger network as a similarly placed
ROUTER
under the current definition would.Beta Was this translation helpful? Give feedback.
All reactions