Goby3 3.7.0
2026.11.12
Loading...
Searching...
No Matches
interprocess_config.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "goby/protobuf/option_extensions.proto";
3
4package goby.zenoh.protobuf;
5
6message InterProcessPortalConfig
7{
8 optional string platform = 1 [
9 default = "default_goby_platform",
10 (goby.field) = {
11 description: "Name for this platform (vehicle name, mooring name, topside name, etc.)"
12 }
13 ];
14
15 optional string key_prefix = 2 [
16 default = "goby",
17 (goby.field).description =
18 "First chunk of every key expression, isolating Goby traffic from anything else "
19 "sharing the Zenoh network",
20 (goby.field).cfg = { action: ADVANCED }
21 ];
22
23 enum Mode
24 {
25 PEER = 1;
26 CLIENT = 2;
27 ROUTER = 3;
28 }
29 optional Mode mode = 3 [
30 default = PEER,
31 (goby.field).description =
32 "PEER discovers and connects to other peers directly, CLIENT connects only to a "
33 "router (which must be given in connect_endpoint)"
34 ];
35
36 repeated string connect_endpoint = 4
37 [(goby.field).description =
38 "Endpoint to actively connect to, e.g. \"tcp/192.168.1.10:7447\""];
39
40 repeated string listen_endpoint = 5
41 [(goby.field).description =
42 "Endpoint to listen on, e.g. \"tcp/0.0.0.0:7447\""];
43
44 optional bool multicast_scouting = 6 [
45 default = true,
46 (goby.field).description =
47 "Discover peers on the local network using multicast scouting"
48 ];
49
50 optional string scouting_interface = 7 [
51 (goby.field).description =
52 "Network interface to use for multicast scouting (e.g. \"eth0\")",
53 (goby.field).cfg = { action: ADVANCED }
54 ];
55
56 enum CongestionControl
57 {
58 BLOCK = 1;
59 DROP = 2;
60 }
61 optional CongestionControl congestion_control = 10 [
62 default = BLOCK,
63 (goby.field).description =
64 "BLOCK waits when the network is congested, DROP discards the message",
65 (goby.field).cfg = { action: ADVANCED }
66 ];
67
68 optional bool express = 11 [
69 default = false,
70 (goby.field).description =
71 "Send immediately rather than batching with other messages to save bandwidth",
72 (goby.field).cfg = { action: ADVANCED }
73 ];
74
75 message ConfigOverride
76 {
77 required string key = 1 [
78 (goby.field).description =
79 "Zenoh configuration key, e.g. \"transport/link/tx/queue/size\""
80 ];
81 required string value = 2 [(goby.field).description = "Value as JSON5"];
82 }
83 repeated ConfigOverride json5_override = 30 [
84 (goby.field).description =
85 "Arbitrary Zenoh configuration, applied after all the settings above. Zenoh's "
86 "configuration surface is larger and changes faster than this message tracks.",
87 (goby.field).cfg = { action: ADVANCED }
88 ];
89
90 message Hold
91 {
92 repeated string required_client = 1 [
93 (goby.field).description =
94 "Do not publish until every client named here has declared itself ready"
95 ];
96 optional double settle_seconds = 2 [
97 default = 1,
98 (goby.field).description =
99 "Seconds to wait after the last required client is ready before publishing, so "
100 "that its subscriptions have reached this session",
101 (goby.field).cfg = { action: ADVANCED }
102 ];
103 }
104 optional Hold hold = 40 [
105 (goby.field).description =
106 "Hold publication until the named clients are up, so that messages published at startup "
107 "are not lost before their subscribers exist. Each client announces itself with a Zenoh "
108 "liveliness token, so no broker is involved."
109 ];
110
111 optional string client_name = 20 [
112 (goby.field).description =
113 "Unique name for InterProcessPortal. Defaults to app.name",
114 (goby.field).cfg = { action: ADVANCED }
115 ];
116}