2 import "dccl/option_extensions.proto";
3 import "goby/protobuf/option_extensions.proto";
4 import "goby/acomms/protobuf/manipulator.proto";
6 package goby.acomms.protobuf;
8 message QueuedMessageEntry
10 required string protobuf_name = 1;
11 optional bool ack = 2 [default = true];
12 optional uint32 blackout_time = 3 [default = 0];
13 optional uint32 max_queue = 4 [default = 100];
14 optional bool newest_first = 5 [default = true];
15 optional int32 ttl = 6 [default = 1800];
16 optional double value_base = 7 [default = 1];
18 repeated Manipulator manipulator = 10
19 [(goby.field).description =
20 "manipulators to modify the encoding and queuing behavior of the "
32 required RoleType type = 1;
38 optional RoleSetting setting = 2 [default = FIELD_VALUE];
39 optional string field = 3;
40 optional int32 static_value = 4;
42 repeated Role role = 20
43 [(goby.field).description =
44 "Set a message field or static value to various roles (source "
45 "address, destination address, etc.)"];
48 message QueueManagerConfig
50 optional int32 modem_id = 1 [
51 (goby.field).description = "Unique number 1-31 to identify this node",
52 (goby.field).example = "1"
55 repeated QueuedMessageEntry message_entry = 10;
56 optional double on_demand_skew_seconds = 11 [default = 1];
58 optional double minimum_ack_wait_seconds = 20 [default = 0];
60 optional bool skip_decoding = 21 [
62 (goby.field).description =
63 "Skip decoding of the message body upon receipt, just decode the "
64 "header (for use with the goby route module to pass messages on "
65 "without decrypting the body)"
68 repeated int32 make_network_ack_for_src_id = 30;
70 repeated int32 route_for_additional_modem_id = 40
71 [(goby.field).description =
72 "Try to route packets addressed to these modem_ids (in addition "
73 "to those addressed to this modem's actual modem_id)"];
75 message DCCLEncryptRule
77 // if encoding - dest id
78 // if decoding - source id
79 optional int32 id = 1;
80 required string crypto_passphrase = 2;
82 repeated DCCLEncryptRule encrypt_rule = 50;
87 required uint32 dccl_id = 1;
88 required uint32 size = 2;
93 required uint32 dccl_id = 1;
96 message QueuedMessageMeta
98 option (dccl.msg).unit_system = "si";
100 optional uint32 non_repeated_size = 1;
101 optional bool ack_requested = 2;
102 optional int32 src = 3;
103 optional int32 dest = 4;
104 optional uint64 time = 5
105 [(dccl.field) = {units {prefix: "micro" base_dimensions: "T"}}];
107 // last time we tried to send this
108 optional uint64 last_sent_time = 10
109 [(dccl.field) = {units {prefix: "micro" base_dimensions: "T"}}];
111 optional bytes encoded_message = 20;