Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork43
Forward Semtech packet-forwarder data to multiple servers.
License
chirpstack/chirpstack-packet-multiplexer
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The ChirpStack Packet Multiplexer makes it possible to connect gateways usingtheSemtech UDP packet-forwarder protocolto multiple servers, with the option to mark servers as uplink only.
ChirpStack provides a Debian / Ubuntu repository which can be used to installthe ChirpStack Packet Multiplexer. First make sure thatgpg is installed:
sudo apt install gpgSet up the key for the ChirpStack repository:
sudo mkdir -p /etc/apt/keyrings/sudo sh -c'wget -q -O - https://artifacts.chirpstack.io/packages/chirpstack.key | gpg --dearmor > /etc/apt/keyrings/chirpstack.gpg'Add the repository to the repository list:
echo"deb [signed-by=/etc/apt/keyrings/chirpstack.gpg] https://artifacts.chirpstack.io/packages/4.x/deb stable main"| sudo tee /etc/apt/sources.list.d/chirpstack.list
Update the apt package cache:
sudo apt update
Installchirpstack-packet-multiplexer:
sudo apt install chirpstack-packet-multiplexerTo complete the installation, update the configuration file which is locatedat/etc/chirpstack-packet-multiplexer/chirpstack-packet-multiplexer.toml and (re)startthe service:
sudo systemctl restart chirpstack-packet-multiplexerBuilding ChirpStack Packet Multiplexer requires:
Nix is used for setting up the development environment which is used for localdevelopment and for creating the binaries.
If you do not have Nix installed and do not wish to install it, then you canalso replicate the development environment by installing the packages listedinshell.nix manually.
Docker is used bycross-rs for cross-compiling,as well as some of themake commands.
Run the following command to start the development shell:
nix-shell
Execute the following command to run the tests:
maketestExecute the following commands to build the ChirpStack Packet Multiplexer binariesand packages:
# Only build binariesmake build# Build binaries + distributable packages.make dist
Runchirpstack-packet-multiplexer --help for usage information.
Executingchirpstack-packet-multiplexer configfile returns the following configurationtemplate:
# Logging settings.[logging]# Log level.## Valid options are:# * TRACE# * DEBUG# * INFO# * WARN# * ERRORlevel ="info"# Multiplexer configuration.[multiplexer]# Interface:port of UDP bind.## This this is the interface:port on which the Multiplexer will receive# data from the gateways.bind ="0.0.0.0:1700"# Servers to forward gateway data to.## Example configuration:# [[multiplexer.server]]# # Hostname:port of the server.# server="example.com:1700"# # Only allow uplink.# ## # If set to true, any downlink will be discarded.# uplink_only=false# # Gateway ID prefix filters.# ## # If not set, data of all gateways will be forwarded. If set, only data# # from gateways with a matching Gateway ID will be forwarded.# ## # Example:# # * "0102030405060708/32": Exact match (all 32 bits of the filter must match)# # * "0102030400000000/16": All gateway IDs starting with "01020304" (filter on 16 most significant bits)# gateway_id_prefixes=[]## # Filter configuration.# [multiplexer.server.filters]# # DevAddr prefix filters.# ## # Example configuration:# # dev_addr_prefixes=["0000ff00/24"]# ## # The above filter means that the 24MSB of 0000ff00 will be used to# # filter DevAddrs. Uplinks with DevAddrs that do not match any of the# # configured filters will not be forwarded. Leaving this option empty# # disables filtering on DevAddr.# dev_addr_prefixes=[]# # JoinEUI prefix filters.# ## # Example configuration:# # join_eui_prefixes=["0000ff0000000000/24"]# ## # The above filter means that the 24MSB of 0000ff0000000000 will be used# # to filter JoinEUIs. Uplinks with JoinEUIs that do not match any of the# # configured filters will not be forwarded. Leaving this option empty# # disables filtering on JoinEUI.# join_eui_prefixes=[]# Monitoring configuration.[monitoring]# Interface:port.## If set, this will enable the monitoring endpoints. If not set, the endpoint# will be disabled. Endpoints:## * /metrics: Exposes Prometheus metrics.bind =""
services: chirpstack-packet-multiplexer: image: chirpstack/chirpstack-packet-multiplexer:4.0.0-test.3 command: -c /etc/chirpstack-packet-multiplexer/chirpstack-packet-multiplexer.toml ports: - 1700:1700/udp volumes: - ./config:/etc/chirpstack-packet-multiplexerThe above example assumes that you have a local configuration directory namedconfig which contains achirpstack-packet-multiplexer.toml file.
- Refactor code from Go to Rust.
- Allow Gateway ID prefix filtering.
- Allow DevAddr / JoinEUI prefix filtering.
- Forward all gateways in case
gateway_id_prefixesis empty. - Expose Prometheus metrics.
This release renames LoRa Packet Multiplexer to ChirpStack Packet Multiplexer.See theRename Announcement for more information.
- Fix setting of configuration variable (used to resolve if backend allows downlink).
- Auto-lowercase configured gateway IDs.
- Initial release (part of LoRa Server v3 repository).
ChirpStack Packet Multiplexer is distributed under the MIT license. See alsoLICENSE.
About
Forward Semtech packet-forwarder data to multiple servers.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.