Commit Graph

107 Commits

Author SHA1 Message Date
62f981fefe Use trust_store instead of ca_path. (#37) 2022-09-10 12:32:01 +01:00
cba8da2d05 Bump version to 4.0.0-rc.4 2022-09-05 22:47:47 +01:00
97a235cc80 Remove duplicate code.
This is already handled by the filter_mac_commands function.
2022-09-05 22:38:48 +01:00
8a4b537645 Fix filtering on mac-command conflict and error count. 2022-09-05 14:07:16 +01:00
4dd441e85d Cleanup DevEUI from DevAddr > DevEUI set, if DS does not exist. 2022-08-31 11:13:51 +01:00
0fa40717e8 Add missing CN470 configuration.
Closes #36.
2022-08-31 09:48:55 +01:00
7e6552df5e Fix missing Kafka key. 2022-08-31 08:49:53 +01:00
4f08f7ddcb Add user_id filter when listing tenants with global API key. (#34) 2022-08-31 08:48:11 +01:00
0a5c38d322 Also log txack errors for mac-only downlinks. 2022-08-30 14:02:21 +01:00
3cf05e8fb9 Fix passive-roaming tx ack and save device-session order.
We first need to save the device-session and then handle the tx ack, as
else we are overwriting the frame-counter increment.
2022-08-26 12:54:46 +01:00
ca2961c7b6 Bump version to 4.0.0-rc.3 2022-08-23 08:59:05 +01:00
63b0af6cf3 Remove owning_ref indirect dep by updating prometheus-client.
The owning_ref crate has a vulnerable. The updated prometheus-client no
longer uses owning_ref as a dependency.
2022-08-22 10:54:33 +01:00
3b297ef221 Replace env. variables in config by localhost for .deb and .rpm
The env. variables are used such that the same configuration can be used
for Docker images, .deb and .rpm packages. However, if installing .deb
or .rpm packages, this can be confusing as executing 'chirpstack -c
/etc/chirpstack' will fail because these environment variables are only
available when using systemctl to start the ChirpStack process
(configured in the .service configuration file).
2022-08-21 21:44:36 +01:00
e917f8ea49 Remove default CA and MQTT cert gen. on install.
In case of mult-server deployments, this can be confusing as each VM
generates different certificate files by default, where all instances
must share the same certificate (or at least CA certificate + key).
The other issue is that the MQTT broker certificate must contain the
correct hostname, which can (most of the times) not automatically be
retrieved. Documentation to generate these certificates can be found
here:

https://www.chirpstack.io/docs/guides/mosquitto-tls-configuration.html
2022-08-21 19:56:49 +01:00
613f4562a2 Add config option to allow unknown gateways. 2022-08-18 10:27:55 +01:00
bf6df9c845 Fix shadowing of rx_info and setting location.
The rx_info value was shadowed, and because of this the location was set
on the cloned value, not the original value, making the location set
useless.
2022-08-14 13:49:00 +01:00
d4337b10ab Bump version to 4.0.0-rc.2 2022-08-11 12:04:21 +01:00
77dc247f66 Fix mac_version -> mac_version().
The first returns the Protobuf integer, the second the generated enum
type. The big difference is that the first .to_string() would convert
the Protobuf integer to the same but then as String type, where the
latter returns something like '1.0.3' which is provided by the
fmt::Display trait implementation by ChirpStack.
2022-08-11 11:38:43 +01:00
ca567ca562 Bump version to 4.0.0-rc.1 2022-08-10 12:36:43 +01:00
1a68080ac0 Fix configfile template. 2022-08-10 11:34:52 +01:00
ba7fc75ee6 Fix clippy warnings. 2022-08-10 11:34:33 +01:00
7868629533 Fix LoRaWAN 1.1 downlink fopts encryption. 2022-08-09 16:33:58 +01:00
2b1bf3b96f Only decode mac-commands for logging if in plaintext.
Please note that for LoRaWAN 1.1.x, mac-commands in the f_opts field are
encrypted. Within the context of the device we can decrypt these, but
within the context of a gateway we can only show these as raw bytes.
2022-08-09 15:29:22 +01:00
e680db3be0 Bump version to 4.0.0-test.18 2022-08-04 17:11:45 +01:00
a14adfe20b Bump version to 4.0.0-test.17 2022-08-04 10:27:03 +01:00
672511c696 Implement support for JSON for GW<>NS.
This auto-detects the encoding used by the gateway and stores this
setting such that the commands will be encoded using the same setting.

Closes #2.
2022-08-03 15:19:51 +01:00
3348ccf67d Fix async receiver for passive-roaming HomeNSReq + add debug logs. 2022-08-03 15:18:31 +01:00
341ac828b0 Bump version to 4.0.0-test.16 2022-08-01 12:59:57 +01:00
d7a4334b77 Fix missing GatewayStats v4_migrate.
This is needed as the gateway_id field has changed from bytes to string
(as the Protobuf JSON mapping encodes bytes to base64).
2022-08-01 12:08:08 +01:00
edff985ad8 Bump version to 4.0.0-test.15 2022-08-01 10:20:57 +01:00
10d75a1744 Set MQTT persistence to TMP dir instead of CWD. 2022-07-31 13:11:55 +01:00
eee1c4b4b0 Show counter value as rate per aggregation interval. 2022-07-31 13:10:16 +01:00
3ab830f5a0 Change clean_session default + fix re-subscribe.
This changes the clean_session default to false, as only in case of a
persistent session, qos > 0 would be effective. If the client_id is not
set, then ChirpStack will generate a random client_id, which stays the
same during the lifetime of the chirpstack process.

This also implements a subscribe loop, as the client re-connect feature
does not re-subscribe. Even in case of a persistent session there is no
guarantee that the subscription is recovered, as it might have been a
MQTT broker restart. In case the broker stores the sessions in-memory,
the client would re-connect, but without subscriptions.

The (re)subscribe logic is placed outside the on-connected callback, as
the callback function must not block, thus can not wait for the
subscribe result. No the (re)subscribe happens async from the
on-connected.
2022-07-30 13:23:54 +01:00
f58e39e503 Bump version to 4.0.0-test.14 2022-07-28 09:02:54 +01:00
ffa8aa9518 Fix clippy warning. 2022-07-28 08:58:31 +01:00
a53a90b646 Make deduplication_delay configurable. Handle duplicated acks. 2022-07-27 20:19:02 +01:00
7a7d3dbd4e Add missing LoRa 2.4 gHz code-rates to enum. 2022-07-27 10:06:14 +01:00
73d581fc4c Update version. 2022-07-26 15:29:01 +01:00
85cd5e0b80 Fix formatting after clippy fixes. 2022-07-22 13:06:52 +01:00
4612f84045 Update to diesel 2.0.0-rc.1. 2022-07-22 13:05:45 +01:00
b187efe84c Cleanup clippy warnings. 2022-07-22 13:00:30 +01:00
4d665d3ded Remove update, change apt to apt-get to avoid warnings. 2022-07-22 12:20:20 +01:00
c0a450c8f8 Change LR-FHSS code_rate to CodeRate type. 2022-07-22 12:19:36 +01:00
e7432986cd Bump version to v4.0.0-test.11. 2022-07-21 16:17:41 +01:00
69e3b672ac Fix field types for GatewayStats and GatewayConfiguration.
The gateway_id field now has type string and bandwidth is in Hz, which
is consistent with the other messages.
2022-07-21 15:28:09 +01:00
067869e4f0 Bump version to v4.0.0-test.10. 2022-07-21 13:49:51 +01:00
5436582f03 Refactor testing and (cross)compile.
With the update to diesel 2.0.0-rc0, it is now possible to cross-compile
without emulation. Note that during each (cross)compile, we have to
install libpq-dev for the target platform, as only one version can be
installed at a time (e.g. libpq-dev:amd64 conflicts with libpq-dev:armhf).
2022-07-21 11:00:47 +01:00
954c408247 Add rdkafka cmake-build feature. 2022-07-20 14:07:53 +01:00
cbb1449868 Bump version. 2022-07-20 13:27:34 +01:00
634aea6a71 Update diesel to 2.0.0-rc.0.
Diesel 1.4.x makes it impossible to properly cross-compile when using
PostgreSQL and thus having a dependency on libpq. On compile and I
believe when using the diesel_migrations crate, there is a dependency on
both the host and target libpq. Unfortunately, only one can be installed
at a time, because of conflicts. See also:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=995768

Until now the cross-compile solution is based on docker buildx, which
uses qemu to emulate the different targets. This works, but is very,
very slow.

Diesel 2.0.0-rc.0 no longer depends on both the host and target libpq on
compile and makes it possible to implement proper cross-compiling (using
the rust --target flag in combination with the cross-compile
toolchains).
2022-07-20 10:55:59 +01:00