New TTN Packet Forwarder available

The version 2.0.2 of the packet forwarder has been released - the links in the documentation and issues with the compilation process have also been fixed. The release is available here.
We also appreciate the general feedback on the documentation - we’re going to look into how we can make it more welcoming for new users. In the meanwhile, we recommend using our builds and instructions manuals. If you want to build it yourself and aren’t used to Go environments, one document that could be a useful reference would be our CI build file, that describes step by step how we build the packet forwarder for the release builds.

Regarding the difference between @kersing’s packet forwarder and ours: It is not planned to make Kersing’s packet forwarder our official TTN packet forwarder. We often use it internally ourselves, but we don’t think C development gives us enough swiftness in the longer term. We’re thinking in particular about new gateways (such as the Kerlink iBTS, that is provided a brand new Hardware Abstraction Layer) - the design of the Go packet forwarder makes it easier to adapt to different chips and HALs.

Regarding GPS support, we received a lot of feedback that there were issues with it. We’re going to look into the issues - we’re also planning to add gpsd support.
Regarding the reset pin, the --reset-pin allows to specify a physical BCM pin number, for which the reset procedure is applied. You can also add it to your configuration file, by adding reset-pin: <reset pin number>. We’ll add this to the documentation.

4 Likes

Whats about multi-server support like the @ kersing’s packet forwarder?

1 Like

Multi-server support is not planned. Although downlinks are handled by a JIT queue in the TTN Packet Forwarder, the logic behind downlinks scheduling is handled by the network server. Being connected to multiple servers could create conflicts in downlink scheduling at the gateway level (for exemple, if server A schedules a downlink on gateway G at the same time as server B), thus leading to packet loss. However, the design of the network connection is modular enough so that someone interested could fork the TTN Packet Forwarder and implement it - but we’re not planning to add this feature, and do not recommend it due to the reason above.

OK, thank you.

Hi Sylvain !! by the way , thank you so much, your good old UDP pkt_forwarder brought us where we are today. but as you said , it is time to replace it. Cheers.

I tried the latest release on my IMST gateway, which is based on a RPi B+. The packet forwarder crashed with Illegal instruction.
After compiling the application from source on a real RPi it worked.
I guess this is because the RPi 1 CPU is only ARMv6l and not ARMv7, and the binary release was compiled with GOARM=7.
Just in case anyone has the same problem…

2 Likes

I would like to try the new TTN packet forward on the test gateways at my campus, but I have found no documentation on the TCP ports required. Because the firewall rules are very strict, I need to declare each outbound port to be allowed.

So far I have noticed that port 1900 is used on discovery.thethings.network.
And after that I see a connection to the IP 52.169.76.255 on port 1901. I suppose that is the router or bridge…

Are ports 1900 and 1901 sufficient, or do I need to allow other connections?

Sorry… This should have been a new topic. No idea why it was added to this thread :hushed:

we like to concentrate questions about the new packet forwarder in one topic that’s why :wink:

The RPi3 version works like a charm (after some gateway reset issues, I am using pin 22 as reset pin, thanks for the option to provide it on startup).

Would it be possible for you to add support for the beaglebone (lorank8) ? probably a lot of people (besides me) would be thankful.

Thanks!

1 Like

I’m unable to install the new packet forwarder on my NanoPi Neo running Armbian. I’ve downloaded and unpacked the installer, but when I try to execute install.systemd.sh of packet-forwarder, it gives me the ‘no such file or directory’ error. Incompatibility with my specific OS version? I’m running Linux nanopineo 3.4.113-sun8i #28 SMP PREEMPT.

On a newer build (4.11.3-sun8i) I get the error ‘No binary specified’ when trying to run the install script, packet-forwarder gives me ‘command not found’.

What is the recommended method of having a single gateway service 2 networks, eg public and private TTN backend, if not via the packet forwarder?

You’ll need access to ports 1900 (discovery server) and 1901 (router). You’ll also need access to port 443 (for the account server), but I can imagine this to be already allowed :slight_smile:

