Bot releases are visible (Hide)
Published by brocaar over 3 years ago
LinkADRAns
handling for devices with ADR disabled to align with 4.3.1.1 of LoRaWAN 1.0.4 specs.Published by brocaar over 3 years ago
This adds the option to add a service-profile to a gateway and a service-profile flag to make all gateways under that service-profile private. It also adds a global configuration option to make all gateways private. When a gateway is private, only devices under the same service-profile will be able to use the gateway.
This adds the option to configure custom ADR algorithms through a plugin system. See the examples/adr-plugin
directory for an example plugin skeleton.
Published by brocaar almost 4 years ago
This release provides an experimental implementation of the Passive Roaming implementation as specified by the LoRaWAN Backend Interfaces v1.0.0 specification.
This removes the de-duplication that was also performed by the MQTT backend. It also updates the current deduplication function to include the full TXInfo
within the de-duplication key. Uplinks received on multiple channels will therefore be processed (and MIC validated) separately.
This makes it possible to set the gateway stats interval when supported by the gateway (currently only Concentratord is supported).
This removes old join-server code on favor of the client code which is also used for Passive Roaming (as both are based on the LoRaWAN Backend Interfaces specification).
When creating a gateway certificate, the expiration is now exposed in the API response.
When no join-server is pre-configured, DNS resolving is enabled and the JoinEUI does resolve, the the same certificate configuration will be used as when connecting to the default join-server.
tls_enabled
option to Redis config.In earlier releases, it was possible to configure the Redis endpoint by URL, which allowed to enable TLS. The configuration changed when support for Redis Sentinel and Redis Cluster was implemented. This adds back the option to enable TLS.
Published by brocaar about 4 years ago
Published by brocaar over 4 years ago
With this feature, ChirpStack Network Server will send all downlink opportunities (e.g. RX1 and RX2) at once to the gateway, reducing the number of roundtrip in case of failures. Previously ChirpStack Network Server would send the next downlink opportunity on a received nACK. In case of a retry, this saves one roundtrip reducing the risk of a failed downlink due to network latency. The gateway will always send at most one downlink.
Note: This feature requires ChirpStack Gateway Bridge v3.9 or later, but is backwards compatible with previous versions, in which case ChirpStack Network Server will fallback into the old behavior. This backwards compatibility has some overhead, which can be controlled by the multi_downlink_feature
configuration variable.
This feature makes it possible to (temporarily) disable a device, in which case uplinks are ignored.
The Join Server integration has been updated, so that it is no longer required to rely on DNS resolving of the Join Server. It is now possible to configure a per JoinEUI endpoint of the Join Server.
This removes the Geolocation Server integration (relying on LoRa Cloud) from ChirpStack Network Server. The reason for this is that there are various options for geolocation, some of them relying on the decrypted FRMPayload, e.g. in case of Wifi and GNSS sniffing. To provide one unified integration, this integration has been moved to ChirpStack Application Server.
Note: This will deprecate ChirpStack Geolocation Server as v3.11 will provide a per-application configurable LoRa Cloud integration.
This makes it possible to generate per-gateway client-certificates which can be used to implement gateway authentication and authorization. For example a MQTT broker can be configured to validate the client-certificate against a pre-configured CA certificate and if valid it can use the CommonName of the certificate (which contains the gateway ID) to authorize publish / subscribe to certain topics.
Important note:
This version improves the error handling when an uplink is received through an unknown gateway. Previously this was logged as an error, this has changed to a warning. Uplinks received through unknown gateways will be ignored. Make sure that all gateways in your network are configured in ChirpStack!
Published by brocaar over 4 years ago
This release introduces the support for Redis Cluster and Redis Sentinel.
A new API method has been added to the (optional) Network Controller called HandleRejectedUplinkFrameSet
. When ChirpStack Network Server rejects an uplink (e.g. when the device is not known to the network, or the activation is missing), it will call this method (when the Network Controller is configured).
Published by brocaar over 4 years ago
Published by brocaar over 4 years ago
When sending a downlink response, ChirpStack Network Server will select from the list of gateways with a given (configurable) margin, a random gateway for the downlink. This should result in a better downlink distribution across gateways. In case non of the gateways are within the configured margin, the best gateway is selected (old behavior).
The monitoring configuration has been updated so that it is possible to configure both a Prometheus endpoint at /metrics
and healthcheck endpoint at /health
. This change is backwards compatible, but to use the /health
endpoint you must update your configuration.
By forwarding gateway metadata to the (ChirpStack) Application Server, information like serial number, temperature, ... could be stored by the Application Server for various use-cases. The configuration of metadata is covered by the ChirpStack Gateway Bridge.
Previously the first downlink scheduling attempt was logged (visible in the ChirpStack Application Server under the Gateway / Device LoRaWAN frames). This has been changed so that the scheduling attempt acknowledged by the gateway is logged. E.g. when RX1 fails, but RX2 succeeds this will log the RX2 attempt.
Published by brocaar over 4 years ago
The refactored frame-counter validation makes it possible to report different types of errors to the Application Server which will make it easier to debug frame-counter related issues.
OTAA related errors will now be pushed to the Application Server to make it easier to debug OTAA related issues.
Downlink TX acknowledgements (by the gateway) are now forwarded to the Application Server. Please note that this is the TX acknowledgement by the gateway, indicating that it was enqueued for transmission.
When log_to_syslog
is enabled in the configuration file, the log output will be written to syslog.
api
package (the API definitions have been moved to chirpstack-api).Published by brocaar almost 5 years ago
This backend uses RabbitMQ for gateway communication. See the AMQP / RabbitMQ gateway backend documentation for more information. Please note that this backend does not replace the default MQTT backend.
Published by brocaar almost 5 years ago
New configuration options have been added for RX1 / RX2 selection for downlink. (#429)
rx2_prefer_on_rx1_dr_lt
it is possible to prefer RX2 for downlink, when the RX1 data-rate is less than the configured value.rx2_prefer_on_link_budget
it is possible to prefer RX2 for downlink when RX2 provides a better link budget than RX1.A new configuration option has been added to limit the number of mac-command errors (per device). This resolves the issue where the Network Server keeps trying to send a downlink mac-command to a malfunctioning device.
This is the first release providing .rpm packages for CentOS and RedHat. (#454)
The updated version contains logic for the EU868 band to either use 14 dBm or 27 dBm based on used frequency.
All definitions are now imported from github.com/brocaar/chirpstack-api/go
. When using the gRPC API, you must update your imports.
Deprecate use of dots (.
) in environment variable names, use double understore (__
) instead. (#451)
Update lock key of MQTT gateway backend for handling of antenna diversity.
The (re)usage of Redis connections has been improved.