kersing / packet_forwarder

Multi protocol packet forwarder supporting the TTN gateway-connector protocol.
Other
86 stars 56 forks source link

The Things Network Multi Protocol Packet Forwarder

Forked from devlaams Poly Packet Forwarder, reworked to include The Things Network gateway-connector protocol.

For build instructions see mp_pkt_fwd/build.txt Tested on kerlink, MultiTech, lorank, RPi with iC880.

Forked from Semtech''s Lora network packet forwarder project. See original description below.

 / _____)             _              | |    
( (____  _____ ____ _| |_ _____  ____| |__  
 \____ \| ___ |    (_   _) ___ |/ ___)  _ \ 
 _____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
  (C)2013 Semtech-Cycleo

Lora network packet forwarder project

  1. Core program: lora_pkt_fwd

The packet forwarder is a program running on the host of a Lora gateway that forwards RF packets receive by the concentrator to a server through a IP/UDP link, and emits RF packets that are sent by the server. It can also emit a network-wide GPS-synchronous beacon signal used for coordinating all nodes of the network.

((( Y )))
    |
    |
+- -|- - - - - - - - - - - - -+        xxxxxxxxxxxx          +--------+
|+--+-----------+     +------+|       xx x  x     xxx        |        |
||              |     |      ||      xx  Internet  xx        |        |
|| Concentrator |<----+ Host |<------xx     or    xx-------->|        |
||              | SPI |      ||      xx  Intranet  xx        | Server |
|+--------------+     +------+|       xxxx   x   xxxx        |        |
|   ^                    ^    |           xxxxxxxx           |        |
|   | PPS  +-----+  NMEA |    |                              |        |
|   +------| GPS |-------+    |                              +--------+
|          +-----+            |
|                             |
|            Gateway          |
+- - - - - - - - - - - - - - -+

Uplink: radio packets received by the gateway, with metadata added by the gateway, forwarded to the server. Might also include gateway status.

Downlink: packets generated by the server, with additional metadata, to be transmitted by the gateway on the radio channel. Might also include configuration data for the gateway.

  1. Helper programs

Those programs are included in the project to provide examples on how to communicate with the packet forwarder, and to help the system builder use it without having to implement a full Lora network server.

3.1. util_sink

The packet sink is a simple helper program listening on a single port for UDP datagrams, and displaying a message each time one is received. The content of the datagram itself is ignored.

3.2. util_ack

The packet acknowledger is a simple helper program listening on a single UDP port and responding to PUSH_DATA datagrams with PUSH_ACK, and to PULL_DATA datagrams with PULL_ACK.

3.3. util_tx_test

The network packet sender is a simple helper program used to send packets through the gateway-to-server downlink route.

  1. Helper scripts

4.1. lora_gateway/reset_lgw.sh

This script, provided with the HAL (lora_gateway), must be launched on IoT Start Kit platform to reset concentrator chip through GPIO, before starting any application using the concentrator, like the packet forwarder.

4.2. packet_forwarder/lora_pkt_fwd/update_gwid.sh

This script allows automatic update of Gateway_ID with unique MAC address, in packet forwarder JSON configuration file. Please refer to the script header for more details.

  1. Changelog

v3.0.0 - 2016-05-19

WARNING: Gateway <-> Network Server protocol version has changed. Please refer to PROTOCOL.txt file.

v2.2.1 - 2016-04-12

v2.2.0 - 2015-10-08

v2.1.0 - 2015-06-29

v2.0.0 - 2015-04-30

WARNING: Update your JSON configuration file with new dynamic parameters.

v1.4.1 - 2015-01-23

v1.4.0 - 2014-10-16

v1.3.0 - 2014-03-28

v1.2.0 - 2014-02-03

v1.1.0 - 2013-12-09

v1.0.0 - 2013-11-22

  1. Legal notice

The information presented in this project documentation does not form part of any quotation or contract, is believed to be accurate and reliable and may be changed without notice. No liability will be accepted by the publisher for any consequence of its use. Publication thereof does not convey nor imply any license under patent or other industrial or intellectual property rights. Semtech assumes no responsibility or liability whatsoever for any failure or unexpected operation resulting from misuse, neglect improper installation, repair or improper handling or unusual physical or electrical stress including, but not limited to, exposure to parameters beyond the specified maximum ratings or operation outside the specified range.

SEMTECH PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. INCLUSION OF SEMTECH PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE UNDERTAKEN SOLELY AT THE CUSTOMER’S OWN RISK. Should a customer purchase or use Semtech products for any such unauthorized application, the customer shall indemnify and hold Semtech and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs damages and attorney fees which could arise.

EOF