bluenviron / mavp2p

flexible and efficient Mavlink router
MIT License
127 stars 31 forks source link

Routing to Target Systems/Components #18

Closed Kester-Broatch closed 1 year ago

Kester-Broatch commented 1 year ago

Hi there! I really like this router as it can handle N server connections very well on the server enpoint!

However, it doesn't route messages based upon the target_system and target_component as is described in the mavlink routing standard - https://mavlink.io/en/guide/routing.html.

We found in testing that if there are multiple GCS's connected to the mavp2p service, all commands/command_acks will be forwarded to all nodes regardless of the target_system of the message. Now, in theory this isn't a problem for us as we discard commands which are not intended for us on our GCSs, but it is still risky if someone's software doesn't do this. Plus also it congests the network.

So my question - are there any plans/value to implement this on the roadmap?

Thank you :)

aler9 commented 1 year ago

Hello, this could be an interesting feature.

Currently there's no way of knowing the target_system and target_component of a certain node. This may be solved by listening for packets coming from the node, and saving system and component pairs coming from that node. This is the method suggested by the wiki.

Furthermore, some nodes are meant to listen on all incoming traffic for saving telemetry, storing logs, broadcasting telemetry, debugging reasons. So there should be a way to keep the actual behavior on these nodes.