I almost did it this way but ran into the problem of sharing the routing table and over corrected, creating a single process bottleneck. When we spawn the connections they should remain the controlling process of their respective ports, we can eliminate the double handling/delegation of incoming network messages.
Router scope should reduce to managing the routing table for these processes. Does routing info need to be updated every message or just with heartbeats? Connection processes delegate to router functions to forward directly to outgoing connections. Should local subscriptions get registered as extra connections?
Move the main API and entry point to a new MAVLink module.
I almost did it this way but ran into the problem of sharing the routing table and over corrected, creating a single process bottleneck. When we spawn the connections they should remain the controlling process of their respective ports, we can eliminate the double handling/delegation of incoming network messages.
Router scope should reduce to managing the routing table for these processes. Does routing info need to be updated every message or just with heartbeats? Connection processes delegate to router functions to forward directly to outgoing connections. Should local subscriptions get registered as extra connections?
Move the main API and entry point to a new MAVLink module.