Mavlink-router filtering by MAV_SYS_ID

I have multiple PX4 UAVs all configured to send telemetry data to my laptop’s IP on port 14550. Each drone has a unique MAV_SYS_ID, but I haven’t been able to successfully route traffic according to this ID.

Has anyone successfully filtered MAVLink messages based on MAV_SYS_ID before routing? I want to connect to drone 1 via mavsdk on my 10.8.0.2 machine, and the same for drone 2 on my 192.168.0.123 laptop. (I’m testing with QGroundControl only for now skipping mavsdk code to just debug networking/routing).

Right now I get both drones on both machines with mavlink-router running*.

[General]
# TcpServerPort=5760
ReportStats=true
# MavlinkDialect=auto
LogLevel=info

[UdpEndpoint drone1]
Mode=Normal
Address=10.8.0.2
Port=14548
AllowSrcSysIn=1

[UdpEndpoint drone2]
Mode=Normal
Address=192.168.0.123
Port=14550
AllowSrcSysIn=2

* Even this is only partially working as I don’t see any info under Vehicle Setup in QGroundControl, and a few seconds after connecting, I get this error every time:

And both work individually? when you just try to connect 1?

With the configuration I posted, I see some data coming in, including battery and location info, but QGroundControl is consistently unable to retrieve all PX4 parameters (e.g. MAV_SYS_ID and other data under Vehicle Setup) and shows the error message in the screenshot.

My current solution is to run a mavlink-router container using host network mode on each UAV with a simpler configuration that redirects onboard mavsdk (0.0.0.0:14551) to my laptop on a unique port (e.g. 192.168.0.123:14542 for drone #2):

docker run --rm -it \
  --network=host \
  mavlink-router \
  /mavlink-router/build/src/mavlink-routerd -e 192.168.0.123:14542 0.0.0.0:14551

I only have 1 physical drone at the moment, but this setup seems to avoid the error message and I’m able to get all vehicle info and send commands to the UAV.