Hi I’m testing a gateway relay network in the field, I’ve noticed that when working with class C end-nodes the gateway mesh service on the border gateway fails to send downlinks trough the relay.
here’s the log with the error:
INFO [chirpstack_gateway_mesh::proxy] Downlink command received - [downlink_id: 915670223 - [freq: 923300000, power: 21, mod: [LORA - sf: 8, bw: 125000], timing: [IMMEDIATELY]]]
ERROR [chirpstack_gateway_mesh::proxy] Handle command error: Only Delay timing is supported
I’ve tried making the rx1_delay in the region toml larger and changing the rx_window to RX1 only but that seems to only work for class A devices.
As far as I can tell Class C devices can only use the immediately timing when in the RX2 window, which makes sense as the point is that the end node will be always listening. The downlink does work in the RX1 window, after the uplink, because it is using delayed timing to account for the RX1 delay.
This error is raised in the relay_downlink_lora_packet function in the mesh.rs. If the Relay is not needed and it uses proxy_downlink_lora_packet function to send it doesn’t require it to be delay timing.
The main question that I have is that is there reason not to allow immediate timing when relaying downlinks?