Custom packet-forwarder: Gateway bridge does not subscribe to commands

Hello,
I have trouble receiving downlinks.
I program them in the UI:


After doing this, I send a message with my device (Class A).
On the Network server, everything seems normal:

time="2020-08-12T11:03:51Z" level=info msg="gateway/mqtt: uplink frame received" gateway_id=aa55a00000000000 uplink_id=b0135cda-f632-498a-b0c7-d37f0067a0d2
time="2020-08-12T11:03:51Z" level=info msg="uplink: frame(s) collected" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d mtype=UnconfirmedDataUp uplink_ids="[b0135cda-f632-498a-b0c7-d37f0067a0d2]"
time="2020-08-12T11:03:51Z" level=info msg="sent uplink meta-data to network-controller" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d dev_eui=aa555a002601143f
time="2020-08-12T11:03:51Z" level=info msg="device gateway rx-info meta-data saved" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d dev_eui=aa555a002601143f
time="2020-08-12T11:03:51Z" level=info msg="device-session saved" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d dev_addr=2601143f dev_eui=aa555a002601143f
time="2020-08-12T11:03:51Z" level=info msg="finished client unary call" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d grpc.code=OK grpc.ctx_id=20902992-a538-46e8-97ee-79642933b7a1 grpc.duration=28.146523ms grpc.method=HandleUplinkData grpc.service=as.ApplicationServerService span.kind=client system=grpc
time="2020-08-12T11:03:51Z" level=info msg="device-queue deleted" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d id=4
time="2020-08-12T11:03:51Z" level=info msg="adr request added to mac-command queue" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d dev_eui=aa555a002601143f dr=0 nb_trans=1 req_dr=0 req_nb_trans=1 req_tx_power_idx=5 tx_power=0
time="2020-08-12T11:03:51Z" level=info msg="gateway/mqtt: publishing gateway command" command=down downlink_id=92e51444-56ff-4b62-9feb-152bf37f284d gateway_id=aa55a00000000000 qos=0 topic=gateway/aa55a00000000000/command/down
time="2020-08-12T11:03:51Z" level=info msg="device-session saved" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d dev_addr=2601143f dev_eui=aa555a002601143f
time="2020-08-12T11:03:51Z" level=info msg="downlink-frames saved" ctx_id=92e51444-56ff-4b62-9feb-152bf37f284d token=37605

But on the gateway bridge, I have this logs:

time="2020-08-12T10:07:33Z" level=info msg="starting ChirpStack Gateway Bridge" docs="https://www.chirpstack.io/gateway-bridge/" version=3.7.1-4-gbb68681
time="2020-08-12T10:07:33Z" level=info msg="backend/semtechudp: starting gateway udp listener" addr="0.0.0.0:1700"
time="2020-08-12T10:07:33Z" level=error msg="integration/mqtt: connection error" error="Network Error : dial tcp 172.18.0.10:1883: connect: connection refused"
time="2020-08-12T10:07:57Z" level=info msg="integration/mqtt: connected to mqtt broker"
time="2020-08-12T10:20:18Z" level=info msg="integration/mqtt: publishing event" event=up qos=0 topic=gateway/aa55a00000000000/event/up uplink_id=d68173e5-7c75-46e6-9dcf-12604aa16127

I just see the “publish” event, no downlink.
Shouldn’t the gateway bridge subscribe to the gateway command?

It does. Which packet-forwarder are you using?

We have a home-made packet-forwarder, based on Semtech UDP:

It should receive downstreams from the gateway bridge:

Is there anything specific the packet forwarder should do to enable the downlinks?

What could cause the Gateway Bridge to not subscribe to the commands?
Here is my config is just:

[integration.mqtt.auth.generic]
servers=["tcp://wazigate-edge:1883"]
client_id="chirpstack-application-server"

I use default values for the rest.

I think your packet-forwarder doesn’t fully implement: https://github.com/Lora-net/packet_forwarder/blob/master/PROTOCOL.TXT.