Goby v2
zero_mq_node_config.proto
1 
2 import "goby/common/protobuf/option_extensions.proto";
3 
4 package goby.common.protobuf;
5 
6 message ZeroMQServiceConfig
7 {
8  message Socket
9  {
10  enum SocketType
11  {
12  PUBLISH = 1;
13  SUBSCRIBE = 2;
14  REPLY = 3;
15  REQUEST = 4;
16  // PUSH = 5;
17  // PULL = 6;
18  // DEALER = 7;
19  // ROUTER = 8;
20  }
21  enum Transport
22  {
23  INPROC = 1; // intraprocess - interthread communication
24  IPC = 2; // interprocess - uses Unix Sockets
25  TCP = 3;
26  PGM = 4; // reliable multicast
27  EPGM = 5; // encapsulated PGM over UDP
28  }
29  enum ConnectOrBind
30  {
31  CONNECT = 1;
32  BIND = 2;
33  }
34  required SocketType socket_type = 1;
35  optional uint32 socket_id = 2 [
36  default = 0,
37  (goby.field).description =
38  "defines a socket or group of sockets that are send and "
39  "receive "
40  "together. Sockets with the same id that are must be "
41  "compatible "
42  "(generally have the same SocketType)"
43  ];
44  optional Transport transport = 3 [default = EPGM];
45  optional ConnectOrBind connect_or_bind = 4 [default = CONNECT];
46 
47  // required for TCP, PGM, EPGM
48  optional string ethernet_address = 5 [
49  default = "127.0.0.1",
50  (goby.field).description =
51  "primary IP address of the interface to use"
52  ];
53  optional string multicast_address = 6 [
54  default = "239.255.7.15",
55  (goby.field).description =
56  "only required if `transport`=PGM or EPGM; multicast IP "
57  "address to "
58  "use; 239.252.0.0-239.255.255.255 is recommended (site-local). "
59  "See "
60  "also "
61  "http://www.iana.org/assignments/multicast-addresses/"
62  "multicast-addresses.ml"
63  ];
64  optional uint32 ethernet_port = 7 [default = 11142];
65 
66  // required for INPROC, IPC
67  optional string socket_name = 8;
68  }
69 
70  repeated Socket socket = 1;
71 }