1 Like

We do not recommend having a single gateway service multiple networks altogether :stuck_out_tongue: But if this was to be necessary, you can either look into the legacy packet forwarder, or at @kersing’s poly-packet forwarder.

Use my fork of Lora-Net/packet_forwarder with multi-server support (up 4) and based on old TTN forwarder and latest Lora-net forwarder.

@x893-00 Does it support the ttn-gateway-connector protocol?

I check with TTN and loriot.io
It’s fork from https://github.com/Lora-net/packet_forwarder
only with multi-server support (as old TTN poly_pkt_fwd)

Hi Eric @egourlao , it looks like you posted two different packet forwarders here, one at the top and another one mid-way. I have a Conduit AEP gateway and your two posts lead me to downloading 2 different packages:
admin@mtcdt:~# wget https://ttnreleases.blob.core.windows.net/packet-forwarder/master/multitech-conduit-pktfwd.tar.gz
admin@mtcdt:~# wget https://github.com/TheThingsNetwork/packet_forwarder/releases/download/v2.0.2/multitech-conduit-pktfwd.tar.gz

Can we just make this one package that is always the latest and greatest?
I’m currently having trouble getting your packet forwarder to work (I tried both of them). The gateway ID and Key are properly configured but on TTN the gateway still shows offline, even after an hour.

OMG I just wrote this long reply with detailed instructions and then I went to attach a picture and it deleted my whole post and just put the picture in it.
CTRL-Z does nothing but CTRL-F makes the search function in my browser not work and instead searches the whole forum when I’m only trying to search a page. This forum is the worst…

Hi - I can’t believe I am the first person to come across this, but I don’t see any reference to the following problem. I have a nanopi neo running xenial and have successfully installed go 1.9.

go get -u github.com/TheThingsNetwork/packet_forwarder
package github.com/TheThingsNetwork/ttn/api/gateway: cannot find package "github.com/TheThingsNetwork/ttn/api/gateway" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/gateway (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/gateway (from $GOPATH)
package github.com/TheThingsNetwork/ttn/api/discovery: cannot find package "github.com/TheThingsNetwork/ttn/api/discovery" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/discovery (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/discovery (from $GOPATH)
package github.com/TheThingsNetwork/ttn/api/fields: cannot find package "github.com/TheThingsNetwork/ttn/api/fields" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/fields (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/fields (from $GOPATH)
package github.com/TheThingsNetwork/ttn/api/protocol: cannot find package "github.com/TheThingsNetwork/ttn/api/protocol" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/protocol (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/protocol (from $GOPATH)
package github.com/TheThingsNetwork/ttn/api/protocol/lorawan: cannot find package "github.com/TheThingsNetwork/ttn/api/protocol/lorawan" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/protocol/lorawan (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/protocol/lorawan (from $GOPATH)
package github.com/TheThingsNetwork/ttn/api/router: cannot find package "github.com/TheThingsNetwork/ttn/api/router" in any of:
        /usr/local/go/src/github.com/TheThingsNetwork/ttn/api/router (from $GOROOT)
        /home/nicbkw/go/src/github.com/TheThingsNetwork/ttn/api/router (from $GOPATH)

There is a question similar to mine on StackOverflow (https://stackoverflow.com/questions/45843678/cannot-find-any-package) and the comments are shown below:

There is no protocol package in github.com/TheThingsNetwork/ttn/tree/develop/api. Referenced in github.com/TheThingsNetwork/packet_forwarder/blob/master/pkt‌​fwd/…. Quite a few references to packages that don’t exist. – captncraig Aug 23 at 15:26

@captncraig you found the references in master, but tried to resolve them in develop. They exist in master: github.com/TheThingsNetwork/ttn/tree/master/api – Adrian Aug 23 at 16:27

Hmm, it looks like develop is the default branch in github, and what gets pulled via go get. – captncraig Aug 23 at 16:35

Yep, looks like you’re right - package maintainer broke it by setting it to default develop. – Adrian Aug 23 at 16:53

So, help please!