mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-22 17:08:54 +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:
3
api/proto/api/gateway.proto
vendored
3
api/proto/api/gateway.proto
vendored
@ -187,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 {
|
||||
|
47
api/proto/api/multicast_group.proto
vendored
47
api/proto/api/multicast_group.proto
vendored
@ -68,6 +68,21 @@ service MulticastGroupService {
|
||||
};
|
||||
}
|
||||
|
||||
// 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) = {
|
||||
@ -99,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.
|
||||
@ -137,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 {
|
||||
@ -233,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;
|
||||
|
Reference in New Issue
Block a user