MIMO-Packet-Forwarder
The MIMO-Packet-Forwarder forwards the Semtech packet-forwarder
UDP data from different concentrators to one or more endpoints. It has build in MIMO capabilities and a smart antenna selection for downlink packets
it makes it possible to connect different Semtech packet-forwarders to one backend acting as one MIMO-LoRaWAN gateway and can send its data to multiple networks.
Building from source
Binary
It is recommended to run the commands below inside a Docker Compose
environment.
docker-compose run --rm MIMO-Packet-Forwarder bash
# build binary
make
# create snapshot release
make snapshot
# run tests
make test
Docker image
docker build -t IMAGENAME .
Usage
Run MIMO-Packet-Forwarder --help
for usage information.
Example configuration
Executing MIMO-Packet-Forwarder configfile
returns the following configuration
template:
# Log level
#
# debug=5, info=4, warning=3, error=2, fatal=1, panic=0
log_level=4
[packet_multiplexer]
# Bind
#
# The interface:port on which the packet-multiplexer will bind for receiving
# data from the packet-forwarder (UDP data).
bind="0.0.0.0:1800"
#
# Number of concentrator modules on gateway side. The MIMO-Packet-Multiplexer
#will wait for this number of rxpk messages to send to backend, otherwise it will
#take about 100ms to process the received message
concentrators=3
#
# This is the main gateway ID used for the communication with the backend software
maingatewayid="0101010101010101"
#
# Backends
#
# The backends to which the packet-multiplexer will forward the
# packet-forwarder UDP data.
#
# Example:
[[packet_multiplexer.backend]]
# # Host
# #
# # The host:IP of the backend.
host="192.16.1.5:1700"
#
# # Uplink only
#
# # This backend is for uplink only. It is not able to send downlink data
# # back to the gateways.
# uplink_only=false
#
# # Gateway IDs
# #
# # The Gateway IDs to forward data for.
gateway_ids = [
"0101010101010101",
"0202020202020202",
]
Example docker compose setup
If you built the docker image for the packet multiplexer as above and wish to
run it through docker compose create a suitable location for volumes and
configfile to reside.
mkdir MIMO-Packet-Forwarder/config
touch MIMO-Packet-Forwarder/config/MIMO-Packet-Forwarder.toml
Save your template in the following just created location below. Edit as required
for multiplexer and backends.
MIMO-Packet-Forwarder/config/MIMO-Packet-Forwarder.toml
Example docker-compose
version: "3"
services:
MIMO-Packet-Forwarder:
image: MIMO-Packet-Forwarder:latest
ports:
- 1700:1700/udp
volumes:
- ./:/MIMO-Packet-Forwarder
- ./config/MIMO-Packet-Forwarder.toml:/etc/MIMO-Packet-Forwarder/MIMO-Packet-Forwarder.toml:ro
To run...
docker-compose up