mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-04-10 07:24:39 +00:00
Compare commits
77 Commits
gw_mesh
...
api/go/v4.
Author | SHA1 | Date | |
---|---|---|---|
1245386f38 | |||
49e7c1ccb9 | |||
eafda74526 | |||
3378a81a37 | |||
04e676cad6 | |||
e3b83066b7 | |||
dcf6ea14bd | |||
b1766e506d | |||
87c918bc35 | |||
d5929e0523 | |||
d69f18edad | |||
6621a23652 | |||
20ec2877f2 | |||
10cbdb1e00 | |||
d24b8241c5 | |||
eecdeeb092 | |||
20e9e087ed | |||
c9bdea87f1 | |||
11fdd33139 | |||
07364fb05d | |||
3b42b9ffdb | |||
af139ebabd | |||
bf74c9d91d | |||
4d7a4b22e1 | |||
3829f591e4 | |||
2919fb79e5 | |||
61d794b680 | |||
29b57fb72a | |||
190d977bf5 | |||
9d04a74a94 | |||
5f8ddca7b7 | |||
e04515f647 | |||
d69a0eee75 | |||
e63296573b | |||
800d7d0efe | |||
489a35e0ec | |||
1848097e6c | |||
76b7ec4881 | |||
3aaa114f46 | |||
a811ec5c80 | |||
5794f41324 | |||
7158c0c610 | |||
eda6646b18 | |||
40a2b83bf5 | |||
4e0106a4e8 | |||
98978135c4 | |||
6a691c62e2 | |||
66ab41036b | |||
dc57e6fe51 | |||
ebc4065ca2 | |||
a23797ddbb | |||
8fabfd925e | |||
2eb17bde92 | |||
a22ed43883 | |||
de656cf885 | |||
2a8e49bf8d | |||
262f51da3f | |||
4f0d2126d8 | |||
3777de706d | |||
f76a4b7f83 | |||
920f485734 | |||
2737284d2d | |||
d39fbea7af | |||
15461d8cc5 | |||
ad2fecd1d2 | |||
4ef0fbbd8f | |||
264f51a190 | |||
abde97f46d | |||
6c8e87f505 | |||
c173ace8bc | |||
f153eb8ca0 | |||
4a33f67ed6 | |||
63bc1b57de | |||
f854236b79 | |||
d25cc3ca6d | |||
68473906c9 | |||
3f1a47e1e2 |
34
.github/workflows/main.yml
vendored
34
.github/workflows/main.yml
vendored
@ -13,18 +13,25 @@ env:
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
database:
|
||||
- postgres
|
||||
- sqlite
|
||||
env:
|
||||
DATABASE: ${{ matrix.database }}
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v20
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-22.11
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
@ -32,7 +39,7 @@ jobs:
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
|
||||
key: ${{ runner.os }}-cargo-test-${{ matrix.database }}-${{ hashFiles('**/Cargo.lock') }}
|
||||
-
|
||||
name: Start dependency services
|
||||
run: docker compose up -d
|
||||
@ -47,18 +54,25 @@ jobs:
|
||||
needs: tests
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
strategy:
|
||||
matrix:
|
||||
database:
|
||||
- postgres
|
||||
- sqlite
|
||||
env:
|
||||
DATABASE: ${{ matrix.database }}
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Install Nix
|
||||
uses: cachix/install-nix-action@v20
|
||||
uses: cachix/install-nix-action@v27
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-22.11
|
||||
nix_path: nixpkgs=channel:nixos-24.05
|
||||
-
|
||||
name: Cargo cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
@ -94,7 +108,7 @@ jobs:
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: |
|
||||
chirpstack/${{ github.event.repository.name }}
|
||||
chirpstack/${{ github.event.repository.name }}${{ contains(matrix.database, 'postgres') && '' || format('-{0}', matrix.database) }}
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -11,8 +11,12 @@
|
||||
# Binary packages
|
||||
/dist
|
||||
|
||||
# SQLite databases
|
||||
*.sqlite
|
||||
|
||||
# Rust target directory
|
||||
**/target
|
||||
**/target-sqlite
|
||||
|
||||
# Certificates
|
||||
/chirpstack/configuration/certs/*
|
||||
|
2236
Cargo.lock
generated
2236
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
28
Cargo.toml
28
Cargo.toml
@ -1,19 +1,15 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"chirpstack",
|
||||
"chirpstack-integration",
|
||||
"lrwn",
|
||||
"lrwn-filters",
|
||||
"backend",
|
||||
"api/rust",
|
||||
]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"chirpstack",
|
||||
"chirpstack-integration",
|
||||
"lrwn",
|
||||
"lrwn-filters",
|
||||
"backend",
|
||||
"api/rust",
|
||||
]
|
||||
|
||||
[profile.release]
|
||||
opt-level = 'z'
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
||||
[patch.crates-io]
|
||||
# Remove if diesel-async > 0.4.1
|
||||
diesel-async = { git = "https://github.com/weiznich/diesel_async.git", rev = "017ebe2fb7a2709ab5db92148dea5ce812a35e09" }
|
||||
opt-level = 'z'
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
14
Makefile
14
Makefile
@ -8,23 +8,23 @@ dist:
|
||||
# Install dev dependencies
|
||||
dev-dependencies:
|
||||
cargo install cross --version 0.2.5
|
||||
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres
|
||||
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres,sqlite
|
||||
cargo install cargo-deb --version 1.43.1
|
||||
cargo install cargo-generate-rpm --version 0.12.1
|
||||
|
||||
# Set the versions
|
||||
version:
|
||||
test -n "$(VERSION)"
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./chirpstack/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./backend/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./lrwn-filters/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./chirpstack-integration/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./backend/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./lrwn/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./lrwn-filters/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./chirpstack-integration/Cargo.toml
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./ui/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/grpc-web/package.json
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/js/package.json
|
||||
sed -i 's/version.*/version = "$(VERSION)",/g' ./api/python/src/setup.py
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/rust/Cargo.toml
|
||||
sed -i 's/^ version.*/ version = "$(VERSION)"/g' ./api/rust/Cargo.toml
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/java/build.gradle.kts
|
||||
sed -i 's/^version.*/version = "$(VERSION)"/g' ./api/kotlin/build.gradle.kts
|
||||
sed -i 's/"version.*/"version": "$(VERSION)",/g' ./api/php/composer.json
|
||||
|
32
README.md
32
README.md
@ -84,7 +84,11 @@ docker compose up -d
|
||||
Run the following command to run the ChirpStack tests:
|
||||
|
||||
```bash
|
||||
# Test (with PostgresQL database backend)
|
||||
make test
|
||||
|
||||
# Test with SQLite database backend
|
||||
DATABASE=sqlite make test
|
||||
```
|
||||
|
||||
### Building ChirpStack binaries
|
||||
@ -109,6 +113,34 @@ make release-amd64
|
||||
make dist
|
||||
```
|
||||
|
||||
By default the above commands will build ChirpStack with the PostgresQL database
|
||||
database backend. Set the `DATABASE=sqlite` env. variable to compile ChirpStack
|
||||
with the SQLite database backend.
|
||||
|
||||
### Database migrations
|
||||
|
||||
To create a new database migration, execute:
|
||||
|
||||
```
|
||||
make migration-generate NAME=test-migration
|
||||
```
|
||||
|
||||
To apply migrations, execute:
|
||||
|
||||
```
|
||||
make migration-run
|
||||
```
|
||||
|
||||
To revert a migration, execute:
|
||||
|
||||
```
|
||||
make migration-revert
|
||||
```
|
||||
|
||||
By default the above commands will execute the migration commands using the
|
||||
PostgresQL database backend. To execute migration commands for the SQLite
|
||||
database backend, set the `DATABASE=sqlite` env. variable.
|
||||
|
||||
## License
|
||||
|
||||
ChirpStack Network Server is distributed under the MIT license. See also
|
||||
|
16
api/Dockerfile-c
vendored
Normal file
16
api/Dockerfile-c
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
FROM alpine:latest
|
||||
|
||||
ENV PROJECT_PATH=/chirpstack/api
|
||||
RUN apk add --no-cache make git bash protobuf protobuf-dev pkgconfig autoconf automake libtool gcc g++
|
||||
|
||||
# Install protobuf implementation for C
|
||||
RUN git clone --depth=1 https://github.com/protobuf-c/protobuf-c.git /protobuf-c
|
||||
RUN cd /protobuf-c && ./autogen.sh && ./configure && make && make install
|
||||
|
||||
|
||||
# Proto dependencies stuff
|
||||
RUN git clone --depth=1 https://github.com/protocolbuffers/protobuf.git /protobuf
|
||||
RUN git clone --depth=1 https://github.com/googleapis/googleapis.git /googleapis
|
||||
|
||||
RUN mkdir -p PROJECT_PATH
|
||||
WORKDIR $PROJECT_PATH
|
9
api/Makefile
vendored
9
api/Makefile
vendored
@ -1,6 +1,6 @@
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp php
|
||||
.PHONY: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
all: rust grpc-web go js python md java kotlin csharp php
|
||||
all: rust grpc-web go js python md java kotlin csharp php c
|
||||
|
||||
rust:
|
||||
cd rust && make
|
||||
@ -30,4 +30,7 @@ csharp:
|
||||
docker compose run --rm chirpstack-csharp
|
||||
|
||||
php:
|
||||
docker compose run --rm chirpstack-api-php
|
||||
docker compose run --rm chirpstack-api-php
|
||||
|
||||
c:
|
||||
docker compose run --rm chirpstack-api-c
|
||||
|
2
api/c/.gitignore
vendored
Normal file
2
api/c/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/src/
|
||||
/proto/
|
34
api/c/Makefile
vendored
Normal file
34
api/c/Makefile
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
.PHONY: all pre-build
|
||||
|
||||
PROTOC := protoc-c
|
||||
PROTOC_ARGS := -I=proto -I=proto/chirpstack-api --c_out=./src
|
||||
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS =
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS += timestamp.proto
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS += duration.proto
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS += struct.proto
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS += empty.proto
|
||||
GOOGLE_PROTOBUF_REQUIREMENTS += descriptor.proto
|
||||
GOOGLE_PROTOBUF_OUTPUT = $(patsubst %.proto, src/google/protobuf/%.pb-c.h, $(GOOGLE_PROTOBUF_REQUIREMENTS))
|
||||
|
||||
all: pre-build $(GOOGLE_PROTOBUF_OUTPUT) build
|
||||
|
||||
pre-build:
|
||||
rm -rf proto src
|
||||
mkdir -p proto/chirpstack-api
|
||||
mkdir -p proto/google/protobuf
|
||||
cp -r ../proto/* proto/chirpstack-api/
|
||||
mv proto/chirpstack-api/google/api proto/google/api
|
||||
mkdir -p src
|
||||
sed -i \
|
||||
-r 's/(\s+bytes std)(in|out|err)(\s+=.*)/\1_\2\3/' \
|
||||
proto/chirpstack-api/gw/gw.proto
|
||||
|
||||
src/google/protobuf/%.pb-c.h: /protobuf/src/google/protobuf/%.proto
|
||||
cp $< proto/google/protobuf/
|
||||
|
||||
build:
|
||||
find proto \
|
||||
-name '*.proto' \
|
||||
-type f \
|
||||
-exec $(PROTOC) $(PROTOC_ARGS) {} \;
|
7
api/docker-compose.yml
vendored
7
api/docker-compose.yml
vendored
@ -49,3 +49,10 @@ services:
|
||||
command: bash -c "cd php && make all"
|
||||
volumes:
|
||||
- ./:/chirpstack/api
|
||||
chirpstack-api-c:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-c
|
||||
command: bash -c "cd c && make all"
|
||||
volumes:
|
||||
- ./:/chirpstack/api
|
||||
|
21
api/go/api/application.pb.go
vendored
21
api/go/api/application.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/application.proto
|
||||
|
||||
@ -5622,14 +5622,17 @@ var file_api_application_proto_rawDesc = []byte{
|
||||
0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
|
||||
0x64, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f,
|
||||
0x6d, 0x71, 0x74, 0x74, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
|
||||
0x42, 0x68, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
0x42, 0x96, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68,
|
||||
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47,
|
||||
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
468
api/go/api/device.pb.go
vendored
468
api/go/api/device.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device.proto
|
||||
|
||||
@ -1116,6 +1116,8 @@ type DeviceActivation struct {
|
||||
// Application session key (HEX encoded).
|
||||
AppSKey string `protobuf:"bytes,3,opt,name=app_s_key,json=appSKey,proto3" json:"app_s_key,omitempty"`
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
NwkSEncKey string `protobuf:"bytes,4,opt,name=nwk_s_enc_key,json=nwkSEncKey,proto3" json:"nwk_s_enc_key,omitempty"`
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
SNwkSIntKey string `protobuf:"bytes,8,opt,name=s_nwk_s_int_key,json=sNwkSIntKey,proto3" json:"s_nwk_s_int_key,omitempty"`
|
||||
@ -1912,6 +1914,9 @@ type DeviceQueueItem struct {
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
IsEncrypted bool `protobuf:"varint,9,opt,name=is_encrypted,json=isEncrypted,proto3" json:"is_encrypted,omitempty"`
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
func (x *DeviceQueueItem) Reset() {
|
||||
@ -2009,6 +2014,13 @@ func (x *DeviceQueueItem) GetIsEncrypted() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (x *DeviceQueueItem) GetExpiresAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.ExpiresAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type EnqueueDeviceQueueItemRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -2693,7 +2705,7 @@ var file_api_device_proto_rawDesc = []byte{
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
|
||||
0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18,
|
||||
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x94, 0x02,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xcf, 0x02,
|
||||
0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
|
||||
0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01,
|
||||
@ -2711,190 +2723,197 @@ var file_api_device_proto_rawDesc = []byte{
|
||||
0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77,
|
||||
0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65,
|
||||
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79,
|
||||
0x70, 0x74, 0x65, 0x64, 0x22, 0x54, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x70, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f,
|
||||
0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
|
||||
0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22,
|
||||
0x54, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x30, 0x0a, 0x1e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52,
|
||||
0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x30, 0x0a, 0x1e, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x17,
|
||||
0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65,
|
||||
0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69,
|
||||
0x22, 0x54, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61,
|
||||
0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
|
||||
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65,
|
||||
0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76,
|
||||
0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||
0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x37, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75,
|
||||
0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22,
|
||||
0x3d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74,
|
||||
0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x1c, 0x0a, 0x0a, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x32, 0xe2,
|
||||
0x11, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x12, 0x53, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x64, 0x0a, 0x06, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x32, 0x0a, 0x17, 0x46, 0x6c, 0x75, 0x73, 0x68,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x54, 0x0a, 0x1a, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76,
|
||||
0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45,
|
||||
0x75, 0x69, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6e, 0x6c,
|
||||
0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
|
||||
0x30, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75,
|
||||
0x69, 0x22, 0x37, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65,
|
||||
0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x3d, 0x0a, 0x1d, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44,
|
||||
0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x66,
|
||||
0x5f, 0x63, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x08, 0x66, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x32, 0xe2, 0x11, 0x0a, 0x0d, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a,
|
||||
0x01, 0x2a, 0x1a, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x12, 0x5a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x4f, 0x0a,
|
||||
0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e,
|
||||
0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x76,
|
||||
0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x12, 0x54, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x64, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||
0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f,
|
||||
0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x1a, 0x1d, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x65, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79,
|
||||
0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61,
|
||||
0x69, 0x63, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x5a, 0x0a, 0x06,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18,
|
||||
0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x4f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x0a, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b,
|
||||
0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79,
|
||||
0x73, 0x12, 0x65, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d,
|
||||
0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x76, 0x0a,
|
||||
0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65,
|
||||
0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x1a, 0x27, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
||||
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x1d, 0x2a, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f,
|
||||
0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6f,
|
||||
0x0a, 0x0e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73,
|
||||
0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e,
|
||||
0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65,
|
||||
0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x76, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x1a, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6b, 0x65,
|
||||
0x79, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73,
|
||||
0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x2d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12,
|
||||
0x7c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x6f, 0x0a, 0x0e, 0x46, 0x6c, 0x75,
|
||||
0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
|
||||
0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x76, 0x5f,
|
||||
0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a,
|
||||
0x0a, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x0d,
|
||||
0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x10,
|
||||
0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72,
|
||||
0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d,
|
||||
0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65,
|
||||
0x76, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65,
|
||||
0x74, 0x2d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2d, 0x64, 0x65, 0x76, 0x2d, 0x61, 0x64, 0x64,
|
||||
0x72, 0x12, 0x71, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
||||
0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b,
|
||||
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6c, 0x69, 0x6e,
|
||||
0x6b, 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x07, 0x45, 0x6e,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32,
|
||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69,
|
||||
0x74, 0x65, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x12, 0x68, 0x0a, 0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x73, 0x0a, 0x08,
|
||||
0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e,
|
||||
0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77,
|
||||
0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74,
|
||||
0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f,
|
||||
0x67, 0x65, 0x74, 0x2d, 0x6e, 0x65, 0x78, 0x74, 0x2d, 0x66, 0x2d, 0x63, 0x6e, 0x74, 0x2d, 0x64,
|
||||
0x6f, 0x77, 0x6e, 0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x64, 0x65, 0x76, 0x2d, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x08, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93,
|
||||
0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x0a, 0x44, 0x65, 0x61, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x61,
|
||||
0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74,
|
||||
0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63,
|
||||
0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61,
|
||||
0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64,
|
||||
0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x41, 0x64, 0x64, 0x72,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c,
|
||||
0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b,
|
||||
0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x2d, 0x72, 0x61, 0x6e,
|
||||
0x64, 0x6f, 0x6d, 0x2d, 0x64, 0x65, 0x76, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x12, 0x71, 0x0a, 0x0a,
|
||||
0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
|
||||
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12,
|
||||
0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
||||
0x82, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12,
|
||||
0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x6d, 0x65, 0x74,
|
||||
0x72, 0x69, 0x63, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x07, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x68, 0x0a,
|
||||
0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x2a, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65,
|
||||
0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x8f, 0x01, 0x0a,
|
||||
0x0f, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e,
|
||||
0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x43, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x2d, 0x6e,
|
||||
0x65, 0x78, 0x74, 0x2d, 0x66, 0x2d, 0x63, 0x6e, 0x74, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x91,
|
||||
0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f,
|
||||
0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64,
|
||||
0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41,
|
||||
0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -2999,55 +3018,56 @@ var file_api_device_proto_depIdxs = []int32{
|
||||
45, // 35: api.GetDeviceLinkMetricsResponse.rx_packets_per_dr:type_name -> common.Metric
|
||||
45, // 36: api.GetDeviceLinkMetricsResponse.errors:type_name -> common.Metric
|
||||
46, // 37: api.DeviceQueueItem.object:type_name -> google.protobuf.Struct
|
||||
28, // 38: api.EnqueueDeviceQueueItemRequest.queue_item:type_name -> api.DeviceQueueItem
|
||||
28, // 39: api.GetDeviceQueueItemsResponse.result:type_name -> api.DeviceQueueItem
|
||||
45, // 40: api.GetDeviceMetricsResponse.MetricsEntry.value:type_name -> common.Metric
|
||||
25, // 41: api.GetDeviceMetricsResponse.StatesEntry.value:type_name -> api.DeviceState
|
||||
4, // 42: api.DeviceService.Create:input_type -> api.CreateDeviceRequest
|
||||
5, // 43: api.DeviceService.Get:input_type -> api.GetDeviceRequest
|
||||
7, // 44: api.DeviceService.Update:input_type -> api.UpdateDeviceRequest
|
||||
8, // 45: api.DeviceService.Delete:input_type -> api.DeleteDeviceRequest
|
||||
9, // 46: api.DeviceService.List:input_type -> api.ListDevicesRequest
|
||||
11, // 47: api.DeviceService.CreateKeys:input_type -> api.CreateDeviceKeysRequest
|
||||
12, // 48: api.DeviceService.GetKeys:input_type -> api.GetDeviceKeysRequest
|
||||
14, // 49: api.DeviceService.UpdateKeys:input_type -> api.UpdateDeviceKeysRequest
|
||||
15, // 50: api.DeviceService.DeleteKeys:input_type -> api.DeleteDeviceKeysRequest
|
||||
34, // 51: api.DeviceService.FlushDevNonces:input_type -> api.FlushDevNoncesRequest
|
||||
17, // 52: api.DeviceService.Activate:input_type -> api.ActivateDeviceRequest
|
||||
18, // 53: api.DeviceService.Deactivate:input_type -> api.DeactivateDeviceRequest
|
||||
19, // 54: api.DeviceService.GetActivation:input_type -> api.GetDeviceActivationRequest
|
||||
21, // 55: api.DeviceService.GetRandomDevAddr:input_type -> api.GetRandomDevAddrRequest
|
||||
23, // 56: api.DeviceService.GetMetrics:input_type -> api.GetDeviceMetricsRequest
|
||||
26, // 57: api.DeviceService.GetLinkMetrics:input_type -> api.GetDeviceLinkMetricsRequest
|
||||
29, // 58: api.DeviceService.Enqueue:input_type -> api.EnqueueDeviceQueueItemRequest
|
||||
31, // 59: api.DeviceService.FlushQueue:input_type -> api.FlushDeviceQueueRequest
|
||||
32, // 60: api.DeviceService.GetQueue:input_type -> api.GetDeviceQueueItemsRequest
|
||||
35, // 61: api.DeviceService.GetNextFCntDown:input_type -> api.GetDeviceNextFCntDownRequest
|
||||
47, // 62: api.DeviceService.Create:output_type -> google.protobuf.Empty
|
||||
6, // 63: api.DeviceService.Get:output_type -> api.GetDeviceResponse
|
||||
47, // 64: api.DeviceService.Update:output_type -> google.protobuf.Empty
|
||||
47, // 65: api.DeviceService.Delete:output_type -> google.protobuf.Empty
|
||||
10, // 66: api.DeviceService.List:output_type -> api.ListDevicesResponse
|
||||
47, // 67: api.DeviceService.CreateKeys:output_type -> google.protobuf.Empty
|
||||
13, // 68: api.DeviceService.GetKeys:output_type -> api.GetDeviceKeysResponse
|
||||
47, // 69: api.DeviceService.UpdateKeys:output_type -> google.protobuf.Empty
|
||||
47, // 70: api.DeviceService.DeleteKeys:output_type -> google.protobuf.Empty
|
||||
47, // 71: api.DeviceService.FlushDevNonces:output_type -> google.protobuf.Empty
|
||||
47, // 72: api.DeviceService.Activate:output_type -> google.protobuf.Empty
|
||||
47, // 73: api.DeviceService.Deactivate:output_type -> google.protobuf.Empty
|
||||
20, // 74: api.DeviceService.GetActivation:output_type -> api.GetDeviceActivationResponse
|
||||
22, // 75: api.DeviceService.GetRandomDevAddr:output_type -> api.GetRandomDevAddrResponse
|
||||
24, // 76: api.DeviceService.GetMetrics:output_type -> api.GetDeviceMetricsResponse
|
||||
27, // 77: api.DeviceService.GetLinkMetrics:output_type -> api.GetDeviceLinkMetricsResponse
|
||||
30, // 78: api.DeviceService.Enqueue:output_type -> api.EnqueueDeviceQueueItemResponse
|
||||
47, // 79: api.DeviceService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
33, // 80: api.DeviceService.GetQueue:output_type -> api.GetDeviceQueueItemsResponse
|
||||
36, // 81: api.DeviceService.GetNextFCntDown:output_type -> api.GetDeviceNextFCntDownResponse
|
||||
62, // [62:82] is the sub-list for method output_type
|
||||
42, // [42:62] is the sub-list for method input_type
|
||||
42, // [42:42] is the sub-list for extension type_name
|
||||
42, // [42:42] is the sub-list for extension extendee
|
||||
0, // [0:42] is the sub-list for field type_name
|
||||
41, // 38: api.DeviceQueueItem.expires_at:type_name -> google.protobuf.Timestamp
|
||||
28, // 39: api.EnqueueDeviceQueueItemRequest.queue_item:type_name -> api.DeviceQueueItem
|
||||
28, // 40: api.GetDeviceQueueItemsResponse.result:type_name -> api.DeviceQueueItem
|
||||
45, // 41: api.GetDeviceMetricsResponse.MetricsEntry.value:type_name -> common.Metric
|
||||
25, // 42: api.GetDeviceMetricsResponse.StatesEntry.value:type_name -> api.DeviceState
|
||||
4, // 43: api.DeviceService.Create:input_type -> api.CreateDeviceRequest
|
||||
5, // 44: api.DeviceService.Get:input_type -> api.GetDeviceRequest
|
||||
7, // 45: api.DeviceService.Update:input_type -> api.UpdateDeviceRequest
|
||||
8, // 46: api.DeviceService.Delete:input_type -> api.DeleteDeviceRequest
|
||||
9, // 47: api.DeviceService.List:input_type -> api.ListDevicesRequest
|
||||
11, // 48: api.DeviceService.CreateKeys:input_type -> api.CreateDeviceKeysRequest
|
||||
12, // 49: api.DeviceService.GetKeys:input_type -> api.GetDeviceKeysRequest
|
||||
14, // 50: api.DeviceService.UpdateKeys:input_type -> api.UpdateDeviceKeysRequest
|
||||
15, // 51: api.DeviceService.DeleteKeys:input_type -> api.DeleteDeviceKeysRequest
|
||||
34, // 52: api.DeviceService.FlushDevNonces:input_type -> api.FlushDevNoncesRequest
|
||||
17, // 53: api.DeviceService.Activate:input_type -> api.ActivateDeviceRequest
|
||||
18, // 54: api.DeviceService.Deactivate:input_type -> api.DeactivateDeviceRequest
|
||||
19, // 55: api.DeviceService.GetActivation:input_type -> api.GetDeviceActivationRequest
|
||||
21, // 56: api.DeviceService.GetRandomDevAddr:input_type -> api.GetRandomDevAddrRequest
|
||||
23, // 57: api.DeviceService.GetMetrics:input_type -> api.GetDeviceMetricsRequest
|
||||
26, // 58: api.DeviceService.GetLinkMetrics:input_type -> api.GetDeviceLinkMetricsRequest
|
||||
29, // 59: api.DeviceService.Enqueue:input_type -> api.EnqueueDeviceQueueItemRequest
|
||||
31, // 60: api.DeviceService.FlushQueue:input_type -> api.FlushDeviceQueueRequest
|
||||
32, // 61: api.DeviceService.GetQueue:input_type -> api.GetDeviceQueueItemsRequest
|
||||
35, // 62: api.DeviceService.GetNextFCntDown:input_type -> api.GetDeviceNextFCntDownRequest
|
||||
47, // 63: api.DeviceService.Create:output_type -> google.protobuf.Empty
|
||||
6, // 64: api.DeviceService.Get:output_type -> api.GetDeviceResponse
|
||||
47, // 65: api.DeviceService.Update:output_type -> google.protobuf.Empty
|
||||
47, // 66: api.DeviceService.Delete:output_type -> google.protobuf.Empty
|
||||
10, // 67: api.DeviceService.List:output_type -> api.ListDevicesResponse
|
||||
47, // 68: api.DeviceService.CreateKeys:output_type -> google.protobuf.Empty
|
||||
13, // 69: api.DeviceService.GetKeys:output_type -> api.GetDeviceKeysResponse
|
||||
47, // 70: api.DeviceService.UpdateKeys:output_type -> google.protobuf.Empty
|
||||
47, // 71: api.DeviceService.DeleteKeys:output_type -> google.protobuf.Empty
|
||||
47, // 72: api.DeviceService.FlushDevNonces:output_type -> google.protobuf.Empty
|
||||
47, // 73: api.DeviceService.Activate:output_type -> google.protobuf.Empty
|
||||
47, // 74: api.DeviceService.Deactivate:output_type -> google.protobuf.Empty
|
||||
20, // 75: api.DeviceService.GetActivation:output_type -> api.GetDeviceActivationResponse
|
||||
22, // 76: api.DeviceService.GetRandomDevAddr:output_type -> api.GetRandomDevAddrResponse
|
||||
24, // 77: api.DeviceService.GetMetrics:output_type -> api.GetDeviceMetricsResponse
|
||||
27, // 78: api.DeviceService.GetLinkMetrics:output_type -> api.GetDeviceLinkMetricsResponse
|
||||
30, // 79: api.DeviceService.Enqueue:output_type -> api.EnqueueDeviceQueueItemResponse
|
||||
47, // 80: api.DeviceService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
33, // 81: api.DeviceService.GetQueue:output_type -> api.GetDeviceQueueItemsResponse
|
||||
36, // 82: api.DeviceService.GetNextFCntDown:output_type -> api.GetDeviceNextFCntDownResponse
|
||||
63, // [63:83] is the sub-list for method output_type
|
||||
43, // [43:63] is the sub-list for method input_type
|
||||
43, // [43:43] is the sub-list for extension type_name
|
||||
43, // [43:43] is the sub-list for extension extendee
|
||||
0, // [0:43] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_api_device_proto_init() }
|
||||
|
21
api/go/api/device_profile.pb.go
vendored
21
api/go/api/device_profile.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device_profile.proto
|
||||
|
||||
@ -2054,14 +2054,17 @@ var file_api_device_profile_proto_rawDesc = []byte{
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69,
|
||||
0x6c, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x72, 0x2d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
|
||||
0x6d, 0x73, 0x42, 0x6a, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67,
|
||||
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6d, 0x73, 0x42, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e,
|
||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02,
|
||||
0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69,
|
||||
0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/api/device_profile_template.pb.go
vendored
21
api/go/api/device_profile_template.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/device_profile_template.proto
|
||||
|
||||
@ -1088,14 +1088,17 @@ var file_api_device_profile_template_proto_rawDesc = []byte{
|
||||
0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c,
|
||||
0x61, 0x74, 0x65, 0x73, 0x42, 0x72, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x74, 0x65, 0x73, 0x42, 0xa0, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x1a, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
1074
api/go/api/gateway.pb.go
vendored
1074
api/go/api/gateway.pb.go
vendored
File diff suppressed because it is too large
Load Diff
156
api/go/api/gateway_grpc.pb.go
vendored
156
api/go/api/gateway_grpc.pb.go
vendored
@ -28,6 +28,10 @@ const (
|
||||
GatewayService_GenerateClientCertificate_FullMethodName = "/api.GatewayService/GenerateClientCertificate"
|
||||
GatewayService_GetMetrics_FullMethodName = "/api.GatewayService/GetMetrics"
|
||||
GatewayService_GetDutyCycleMetrics_FullMethodName = "/api.GatewayService/GetDutyCycleMetrics"
|
||||
GatewayService_GetRelayGateway_FullMethodName = "/api.GatewayService/GetRelayGateway"
|
||||
GatewayService_ListRelayGateways_FullMethodName = "/api.GatewayService/ListRelayGateways"
|
||||
GatewayService_UpdateRelayGateway_FullMethodName = "/api.GatewayService/UpdateRelayGateway"
|
||||
GatewayService_DeleteRelayGateway_FullMethodName = "/api.GatewayService/DeleteRelayGateway"
|
||||
)
|
||||
|
||||
// GatewayServiceClient is the client API for GatewayService service.
|
||||
@ -51,6 +55,14 @@ type GatewayServiceClient interface {
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
GetDutyCycleMetrics(ctx context.Context, in *GetGatewayDutyCycleMetricsRequest, opts ...grpc.CallOption) (*GetGatewayDutyCycleMetricsResponse, error)
|
||||
// Get the given Relay Gateway.
|
||||
GetRelayGateway(ctx context.Context, in *GetRelayGatewayRequest, opts ...grpc.CallOption) (*GetRelayGatewayResponse, error)
|
||||
// List the detected Relay Gateways.
|
||||
ListRelayGateways(ctx context.Context, in *ListRelayGatewaysRequest, opts ...grpc.CallOption) (*ListRelayGatewaysResponse, error)
|
||||
// Update the given Relay Gateway.
|
||||
UpdateRelayGateway(ctx context.Context, in *UpdateRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||
// Delete the given Relay Gateway.
|
||||
DeleteRelayGateway(ctx context.Context, in *DeleteRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||
}
|
||||
|
||||
type gatewayServiceClient struct {
|
||||
@ -133,6 +145,42 @@ func (c *gatewayServiceClient) GetDutyCycleMetrics(ctx context.Context, in *GetG
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) GetRelayGateway(ctx context.Context, in *GetRelayGatewayRequest, opts ...grpc.CallOption) (*GetRelayGatewayResponse, error) {
|
||||
out := new(GetRelayGatewayResponse)
|
||||
err := c.cc.Invoke(ctx, GatewayService_GetRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) ListRelayGateways(ctx context.Context, in *ListRelayGatewaysRequest, opts ...grpc.CallOption) (*ListRelayGatewaysResponse, error) {
|
||||
out := new(ListRelayGatewaysResponse)
|
||||
err := c.cc.Invoke(ctx, GatewayService_ListRelayGateways_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) UpdateRelayGateway(ctx context.Context, in *UpdateRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||
out := new(emptypb.Empty)
|
||||
err := c.cc.Invoke(ctx, GatewayService_UpdateRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *gatewayServiceClient) DeleteRelayGateway(ctx context.Context, in *DeleteRelayGatewayRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||
out := new(emptypb.Empty)
|
||||
err := c.cc.Invoke(ctx, GatewayService_DeleteRelayGateway_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// GatewayServiceServer is the server API for GatewayService service.
|
||||
// All implementations must embed UnimplementedGatewayServiceServer
|
||||
// for forward compatibility
|
||||
@ -154,6 +202,14 @@ type GatewayServiceServer interface {
|
||||
// GetDutyCycleMetrics returns the duty-cycle metrics.
|
||||
// Note that only the last 2 hours of data are stored. Currently only per minute aggregation is available.
|
||||
GetDutyCycleMetrics(context.Context, *GetGatewayDutyCycleMetricsRequest) (*GetGatewayDutyCycleMetricsResponse, error)
|
||||
// Get the given Relay Gateway.
|
||||
GetRelayGateway(context.Context, *GetRelayGatewayRequest) (*GetRelayGatewayResponse, error)
|
||||
// List the detected Relay Gateways.
|
||||
ListRelayGateways(context.Context, *ListRelayGatewaysRequest) (*ListRelayGatewaysResponse, error)
|
||||
// Update the given Relay Gateway.
|
||||
UpdateRelayGateway(context.Context, *UpdateRelayGatewayRequest) (*emptypb.Empty, error)
|
||||
// Delete the given Relay Gateway.
|
||||
DeleteRelayGateway(context.Context, *DeleteRelayGatewayRequest) (*emptypb.Empty, error)
|
||||
mustEmbedUnimplementedGatewayServiceServer()
|
||||
}
|
||||
|
||||
@ -185,6 +241,18 @@ func (UnimplementedGatewayServiceServer) GetMetrics(context.Context, *GetGateway
|
||||
func (UnimplementedGatewayServiceServer) GetDutyCycleMetrics(context.Context, *GetGatewayDutyCycleMetricsRequest) (*GetGatewayDutyCycleMetricsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetDutyCycleMetrics not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) GetRelayGateway(context.Context, *GetRelayGatewayRequest) (*GetRelayGatewayResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) ListRelayGateways(context.Context, *ListRelayGatewaysRequest) (*ListRelayGatewaysResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListRelayGateways not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) UpdateRelayGateway(context.Context, *UpdateRelayGatewayRequest) (*emptypb.Empty, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) DeleteRelayGateway(context.Context, *DeleteRelayGatewayRequest) (*emptypb.Empty, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DeleteRelayGateway not implemented")
|
||||
}
|
||||
func (UnimplementedGatewayServiceServer) mustEmbedUnimplementedGatewayServiceServer() {}
|
||||
|
||||
// UnsafeGatewayServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
@ -342,6 +410,78 @@ func _GatewayService_GetDutyCycleMetrics_Handler(srv interface{}, ctx context.Co
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_GetRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).GetRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_GetRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).GetRelayGateway(ctx, req.(*GetRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_ListRelayGateways_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ListRelayGatewaysRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).ListRelayGateways(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_ListRelayGateways_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).ListRelayGateways(ctx, req.(*ListRelayGatewaysRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_UpdateRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(UpdateRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).UpdateRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_UpdateRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).UpdateRelayGateway(ctx, req.(*UpdateRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _GatewayService_DeleteRelayGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(DeleteRelayGatewayRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(GatewayServiceServer).DeleteRelayGateway(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: GatewayService_DeleteRelayGateway_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(GatewayServiceServer).DeleteRelayGateway(ctx, req.(*DeleteRelayGatewayRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// GatewayService_ServiceDesc is the grpc.ServiceDesc for GatewayService service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@ -381,6 +521,22 @@ var GatewayService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "GetDutyCycleMetrics",
|
||||
Handler: _GatewayService_GetDutyCycleMetrics_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetRelayGateway",
|
||||
Handler: _GatewayService_GetRelayGateway_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ListRelayGateways",
|
||||
Handler: _GatewayService_ListRelayGateways_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "UpdateRelayGateway",
|
||||
Handler: _GatewayService_UpdateRelayGateway_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DeleteRelayGateway",
|
||||
Handler: _GatewayService_DeleteRelayGateway_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "api/gateway.proto",
|
||||
|
496
api/go/api/internal.pb.go
vendored
496
api/go/api/internal.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/internal.proto
|
||||
|
||||
@ -893,6 +893,10 @@ type SettingsResponse struct {
|
||||
OpenidConnect *OpenIdConnect `protobuf:"bytes,1,opt,name=openid_connect,json=openidConnect,proto3" json:"openid_connect,omitempty"`
|
||||
// OAuth2 settings.
|
||||
Oauth2 *OAuth2 `protobuf:"bytes,2,opt,name=oauth2,proto3" json:"oauth2,omitempty"`
|
||||
// Tileserver URL.
|
||||
TileserverUrl string `protobuf:"bytes,3,opt,name=tileserver_url,json=tileserverUrl,proto3" json:"tileserver_url,omitempty"`
|
||||
// Map attribution.
|
||||
MapAttribution string `protobuf:"bytes,4,opt,name=map_attribution,json=mapAttribution,proto3" json:"map_attribution,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) Reset() {
|
||||
@ -941,6 +945,20 @@ func (x *SettingsResponse) GetOauth2() *OAuth2 {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) GetTileserverUrl() string {
|
||||
if x != nil {
|
||||
return x.TileserverUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *SettingsResponse) GetMapAttribution() string {
|
||||
if x != nil {
|
||||
return x.MapAttribution
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type OpenIdConnect struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -2301,242 +2319,250 @@ var file_api_internal_proto_rawDesc = []byte{
|
||||
0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
||||
0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x6f, 0x70,
|
||||
0x65, 0x6e, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43,
|
||||
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x43, 0x6f,
|
||||
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74,
|
||||
0x68, 0x32, 0x52, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x4f,
|
||||
0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65,
|
||||
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f,
|
||||
0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62,
|
||||
0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c,
|
||||
0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75,
|
||||
0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74,
|
||||
0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64,
|
||||
0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x06, 0x4f,
|
||||
0x41, 0x75, 0x74, 0x68, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
|
||||
0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e,
|
||||
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72,
|
||||
0x65, 0x63, 0x74, 0x22, 0x45, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x4f, 0x70,
|
||||
0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x74, 0x69,
|
||||
0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x6f,
|
||||
0x70, 0x65, 0x6e, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64,
|
||||
0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x64, 0x43,
|
||||
0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75,
|
||||
0x74, 0x68, 0x32, 0x52, 0x06, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x74,
|
||||
0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55,
|
||||
0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
|
||||
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x70,
|
||||
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x0d,
|
||||
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
|
||||
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61,
|
||||
0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f,
|
||||
0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75,
|
||||
0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65,
|
||||
0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x06,
|
||||
0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
||||
0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a,
|
||||
0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1d,
|
||||
0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a,
|
||||
0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x69,
|
||||
0x72, 0x65, 0x63, 0x74, 0x22, 0x45, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f,
|
||||
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x4f,
|
||||
0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b,
|
||||
0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22,
|
||||
0x3e, 0x0a, 0x12, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2b, 0x0a, 0x13, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x37, 0x0a, 0x18,
|
||||
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76,
|
||||
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69,
|
||||
0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
|
||||
0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a,
|
||||
0x08, 0x64, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
|
||||
0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
||||
0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x72,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73,
|
||||
0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a,
|
||||
0x3a, 0x0a, 0x0c, 0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65,
|
||||
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x19, 0x47,
|
||||
0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
|
||||
0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69,
|
||||
0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69,
|
||||
0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
|
||||
0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10,
|
||||
0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65,
|
||||
0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x49, 0x74,
|
||||
0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70,
|
||||
0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
|
||||
0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x49, 0x64, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||
0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x44,
|
||||
0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73,
|
||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||
0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x22, 0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x02, 0x69, 0x64, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12,
|
||||
0x3b, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
|
||||
0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52,
|
||||
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x0e, 0x75, 0x70,
|
||||
0x6c, 0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09,
|
||||
0x72, 0x78, 0x31, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x08, 0x72, 0x78, 0x31, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x78, 0x31,
|
||||
0x5f, 0x64, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x0b, 0x72, 0x78, 0x31, 0x44, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x15, 0x0a,
|
||||
0x06, 0x72, 0x78, 0x32, 0x5f, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72,
|
||||
0x78, 0x32, 0x44, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x78, 0x32, 0x5f, 0x66, 0x72, 0x65, 0x71,
|
||||
0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x78, 0x32,
|
||||
0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x14, 0x63, 0x6c, 0x61,
|
||||
0x73, 0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64,
|
||||
0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50,
|
||||
0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x44, 0x72, 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x6c, 0x61,
|
||||
0x73, 0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x66,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17,
|
||||
0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x46, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
|
||||
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
|
||||
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d,
|
||||
0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x72, 0x4d, 0x69, 0x6e, 0x12,
|
||||
0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x05, 0x64, 0x72, 0x4d, 0x61, 0x78, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72,
|
||||
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
|
||||
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb9, 0x09, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x07,
|
||||
0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
|
||||
0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x47, 0x6c, 0x6f, 0x62, 0x61,
|
||||
0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c,
|
||||
0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65,
|
||||
0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45,
|
||||
0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65,
|
||||
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41,
|
||||
0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65,
|
||||
0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b,
|
||||
0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a,
|
||||
0x08, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12, 0x4f, 0x70,
|
||||
0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
|
||||
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3e,
|
||||
0x0a, 0x12, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2b,
|
||||
0x0a, 0x13, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x37, 0x0a, 0x18, 0x47,
|
||||
0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x49, 0x64, 0x22, 0x93, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76,
|
||||
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69,
|
||||
0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x08,
|
||||
0x64, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53,
|
||||
0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44,
|
||||
0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x72, 0x43,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65,
|
||||
0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e,
|
||||
0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3a,
|
||||
0x0a, 0x0c, 0x44, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x19, 0x47, 0x65,
|
||||
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x63, 0x6f,
|
||||
0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e,
|
||||
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
|
||||
0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f,
|
||||
0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6e,
|
||||
0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6e,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65,
|
||||
0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
|
||||
0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
|
||||
0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
||||
0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
|
||||
0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||
0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
|
||||
0x64, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17,
|
||||
0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x34, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x45, 0x75, 0x69, 0x22, 0x44, 0x0a,
|
||||
0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52,
|
||||
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
|
||||
0x22, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x02, 0x69, 0x64, 0x22, 0xb2, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x67,
|
||||
0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f,
|
||||
0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b,
|
||||
0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
|
||||
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65,
|
||||
0x67, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x0e, 0x75, 0x70, 0x6c,
|
||||
0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72,
|
||||
0x78, 0x31, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
|
||||
0x72, 0x78, 0x31, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x78, 0x31, 0x5f,
|
||||
0x64, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0b, 0x72, 0x78, 0x31, 0x44, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x15, 0x0a, 0x06,
|
||||
0x72, 0x78, 0x32, 0x5f, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x78,
|
||||
0x32, 0x44, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x78, 0x32, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75,
|
||||
0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x78, 0x32, 0x46,
|
||||
0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x14, 0x63, 0x6c, 0x61, 0x73,
|
||||
0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64, 0x72,
|
||||
0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69,
|
||||
0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x44, 0x72, 0x12, 0x3c, 0x0a, 0x1b, 0x63, 0x6c, 0x61, 0x73,
|
||||
0x73, 0x5f, 0x62, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x63,
|
||||
0x6c, 0x61, 0x73, 0x73, 0x42, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x46, 0x72, 0x65,
|
||||
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
|
||||
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69,
|
||||
0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65,
|
||||
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72,
|
||||
0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x69,
|
||||
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x72, 0x4d, 0x69, 0x6e, 0x12, 0x15,
|
||||
0x0a, 0x06, 0x64, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
|
||||
0x64, 0x72, 0x4d, 0x61, 0x78, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73,
|
||||
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76,
|
||||
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
|
||||
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xb9, 0x09, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x12, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x07, 0x50,
|
||||
0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
|
||||
0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f,
|
||||
0x62, 0x61, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x65, 0x61,
|
||||
0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a,
|
||||
0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70,
|
||||
0x69, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x4b, 0x65,
|
||||
0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08,
|
||||
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12, 0x4f, 0x70, 0x65,
|
||||
0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12,
|
||||
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e,
|
||||
0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e,
|
||||
0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69,
|
||||
0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f,
|
||||
0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x61, 0x70,
|
||||
0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e,
|
||||
0x6e, 0x65, 0x63, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67,
|
||||
0x69, 0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c,
|
||||
0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x32, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65,
|
||||
0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d,
|
||||
0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d,
|
||||
0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
|
||||
0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x12,
|
||||
0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61,
|
||||
0x72, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12,
|
||||
0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
|
||||
0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12,
|
||||
0x41, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
|
||||
0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
|
||||
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x42, 0x65, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a,
|
||||
0x12, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d,
|
||||
0x61, 0x72, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
|
||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01,
|
||||
0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72,
|
||||
0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x00, 0x30, 0x01,
|
||||
0x12, 0x41, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||
0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x00, 0x42, 0x93, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50,
|
||||
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
350
api/go/api/multicast_group.pb.go
vendored
350
api/go/api/multicast_group.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/multicast_group.proto
|
||||
|
||||
@ -1069,6 +1069,9 @@ type MulticastGroupQueueItem struct {
|
||||
FPort uint32 `protobuf:"varint,3,opt,name=f_port,json=fPort,proto3" json:"f_port,omitempty"`
|
||||
// Payload.
|
||||
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MulticastGroupQueueItem) Reset() {
|
||||
@ -1131,6 +1134,13 @@ func (x *MulticastGroupQueueItem) GetData() []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MulticastGroupQueueItem) GetExpiresAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.ExpiresAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type EnqueueMulticastGroupQueueItemRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -1511,7 +1521,7 @@ var file_api_multicast_group_proto_rawDesc = []byte{
|
||||
0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x49, 0x64, 0x22, 0x87, 0x01, 0x0a, 0x17, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x79, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12,
|
||||
0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c,
|
||||
@ -1519,149 +1529,156 @@ var file_api_multicast_group_proto_rawDesc = []byte{
|
||||
0x05, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43,
|
||||
0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x05, 0x66, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
||||
0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a,
|
||||
0x25, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69,
|
||||
0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x22, 0x3d, 0x0a, 0x26, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75,
|
||||
0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a,
|
||||
0x05, 0x66, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43,
|
||||
0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x1f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
|
||||
0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a,
|
||||
0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65,
|
||||
0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x64, 0x0a, 0x25, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
|
||||
0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49,
|
||||
0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2a, 0x2e, 0x0a, 0x12, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x10, 0x01, 0x2a, 0x37, 0x0a, 0x1c, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65,
|
||||
0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45,
|
||||
0x4c, 0x41, 0x59, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x50, 0x53, 0x5f, 0x54, 0x49, 0x4d,
|
||||
0x45, 0x10, 0x01, 0x32, 0xdd, 0x0c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a,
|
||||
0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x68,
|
||||
0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d,
|
||||
0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x3d,
|
||||
0x0a, 0x26, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x66, 0x5f, 0x63, 0x6e,
|
||||
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x43, 0x6e, 0x74, 0x22, 0x4f, 0x0a,
|
||||
0x1f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x4e,
|
||||
0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x55,
|
||||
0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05,
|
||||
0x69, 0x74, 0x65, 0x6d, 0x73, 0x2a, 0x2e, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43,
|
||||
0x4c, 0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53,
|
||||
0x53, 0x5f, 0x42, 0x10, 0x01, 0x2a, 0x37, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e,
|
||||
0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x00,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x47, 0x50, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x32, 0xdd,
|
||||
0x0c, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x1a, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a,
|
||||
0x01, 0x2a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x68, 0x0a, 0x03, 0x47, 0x65, 0x74,
|
||||
0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
||||
0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x66, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x69, 0x64, 0x7d, 0x12, 0x79, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a,
|
||||
0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d,
|
||||
0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x68, 0x0a, 0x04, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76,
|
||||
0x69, 0x63, 0x65, 0x54, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a,
|
||||
0x01, 0x2a, 0x1a, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x69, 0x64, 0x7d, 0x12, 0x66,
|
||||
0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44,
|
||||
0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f,
|
||||
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x73, 0x12, 0x98, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69,
|
||||
0x63, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44,
|
||||
0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x68, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x12, 0x89, 0x01, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x25,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f,
|
||||
0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f,
|
||||
0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x98, 0x01, 0x0a,
|
||||
0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
|
||||
0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64,
|
||||
0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x8c, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x47,
|
||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64,
|
||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
|
||||
0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d, 0x12, 0x8c, 0x01, 0x0a,
|
||||
0x0a, 0x41, 0x64, 0x64, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x26, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x6f, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c,
|
||||
0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
|
||||
0x64, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0d,
|
||||
0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f,
|
||||
0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a,
|
||||
0x07, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45,
|
||||
0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65,
|
||||
0x75, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
|
||||
0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x46, 0x6c,
|
||||
0x75, 0x73, 0x68, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46,
|
||||
0x6c, 0x75, 0x73, 0x68, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
|
||||
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65,
|
||||
0x12, 0x90, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x23,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75,
|
||||
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02,
|
||||
0x32, 0x12, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01,
|
||||
0x2a, 0x22, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73,
|
||||
0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x42, 0x6b, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x13, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63,
|
||||
0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x61,
|
||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76,
|
||||
0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52,
|
||||
0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x46, 0x72, 0x6f, 0x6d,
|
||||
0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x48, 0x82,
|
||||
0xd3, 0xe4, 0x93, 0x02, 0x42, 0x2a, 0x40, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74,
|
||||
0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
|
||||
0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65,
|
||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x07, 0x45, 0x6e, 0x71, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75,
|
||||
0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51,
|
||||
0x75, 0x65, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||
0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x75, 0x6c,
|
||||
0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65,
|
||||
0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x75,
|
||||
0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b,
|
||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69,
|
||||
0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71,
|
||||
0x75, 0x65, 0x75, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x51, 0x75,
|
||||
0x65, 0x75, 0x65, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4d,
|
||||
0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65,
|
||||
0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
|
||||
0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x09,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||
0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||
0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x42, 0x99,
|
||||
0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x61, 0x70, 0x69, 0x42, 0x13, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a,
|
||||
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1719,37 +1736,38 @@ var file_api_multicast_group_proto_depIdxs = []int32{
|
||||
23, // 10: api.GetMulticastGroupResponse.updated_at:type_name -> google.protobuf.Timestamp
|
||||
2, // 11: api.UpdateMulticastGroupRequest.multicast_group:type_name -> api.MulticastGroup
|
||||
3, // 12: api.ListMulticastGroupsResponse.result:type_name -> api.MulticastGroupListItem
|
||||
16, // 13: api.EnqueueMulticastGroupQueueItemRequest.queue_item:type_name -> api.MulticastGroupQueueItem
|
||||
16, // 14: api.ListMulticastGroupQueueResponse.items:type_name -> api.MulticastGroupQueueItem
|
||||
4, // 15: api.MulticastGroupService.Create:input_type -> api.CreateMulticastGroupRequest
|
||||
6, // 16: api.MulticastGroupService.Get:input_type -> api.GetMulticastGroupRequest
|
||||
8, // 17: api.MulticastGroupService.Update:input_type -> api.UpdateMulticastGroupRequest
|
||||
9, // 18: api.MulticastGroupService.Delete:input_type -> api.DeleteMulticastGroupRequest
|
||||
10, // 19: api.MulticastGroupService.List:input_type -> api.ListMulticastGroupsRequest
|
||||
12, // 20: api.MulticastGroupService.AddDevice:input_type -> api.AddDeviceToMulticastGroupRequest
|
||||
13, // 21: api.MulticastGroupService.RemoveDevice:input_type -> api.RemoveDeviceFromMulticastGroupRequest
|
||||
14, // 22: api.MulticastGroupService.AddGateway:input_type -> api.AddGatewayToMulticastGroupRequest
|
||||
15, // 23: api.MulticastGroupService.RemoveGateway:input_type -> api.RemoveGatewayFromMulticastGroupRequest
|
||||
17, // 24: api.MulticastGroupService.Enqueue:input_type -> api.EnqueueMulticastGroupQueueItemRequest
|
||||
19, // 25: api.MulticastGroupService.FlushQueue:input_type -> api.FlushMulticastGroupQueueRequest
|
||||
20, // 26: api.MulticastGroupService.ListQueue:input_type -> api.ListMulticastGroupQueueRequest
|
||||
5, // 27: api.MulticastGroupService.Create:output_type -> api.CreateMulticastGroupResponse
|
||||
7, // 28: api.MulticastGroupService.Get:output_type -> api.GetMulticastGroupResponse
|
||||
24, // 29: api.MulticastGroupService.Update:output_type -> google.protobuf.Empty
|
||||
24, // 30: api.MulticastGroupService.Delete:output_type -> google.protobuf.Empty
|
||||
11, // 31: api.MulticastGroupService.List:output_type -> api.ListMulticastGroupsResponse
|
||||
24, // 32: api.MulticastGroupService.AddDevice:output_type -> google.protobuf.Empty
|
||||
24, // 33: api.MulticastGroupService.RemoveDevice:output_type -> google.protobuf.Empty
|
||||
24, // 34: api.MulticastGroupService.AddGateway:output_type -> google.protobuf.Empty
|
||||
24, // 35: api.MulticastGroupService.RemoveGateway:output_type -> google.protobuf.Empty
|
||||
18, // 36: api.MulticastGroupService.Enqueue:output_type -> api.EnqueueMulticastGroupQueueItemResponse
|
||||
24, // 37: api.MulticastGroupService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
21, // 38: api.MulticastGroupService.ListQueue:output_type -> api.ListMulticastGroupQueueResponse
|
||||
27, // [27:39] is the sub-list for method output_type
|
||||
15, // [15:27] is the sub-list for method input_type
|
||||
15, // [15:15] is the sub-list for extension type_name
|
||||
15, // [15:15] is the sub-list for extension extendee
|
||||
0, // [0:15] is the sub-list for field type_name
|
||||
23, // 13: api.MulticastGroupQueueItem.expires_at:type_name -> google.protobuf.Timestamp
|
||||
16, // 14: api.EnqueueMulticastGroupQueueItemRequest.queue_item:type_name -> api.MulticastGroupQueueItem
|
||||
16, // 15: api.ListMulticastGroupQueueResponse.items:type_name -> api.MulticastGroupQueueItem
|
||||
4, // 16: api.MulticastGroupService.Create:input_type -> api.CreateMulticastGroupRequest
|
||||
6, // 17: api.MulticastGroupService.Get:input_type -> api.GetMulticastGroupRequest
|
||||
8, // 18: api.MulticastGroupService.Update:input_type -> api.UpdateMulticastGroupRequest
|
||||
9, // 19: api.MulticastGroupService.Delete:input_type -> api.DeleteMulticastGroupRequest
|
||||
10, // 20: api.MulticastGroupService.List:input_type -> api.ListMulticastGroupsRequest
|
||||
12, // 21: api.MulticastGroupService.AddDevice:input_type -> api.AddDeviceToMulticastGroupRequest
|
||||
13, // 22: api.MulticastGroupService.RemoveDevice:input_type -> api.RemoveDeviceFromMulticastGroupRequest
|
||||
14, // 23: api.MulticastGroupService.AddGateway:input_type -> api.AddGatewayToMulticastGroupRequest
|
||||
15, // 24: api.MulticastGroupService.RemoveGateway:input_type -> api.RemoveGatewayFromMulticastGroupRequest
|
||||
17, // 25: api.MulticastGroupService.Enqueue:input_type -> api.EnqueueMulticastGroupQueueItemRequest
|
||||
19, // 26: api.MulticastGroupService.FlushQueue:input_type -> api.FlushMulticastGroupQueueRequest
|
||||
20, // 27: api.MulticastGroupService.ListQueue:input_type -> api.ListMulticastGroupQueueRequest
|
||||
5, // 28: api.MulticastGroupService.Create:output_type -> api.CreateMulticastGroupResponse
|
||||
7, // 29: api.MulticastGroupService.Get:output_type -> api.GetMulticastGroupResponse
|
||||
24, // 30: api.MulticastGroupService.Update:output_type -> google.protobuf.Empty
|
||||
24, // 31: api.MulticastGroupService.Delete:output_type -> google.protobuf.Empty
|
||||
11, // 32: api.MulticastGroupService.List:output_type -> api.ListMulticastGroupsResponse
|
||||
24, // 33: api.MulticastGroupService.AddDevice:output_type -> google.protobuf.Empty
|
||||
24, // 34: api.MulticastGroupService.RemoveDevice:output_type -> google.protobuf.Empty
|
||||
24, // 35: api.MulticastGroupService.AddGateway:output_type -> google.protobuf.Empty
|
||||
24, // 36: api.MulticastGroupService.RemoveGateway:output_type -> google.protobuf.Empty
|
||||
18, // 37: api.MulticastGroupService.Enqueue:output_type -> api.EnqueueMulticastGroupQueueItemResponse
|
||||
24, // 38: api.MulticastGroupService.FlushQueue:output_type -> google.protobuf.Empty
|
||||
21, // 39: api.MulticastGroupService.ListQueue:output_type -> api.ListMulticastGroupQueueResponse
|
||||
28, // [28:40] is the sub-list for method output_type
|
||||
16, // [16:28] is the sub-list for method input_type
|
||||
16, // [16:16] is the sub-list for extension type_name
|
||||
16, // [16:16] is the sub-list for extension extendee
|
||||
0, // [0:16] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_api_multicast_group_proto_init() }
|
||||
|
21
api/go/api/relay.pb.go
vendored
21
api/go/api/relay.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/relay.proto
|
||||
|
||||
@ -595,14 +595,17 @@ var file_api_relay_proto_rawDesc = []byte{
|
||||
0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4,
|
||||
0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x73,
|
||||
0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x65, 0x75, 0x69, 0x7d,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x62, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a, 0x52,
|
||||
0x65, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x90, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a,
|
||||
0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69,
|
||||
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02,
|
||||
0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
20
api/go/api/tenant.pb.go
vendored
20
api/go/api/tenant.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/tenant.proto
|
||||
|
||||
@ -1565,14 +1565,16 @@ var file_api_tenant_proto_rawDesc = []byte{
|
||||
0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3,
|
||||
0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75,
|
||||
0x73, 0x65, 0x72, 0x73, 0x42, 0x63, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61, 0x6e,
|
||||
0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
0x73, 0x65, 0x72, 0x73, 0x42, 0x91, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x54, 0x65, 0x6e, 0x61,
|
||||
0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50,
|
||||
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/api/user.pb.go
vendored
21
api/go/api/user.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: api/user.proto
|
||||
|
||||
@ -891,14 +891,17 @@ var file_api_user_proto_rawDesc = []byte{
|
||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d,
|
||||
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x0a,
|
||||
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa,
|
||||
0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x8f, 0x01,
|
||||
0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
|
||||
0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69,
|
||||
0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70,
|
||||
0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41,
|
||||
0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/common/common.pb.go
vendored
21
api/go/common/common.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: common/common.proto
|
||||
|
||||
@ -1076,14 +1076,17 @@ var file_common_common_proto_rawDesc = []byte{
|
||||
0x01, 0x2a, 0x34, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x41, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x42, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4c,
|
||||
0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x02, 0x42, 0x69, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x43, 0x6f,
|
||||
0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xaa, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x41, 0x53, 0x53, 0x5f, 0x43, 0x10, 0x02, 0x42, 0x9d, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x43,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69,
|
||||
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61,
|
||||
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xaa,
|
||||
0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0xca, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74,
|
||||
0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
374
api/go/gw/gw.pb.go
vendored
374
api/go/gw/gw.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: gw/gw.proto
|
||||
|
||||
@ -3548,6 +3548,148 @@ func (x *ConnState) GetState() ConnState_State {
|
||||
return ConnState_OFFLINE
|
||||
}
|
||||
|
||||
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
||||
type MeshHeartbeat struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Gateway ID (of the Border Gateway).
|
||||
GatewayId string `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
|
||||
// Relay ID.
|
||||
RelayId string `protobuf:"bytes,2,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"`
|
||||
// Timestamp (second precision).
|
||||
Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
|
||||
// Relay path.
|
||||
RelayPath []*MeshHeartbeatRelayPath `protobuf:"bytes,4,rep,name=relay_path,json=relayPath,proto3" json:"relay_path,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) Reset() {
|
||||
*x = MeshHeartbeat{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_gw_gw_proto_msgTypes[35]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MeshHeartbeat) ProtoMessage() {}
|
||||
|
||||
func (x *MeshHeartbeat) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_gw_gw_proto_msgTypes[35]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MeshHeartbeat.ProtoReflect.Descriptor instead.
|
||||
func (*MeshHeartbeat) Descriptor() ([]byte, []int) {
|
||||
return file_gw_gw_proto_rawDescGZIP(), []int{35}
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) GetGatewayId() string {
|
||||
if x != nil {
|
||||
return x.GatewayId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) GetRelayId() string {
|
||||
if x != nil {
|
||||
return x.RelayId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) GetTime() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.Time
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeat) GetRelayPath() []*MeshHeartbeatRelayPath {
|
||||
if x != nil {
|
||||
return x.RelayPath
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type MeshHeartbeatRelayPath struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// Relay ID.
|
||||
RelayId string `protobuf:"bytes,1,opt,name=relay_id,json=relayId,proto3" json:"relay_id,omitempty"`
|
||||
// RSSI.
|
||||
Rssi int32 `protobuf:"varint,2,opt,name=rssi,proto3" json:"rssi,omitempty"`
|
||||
// SNR.
|
||||
Snr int32 `protobuf:"varint,3,opt,name=snr,proto3" json:"snr,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) Reset() {
|
||||
*x = MeshHeartbeatRelayPath{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_gw_gw_proto_msgTypes[36]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MeshHeartbeatRelayPath) ProtoMessage() {}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_gw_gw_proto_msgTypes[36]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MeshHeartbeatRelayPath.ProtoReflect.Descriptor instead.
|
||||
func (*MeshHeartbeatRelayPath) Descriptor() ([]byte, []int) {
|
||||
return file_gw_gw_proto_rawDescGZIP(), []int{36}
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) GetRelayId() string {
|
||||
if x != nil {
|
||||
return x.RelayId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) GetRssi() int32 {
|
||||
if x != nil {
|
||||
return x.Rssi
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *MeshHeartbeatRelayPath) GetSnr() int32 {
|
||||
if x != nil {
|
||||
return x.Snr
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_gw_gw_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_gw_gw_proto_rawDesc = []byte{
|
||||
@ -4116,50 +4258,70 @@ var file_gw_gw_proto_rawDesc = []byte{
|
||||
0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
|
||||
0x61, 0x74, 0x65, 0x22, 0x20, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07,
|
||||
0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c,
|
||||
0x49, 0x4e, 0x45, 0x10, 0x01, 0x2a, 0xb5, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61,
|
||||
0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x52, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e,
|
||||
0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x35, 0x10, 0x01,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x43, 0x52, 0x5f, 0x34, 0x5f, 0x37, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34,
|
||||
0x5f, 0x38, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x33, 0x5f, 0x38, 0x10, 0x05,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x32, 0x5f, 0x36, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x43, 0x52, 0x5f, 0x31, 0x5f, 0x34, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x31,
|
||||
0x5f, 0x36, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x35, 0x5f, 0x36, 0x10, 0x09,
|
||||
0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x35, 0x10, 0x0a, 0x12,
|
||||
0x0d, 0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x0b, 0x12, 0x0d,
|
||||
0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x38, 0x10, 0x0c, 0x2a, 0x3b, 0x0a,
|
||||
0x0e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12,
|
||||
0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x10, 0x00,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x47,
|
||||
0x50, 0x53, 0x5f, 0x45, 0x50, 0x4f, 0x43, 0x48, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x11, 0x46, 0x69,
|
||||
0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12,
|
||||
0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x4e, 0x43,
|
||||
0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49,
|
||||
0x4e, 0x10, 0x02, 0x2a, 0x30, 0x0a, 0x09, 0x43, 0x52, 0x43, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
|
||||
0x42, 0x41, 0x44, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x43,
|
||||
0x5f, 0x4f, 0x4b, 0x10, 0x02, 0x2a, 0xd5, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x41, 0x63, 0x6b, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44,
|
||||
0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f,
|
||||
0x4f, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4f, 0x5f,
|
||||
0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x49,
|
||||
0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x04, 0x12, 0x14, 0x0a,
|
||||
0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f,
|
||||
0x4e, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x58, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x10, 0x06,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x54, 0x58, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x07, 0x12, 0x10,
|
||||
0x0a, 0x0c, 0x47, 0x50, 0x53, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x08,
|
||||
0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x09,
|
||||
0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52,
|
||||
0x4f, 0x52, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x55, 0x54, 0x59, 0x5f, 0x43, 0x59, 0x43,
|
||||
0x4c, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x0b, 0x42, 0x6a, 0x0a,
|
||||
0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x67, 0x77, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x50, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
|
||||
0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
|
||||
0x34, 0x2f, 0x67, 0x77, 0xaa, 0x02, 0x12, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
0x49, 0x4e, 0x45, 0x10, 0x01, 0x22, 0xb4, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x68, 0x48, 0x65,
|
||||
0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74,
|
||||
0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49,
|
||||
0x64, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x39, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
|
||||
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x77, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x48,
|
||||
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74,
|
||||
0x68, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x74, 0x68, 0x22, 0x59, 0x0a, 0x16,
|
||||
0x4d, 0x65, 0x73, 0x68, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x6c,
|
||||
0x61, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f,
|
||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49,
|
||||
0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x04, 0x72, 0x73, 0x73, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x2a, 0xb5, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x64, 0x65,
|
||||
0x52, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x52, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46,
|
||||
0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x35,
|
||||
0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x02, 0x12, 0x0a,
|
||||
0x0a, 0x06, 0x43, 0x52, 0x5f, 0x34, 0x5f, 0x37, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52,
|
||||
0x5f, 0x34, 0x5f, 0x38, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x33, 0x5f, 0x38,
|
||||
0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x32, 0x5f, 0x36, 0x10, 0x06, 0x12, 0x0a,
|
||||
0x0a, 0x06, 0x43, 0x52, 0x5f, 0x31, 0x5f, 0x34, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52,
|
||||
0x5f, 0x31, 0x5f, 0x36, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x5f, 0x35, 0x5f, 0x36,
|
||||
0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x35, 0x10,
|
||||
0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x36, 0x10, 0x0b,
|
||||
0x12, 0x0d, 0x0a, 0x09, 0x43, 0x52, 0x5f, 0x4c, 0x49, 0x5f, 0x34, 0x5f, 0x38, 0x10, 0x0c, 0x2a,
|
||||
0x3b, 0x0a, 0x0e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x69, 0x6d, 0x69, 0x6e,
|
||||
0x67, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c, 0x59,
|
||||
0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a,
|
||||
0x09, 0x47, 0x50, 0x53, 0x5f, 0x45, 0x50, 0x4f, 0x43, 0x48, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x11,
|
||||
0x46, 0x69, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x79, 0x70,
|
||||
0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x45,
|
||||
0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c,
|
||||
0x41, 0x49, 0x4e, 0x10, 0x02, 0x2a, 0x30, 0x0a, 0x09, 0x43, 0x52, 0x43, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x00, 0x12, 0x0b,
|
||||
0x0a, 0x07, 0x42, 0x41, 0x44, 0x5f, 0x43, 0x52, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43,
|
||||
0x52, 0x43, 0x5f, 0x4f, 0x4b, 0x10, 0x02, 0x2a, 0xd5, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x41, 0x63,
|
||||
0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x47, 0x4e, 0x4f, 0x52,
|
||||
0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
|
||||
0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f,
|
||||
0x4f, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c,
|
||||
0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x04, 0x12,
|
||||
0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x45, 0x41,
|
||||
0x43, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x58, 0x5f, 0x46, 0x52, 0x45, 0x51,
|
||||
0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x58, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x07,
|
||||
0x12, 0x10, 0x0a, 0x0c, 0x47, 0x50, 0x53, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44,
|
||||
0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x55, 0x45, 0x55, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c,
|
||||
0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45,
|
||||
0x52, 0x52, 0x4f, 0x52, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x55, 0x54, 0x59, 0x5f, 0x43,
|
||||
0x59, 0x43, 0x4c, 0x45, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x0b, 0x42,
|
||||
0xa0, 0x01, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x67, 0x77, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x67, 0x77, 0xaa, 0x02, 0x12, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0xca, 0x02, 0x12, 0x43,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||
0x79, 0xe2, 0x02, 0x1e, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x77,
|
||||
0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -4175,7 +4337,7 @@ func file_gw_gw_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_gw_gw_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
|
||||
var file_gw_gw_proto_msgTypes = make([]protoimpl.MessageInfo, 42)
|
||||
var file_gw_gw_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
|
||||
var file_gw_gw_proto_goTypes = []interface{}{
|
||||
(CodeRate)(0), // 0: gw.CodeRate
|
||||
(DownlinkTiming)(0), // 1: gw.DownlinkTiming
|
||||
@ -4218,62 +4380,64 @@ var file_gw_gw_proto_goTypes = []interface{}{
|
||||
(*RawPacketForwarderEvent)(nil), // 38: gw.RawPacketForwarderEvent
|
||||
(*RawPacketForwarderCommand)(nil), // 39: gw.RawPacketForwarderCommand
|
||||
(*ConnState)(nil), // 40: gw.ConnState
|
||||
nil, // 41: gw.GatewayStats.MetadataEntry
|
||||
nil, // 42: gw.GatewayStats.TxPacketsPerFrequencyEntry
|
||||
nil, // 43: gw.GatewayStats.RxPacketsPerFrequencyEntry
|
||||
nil, // 44: gw.GatewayStats.TxPacketsPerStatusEntry
|
||||
nil, // 45: gw.UplinkRxInfoLegacy.MetadataEntry
|
||||
nil, // 46: gw.UplinkRxInfo.MetadataEntry
|
||||
nil, // 47: gw.GatewayCommandExecRequest.EnvironmentEntry
|
||||
(common.Modulation)(0), // 48: common.Modulation
|
||||
(*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp
|
||||
(*common.Location)(nil), // 50: common.Location
|
||||
(common.Regulation)(0), // 51: common.Regulation
|
||||
(*durationpb.Duration)(nil), // 52: google.protobuf.Duration
|
||||
(*MeshHeartbeat)(nil), // 41: gw.MeshHeartbeat
|
||||
(*MeshHeartbeatRelayPath)(nil), // 42: gw.MeshHeartbeatRelayPath
|
||||
nil, // 43: gw.GatewayStats.MetadataEntry
|
||||
nil, // 44: gw.GatewayStats.TxPacketsPerFrequencyEntry
|
||||
nil, // 45: gw.GatewayStats.RxPacketsPerFrequencyEntry
|
||||
nil, // 46: gw.GatewayStats.TxPacketsPerStatusEntry
|
||||
nil, // 47: gw.UplinkRxInfoLegacy.MetadataEntry
|
||||
nil, // 48: gw.UplinkRxInfo.MetadataEntry
|
||||
nil, // 49: gw.GatewayCommandExecRequest.EnvironmentEntry
|
||||
(common.Modulation)(0), // 50: common.Modulation
|
||||
(*timestamppb.Timestamp)(nil), // 51: google.protobuf.Timestamp
|
||||
(*common.Location)(nil), // 52: common.Location
|
||||
(common.Regulation)(0), // 53: common.Regulation
|
||||
(*durationpb.Duration)(nil), // 54: google.protobuf.Duration
|
||||
}
|
||||
var file_gw_gw_proto_depIdxs = []int32{
|
||||
9, // 0: gw.Modulation.lora:type_name -> gw.LoraModulationInfo
|
||||
10, // 1: gw.Modulation.fsk:type_name -> gw.FskModulationInfo
|
||||
11, // 2: gw.Modulation.lr_fhss:type_name -> gw.LrFhssModulationInfo
|
||||
48, // 3: gw.UplinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
||||
50, // 3: gw.UplinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
||||
9, // 4: gw.UplinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo
|
||||
10, // 5: gw.UplinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo
|
||||
11, // 6: gw.UplinkTxInfoLegacy.lr_fhss_modulation_info:type_name -> gw.LrFhssModulationInfo
|
||||
6, // 7: gw.UplinkTxInfo.modulation:type_name -> gw.Modulation
|
||||
0, // 8: gw.LoraModulationInfo.code_rate:type_name -> gw.CodeRate
|
||||
0, // 9: gw.LrFhssModulationInfo.code_rate:type_name -> gw.CodeRate
|
||||
49, // 10: gw.PlainFineTimestamp.time:type_name -> google.protobuf.Timestamp
|
||||
49, // 11: gw.GatewayStats.time:type_name -> google.protobuf.Timestamp
|
||||
50, // 12: gw.GatewayStats.location:type_name -> common.Location
|
||||
41, // 13: gw.GatewayStats.metadata:type_name -> gw.GatewayStats.MetadataEntry
|
||||
42, // 14: gw.GatewayStats.tx_packets_per_frequency:type_name -> gw.GatewayStats.TxPacketsPerFrequencyEntry
|
||||
43, // 15: gw.GatewayStats.rx_packets_per_frequency:type_name -> gw.GatewayStats.RxPacketsPerFrequencyEntry
|
||||
51, // 10: gw.PlainFineTimestamp.time:type_name -> google.protobuf.Timestamp
|
||||
51, // 11: gw.GatewayStats.time:type_name -> google.protobuf.Timestamp
|
||||
52, // 12: gw.GatewayStats.location:type_name -> common.Location
|
||||
43, // 13: gw.GatewayStats.metadata:type_name -> gw.GatewayStats.MetadataEntry
|
||||
44, // 14: gw.GatewayStats.tx_packets_per_frequency:type_name -> gw.GatewayStats.TxPacketsPerFrequencyEntry
|
||||
45, // 15: gw.GatewayStats.rx_packets_per_frequency:type_name -> gw.GatewayStats.RxPacketsPerFrequencyEntry
|
||||
15, // 16: gw.GatewayStats.tx_packets_per_modulation:type_name -> gw.PerModulationCount
|
||||
15, // 17: gw.GatewayStats.rx_packets_per_modulation:type_name -> gw.PerModulationCount
|
||||
44, // 18: gw.GatewayStats.tx_packets_per_status:type_name -> gw.GatewayStats.TxPacketsPerStatusEntry
|
||||
46, // 18: gw.GatewayStats.tx_packets_per_status:type_name -> gw.GatewayStats.TxPacketsPerStatusEntry
|
||||
16, // 19: gw.GatewayStats.duty_cycle_stats:type_name -> gw.DutyCycleStats
|
||||
6, // 20: gw.PerModulationCount.modulation:type_name -> gw.Modulation
|
||||
51, // 21: gw.DutyCycleStats.regulation:type_name -> common.Regulation
|
||||
52, // 22: gw.DutyCycleStats.window:type_name -> google.protobuf.Duration
|
||||
53, // 21: gw.DutyCycleStats.regulation:type_name -> common.Regulation
|
||||
54, // 22: gw.DutyCycleStats.window:type_name -> google.protobuf.Duration
|
||||
17, // 23: gw.DutyCycleStats.bands:type_name -> gw.DutyCycleBand
|
||||
52, // 24: gw.DutyCycleBand.load_max:type_name -> google.protobuf.Duration
|
||||
52, // 25: gw.DutyCycleBand.load_tracked:type_name -> google.protobuf.Duration
|
||||
49, // 26: gw.UplinkRxInfoLegacy.time:type_name -> google.protobuf.Timestamp
|
||||
52, // 27: gw.UplinkRxInfoLegacy.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
50, // 28: gw.UplinkRxInfoLegacy.location:type_name -> common.Location
|
||||
54, // 24: gw.DutyCycleBand.load_max:type_name -> google.protobuf.Duration
|
||||
54, // 25: gw.DutyCycleBand.load_tracked:type_name -> google.protobuf.Duration
|
||||
51, // 26: gw.UplinkRxInfoLegacy.time:type_name -> google.protobuf.Timestamp
|
||||
54, // 27: gw.UplinkRxInfoLegacy.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
52, // 28: gw.UplinkRxInfoLegacy.location:type_name -> common.Location
|
||||
2, // 29: gw.UplinkRxInfoLegacy.fine_timestamp_type:type_name -> gw.FineTimestampType
|
||||
12, // 30: gw.UplinkRxInfoLegacy.encrypted_fine_timestamp:type_name -> gw.EncryptedFineTimestamp
|
||||
13, // 31: gw.UplinkRxInfoLegacy.plain_fine_timestamp:type_name -> gw.PlainFineTimestamp
|
||||
3, // 32: gw.UplinkRxInfoLegacy.crc_status:type_name -> gw.CRCStatus
|
||||
45, // 33: gw.UplinkRxInfoLegacy.metadata:type_name -> gw.UplinkRxInfoLegacy.MetadataEntry
|
||||
49, // 34: gw.UplinkRxInfo.gw_time:type_name -> google.protobuf.Timestamp
|
||||
49, // 35: gw.UplinkRxInfo.ns_time:type_name -> google.protobuf.Timestamp
|
||||
52, // 36: gw.UplinkRxInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
52, // 37: gw.UplinkRxInfo.fine_time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
50, // 38: gw.UplinkRxInfo.location:type_name -> common.Location
|
||||
46, // 39: gw.UplinkRxInfo.metadata:type_name -> gw.UplinkRxInfo.MetadataEntry
|
||||
47, // 33: gw.UplinkRxInfoLegacy.metadata:type_name -> gw.UplinkRxInfoLegacy.MetadataEntry
|
||||
51, // 34: gw.UplinkRxInfo.gw_time:type_name -> google.protobuf.Timestamp
|
||||
51, // 35: gw.UplinkRxInfo.ns_time:type_name -> google.protobuf.Timestamp
|
||||
54, // 36: gw.UplinkRxInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
54, // 37: gw.UplinkRxInfo.fine_time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
52, // 38: gw.UplinkRxInfo.location:type_name -> common.Location
|
||||
48, // 39: gw.UplinkRxInfo.metadata:type_name -> gw.UplinkRxInfo.MetadataEntry
|
||||
3, // 40: gw.UplinkRxInfo.crc_status:type_name -> gw.CRCStatus
|
||||
48, // 41: gw.DownlinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
||||
50, // 41: gw.DownlinkTxInfoLegacy.modulation:type_name -> common.Modulation
|
||||
9, // 42: gw.DownlinkTxInfoLegacy.lora_modulation_info:type_name -> gw.LoraModulationInfo
|
||||
10, // 43: gw.DownlinkTxInfoLegacy.fsk_modulation_info:type_name -> gw.FskModulationInfo
|
||||
1, // 44: gw.DownlinkTxInfoLegacy.timing:type_name -> gw.DownlinkTiming
|
||||
@ -4285,8 +4449,8 @@ var file_gw_gw_proto_depIdxs = []int32{
|
||||
23, // 50: gw.Timing.immediately:type_name -> gw.ImmediatelyTimingInfo
|
||||
24, // 51: gw.Timing.delay:type_name -> gw.DelayTimingInfo
|
||||
25, // 52: gw.Timing.gps_epoch:type_name -> gw.GPSEpochTimingInfo
|
||||
52, // 53: gw.DelayTimingInfo.delay:type_name -> google.protobuf.Duration
|
||||
52, // 54: gw.GPSEpochTimingInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
54, // 53: gw.DelayTimingInfo.delay:type_name -> google.protobuf.Duration
|
||||
54, // 54: gw.GPSEpochTimingInfo.time_since_gps_epoch:type_name -> google.protobuf.Duration
|
||||
7, // 55: gw.UplinkFrame.tx_info_legacy:type_name -> gw.UplinkTxInfoLegacy
|
||||
18, // 56: gw.UplinkFrame.rx_info_legacy:type_name -> gw.UplinkRxInfoLegacy
|
||||
8, // 57: gw.UplinkFrame.tx_info:type_name -> gw.UplinkTxInfo
|
||||
@ -4299,17 +4463,19 @@ var file_gw_gw_proto_depIdxs = []int32{
|
||||
31, // 64: gw.DownlinkTxAck.items:type_name -> gw.DownlinkTxAckItem
|
||||
4, // 65: gw.DownlinkTxAckItem.status:type_name -> gw.TxAckStatus
|
||||
33, // 66: gw.GatewayConfiguration.channels:type_name -> gw.ChannelConfiguration
|
||||
52, // 67: gw.GatewayConfiguration.stats_interval:type_name -> google.protobuf.Duration
|
||||
48, // 68: gw.ChannelConfiguration.modulation_legacy:type_name -> common.Modulation
|
||||
54, // 67: gw.GatewayConfiguration.stats_interval:type_name -> google.protobuf.Duration
|
||||
50, // 68: gw.ChannelConfiguration.modulation_legacy:type_name -> common.Modulation
|
||||
34, // 69: gw.ChannelConfiguration.lora_modulation_config:type_name -> gw.LoraModulationConfig
|
||||
35, // 70: gw.ChannelConfiguration.fsk_modulation_config:type_name -> gw.FskModulationConfig
|
||||
47, // 71: gw.GatewayCommandExecRequest.environment:type_name -> gw.GatewayCommandExecRequest.EnvironmentEntry
|
||||
49, // 71: gw.GatewayCommandExecRequest.environment:type_name -> gw.GatewayCommandExecRequest.EnvironmentEntry
|
||||
5, // 72: gw.ConnState.state:type_name -> gw.ConnState.State
|
||||
73, // [73:73] is the sub-list for method output_type
|
||||
73, // [73:73] is the sub-list for method input_type
|
||||
73, // [73:73] is the sub-list for extension type_name
|
||||
73, // [73:73] is the sub-list for extension extendee
|
||||
0, // [0:73] is the sub-list for field type_name
|
||||
51, // 73: gw.MeshHeartbeat.time:type_name -> google.protobuf.Timestamp
|
||||
42, // 74: gw.MeshHeartbeat.relay_path:type_name -> gw.MeshHeartbeatRelayPath
|
||||
75, // [75:75] is the sub-list for method output_type
|
||||
75, // [75:75] is the sub-list for method input_type
|
||||
75, // [75:75] is the sub-list for extension type_name
|
||||
75, // [75:75] is the sub-list for extension extendee
|
||||
0, // [0:75] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_gw_gw_proto_init() }
|
||||
@ -4738,6 +4904,30 @@ func file_gw_gw_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_gw_gw_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*MeshHeartbeat); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_gw_gw_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*MeshHeartbeatRelayPath); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_gw_gw_proto_msgTypes[0].OneofWrappers = []interface{}{
|
||||
(*Modulation_Lora)(nil),
|
||||
@ -4775,7 +4965,7 @@ func file_gw_gw_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_gw_gw_proto_rawDesc,
|
||||
NumEnums: 6,
|
||||
NumMessages: 42,
|
||||
NumMessages: 44,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
32
api/go/integration/integration.pb.go
vendored
32
api/go/integration/integration.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: integration/integration.proto
|
||||
|
||||
@ -102,6 +102,8 @@ const (
|
||||
LogCode_RELAY_NEW_END_DEVICE LogCode = 9
|
||||
// Downlink frame-counter.
|
||||
LogCode_F_CNT_DOWN LogCode = 10
|
||||
// Downlink has expired.
|
||||
LogCode_EXPIRED LogCode = 11
|
||||
)
|
||||
|
||||
// Enum value maps for LogCode.
|
||||
@ -118,6 +120,7 @@ var (
|
||||
8: "DOWNLINK_GATEWAY",
|
||||
9: "RELAY_NEW_END_DEVICE",
|
||||
10: "F_CNT_DOWN",
|
||||
11: "EXPIRED",
|
||||
}
|
||||
LogCode_value = map[string]int32{
|
||||
"UNKNOWN": 0,
|
||||
@ -131,6 +134,7 @@ var (
|
||||
"DOWNLINK_GATEWAY": 8,
|
||||
"RELAY_NEW_END_DEVICE": 9,
|
||||
"F_CNT_DOWN": 10,
|
||||
"EXPIRED": 11,
|
||||
}
|
||||
)
|
||||
|
||||
@ -1566,7 +1570,7 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2a, 0x2c, 0x0a,
|
||||
0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46,
|
||||
0x4f, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xea, 0x01, 0x0a, 0x07,
|
||||
0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xf7, 0x01, 0x0a, 0x07,
|
||||
0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
|
||||
0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b,
|
||||
0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12,
|
||||
@ -1581,16 +1585,20 @@ var file_integration_integration_proto_rawDesc = []byte{
|
||||
0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0x08, 0x12, 0x18,
|
||||
0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x45, 0x4e, 0x44, 0x5f,
|
||||
0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x5f, 0x43, 0x4e,
|
||||
0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x42, 0x81, 0x01, 0x0a, 0x1d, 0x69, 0x6f, 0x2e,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65,
|
||||
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33,
|
||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61,
|
||||
0x61, 0x72, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0xaa, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
||||
0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x54, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49,
|
||||
0x52, 0x45, 0x44, 0x10, 0x0b, 0x42, 0xbf, 0x01, 0x0a, 0x1d, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x6f, 0x63, 0x61, 0x61, 0x72, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||
0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0xaa, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x49, 0x6e,
|
||||
0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xca, 0x02, 0x16, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0xe2, 0x02, 0x22, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x49, 0x6e, 0x74, 0x65,
|
||||
0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
23
api/go/stream/api_request.pb.go
vendored
23
api/go/stream/api_request.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/api_request.proto
|
||||
|
||||
@ -110,15 +110,18 @@ var file_stream_api_request_proto_rawDesc = []byte{
|
||||
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
|
||||
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
|
||||
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x74, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72,
|
||||
0x65, 0x61, 0x6d, 0x42, 0x0f, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
|
||||
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xa8, 0x01, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74,
|
||||
0x72, 0x65, 0x61, 0x6d, 0x42, 0x0f, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
25
api/go/stream/backend_interfaces.pb.go
vendored
25
api/go/stream/backend_interfaces.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/backend_interfaces.proto
|
||||
|
||||
@ -170,16 +170,19 @@ var file_stream_backend_interfaces_proto_rawDesc = []byte{
|
||||
0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x7b, 0x0a,
|
||||
0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x65,
|
||||
0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
|
||||
0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70,
|
||||
0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f,
|
||||
0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x33,
|
||||
0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x42, 0xaf, 0x01,
|
||||
0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
||||
0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x16, 0x42, 0x61, 0x63, 0x6b,
|
||||
0x65, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34,
|
||||
0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73,
|
||||
0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02, 0x11, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xe2,
|
||||
0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
23
api/go/stream/frame.pb.go
vendored
23
api/go/stream/frame.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/frame.proto
|
||||
|
||||
@ -328,15 +328,18 @@ var file_stream_frame_proto_rawDesc = []byte{
|
||||
0x65, 0x78, 0x74, 0x46, 0x4f, 0x70, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61,
|
||||
0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x0a, 0x18,
|
||||
0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70,
|
||||
0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x50,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68,
|
||||
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f,
|
||||
0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72,
|
||||
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x78, 0x74, 0x46, 0x72, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0xa3, 0x01, 0x0a,
|
||||
0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
||||
0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63,
|
||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
|
||||
0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11, 0x43, 0x68, 0x69,
|
||||
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xca, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
21
api/go/stream/meta.pb.go
vendored
21
api/go/stream/meta.pb.go
vendored
@ -1,6 +1,6 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.31.0
|
||||
// protoc-gen-go v1.34.1
|
||||
// protoc v4.24.4
|
||||
// source: stream/meta.proto
|
||||
|
||||
@ -288,14 +288,17 @@ var file_stream_meta_proto_rawDesc = []byte{
|
||||
0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49,
|
||||
0x64, 0x42, 0x6e, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x09, 0x4d,
|
||||
0x65, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68,
|
||||
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
|
||||
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02, 0x11,
|
||||
0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
|
||||
0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x64, 0x42, 0xa2, 0x01, 0x0a, 0x18, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74,
|
||||
0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x09,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61,
|
||||
0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xaa, 0x02,
|
||||
0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x65,
|
||||
0x61, 0x6d, 0xca, 0x02, 0x11, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c,
|
||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xe2, 0x02, 0x1d, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61,
|
||||
0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c,
|
||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
2
api/grpc-web/package.json
vendored
2
api/grpc-web/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api-grpc-web",
|
||||
"version": "4.8.1",
|
||||
"version": "4.10.0-test.5",
|
||||
"description": "Chirpstack gRPC-web API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
10
api/java/build.gradle.kts
vendored
10
api/java/build.gradle.kts
vendored
@ -8,7 +8,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.8.1"
|
||||
version = "4.10.0-test.5"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
@ -21,10 +21,10 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api("io.grpc:grpc-protobuf:1.51.0")
|
||||
api("io.grpc:grpc-api:1.51.0")
|
||||
api("io.grpc:grpc-stub:1.51.0")
|
||||
api("io.grpc:grpc-netty:1.51.0")
|
||||
api("io.grpc:grpc-protobuf:1.59.1")
|
||||
api("io.grpc:grpc-api:1.59.1")
|
||||
api("io.grpc:grpc-stub:1.59.1")
|
||||
api("io.grpc:grpc-netty:1.59.1")
|
||||
implementation("javax.annotation:javax.annotation-api:1.3.2")
|
||||
}
|
||||
|
||||
|
2
api/js/package.json
vendored
2
api/js/package.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@chirpstack/chirpstack-api",
|
||||
"version": "4.8.1",
|
||||
"version": "4.10.0-test.5",
|
||||
"description": "Chirpstack JS and TS API",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
|
26
api/js/yarn.lock
vendored
26
api/js/yarn.lock
vendored
@ -3,21 +3,21 @@
|
||||
|
||||
|
||||
"@grpc/grpc-js@^1.10.4":
|
||||
version "1.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.4.tgz#a33f743f69ed531e917c9eafb4fd8bc3e5f2e617"
|
||||
integrity sha512-MqBisuxTkYvPFnEiu+dag3xG/NBUDzSbAFAWlzfkGnQkjVZ6by3h4atbBc+Ikqup1z5BfB4BN18gKWR1YyppNw==
|
||||
version "1.10.9"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c"
|
||||
integrity sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==
|
||||
dependencies:
|
||||
"@grpc/proto-loader" "^0.7.10"
|
||||
"@grpc/proto-loader" "^0.7.13"
|
||||
"@js-sdsl/ordered-map" "^4.4.2"
|
||||
|
||||
"@grpc/proto-loader@^0.7.10":
|
||||
version "0.7.12"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911"
|
||||
integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q==
|
||||
"@grpc/proto-loader@^0.7.13":
|
||||
version "0.7.13"
|
||||
resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
|
||||
integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
|
||||
dependencies:
|
||||
lodash.camelcase "^4.3.0"
|
||||
long "^5.0.0"
|
||||
protobufjs "^7.2.4"
|
||||
protobufjs "^7.2.5"
|
||||
yargs "^17.7.2"
|
||||
|
||||
"@js-sdsl/ordered-map@^4.4.2":
|
||||
@ -410,10 +410,10 @@ path-is-absolute@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
|
||||
|
||||
protobufjs@^7.2.4:
|
||||
version "7.2.6"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215"
|
||||
integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==
|
||||
protobufjs@^7.2.5:
|
||||
version "7.3.0"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c"
|
||||
integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.2"
|
||||
"@protobufjs/base64" "^1.1.2"
|
||||
|
2
api/kotlin/build.gradle.kts
vendored
2
api/kotlin/build.gradle.kts
vendored
@ -9,7 +9,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "io.chirpstack"
|
||||
version = "4.8.1"
|
||||
version = "4.10.0-test.5"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
1
api/php/.gitignore
vendored
Normal file
1
api/php/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/generated
|
2
api/php/composer.json
vendored
2
api/php/composer.json
vendored
@ -3,7 +3,7 @@
|
||||
"description": "Chirpstack PHP API",
|
||||
"license": "MIT",
|
||||
"type": "library",
|
||||
"version": "4.8.1",
|
||||
"version": "4.10.0-test.5",
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"grpc/grpc": "^v1.57.0",
|
||||
|
8
api/proto/api/device.proto
vendored
8
api/proto/api/device.proto
vendored
@ -384,6 +384,8 @@ message DeviceActivation {
|
||||
string app_s_key = 3;
|
||||
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
string nwk_s_enc_key = 4;
|
||||
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
@ -537,6 +539,10 @@ message DeviceQueueItem {
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
bool is_encrypted = 9;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 10;
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
|
||||
@ -580,4 +586,4 @@ message GetDeviceNextFCntDownRequest {
|
||||
message GetDeviceNextFCntDownResponse {
|
||||
// FCntDown.
|
||||
uint32 f_cnt_down = 1;
|
||||
}
|
||||
}
|
||||
|
145
api/proto/api/gateway.proto
vendored
145
api/proto/api/gateway.proto
vendored
@ -75,6 +75,35 @@ service GatewayService {
|
||||
get: "/api/gateways/{gateway_id}/duty-cycle-metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the given Relay Gateway.
|
||||
rpc GetRelayGateway(GetRelayGatewayRequest) returns (GetRelayGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the detected Relay Gateways.
|
||||
rpc ListRelayGateways(ListRelayGatewaysRequest) returns (ListRelayGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given Relay Gateway.
|
||||
rpc UpdateRelayGateway(UpdateRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/relay-gateways/{relay_gateway.tenant_id}/{relay_gateway.relay_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given Relay Gateway.
|
||||
rpc DeleteRelayGateway(DeleteRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum GatewayState {
|
||||
@ -135,11 +164,11 @@ message GatewayListItem {
|
||||
// Gateway properties.
|
||||
map<string, string> properties = 6;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 9;
|
||||
@ -284,3 +313,111 @@ message GetGatewayDutyCycleMetricsResponse {
|
||||
// Percentage relative to tracking window.
|
||||
common.Metric window_percentage = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayResponse {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysRequest {
|
||||
// Max number of relay-gateways to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Tenant ID (UUID) to filter relay-gateways on.
|
||||
// To list all relay-gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 3;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysResponse {
|
||||
// Total number of relay-gateways.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayGatewayListItem result = 2;
|
||||
}
|
||||
|
||||
message RelayGatewayListItem {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 5;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 6;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 7;
|
||||
|
||||
// Gateway state.
|
||||
// Please note that the state of the relay is driven by the last
|
||||
// received stats packet sent by the relay-gateway.
|
||||
GatewayState state = 10;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 11;
|
||||
}
|
||||
|
||||
message UpdateRelayGatewayRequest {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
}
|
||||
|
||||
message DeleteRelayGatewayRequest {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message RelayGateway {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Stats interval (seconds).
|
||||
// This defines the expected interval in which the gateway sends its
|
||||
// statistics.
|
||||
uint32 stats_interval = 5;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 6;
|
||||
}
|
||||
|
6
api/proto/api/internal.proto
vendored
6
api/proto/api/internal.proto
vendored
@ -223,6 +223,12 @@ message SettingsResponse {
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
|
||||
// Tileserver URL.
|
||||
string tileserver_url = 3;
|
||||
|
||||
// Map attribution.
|
||||
string map_attribution = 4;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
|
4
api/proto/api/multicast_group.proto
vendored
4
api/proto/api/multicast_group.proto
vendored
@ -302,6 +302,10 @@ message MulticastGroupQueueItem {
|
||||
|
||||
// Payload.
|
||||
bytes data = 4;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 5;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemRequest {
|
||||
|
26
api/proto/gw/gw.proto
vendored
26
api/proto/gw/gw.proto
vendored
@ -749,3 +749,29 @@ message ConnState {
|
||||
|
||||
State state = 2;
|
||||
}
|
||||
|
||||
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
||||
message MeshHeartbeat {
|
||||
// Gateway ID (of the Border Gateway).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Relay ID.
|
||||
string relay_id = 2;
|
||||
|
||||
// Timestamp (second precision).
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// Relay path.
|
||||
repeated MeshHeartbeatRelayPath relay_path = 4;
|
||||
}
|
||||
|
||||
message MeshHeartbeatRelayPath {
|
||||
// Relay ID.
|
||||
string relay_id = 1;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 2;
|
||||
|
||||
// SNR.
|
||||
int32 snr = 3;
|
||||
}
|
||||
|
3
api/proto/integration/integration.proto
vendored
3
api/proto/integration/integration.proto
vendored
@ -60,6 +60,9 @@ enum LogCode {
|
||||
|
||||
// Downlink frame-counter.
|
||||
F_CNT_DOWN = 10;
|
||||
|
||||
// Downlink has expired.
|
||||
EXPIRED = 11;
|
||||
}
|
||||
|
||||
// Device information.
|
||||
|
2
api/python/src/setup.py
vendored
2
api/python/src/setup.py
vendored
@ -18,7 +18,7 @@ CLASSIFIERS = [
|
||||
|
||||
setup(
|
||||
name='chirpstack-api',
|
||||
version = "4.8.1.post1",
|
||||
version = "4.10.0-test.5",
|
||||
url='https://github.com/brocaar/chirpstack-api',
|
||||
author='Orne Brocaar',
|
||||
author_email='info@brocaar.com',
|
||||
|
53
api/rust/Cargo.toml
vendored
53
api/rust/Cargo.toml
vendored
@ -1,33 +1,36 @@
|
||||
[package]
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.8.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
edition = "2021"
|
||||
name = "chirpstack_api"
|
||||
description = "ChirpStack Protobuf / gRPC API definitions."
|
||||
version = "4.10.0-test.5"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
license = "MIT"
|
||||
homepage = "https://www.chirpstack.io"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
edition = "2021"
|
||||
|
||||
[features]
|
||||
default = ["api", "json"]
|
||||
api = ["tonic/transport", "tonic-build/transport", "tokio"]
|
||||
json = ["pbjson", "pbjson-types", "serde"]
|
||||
diesel = ["dep:diesel"]
|
||||
internal = []
|
||||
default = ["api", "json"]
|
||||
api = ["tonic/transport", "tonic-build/transport", "tokio"]
|
||||
json = ["pbjson", "pbjson-types", "serde"]
|
||||
internal = []
|
||||
|
||||
[dependencies]
|
||||
prost = "0.12"
|
||||
prost-types = "0.12"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
prost = "0.13"
|
||||
prost-types = "0.13"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
|
||||
tonic = { version = "0.11", features = ["codegen", "prost"], default-features = false, optional = true }
|
||||
tokio = { version = "1.37", features = ["macros"], optional = true }
|
||||
pbjson = { version = "0.6", optional = true }
|
||||
pbjson-types = { version = "0.6", optional = true }
|
||||
serde = { version = "1.0", optional = true }
|
||||
diesel = { version = "2.1", features = ["postgres_backend"], optional = true }
|
||||
tonic = { version = "0.12", features = [
|
||||
"codegen",
|
||||
"prost",
|
||||
], default-features = false, optional = true }
|
||||
tokio = { version = "1.40", features = ["macros"], optional = true }
|
||||
pbjson = { version = "0.7", optional = true }
|
||||
pbjson-types = { version = "0.7", optional = true }
|
||||
serde = { version = "1.0", optional = true }
|
||||
|
||||
[build-dependencies]
|
||||
tonic-build = { version = "0.11", features = ["prost"], default-features = false }
|
||||
pbjson-build = "0.6"
|
||||
tonic-build = { version = "0.12", features = [
|
||||
"prost",
|
||||
], default-features = false }
|
||||
pbjson-build = "0.7"
|
||||
|
12
api/rust/build.rs
vendored
12
api/rust/build.rs
vendored
@ -28,7 +28,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.file_descriptor_set_path(out_dir.join("common").join("proto_descriptor.bin"))
|
||||
.compile_well_known_types(true)
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[cs_dir.join("common").join("common.proto").to_str().unwrap()],
|
||||
&[
|
||||
proto_dir.join("chirpstack").to_str().unwrap(),
|
||||
@ -53,7 +53,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.compile_well_known_types(true)
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[cs_dir.join("gw").join("gw.proto").to_str().unwrap()],
|
||||
&[
|
||||
proto_dir.join("chirpstack").to_str().unwrap(),
|
||||
@ -87,7 +87,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
builder = builder.message_attribute("internal.DeviceSession", "#[derive(diesel::expression::AsExpression, diesel::deserialize::FromSqlRow)] #[diesel(sql_type = diesel::sql_types::Binary)]");
|
||||
}
|
||||
|
||||
builder.compile(
|
||||
builder.compile_protos(
|
||||
&[cs_dir
|
||||
.join("internal")
|
||||
.join("internal.proto")
|
||||
@ -119,7 +119,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[cs_dir
|
||||
.join("integration")
|
||||
.join("integration.proto")
|
||||
@ -153,7 +153,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.extern_path(".google.protobuf", well_known_types_path)
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("stream").join("meta.proto").to_str().unwrap(),
|
||||
cs_dir.join("stream").join("frame.proto").to_str().unwrap(),
|
||||
@ -192,7 +192,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
.file_descriptor_set_path(out_dir.join("api").join("proto_descriptor.bin"))
|
||||
.extern_path(".common", "crate::common")
|
||||
.extern_path(".gw", "crate::gw")
|
||||
.compile(
|
||||
.compile_protos(
|
||||
&[
|
||||
cs_dir.join("api").join("internal.proto").to_str().unwrap(),
|
||||
cs_dir.join("api").join("user.proto").to_str().unwrap(),
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApplicationProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
10
api/rust/proto/chirpstack/api/device.proto
vendored
10
api/rust/proto/chirpstack/api/device.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/api/annotations.proto";
|
||||
@ -382,6 +384,8 @@ message DeviceActivation {
|
||||
string app_s_key = 3;
|
||||
|
||||
// Network session encryption key (HEX encoded).
|
||||
// Note: For ABP in LoRaWAN 1.0.x, use this, the serving and the forwarding
|
||||
// network session integrity key fields with the LoRaWAN 1.0.x 'NwkSKey`!
|
||||
string nwk_s_enc_key = 4;
|
||||
|
||||
// Serving network session integrity key (HEX encoded).
|
||||
@ -535,6 +539,10 @@ message DeviceQueueItem {
|
||||
// the data payload. In this case, the f_cnt_down field must be set to
|
||||
// the corresponding frame-counter which has been used during the encryption.
|
||||
bool is_encrypted = 9;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 10;
|
||||
}
|
||||
|
||||
message EnqueueDeviceQueueItemRequest { DeviceQueueItem queue_item = 1; }
|
||||
@ -578,4 +586,4 @@ message GetDeviceNextFCntDownRequest {
|
||||
message GetDeviceNextFCntDownResponse {
|
||||
// FCntDown.
|
||||
uint32 f_cnt_down = 1;
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileTemplateProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
147
api/rust/proto/chirpstack/api/gateway.proto
vendored
147
api/rust/proto/chirpstack/api/gateway.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -73,6 +75,35 @@ service GatewayService {
|
||||
get: "/api/gateways/{gateway_id}/duty-cycle-metrics"
|
||||
};
|
||||
}
|
||||
|
||||
// Get the given Relay Gateway.
|
||||
rpc GetRelayGateway(GetRelayGatewayRequest) returns (GetRelayGatewayResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// List the detected Relay Gateways.
|
||||
rpc ListRelayGateways(ListRelayGatewaysRequest) returns (ListRelayGatewaysResponse) {
|
||||
option(google.api.http) = {
|
||||
get: "/api/gateways/relay-gateways"
|
||||
};
|
||||
}
|
||||
|
||||
// Update the given Relay Gateway.
|
||||
rpc UpdateRelayGateway(UpdateRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
put: "/api/gateways/relay-gateways/{relay_gateway.tenant_id}/{relay_gateway.relay_id}"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Delete the given Relay Gateway.
|
||||
rpc DeleteRelayGateway(DeleteRelayGatewayRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/gateways/relay-gateways/{tenant_id}/{relay_id}"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum GatewayState {
|
||||
@ -133,11 +164,11 @@ message GatewayListItem {
|
||||
// Gateway properties.
|
||||
map<string, string> properties = 6;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 9;
|
||||
@ -282,3 +313,111 @@ message GetGatewayDutyCycleMetricsResponse {
|
||||
// Percentage relative to tracking window.
|
||||
common.Metric window_percentage = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayRequest {
|
||||
// Tenant ID (UUID).
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message GetRelayGatewayResponse {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 2;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 3;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 4;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysRequest {
|
||||
// Max number of relay-gateways to return in the result-set.
|
||||
uint32 limit = 1;
|
||||
|
||||
// Offset in the result-set (for pagination).
|
||||
uint32 offset = 2;
|
||||
|
||||
// Tenant ID (UUID) to filter relay-gateways on.
|
||||
// To list all relay-gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 3;
|
||||
}
|
||||
|
||||
message ListRelayGatewaysResponse {
|
||||
// Total number of relay-gateways.
|
||||
uint32 total_count = 1;
|
||||
|
||||
// Result-set.
|
||||
repeated RelayGatewayListItem result = 2;
|
||||
}
|
||||
|
||||
message RelayGatewayListItem {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Created at timestamp.
|
||||
google.protobuf.Timestamp created_at = 5;
|
||||
|
||||
// Last update timestamp.
|
||||
google.protobuf.Timestamp updated_at = 6;
|
||||
|
||||
// Last seen at timestamp.
|
||||
google.protobuf.Timestamp last_seen_at = 7;
|
||||
|
||||
// Gateway state.
|
||||
// Please note that the state of the relay is driven by the last
|
||||
// received stats packet sent by the relay-gateway.
|
||||
GatewayState state = 10;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 11;
|
||||
}
|
||||
|
||||
message UpdateRelayGatewayRequest {
|
||||
// Relay Gateway object.
|
||||
RelayGateway relay_gateway = 1;
|
||||
}
|
||||
|
||||
message DeleteRelayGatewayRequest {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
}
|
||||
|
||||
message RelayGateway {
|
||||
// Tenant ID.
|
||||
string tenant_id = 1;
|
||||
|
||||
// Relay ID (4 byte HEX).
|
||||
string relay_id = 2;
|
||||
|
||||
// Name.
|
||||
string name = 3;
|
||||
|
||||
// Description.
|
||||
string description = 4;
|
||||
|
||||
// Stats interval (seconds).
|
||||
// This defines the expected interval in which the gateway sends its
|
||||
// statistics.
|
||||
uint32 stats_interval = 5;
|
||||
|
||||
// Region configuration ID.
|
||||
string region_config_id = 6;
|
||||
}
|
||||
|
8
api/rust/proto/chirpstack/api/internal.proto
vendored
8
api/rust/proto/chirpstack/api/internal.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
@ -221,6 +223,12 @@ message SettingsResponse {
|
||||
|
||||
// OAuth2 settings.
|
||||
OAuth2 oauth2 = 2;
|
||||
|
||||
// Tileserver URL.
|
||||
string tileserver_url = 3;
|
||||
|
||||
// Map attribution.
|
||||
string map_attribution = 4;
|
||||
}
|
||||
|
||||
message OpenIdConnect {
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MulticastGroupProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -300,6 +302,10 @@ message MulticastGroupQueueItem {
|
||||
|
||||
// Payload.
|
||||
bytes data = 4;
|
||||
|
||||
// Expires at (optional).
|
||||
// Expired queue-items will be automatically removed from the queue.
|
||||
google.protobuf.Timestamp expires_at = 5;
|
||||
}
|
||||
|
||||
message EnqueueMulticastGroupQueueItemRequest {
|
||||
|
2
api/rust/proto/chirpstack/api/relay.proto
vendored
2
api/rust/proto/chirpstack/api/relay.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "RelayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
2
api/rust/proto/chirpstack/api/tenant.proto
vendored
2
api/rust/proto/chirpstack/api/tenant.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "TenantProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
2
api/rust/proto/chirpstack/api/user.proto
vendored
2
api/rust/proto/chirpstack/api/user.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UserProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
option php_namespace = "Chirpstack\\Api";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option csharp_namespace = "Chirpstack.Common";
|
||||
option php_namespace = "Chirpstack\\Common";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Common";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
28
api/rust/proto/chirpstack/gw/gw.proto
vendored
28
api/rust/proto/chirpstack/gw/gw.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Gateway";
|
||||
option php_namespace = "Chirpstack\\Gateway";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Gateway";
|
||||
|
||||
import "common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -747,3 +749,29 @@ message ConnState {
|
||||
|
||||
State state = 2;
|
||||
}
|
||||
|
||||
// Gateway Mesh heartbeat (sent periodically by the Relay Gateways).
|
||||
message MeshHeartbeat {
|
||||
// Gateway ID (of the Border Gateway).
|
||||
string gateway_id = 1;
|
||||
|
||||
// Relay ID.
|
||||
string relay_id = 2;
|
||||
|
||||
// Timestamp (second precision).
|
||||
google.protobuf.Timestamp time = 3;
|
||||
|
||||
// Relay path.
|
||||
repeated MeshHeartbeatRelayPath relay_path = 4;
|
||||
}
|
||||
|
||||
message MeshHeartbeatRelayPath {
|
||||
// Relay ID.
|
||||
string relay_id = 1;
|
||||
|
||||
// RSSI.
|
||||
int32 rssi = 2;
|
||||
|
||||
// SNR.
|
||||
int32 snr = 3;
|
||||
}
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.integration";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "IntegrationProto";
|
||||
option csharp_namespace = "Chirpstack.Integration";
|
||||
option php_namespace = "Chirpstack\\Integration";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Integration";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
@ -58,6 +60,9 @@ enum LogCode {
|
||||
|
||||
// Downlink frame-counter.
|
||||
F_CNT_DOWN = 10;
|
||||
|
||||
// Downlink has expired.
|
||||
EXPIRED = 11;
|
||||
}
|
||||
|
||||
// Device information.
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApiRequestProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
|
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "BackendInterfacesProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
2
api/rust/proto/chirpstack/stream/frame.proto
vendored
2
api/rust/proto/chirpstack/stream/frame.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FrameProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "common/common.proto";
|
||||
|
2
api/rust/proto/chirpstack/stream/meta.proto
vendored
2
api/rust/proto/chirpstack/stream/meta.proto
vendored
@ -7,6 +7,8 @@ option java_package = "io.chirpstack.api.stream";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetaProto";
|
||||
option csharp_namespace = "Chirpstack.Stream";
|
||||
option php_namespace = "Chirpstack\\Stream";
|
||||
option php_metadata_namespace = "GPBMetadata\\Chirpstack\\Stream";
|
||||
|
||||
import "common/common.proto";
|
||||
import "gw/gw.proto";
|
||||
|
24
api/rust/src/gw.rs
vendored
24
api/rust/src/gw.rs
vendored
@ -95,7 +95,7 @@ impl UplinkFrame {
|
||||
})
|
||||
}
|
||||
uplink_tx_info_legacy::ModulationInfo::FskModulationInfo(info) => {
|
||||
modulation::Parameters::Fsk(info.clone())
|
||||
modulation::Parameters::Fsk(*info)
|
||||
}
|
||||
uplink_tx_info_legacy::ModulationInfo::LrFhssModulationInfo(info) => {
|
||||
modulation::Parameters::LrFhss(LrFhssModulationInfo {
|
||||
@ -120,9 +120,9 @@ impl UplinkFrame {
|
||||
self.rx_info = Some(UplinkRxInfo {
|
||||
gateway_id: hex::encode(&rx_info.gateway_id),
|
||||
uplink_id: rng.gen::<u32>(),
|
||||
gw_time: rx_info.time.clone(),
|
||||
gw_time: rx_info.time,
|
||||
ns_time: None,
|
||||
time_since_gps_epoch: rx_info.time_since_gps_epoch.clone(),
|
||||
time_since_gps_epoch: rx_info.time_since_gps_epoch,
|
||||
fine_time_since_gps_epoch: None,
|
||||
rssi: rx_info.rssi,
|
||||
snr: rx_info.lora_snr as f32,
|
||||
@ -130,7 +130,7 @@ impl UplinkFrame {
|
||||
rf_chain: rx_info.rf_chain,
|
||||
board: rx_info.board,
|
||||
antenna: rx_info.antenna,
|
||||
location: rx_info.location.clone(),
|
||||
location: rx_info.location,
|
||||
context: rx_info.context.clone(),
|
||||
metadata: rx_info.metadata.clone(),
|
||||
crc_status: rx_info.crc_status,
|
||||
@ -195,23 +195,19 @@ impl DownlinkFrame {
|
||||
Some(timing::Parameters::Immediately(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::Immediately.into();
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::ImmediatelyTimingInfo(
|
||||
v.clone(),
|
||||
),
|
||||
downlink_tx_info_legacy::TimingInfo::ImmediatelyTimingInfo(*v),
|
||||
);
|
||||
}
|
||||
Some(timing::Parameters::Delay(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::Delay.into();
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::DelayTimingInfo(v.clone()),
|
||||
);
|
||||
tx_info_legacy.timing_info =
|
||||
Some(downlink_tx_info_legacy::TimingInfo::DelayTimingInfo(*v));
|
||||
}
|
||||
Some(timing::Parameters::GpsEpoch(v)) => {
|
||||
tx_info_legacy.timing = DownlinkTiming::GpsEpoch.into();
|
||||
tx_info_legacy.timing_info =
|
||||
Some(downlink_tx_info_legacy::TimingInfo::GpsEpochTimingInfo(
|
||||
v.clone(),
|
||||
));
|
||||
tx_info_legacy.timing_info = Some(
|
||||
downlink_tx_info_legacy::TimingInfo::GpsEpochTimingInfo(*v),
|
||||
);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
1
api/rust/src/integration.rs
vendored
1
api/rust/src/integration.rs
vendored
@ -32,6 +32,7 @@ impl Into<String> for LogCode {
|
||||
LogCode::DownlinkGateway => "DOWNLINK_GATEWAY",
|
||||
LogCode::RelayNewEndDevice => "RELAY_NEW_END_DEVICE",
|
||||
LogCode::FCntDown => "F_CNT_DOWN",
|
||||
LogCode::Expired => "EXPIRED",
|
||||
}
|
||||
.to_string()
|
||||
}
|
||||
|
32
api/rust/src/internal.rs
vendored
32
api/rust/src/internal.rs
vendored
@ -2,13 +2,6 @@ include!(concat!(env!("OUT_DIR"), "/internal/internal.rs"));
|
||||
#[cfg(feature = "json")]
|
||||
include!(concat!(env!("OUT_DIR"), "/internal/internal.serde.rs"));
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
use diesel::{backend::Backend, deserialize, serialize, sql_types::Binary};
|
||||
#[cfg(feature = "diesel")]
|
||||
use prost::Message;
|
||||
#[cfg(feature = "diesel")]
|
||||
use std::io::Cursor;
|
||||
|
||||
impl DeviceSession {
|
||||
pub fn get_a_f_cnt_down(&self) -> u32 {
|
||||
if self.mac_version().to_string().starts_with("1.0") {
|
||||
@ -30,28 +23,3 @@ impl DeviceSession {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
impl<ST, DB> deserialize::FromSql<ST, DB> for DeviceSession
|
||||
where
|
||||
DB: Backend,
|
||||
*const [u8]: deserialize::FromSql<ST, DB>,
|
||||
{
|
||||
fn from_sql(value: DB::RawValue<'_>) -> deserialize::Result<Self> {
|
||||
let bytes = <Vec<u8> as deserialize::FromSql<ST, DB>>::from_sql(value)?;
|
||||
Ok(DeviceSession::decode(&mut Cursor::new(bytes))?)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "diesel")]
|
||||
impl serialize::ToSql<Binary, diesel::pg::Pg> for DeviceSession
|
||||
where
|
||||
[u8]: serialize::ToSql<Binary, diesel::pg::Pg>,
|
||||
{
|
||||
fn to_sql(&self, out: &mut serialize::Output<'_, '_, diesel::pg::Pg>) -> serialize::Result {
|
||||
<[u8] as serialize::ToSql<Binary, diesel::pg::Pg>>::to_sql(
|
||||
&self.encode_to_vec(),
|
||||
&mut out.reborrow(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
5
api/rust/src/lib.rs
vendored
5
api/rust/src/lib.rs
vendored
@ -1,4 +1,9 @@
|
||||
#[cfg(feature = "json")]
|
||||
pub use pbjson_types;
|
||||
pub use prost;
|
||||
#[cfg(feature = "api")]
|
||||
pub use tonic;
|
||||
|
||||
#[cfg(feature = "api")]
|
||||
pub mod api;
|
||||
pub mod common;
|
||||
|
@ -1,24 +1,29 @@
|
||||
[package]
|
||||
name = "backend"
|
||||
version = "4.8.1"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
name = "backend"
|
||||
version = "4.10.0-test.5"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_json = "1.0"
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
tracing = "0.1"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
aes-kw = "0.2"
|
||||
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
tokio = { version = "1.36", features = ["macros" ] }
|
||||
chirpstack_api = { path = "../api/rust", default-features = false, features = ["json"] }
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
serde_json = "1.0"
|
||||
thiserror = "1.0"
|
||||
anyhow = "1.0"
|
||||
tracing = "0.1"
|
||||
hex = "0.4"
|
||||
rand = "0.8"
|
||||
aes-kw = "0.2"
|
||||
reqwest = { version = "0.12", features = [
|
||||
"json",
|
||||
"rustls-tls",
|
||||
], default-features = false }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
tokio = { version = "1.40", features = ["macros"] }
|
||||
chirpstack_api = { path = "../api/rust", default-features = false, features = [
|
||||
"json",
|
||||
] }
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.7.0"
|
||||
httpmock = "0.7.0"
|
||||
|
@ -3,14 +3,14 @@
|
||||
description = "Library for building external ChirpStack integrations"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
license = "MIT"
|
||||
version = "4.6.0"
|
||||
version = "4.10.0-test.5"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
|
||||
[dependencies]
|
||||
chirpstack_api = { path = "../api/rust", version = "4.8.0" }
|
||||
redis = { version = "0.25", features = [
|
||||
chirpstack_api = { path = "../api/rust", version = "4.10.0-test.5" }
|
||||
redis = { version = "0.27", features = [
|
||||
"cluster-async",
|
||||
"tokio-rustls-comp",
|
||||
] }
|
||||
@ -21,9 +21,9 @@
|
||||
"ansi",
|
||||
"json",
|
||||
], default-features = true }
|
||||
async-trait = "0.1.79"
|
||||
async-trait = "0.1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
||||
lazy_static = "1.4"
|
||||
tokio = { version = "1.40", features = ["macros", "rt-multi-thread"] }
|
||||
lazy_static = "1.5"
|
||||
serde_json = "1.0"
|
||||
toml = "0.8"
|
||||
|
@ -215,7 +215,7 @@ impl Integration {
|
||||
info!(key = %k, "Event received from Redis stream");
|
||||
match k.as_ref() {
|
||||
"up" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::UplinkEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -223,21 +223,21 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"join" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::JoinEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(join_event(pl));
|
||||
}
|
||||
}
|
||||
"ack" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::AckEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(ack_event(pl));
|
||||
}
|
||||
}
|
||||
"txack" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::TxAckEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -245,7 +245,7 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"status" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::StatusEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -253,14 +253,14 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"log" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl =
|
||||
integration_pb::LogEvent::decode(&mut Cursor::new(b))?;
|
||||
tokio::spawn(log_event(pl));
|
||||
}
|
||||
}
|
||||
"location" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::LocationEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
@ -268,7 +268,7 @@ impl Integration {
|
||||
}
|
||||
}
|
||||
"integration" => {
|
||||
if let redis::Value::Data(b) = v {
|
||||
if let redis::Value::BulkString(b) = v {
|
||||
let pl = integration_pb::IntegrationEvent::decode(
|
||||
&mut Cursor::new(b),
|
||||
)?;
|
||||
|
@ -3,7 +3,7 @@
|
||||
description = "ChirpStack is an open-source LoRaWAN(TM) Network Server"
|
||||
repository = "https://github.com/chirpstack/chirpstack"
|
||||
homepage = "https://www.chirpstack.io/"
|
||||
version = "4.8.1"
|
||||
version = "4.10.0-test.5"
|
||||
authors = ["Orne Brocaar <info@brocaar.com>"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
@ -20,29 +20,25 @@
|
||||
serde_urlencoded = "0.7"
|
||||
humantime-serde = "1.1"
|
||||
toml = "0.8"
|
||||
handlebars = "5.1"
|
||||
handlebars = "6.1"
|
||||
|
||||
# Database
|
||||
email_address = "0.2"
|
||||
diesel = { version = "2.1", features = [
|
||||
diesel = { version = "2.2", features = [
|
||||
"chrono",
|
||||
"uuid",
|
||||
"serde_json",
|
||||
"numeric",
|
||||
"64-column-tables",
|
||||
"postgres_backend",
|
||||
] }
|
||||
diesel_migrations = { version = "2.1" }
|
||||
diesel-async = { version = "0.4", features = [
|
||||
diesel_migrations = { version = "2.2" }
|
||||
diesel-async = { version = "0.5", features = [
|
||||
"deadpool",
|
||||
"postgres",
|
||||
"async-connection-wrapper",
|
||||
] }
|
||||
tokio-postgres = "0.7"
|
||||
tokio-postgres-rustls = "0.11"
|
||||
tokio-postgres = { version = "0.7", optional = true }
|
||||
tokio-postgres-rustls = { version = "0.12", optional = true }
|
||||
bigdecimal = "0.4"
|
||||
redis = { version = "0.25.2", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.15", features = ["cluster"] }
|
||||
redis = { version = "0.27", features = ["tls-rustls", "tokio-rustls-comp"] }
|
||||
deadpool-redis = { version = "0.18", features = ["cluster", "serde"] }
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
@ -53,11 +49,7 @@
|
||||
], default-features = true }
|
||||
|
||||
# ChirpStack API definitions
|
||||
chirpstack_api = { path = "../api/rust", features = [
|
||||
"default",
|
||||
"internal",
|
||||
"diesel",
|
||||
] }
|
||||
chirpstack_api = { path = "../api/rust", features = ["default", "internal"] }
|
||||
lrwn = { path = "../lrwn", features = [
|
||||
"serde",
|
||||
"diesel",
|
||||
@ -78,8 +70,8 @@
|
||||
sha2 = "0.10"
|
||||
urlencoding = "2.1"
|
||||
geohash = "0.13"
|
||||
gcp_auth = "0.11"
|
||||
lapin = "2.3"
|
||||
gcp_auth = "0.12"
|
||||
lapin = { version = "2.5", default-features = false }
|
||||
tokio-executor-trait = "2.1"
|
||||
tokio-reactor-trait = "1.1"
|
||||
rdkafka = { version = "0.36", default-features = false, features = [
|
||||
@ -88,26 +80,26 @@
|
||||
] }
|
||||
|
||||
# gRPC and Protobuf
|
||||
tonic = "0.11"
|
||||
tonic-web = "0.11"
|
||||
tonic-reflection = "0.11"
|
||||
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
|
||||
tonic = "0.12"
|
||||
tonic-web = "0.12"
|
||||
tonic-reflection = "0.12"
|
||||
tokio = { version = "1.40", features = ["macros", "rt-multi-thread"] }
|
||||
tokio-stream = "0.1"
|
||||
prost-types = "0.12"
|
||||
prost = "0.12"
|
||||
pbjson-types = "0.6"
|
||||
prost-types = "0.13"
|
||||
prost = "0.13"
|
||||
pbjson-types = "0.7"
|
||||
|
||||
# gRPC and HTTP multiplexing
|
||||
warp = { version = "0.3", features = ["tls"], default-features = false }
|
||||
hyper = "0.14"
|
||||
tower = "0.4"
|
||||
axum = "0.7"
|
||||
axum-server = { version = "0.7.1", features = ["tls-rustls-no-provider"] }
|
||||
tower = { version = "0.5", features = ["util"] }
|
||||
futures = "0.3"
|
||||
futures-util = "0.3"
|
||||
http = "0.2"
|
||||
http-body = "0.4"
|
||||
rust-embed = "8.3"
|
||||
http = "1.1"
|
||||
http-body = "1.0"
|
||||
rust-embed = "8.5"
|
||||
mime_guess = "2.0"
|
||||
tower-http = { version = "0.4", features = ["trace", "auth"] }
|
||||
tower-http = { version = "0.6", features = ["trace", "auth"] }
|
||||
|
||||
# Error handling
|
||||
thiserror = "1.0"
|
||||
@ -116,9 +108,14 @@
|
||||
# Authentication
|
||||
pbkdf2 = { version = "0.12", features = ["simple"] }
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
jsonwebtoken = "9.2"
|
||||
rustls = "0.22"
|
||||
rustls-native-certs = "0.7"
|
||||
jsonwebtoken = "9.3"
|
||||
rustls = { version = "0.23", default-features = false, features = [
|
||||
"logging",
|
||||
"std",
|
||||
"tls12",
|
||||
"ring",
|
||||
] }
|
||||
rustls-native-certs = "0.8"
|
||||
rustls-pemfile = "2.1"
|
||||
pem = "3.0"
|
||||
x509-parser = "0.16"
|
||||
@ -126,8 +123,10 @@
|
||||
elliptic-curve = { version = "0.13", features = ["pem"] }
|
||||
p256 = "0.13"
|
||||
rcgen = { version = "0.13.1", features = ["x509-parser"] }
|
||||
openidconnect = { version = "3.5", features = ["accept-rfc3339-timestamps"] }
|
||||
oauth2 = "4.4"
|
||||
oauth2 = "5.0.0-alpha.4"
|
||||
openidconnect = { version = "4.0.0-alpha.2", features = [
|
||||
"accept-rfc3339-timestamps",
|
||||
] }
|
||||
|
||||
# MQTT
|
||||
rumqttc = { version = "0.24", features = ["url"] }
|
||||
@ -142,26 +141,46 @@
|
||||
] }
|
||||
|
||||
# Misc
|
||||
lazy_static = "1.4"
|
||||
uuid = { version = "1.8", features = ["v4", "serde"] }
|
||||
lazy_static = "1.5"
|
||||
uuid = { version = "1.10", features = ["v4", "serde"] }
|
||||
chrono = "0.4"
|
||||
async-trait = "0.1"
|
||||
aes = "0.8"
|
||||
rand = "0.8"
|
||||
base64 = "0.22"
|
||||
async-recursion = "1.0"
|
||||
async-recursion = "1.1"
|
||||
regex = "1.10"
|
||||
petgraph = "0.6"
|
||||
prometheus-client = "0.22"
|
||||
pin-project = "1.1"
|
||||
scoped-futures = { version = "0.1", features = ["std"] }
|
||||
signal-hook = "0.3"
|
||||
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
|
||||
|
||||
# Development and testing
|
||||
[dev-dependencies]
|
||||
httpmock = "0.7.0"
|
||||
bytes = "1.5"
|
||||
bytes = "1.7"
|
||||
dotenv = "0.15"
|
||||
|
||||
[features]
|
||||
default = ["postgres"]
|
||||
postgres = [
|
||||
"tokio-postgres",
|
||||
"tokio-postgres-rustls",
|
||||
"diesel/postgres_backend",
|
||||
"diesel/serde_json",
|
||||
"diesel/uuid",
|
||||
"diesel-async/postgres",
|
||||
"lrwn/postgres",
|
||||
]
|
||||
sqlite = [
|
||||
"diesel/sqlite",
|
||||
"diesel/returning_clauses_for_sqlite_3_35",
|
||||
"lrwn/sqlite",
|
||||
"diesel-async/sync-connection-wrapper",
|
||||
"diesel-async/sqlite",
|
||||
]
|
||||
test-all-integrations = [
|
||||
"test-integration-amqp",
|
||||
"test-integration-kafka",
|
||||
@ -219,6 +238,17 @@
|
||||
maintainer-scripts = "debian/"
|
||||
systemd-units = { enable = true }
|
||||
|
||||
[package.metadata.deb.variants.postgres]
|
||||
name = "chirpstack"
|
||||
suggests = "postgresql, mosquitto, redis"
|
||||
conflicts = "chirpstack-sqlite"
|
||||
|
||||
[package.metadata.deb.variants.sqlite]
|
||||
default-features = false
|
||||
features = ["sqlite"]
|
||||
suggests = "mosquitto, redis"
|
||||
conflicts = "chirpstack"
|
||||
|
||||
[package.metadata.generate-rpm]
|
||||
auto-req = "no"
|
||||
|
||||
@ -240,3 +270,13 @@ chmod 640 /etc/chirpstack/*.toml
|
||||
{ source = "configuration/*", dest = "/etc/chirpstack" },
|
||||
{ source = "rpm/chirpstack.service", dest = "/lib/systemd/system/chirpstack.service" },
|
||||
]
|
||||
|
||||
[package.metadata.generate-rpm.variants.postgres]
|
||||
name = "chirpstack"
|
||||
[package.metadata.generate-rpm.variants.postgres.conflicts]
|
||||
chirpstack-sqlite = "*"
|
||||
|
||||
[package.metadata.generate-rpm.variants.sqlite]
|
||||
name = "chirpstack-sqlite"
|
||||
[package.metadata.generate-rpm.variants.sqlite.conflicts]
|
||||
chirpstack = "*"
|
||||
|
@ -1,28 +1,29 @@
|
||||
.PHONY: dist
|
||||
|
||||
PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
|
||||
DATABASE ?= postgres
|
||||
|
||||
debug-amd64:
|
||||
cross build --target x86_64-unknown-linux-musl
|
||||
cross build --target x86_64-unknown-linux-musl --no-default-features --features="$(DATABASE)"
|
||||
|
||||
release-amd64:
|
||||
cross build --target x86_64-unknown-linux-musl --release
|
||||
cross build --target x86_64-unknown-linux-musl --release --no-default-features --features="$(DATABASE)"
|
||||
|
||||
dist:
|
||||
# Keep these in this order, as aarch64 is based on Debian Buster (older),
|
||||
# the others on Bullseye. For some build scripts we want to build against
|
||||
# least recent LIBC.
|
||||
cross build --target aarch64-unknown-linux-musl --release
|
||||
cross build --target x86_64-unknown-linux-musl --release
|
||||
cross build --target armv7-unknown-linux-musleabihf --release
|
||||
cross build --target aarch64-unknown-linux-musl --release --no-default-features --features="$(DATABASE)"
|
||||
cross build --target x86_64-unknown-linux-musl --release --no-default-features --features="$(DATABASE)"
|
||||
cross build --target armv7-unknown-linux-musleabihf --release --no-default-features --features="$(DATABASE)"
|
||||
|
||||
cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip
|
||||
cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip
|
||||
cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip
|
||||
cargo deb --target x86_64-unknown-linux-musl --no-build --no-strip --variant="$(DATABASE)"
|
||||
cargo deb --target armv7-unknown-linux-musleabihf --no-build --no-strip --variant="$(DATABASE)"
|
||||
cargo deb --target aarch64-unknown-linux-musl --no-build --no-strip --variant="$(DATABASE)"
|
||||
|
||||
cargo generate-rpm --target x86_64-unknown-linux-musl --target-dir ../target
|
||||
cargo generate-rpm --target armv7-unknown-linux-musleabihf --target-dir ../target
|
||||
cargo generate-rpm --target aarch64-unknown-linux-musl --target-dir ../target
|
||||
cargo generate-rpm --target x86_64-unknown-linux-musl --target-dir ../target --variant="$(DATABASE)"
|
||||
cargo generate-rpm --target armv7-unknown-linux-musleabihf --target-dir ../target --variant="$(DATABASE)"
|
||||
cargo generate-rpm --target aarch64-unknown-linux-musl --target-dir ../target --variant="$(DATABASE)"
|
||||
|
||||
mkdir -p ../dist
|
||||
|
||||
@ -34,16 +35,44 @@ dist:
|
||||
cp ../target/armv7-unknown-linux-musleabihf/generate-rpm/*.rpm ../dist
|
||||
cp ../target/aarch64-unknown-linux-musl/generate-rpm/*.rpm ../dist
|
||||
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_amd64.tar.gz -C ../target/x86_64-unknown-linux-musl/release chirpstack
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_armv7hf.tar.gz -C ../target/armv7-unknown-linux-musleabihf/release chirpstack
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_arm64.tar.gz -C ../target/aarch64-unknown-linux-musl/release chirpstack
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_amd64.tar.gz -C ../target/x86_64-unknown-linux-musl/release chirpstack
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_armv7hf.tar.gz -C ../target/armv7-unknown-linux-musleabihf/release chirpstack
|
||||
tar -czvf ../dist/chirpstack_$(PKG_VERSION)_$(DATABASE)_arm64.tar.gz -C ../target/aarch64-unknown-linux-musl/release chirpstack
|
||||
|
||||
test:
|
||||
cargo fmt --check
|
||||
cargo clippy --no-deps
|
||||
TZ=UTC cargo test
|
||||
cargo clippy --no-deps --no-default-features --features="$(DATABASE)"
|
||||
TZ=UTC cargo test --no-default-features --features="$(DATABASE)"
|
||||
|
||||
test-all:
|
||||
cargo fmt --check
|
||||
cargo clippy --no-deps
|
||||
TZ=UTC cargo test --features test-all-integrations
|
||||
cargo clippy --no-deps --no-default-features --features="$(DATABASE)"
|
||||
TZ=UTC cargo test --no-default-features --features="$(DATABASE),test-all-integrations"
|
||||
|
||||
migration-generate:
|
||||
ifeq ($(NAME),)
|
||||
@echo "You must provide a NAME parameter, e.g. make migration-generate NAME=test-migration"
|
||||
else
|
||||
diesel --config-file diesel_$(DATABASE).toml migration --migration-dir migrations_$(DATABASE) generate $(NAME)
|
||||
endif
|
||||
|
||||
migration-run: chirpstack_test.sqlite
|
||||
ifeq ($(DATABASE),postgres)
|
||||
diesel --config-file diesel_postgres.toml migration --migration-dir migrations_postgres run
|
||||
endif
|
||||
ifeq ($(DATABASE),sqlite)
|
||||
DATABASE_URL="chirpstack_test.sqlite" diesel --config-file diesel_sqlite.toml migration --migration-dir migrations_sqlite run
|
||||
sed -i 's/Timestamp/TimestamptzSqlite/g' src/storage/schema_sqlite.rs
|
||||
endif
|
||||
|
||||
migration-revert: chirpstack_test.sqlite
|
||||
ifeq ($(DATABASE),postgres)
|
||||
diesel --config-file diesel_postgres.toml migration --migration-dir migrations_postgres revert
|
||||
endif
|
||||
ifeq ($(DATABASE),sqlite)
|
||||
DATABASE_URL="chirpstack_test.sqlite" diesel --config-file diesel_sqlite.toml migration --migration-dir migrations_sqlite revert
|
||||
sed -i 's/Timestamp/TimestamptzSqlite/g' src/storage/schema_sqlite.rs
|
||||
endif
|
||||
|
||||
chirpstack_test.sqlite:
|
||||
DATABASE_URL=chirpstack_test.sqlite diesel --config-file diesel_sqlite.toml setup --migration-dir migrations_sqlite
|
||||
|
@ -4,7 +4,7 @@
|
||||
# Log level.
|
||||
#
|
||||
# Options are: trace, debug, info, warn error.
|
||||
level="info"
|
||||
level = "info"
|
||||
|
||||
|
||||
# PostgreSQL configuration.
|
||||
@ -19,19 +19,19 @@
|
||||
# * require - Always SSL (skip verification)
|
||||
# * verify-ca - Always SSL (verify that the certificate presented by the server was signed by a trusted CA)
|
||||
# * verify-full - Always SSL (verify that the certification presented by the server was signed by a trusted CA and the server host name matches the one in the certificate)
|
||||
dsn="postgres://chirpstack:chirpstack@localhost/chirpstack?sslmode=disable"
|
||||
dsn = "postgres://chirpstack:chirpstack@localhost/chirpstack?sslmode=disable"
|
||||
|
||||
# Max open connections.
|
||||
#
|
||||
# This sets the max. number of open connections that are allowed in the
|
||||
# PostgreSQL connection pool.
|
||||
max_open_connections=10
|
||||
max_open_connections = 10
|
||||
|
||||
# Min idle connections.
|
||||
#
|
||||
# This sets the min. number of idle connections in the PostgreSQL connection
|
||||
# pool (0 = equal to max_open_connections).
|
||||
min_idle_connections=0
|
||||
min_idle_connections = 0
|
||||
|
||||
|
||||
# Redis configuration.
|
||||
@ -40,28 +40,26 @@
|
||||
# Server address or addresses.
|
||||
#
|
||||
# Set multiple addresses when connecting to a cluster.
|
||||
servers=[
|
||||
"redis://localhost/",
|
||||
]
|
||||
servers = ["redis://localhost/"]
|
||||
|
||||
# Redis Cluster.
|
||||
#
|
||||
# Set this to true when the provided URLs are pointing to a Redis Cluster
|
||||
# instance.
|
||||
cluster=false
|
||||
cluster = false
|
||||
|
||||
|
||||
# Network related configuration.
|
||||
[network]
|
||||
|
||||
# Network identifier (NetID, 3 bytes) encoded as HEX (e.g. 010203).
|
||||
net_id="000000"
|
||||
net_id = "000000"
|
||||
|
||||
# Enabled regions.
|
||||
#
|
||||
# Multiple regions can be enabled simultaneously. Each region must match
|
||||
# the 'name' parameter of the region configuration in '[[regions]]'.
|
||||
enabled_regions=[
|
||||
enabled_regions = [
|
||||
"as923",
|
||||
"as923_2",
|
||||
"as923_3",
|
||||
@ -84,7 +82,7 @@
|
||||
[api]
|
||||
|
||||
# interface:port to bind the API interface to.
|
||||
bind="0.0.0.0:8080"
|
||||
bind = "0.0.0.0:8080"
|
||||
|
||||
# Secret.
|
||||
#
|
||||
@ -92,12 +90,12 @@
|
||||
# is never exposed. Changing this secret will invalidate all login and API
|
||||
# tokens. The following command can be used to generate a random secret:
|
||||
# openssl rand -base64 32
|
||||
secret="you-must-replace-this"
|
||||
secret = "you-must-replace-this"
|
||||
|
||||
|
||||
[integration]
|
||||
enabled=["mqtt"]
|
||||
enabled = ["mqtt"]
|
||||
|
||||
[integration.mqtt]
|
||||
server="tcp://localhost:1883/"
|
||||
json=true
|
||||
server = "tcp://localhost:1883/"
|
||||
json = true
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="as923"
|
||||
id = "as923"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AS923"
|
||||
description = "AS923"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AS923"
|
||||
common_name = "AS923"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923"
|
||||
topic_prefix = "as923"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,16 +115,16 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -127,7 +136,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -135,19 +144,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=2
|
||||
rx2_dr = 2
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923200000
|
||||
rx2_frequency = 923200000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -155,13 +164,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -171,44 +180,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="as923_2"
|
||||
id = "as923_2"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AS923-2"
|
||||
description = "AS923-2"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AS923_2"
|
||||
common_name = "AS923_2"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_2"
|
||||
topic_prefix = "as923_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,16 +115,16 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -127,7 +136,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -135,19 +144,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=921400000
|
||||
rx2_frequency = 921400000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -155,13 +164,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -171,44 +180,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="as923_3"
|
||||
id = "as923_3"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AS923-3"
|
||||
description = "AS923-3"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AS923_3"
|
||||
common_name = "AS923_3"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_3"
|
||||
topic_prefix = "as923_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,16 +115,16 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -127,7 +136,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -135,19 +144,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=2
|
||||
rx2_dr = 2
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=916600000
|
||||
rx2_frequency = 916600000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -155,13 +164,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -171,44 +180,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="as923_4"
|
||||
id = "as923_4"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AS923-4"
|
||||
description = "AS923-4"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AS923_4"
|
||||
common_name = "AS923_4"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="as923_4"
|
||||
topic_prefix = "as923_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,16 +115,16 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -127,7 +136,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -135,19 +144,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=2
|
||||
rx2_dr = 2
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=917300000
|
||||
rx2_frequency = 917300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -155,13 +164,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -171,44 +180,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_0"
|
||||
id = "au915_0"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 0-7 + 64)"
|
||||
description = "AU915 (channels 0-7 + 64)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_0"
|
||||
topic_prefix = "au915_0"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=915200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 915200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=915400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 915400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=915600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 915600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=915800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 915800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=915900000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 915900000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7, 64]
|
||||
enabled_uplink_channels = [0, 1, 2, 3, 4, 5, 6, 7, 64]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_1"
|
||||
id = "au915_1"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 8-15 + 65)"
|
||||
description = "AU915 (channels 8-15 + 65)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_1"
|
||||
topic_prefix = "au915_1"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=916800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 916800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 917800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=918000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 918000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=918200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 918200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=917500000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 917500000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[8, 9, 10, 11, 12, 13, 14, 15, 65]
|
||||
enabled_uplink_channels = [8, 9, 10, 11, 12, 13, 14, 15, 65]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_2"
|
||||
id = "au915_2"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 16-23 + 66)"
|
||||
description = "AU915 (channels 16-23 + 66)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_2"
|
||||
topic_prefix = "au915_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=918400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 918400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=918600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 918600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=918800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 918800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 919000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 919200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 919400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 919600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 919800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=919100000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 919100000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[16, 17, 18, 19, 20, 21, 22, 23, 66]
|
||||
enabled_uplink_channels = [16, 17, 18, 19, 20, 21, 22, 23, 66]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_3"
|
||||
id = "au915_3"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 24-31 + 67)"
|
||||
description = "AU915 (channels 24-31 + 67)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_3"
|
||||
topic_prefix = "au915_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 920000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 920200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 920400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 920600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 920800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=920700000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 920700000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[24, 25, 26, 27, 28, 29, 30, 31, 67]
|
||||
enabled_uplink_channels = [24, 25, 26, 27, 28, 29, 30, 31, 67]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_4"
|
||||
id = "au915_4"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 32-39 + 68)"
|
||||
description = "AU915 (channels 32-39 + 68)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_4"
|
||||
topic_prefix = "au915_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=921800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 921800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 922000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 922200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 922400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 922600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 922800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=922300000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 922300000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[32, 33, 34, 35, 36, 37, 38, 39, 68]
|
||||
enabled_uplink_channels = [32, 33, 34, 35, 36, 37, 38, 39, 68]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_5"
|
||||
id = "au915_5"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 40-47 + 69)"
|
||||
description = "AU915 (channels 40-47 + 69)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_5"
|
||||
topic_prefix = "au915_5"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 923800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=924000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 924000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=924200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 924200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=924400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 924400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=924600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 924600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=923900000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 923900000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[40, 41, 42, 43, 44, 45, 46, 47, 69]
|
||||
enabled_uplink_channels = [40, 41, 42, 43, 44, 45, 46, 47, 69]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_6"
|
||||
id = "au915_6"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 48-55 + 70)"
|
||||
description = "AU915 (channels 48-55 + 70)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_6"
|
||||
topic_prefix = "au915_6"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=924800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 924800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 925000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 925200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 925400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 925600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 925800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=926000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 926000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=926200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 926200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=925500000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 925500000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[48, 49, 50, 51, 52, 53, 54, 55, 70]
|
||||
enabled_uplink_channels = [48, 49, 50, 51, 52, 53, 54, 55, 70]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="au915_7"
|
||||
id = "au915_7"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="AU915 (channels 56-63 + 71)"
|
||||
description = "AU915 (channels 56-63 + 71)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="AU915"
|
||||
common_name = "AU915"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="au915_7"
|
||||
topic_prefix = "au915_7"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,58 +115,58 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=926400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 926400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=926600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 926600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=926800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 926800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927000000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 927000000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927200000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 927200000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927400000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 927400000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927600000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 927600000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927800000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 927800000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=927100000
|
||||
bandwidth=500000
|
||||
modulation="LORA"
|
||||
spreading_factors=[8]
|
||||
frequency = 927100000
|
||||
bandwidth = 500000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [8]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -169,7 +178,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -177,19 +186,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=8
|
||||
rx2_dr = 8
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=923300000
|
||||
rx2_frequency = 923300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -197,13 +206,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -213,51 +222,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[56, 57, 58, 59, 60, 61, 62, 63, 71]
|
||||
enabled_uplink_channels = [56, 57, 58, 59, 60, 61, 62, 63, 71]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=8
|
||||
ping_slot_dr = 8
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_0"
|
||||
id = "cn470_0"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 0-7)"
|
||||
description = "CN470 (channels 0-7)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_0"
|
||||
topic_prefix = "cn470_0"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 470300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 470500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 470700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=470900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 470900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 471100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 471300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 471500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 471700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
|
||||
enabled_uplink_channels = [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_1"
|
||||
id = "cn470_1"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 8-15)"
|
||||
description = "CN470 (channels 8-15)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_1"
|
||||
topic_prefix = "cn470_1"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=471900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 471900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 472100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 472300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 472500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 472700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=472900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 472900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 473100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 473300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[8, 9, 10, 11, 12, 13, 14, 15]
|
||||
enabled_uplink_channels = [8, 9, 10, 11, 12, 13, 14, 15]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_10"
|
||||
id = "cn470_10"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 80-87)"
|
||||
description = "CN470 (channels 80-87)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_10"
|
||||
topic_prefix = "cn470_10"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 486300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 486500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 486700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 486900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 487100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 487300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 487500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 487700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[80, 81, 82, 83, 84, 85, 86, 87]
|
||||
enabled_uplink_channels = [80, 81, 82, 83, 84, 85, 86, 87]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_11"
|
||||
id = "cn470_11"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 88-95)"
|
||||
description = "CN470 (channels 88-95)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_11"
|
||||
topic_prefix = "cn470_11"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=487900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 487900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 488100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 488300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 488500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 488700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=488900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 488900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=489100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 489100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=489300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 489300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[88, 89, 90, 91, 92, 93, 94, 95]
|
||||
enabled_uplink_channels = [88, 89, 90, 91, 92, 93, 94, 95]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_2"
|
||||
id = "cn470_2"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 16-23)"
|
||||
description = "CN470 (channels 16-23)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_2"
|
||||
topic_prefix = "cn470_2"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 473500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 473700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=473900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 473900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=474100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 474100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=474300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 474300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=474500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 474500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=474700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 474700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=474900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 474900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[16, 17, 18, 19, 20, 21, 22, 23]
|
||||
enabled_uplink_channels = [16, 17, 18, 19, 20, 21, 22, 23]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_3"
|
||||
id = "cn470_3"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 24-31)"
|
||||
description = "CN470 (channels 24-31)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_3"
|
||||
topic_prefix = "cn470_3"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=475100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 475100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=475300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 475300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=475500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 475500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=475700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 475700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=475900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 475900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=476100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 476100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=476300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 476300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=476500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 476500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[24, 25, 26, 27, 28, 29, 30, 31]
|
||||
enabled_uplink_channels = [24, 25, 26, 27, 28, 29, 30, 31]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_4"
|
||||
id = "cn470_4"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 32-39)"
|
||||
description = "CN470 (channels 32-39)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_4"
|
||||
topic_prefix = "cn470_4"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=476700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 476700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=476900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 476900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=477100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 477100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=477300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 477300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=477500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 477500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=477700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 477700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=477900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 477900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=478100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 478100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[32, 33, 34, 35, 36, 37, 38, 39]
|
||||
enabled_uplink_channels = [32, 33, 34, 35, 36, 37, 38, 39]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_5"
|
||||
id = "cn470_5"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 40-47)"
|
||||
description = "CN470 (channels 40-47)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_5"
|
||||
topic_prefix = "cn470_5"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=478300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 478300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=478500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 478500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=478700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 478700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=478900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 478900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=479100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 479100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=479300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 479300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=479500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 479500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=479700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 479700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[40, 41, 42, 43, 44, 45, 46, 47]
|
||||
enabled_uplink_channels = [40, 41, 42, 43, 44, 45, 46, 47]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_6"
|
||||
id = "cn470_6"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 48-55)"
|
||||
description = "CN470 (channels 48-55)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_6"
|
||||
topic_prefix = "cn470_6"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=479900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 479900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=480100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 480100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=480300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 480300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=480500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 480500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=480700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 480700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=480900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 480900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=481100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 481100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=481300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 481300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[48, 49, 50, 51, 52, 53, 54, 55]
|
||||
enabled_uplink_channels = [48, 49, 50, 51, 52, 53, 54, 55]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_7"
|
||||
id = "cn470_7"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 56-63)"
|
||||
description = "CN470 (channels 56-63)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_7"
|
||||
topic_prefix = "cn470_7"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=481500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 481500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=481700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 481700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=481900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 481900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=482100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 482100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=482300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 482300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=482500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 482500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=482700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 482700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=482900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 482900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[56, 57, 58, 59, 60, 61, 62, 63]
|
||||
enabled_uplink_channels = [56, 57, 58, 59, 60, 61, 62, 63]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_8"
|
||||
id = "cn470_8"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 64-71)"
|
||||
description = "CN470 (channels 64-71)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_8"
|
||||
topic_prefix = "cn470_8"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=483100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 483100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=483300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 483300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=483500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 483500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=483700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 483700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=483900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 483900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=484100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 484100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=484300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 484300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=484500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 484500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[64, 65, 66, 67, 68, 69, 70, 71]
|
||||
enabled_uplink_channels = [64, 65, 66, 67, 68, 69, 70, 71]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an use-defined identifier for this region.
|
||||
id="cn470_9"
|
||||
id = "cn470_9"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN470 (channels 72-79)"
|
||||
description = "CN470 (channels 72-79)"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN470"
|
||||
common_name = "CN470"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn470_9"
|
||||
topic_prefix = "cn470_9"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,52 +115,52 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=484700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 484700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=484900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 484900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=485100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 485100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=485300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 485300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=485500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 485500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=485700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 485700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=485900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 485900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=486100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 486100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -163,7 +172,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -171,19 +180,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=505300000
|
||||
rx2_frequency = 505300000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -191,13 +200,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -207,51 +216,51 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
# Enabled uplink channels.
|
||||
#
|
||||
# Use this when ony a sub-set of the by default enabled channels are being
|
||||
# used. For example when only using the first 8 channels of the US band.
|
||||
# Note: when left blank / empty array, all channels will be enabled.
|
||||
enabled_uplink_channels=[72, 73, 74, 75, 76, 77, 78, 79]
|
||||
enabled_uplink_channels = [72, 73, 74, 75, 76, 77, 78, 79]
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=2
|
||||
ping_slot_dr = 2
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="cn779"
|
||||
id = "cn779"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="CN779"
|
||||
description = "CN779"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="CN779"
|
||||
common_name = "CN779"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="cn779"
|
||||
topic_prefix = "cn779"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,22 +115,22 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=779500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 779500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=779700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 779700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=779900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 779900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -133,7 +142,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -141,19 +150,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=786000000
|
||||
rx2_frequency = 786000000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -161,13 +170,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -177,44 +186,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="eu433"
|
||||
id = "eu433"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="EU443"
|
||||
description = "EU443"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="EU433"
|
||||
common_name = "EU433"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="eu433"
|
||||
topic_prefix = "eu433"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,22 +115,22 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=433175000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 433175000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=433375000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 433375000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=433575000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 433575000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -133,7 +142,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -141,19 +150,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=434665000
|
||||
rx2_frequency = 434665000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -161,13 +170,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -177,44 +186,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="eu868"
|
||||
id = "eu868"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="EU868"
|
||||
description = "EU868"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="EU868"
|
||||
common_name = "EU868"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="eu868"
|
||||
topic_prefix = "eu868"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,64 +115,64 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=868100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 868100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=868300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 868300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=868500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 868500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=867100000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 867100000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=867300000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 867300000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=867500000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 867500000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=867700000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 867700000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=867900000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 867900000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=868300000
|
||||
bandwidth=250000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7]
|
||||
frequency = 868300000
|
||||
bandwidth = 250000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=868800000
|
||||
bandwidth=125000
|
||||
modulation="FSK"
|
||||
datarate=50000
|
||||
frequency = 868800000
|
||||
bandwidth = 125000
|
||||
modulation = "FSK"
|
||||
datarate = 50000
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -175,7 +184,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -183,19 +192,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=0
|
||||
rx2_dr = 0
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=869525000
|
||||
rx2_frequency = 869525000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -203,13 +212,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -219,72 +228,72 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=3
|
||||
ping_slot_dr = 3
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
||||
|
||||
# Below is the common set of extra channels. Please make sure that these
|
||||
# channels are also supported by the gateways.
|
||||
[[regions.network.extra_channels]]
|
||||
frequency=867100000
|
||||
min_dr=0
|
||||
max_dr=5
|
||||
frequency = 867100000
|
||||
min_dr = 0
|
||||
max_dr = 5
|
||||
|
||||
[[regions.network.extra_channels]]
|
||||
frequency=867300000
|
||||
min_dr=0
|
||||
max_dr=5
|
||||
frequency = 867300000
|
||||
min_dr = 0
|
||||
max_dr = 5
|
||||
|
||||
[[regions.network.extra_channels]]
|
||||
frequency=867500000
|
||||
min_dr=0
|
||||
max_dr=5
|
||||
frequency = 867500000
|
||||
min_dr = 0
|
||||
max_dr = 5
|
||||
|
||||
[[regions.network.extra_channels]]
|
||||
frequency=867700000
|
||||
min_dr=0
|
||||
max_dr=5
|
||||
frequency = 867700000
|
||||
min_dr = 0
|
||||
max_dr = 5
|
||||
|
||||
[[regions.network.extra_channels]]
|
||||
frequency=867900000
|
||||
min_dr=0
|
||||
max_dr=5
|
||||
frequency = 867900000
|
||||
min_dr = 0
|
||||
max_dr = 5
|
||||
|
@ -2,14 +2,23 @@
|
||||
[[regions]]
|
||||
|
||||
# ID is an user-defined identifier for this region.
|
||||
id="in865"
|
||||
id = "in865"
|
||||
|
||||
# Description is a short description for this region.
|
||||
description="IN865"
|
||||
description = "IN865"
|
||||
|
||||
# Common-name refers to the common-name of this region as defined by
|
||||
# the LoRa Alliance.
|
||||
common_name="IN865"
|
||||
common_name = "IN865"
|
||||
|
||||
# User-defined region information.
|
||||
#
|
||||
# This information will be displayed on top of the region page in then
|
||||
# ChirpStack web-interface. For example, it can contain information about
|
||||
# how users should connect their gateways when using this region (e.g. MQTT
|
||||
# end-point, MQTT topic prefix, TLS configuration etc). Markdown syntax can
|
||||
# be used for formatting.
|
||||
user_info = ""
|
||||
|
||||
|
||||
# Gateway configuration.
|
||||
@ -18,14 +27,14 @@
|
||||
# Force gateways as private.
|
||||
#
|
||||
# If enabled, gateways can only be used by devices under the same tenant.
|
||||
force_gws_private=false
|
||||
force_gws_private = false
|
||||
|
||||
|
||||
# Gateway backend configuration.
|
||||
[regions.gateway.backend]
|
||||
|
||||
# The enabled backend type.
|
||||
enabled="mqtt"
|
||||
enabled = "mqtt"
|
||||
|
||||
# MQTT configuration.
|
||||
[regions.gateway.backend.mqtt]
|
||||
@ -35,7 +44,7 @@
|
||||
# The topic prefix can be used to define the region of the gateway.
|
||||
# Note, there is no need to add a trailing '/' to the prefix. The trailing
|
||||
# '/' is automatically added to the prefix if it is configured.
|
||||
topic_prefix="in865"
|
||||
topic_prefix = "in865"
|
||||
|
||||
# Shared subscription name.
|
||||
#
|
||||
@ -45,16 +54,16 @@
|
||||
# test-environment connected to the same MQTT broker, make sure that
|
||||
# each environment has its own subscription name, for example:
|
||||
# chirpstack_prod and chirpstack_tst.
|
||||
share_name="chirpstack"
|
||||
share_name = "chirpstack"
|
||||
|
||||
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
||||
server="tcp://localhost:1883"
|
||||
server = "tcp://localhost:1883"
|
||||
|
||||
# Connect with the given username (optional)
|
||||
username=""
|
||||
username = ""
|
||||
|
||||
# Connect with the given password (optional)
|
||||
password=""
|
||||
password = ""
|
||||
|
||||
# Quality of service level
|
||||
#
|
||||
@ -64,40 +73,40 @@
|
||||
#
|
||||
# Note: an increase of this value will decrease the performance.
|
||||
# For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels
|
||||
qos=0
|
||||
qos = 0
|
||||
|
||||
# Clean session
|
||||
#
|
||||
# Set the "clean session" flag in the connect message when this client
|
||||
# connects to an MQTT broker. By setting this flag you are indicating
|
||||
# that no messages saved by the broker for this client should be delivered.
|
||||
clean_session=false
|
||||
clean_session = false
|
||||
|
||||
# Client ID
|
||||
#
|
||||
# Set the client id to be used by this client when connecting to the MQTT
|
||||
# broker. A client id must be no longer than 23 characters. If left blank,
|
||||
# a random id will be generated by ChirpStack.
|
||||
client_id=""
|
||||
client_id = ""
|
||||
|
||||
# Keep alive interval.
|
||||
#
|
||||
# This defines the maximum time that that should pass without communication
|
||||
# between the client and server.
|
||||
keep_alive_interval="30s"
|
||||
keep_alive_interval = "30s"
|
||||
|
||||
# CA certificate file (optional)
|
||||
#
|
||||
# Use this when setting up a secure connection (when server uses ssl://...)
|
||||
# but the certificate used by the server is not trusted by any CA certificate
|
||||
# on the server (e.g. when self generated).
|
||||
ca_cert=""
|
||||
ca_cert = ""
|
||||
|
||||
# TLS certificate file (optional)
|
||||
tls_cert=""
|
||||
tls_cert = ""
|
||||
|
||||
# TLS key file (optional)
|
||||
tls_key=""
|
||||
tls_key = ""
|
||||
|
||||
|
||||
# Gateway channel configuration.
|
||||
@ -106,22 +115,22 @@
|
||||
# ChirpStack Concentratord daemon. In any other case, this configuration
|
||||
# is ignored.
|
||||
[[regions.gateway.channels]]
|
||||
frequency=865062500
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 865062500
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=865402500
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 865402500
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
[[regions.gateway.channels]]
|
||||
frequency=865985000
|
||||
bandwidth=125000
|
||||
modulation="LORA"
|
||||
spreading_factors=[7, 8, 9, 10, 11, 12]
|
||||
frequency = 865985000
|
||||
bandwidth = 125000
|
||||
modulation = "LORA"
|
||||
spreading_factors = [7, 8, 9, 10, 11, 12]
|
||||
|
||||
|
||||
# Region specific network configuration.
|
||||
@ -133,7 +142,7 @@
|
||||
# resulting in a lower data-rate but decreasing the chance that the
|
||||
# device gets disconnected because it is unable to reach one of the
|
||||
# surrounded gateways.
|
||||
installation_margin=10
|
||||
installation_margin = 10
|
||||
|
||||
# RX window (Class-A).
|
||||
#
|
||||
@ -141,19 +150,19 @@
|
||||
# 0: RX1 / RX2
|
||||
# 1: RX1 only
|
||||
# 2: RX2 only
|
||||
rx_window=0
|
||||
rx_window = 0
|
||||
|
||||
# RX1 delay (1 - 15 seconds).
|
||||
rx1_delay=1
|
||||
rx1_delay = 1
|
||||
|
||||
# RX1 data-rate offset
|
||||
rx1_dr_offset=0
|
||||
rx1_dr_offset = 0
|
||||
|
||||
# RX2 data-rate
|
||||
rx2_dr=2
|
||||
rx2_dr = 2
|
||||
|
||||
# RX2 frequency (Hz)
|
||||
rx2_frequency=866550000
|
||||
rx2_frequency = 866550000
|
||||
|
||||
# Prefer RX2 on RX1 data-rate less than.
|
||||
#
|
||||
@ -161,13 +170,13 @@
|
||||
# is smaller than the configured value, then the Network Server will
|
||||
# first try to schedule the downlink for RX2, failing that (e.g. the gateway
|
||||
# has already a payload scheduled at the RX2 timing) it will try RX1.
|
||||
rx2_prefer_on_rx1_dr_lt=0
|
||||
rx2_prefer_on_rx1_dr_lt = 0
|
||||
|
||||
# Prefer RX2 on link budget.
|
||||
#
|
||||
# When the link-budget is better for RX2 than for RX1, the Network Server will first
|
||||
# try to schedule the downlink in RX2, failing that it will try RX1.
|
||||
rx2_prefer_on_link_budget=false
|
||||
rx2_prefer_on_link_budget = false
|
||||
|
||||
# Downlink TX Power (in dBm EIRP)
|
||||
#
|
||||
@ -177,44 +186,44 @@
|
||||
# Please consult the LoRaWAN Regional Parameters and local regulations
|
||||
# for valid and legal options. Note that the configured TX Power must be
|
||||
# supported by your gateway(s).
|
||||
downlink_tx_power=-1
|
||||
downlink_tx_power = -1
|
||||
|
||||
# ADR is disabled.
|
||||
adr_disabled=false
|
||||
adr_disabled = false
|
||||
|
||||
# Minimum data-rate.
|
||||
min_dr=0
|
||||
min_dr = 0
|
||||
|
||||
# Maximum data-rate.
|
||||
max_dr=5
|
||||
max_dr = 5
|
||||
|
||||
|
||||
# Rejoin-request configuration (LoRaWAN 1.1)
|
||||
[regions.network.rejoin_request]
|
||||
|
||||
# Request devices to periodically send rejoin-requests.
|
||||
enabled=false
|
||||
enabled = false
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_count_n + 4)
|
||||
# uplink messages. Valid values are 0 to 15.
|
||||
max_count_n=0
|
||||
max_count_n = 0
|
||||
|
||||
# The device must send a rejoin-request type 0 at least every 2^(max_time_n + 10)
|
||||
# seconds. Valid values are 0 to 15.
|
||||
#
|
||||
# 0 = roughly 17 minutes
|
||||
# 15 = about 1 year
|
||||
max_time_n=0
|
||||
max_time_n = 0
|
||||
|
||||
|
||||
# Class-B configuration.
|
||||
[regions.network.class_b]
|
||||
|
||||
# Ping-slot data-rate.
|
||||
ping_slot_dr=4
|
||||
ping_slot_dr = 4
|
||||
|
||||
# Ping-slot frequency (Hz)
|
||||
#
|
||||
# set this to 0 to use the default frequency plan for the configured region
|
||||
# (which could be frequency hopping).
|
||||
ping_slot_frequency=0
|
||||
ping_slot_frequency = 0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user