Skip to content
This repository has been archived by the owner. It is now read-only.
Packet forwarder for Linux based gateways
Go Shell Makefile
Branch: master
Clone or download
Pull request Compare This branch is 57 commits ahead, 16 commits behind Lora-net:master.

Packet Forwarder

⚠️ The development of this packet forwarder has been put on hold. We're currently working on new tools to make gateways easier to manage, that we will make public when ready. In the meanwhile, we recommend to use other packet forwarders (Semtech packet forwarder, MP packet forwarder). To learn more, join the discussion on the forum.

Packet forwarder to make the link between a LoRa concentrator and The Things Network's backend.

This packet forwarder isn't destined to The Things Gateway's users, but for users who already have a gateway from another vendor, and that want to connect it to The Things Network.

Demo GIF


Installation manuals are available for main available gateways:


If you have a custom-made gateway, or if you want to contribute to the development of the packet forwarder, you will have to build the binary yourself.


$ packet-forwarder configure
$ packet-forwarder start

Configuration format and flags

The configuration file generated by packet-forwarder configure is stored at $HOME/.pktfwd.yml. You can specify a different config file with the --config flag, or specify runtime parameters with the different flags:

  • --id: Gateway ID of the present gateway.
  • --key: Gateway key of the present gateway.
  • --router: ID of the router with which communicate (optional ; default: account server-stored router)
  • --auth-server: URI of the account server (optional ; default:
  • --discovery-server: Address and port of the discovery server (optional ; default:
  • --verbose or -v: Show debugging information (optional)
  • --downlink-send-margin: Change downlink send margin, in milliseconds (optional ; see documentation)
  • --gps-path: Set GPS path to enable GPS support (optional ; default: empty)
  • --ignore-crc: Ignore CRC check, and send uplink packets upstream even if they are CRC-invalid.


Source code for this packet forwarder is MIT licensed. We encourage users to make contributions on Github and to participate in discussions on Slack.

If you encounter any problems, please check open issues before creating a new issue. Please be specific and give a detailed description of the issue. Explain the steps to reproduce the problem. If you're able to fix the issue yourself, please help the community by forking the repository and submitting a pull request with your fix.

For contributing a feature, please open an issue that explains what you're working on. Work in your own fork of the repository and submit a pull request when you're done.

If you want to contribute, but don't know where to start, you could have a look at issues with the label help wanted or difficulty/easy.


Source code for the packet forwarder is released under the MIT License, which can be found in the LICENSE file.

You can’t perform that action at this time.