mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-12 20:48:09 +00:00
Implement adding gws to multicast-group + Class-C scheduling config.
This makes it possible to add gateways to a multicast-group, which in case configured will always be used for transmitting the multicast downlinks. This also moves the multicast class-c scheduling to the multicast-group configuration. Options are delay between multiple gateways, or GPS time synchronized transmission.
This commit is contained in:
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ApplicationProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceProfileTemplateProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "FrameLogProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -186,6 +187,9 @@ message ListGatewaysRequest {
|
||||
// Tenant ID (UUID) to filter gateways on.
|
||||
// To list all gateways as a global admin user, this field can be left blank.
|
||||
string tenant_id = 4;
|
||||
|
||||
// Multicast-group ID (UUID) to filter gateways on.
|
||||
string multicast_group_id = 5;
|
||||
}
|
||||
|
||||
message ListGatewaysResponse {
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "InternalProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MulticastGroupProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
@ -67,10 +68,25 @@ service MulticastGroupService {
|
||||
};
|
||||
}
|
||||
|
||||
// Add the given item to the multcast group queue.
|
||||
// Add a gateway to the multicast group.
|
||||
rpc AddGateway(AddGatewayToMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multicast-groups/{multicast_group_id}/gateways"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
// Remove a gateway from the multicast group.
|
||||
rpc RemoveGateway(RemoveGatewayFromMulticastGroupRequest) returns (google.protobuf.Empty) {
|
||||
option(google.api.http) = {
|
||||
delete: "/api/multicast-groups/{multicast_group_id}/gateways/{gateway_id}"
|
||||
};
|
||||
}
|
||||
|
||||
// Add the given item to the multicast group queue.
|
||||
rpc Enqueue(EnqueueMulticastGroupQueueItemRequest) returns (EnqueueMulticastGroupQueueItemResponse) {
|
||||
option(google.api.http) = {
|
||||
post: "/api/multcast-groups/{queue_item.multicast_group_id}/queue"
|
||||
post: "/api/multicast-groups/{queue_item.multicast_group_id}/queue"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
@ -98,6 +114,19 @@ enum MulticastGroupType {
|
||||
CLASS_B = 1;
|
||||
}
|
||||
|
||||
enum MulticastGroupSchedulingType {
|
||||
// Delay.
|
||||
// If multicast downlinks must be sent through multiple gateways, then
|
||||
// these will be sent one by one with a delay between each gateway.
|
||||
DELAY = 0;
|
||||
|
||||
// Time.
|
||||
// If multicast downlinks must be sent through multiple gateways, then
|
||||
// these will be sent simultaneously using GPS time synchronization.
|
||||
// Note that this does require GPS time-synchronized LoRa gateways.
|
||||
GPS_TIME = 1;
|
||||
}
|
||||
|
||||
message MulticastGroup {
|
||||
// ID (UUID).
|
||||
// This will be generated automatically on create.
|
||||
@ -136,6 +165,9 @@ message MulticastGroup {
|
||||
|
||||
// Ping-slot period (only for Class-B).
|
||||
uint32 class_b_ping_slot_period = 12;
|
||||
|
||||
// Scheduling type (only for Class-C).
|
||||
MulticastGroupSchedulingType class_c_scheduling_type = 13;
|
||||
}
|
||||
|
||||
message MulticastGroupListItem {
|
||||
@ -232,6 +264,22 @@ message RemoveDeviceFromMulticastGroupRequest {
|
||||
string dev_eui = 2;
|
||||
}
|
||||
|
||||
message AddGatewayToMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Gateway ID (HEX encoded).
|
||||
string gateway_id = 2;
|
||||
}
|
||||
|
||||
message RemoveGatewayFromMulticastGroupRequest {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
||||
// Gateway ID (HEX encoded).
|
||||
string gateway_id = 2;
|
||||
}
|
||||
|
||||
message MulticastGroupQueueItem {
|
||||
// Multicast group ID.
|
||||
string multicast_group_id = 1;
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "RequestLogProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "chirpstack-api/common/common.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "TenantProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/api";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UserProto";
|
||||
option csharp_namespace = "Chirpstack.Api";
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/common";
|
||||
option java_package = "io.chirpstack.api";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option csharp_namespace = "Chirpstack.Common";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
|
1
api/python/proto/chirpstack-api/gw/gw.proto
vendored
1
api/python/proto/chirpstack-api/gw/gw.proto
vendored
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/gw";
|
||||
option java_package = "io.chirpstack.api.gw";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GatewayProto";
|
||||
option csharp_namespace = "Chirpstack.Gateway";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/brocaar/chirpstack/api/go/v4/integration";
|
||||
option java_package = "io.chirpstack.api.integration";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "IntegrationProto";
|
||||
option csharp_namespace = "Chirpstack.Integration";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "chirpstack-api/gw/gw.proto";
|
||||
|
@ -6,6 +6,7 @@ option go_package = "github.com/chirpstack/chirpstack/api/go/v4/meta";
|
||||
option java_package = "io.chirpstack.api.meta";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetaProto";
|
||||
option csharp_namespace = "Chirpstack.Meta";
|
||||
|
||||
import "chirpstack-api/common/common.proto";
|
||||
import "chirpstack-api/gw/gw.proto";
|
||||
|
Reference in New Issue
Block a user