-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathRTI.rid
332 lines (291 loc) · 15.2 KB
/
RTI.rid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
# ================================
# Portico RTI Initialization Data
# ================================
# This file contains all available configuration options for Portico.
# Values are initially commented out and are provided shown with their default settings.
#
# All options are formatted as name=value pairs, the '#' and '!' characters mark comment lines
#
# To make use of this file, put it in the directory that your federate is executed from, or set the
# RTI_RID_FILE environment variable to point at wherever it is located.
#
# ===================================
# 1. General Portico Logging Options
# ===================================
# (NOTE) Some sub-components have their own log settings. See the sections relaing to them for
# those particular properties.
# (1.1) Portico Log Directory
# Specify the directory to put the Portico log-files into. This defaults to "logs" and
# if a relative path is used, it will be releative to the location of the process that
# executed Portico
#
# portico.logdir = logs
# (1.2) Portico Log Level
# Specify the level that Portico will log at. Valid values are: TRACE, DEBUG, INFO, WARN,
# ERROR, FATAL, OFF. The default value is "WARN".
#
# portico.loglevel = INFO
# (1.3) Print FOM when federate Joins
# When a federate joins a federation, Portico can pretty-print the FOM data of that
# federation. If this is enabled, the FOM is logged to the INFO level (so make sure you
# have logging turned up high enough). By default this is disabled.
#
# portico.fom.print = disabled
# (1.4) Logging by Handle/Name
# Making sense of log files can be difficult. To help make sense of this data, various bits
# of HLA information can be logged by their HLA handle or their name. For example, an HLA
# object class can be logged by its handle, or by its name.
#
# Any items specified in logWithHandles are logged using their handles (and vice versa for
# logWithNames). The format of these properties is a comma-separated list containing any of
# the following identifiers (defaults specified in parentheses):
#
# objectClass (handle)
# attributeClass (handle)
# interactionClass (handle)
# parameterClass (handle)
# objectInstance (name)
# space (handle)
# dimension (handle)
# federate (name)
#
# (NOTE) You only have to specify the bits you want. If a value isn't specified in either
# list, it will assume its default value. If a value is specified in both lists, the
# logWithNames takes precedence.
#
# portico.logWithHandles=objectClass,attributeClass,interactionClass,parameterClass,space,dimension
# portico.logWithNames=objectInstance,federate
# ================================
# 2. HLA Related RTI Properties
# ================================
# These settings relate to how the RTI works with regard to HLA operations
# (2.1) Management Object Model
# This controls whether or not the MOM is enabled. By default it is turned on, but if you
# don't want it you can turn it off. Valid values are "enabled" and "disabled"
#
# portico.mom = enabled
# (2.2) Save/Restore Data Files Directory
# This specifies the path to the directory where federate save/restore data files are stored.
# By default, this is the "savedata" directory relative to the directory that the federate
# was launched from. Any valid operating system path can be specified, as long as it is
# writeable by the operating system user under which the federate is executing
#
# portico.saveDirectory = ./savedata
# (2.3) Unsupported Methods Throw Exceptions
# Portico does not support all the RTIambassador methods in all interface versions. To alert
# users to situations where a method is called that isn't support, Portico will log a warning
# and take no action. This is often a non-fatal action, but in some situations it may cause
# federates to stall or misbehave. As such, if this value is set to true, an RTIinternalError
# will be thrown when an unsupported method is called. By default, this is false.
#
# portico.unsupportedExceptions = false
# (2.4) Object Names Negotiated With Federation
# When registering an object with a specific name, to ensure that name is unique, the
# federate much negotiate with the rest of the federation. This incurs a performance hit.
# By default, this negotiation is turned off. If you have problems with conflicting names,
# set this property to true. In the default mode (negotiation disabled) the RTI is not
# totally standards compliant, and conflicts can occur if federates try to register objects
# with the same name at the same time (if the requests are sufficiently spaced out in time,
# this problem shouldn't occur).
#
# portico.object.negotiateNames = false
# (2.5) Unique Federate Names
# By default, Portico, like other RTIs, will ensure that all federates in a federation have
# unique names. However, in some situations this is not desirable (like running Portico with
# JSAF or VBS2). In this case, you can turn the unique name checking to false. When you do
# this, what happens is that when Portico sees a name conflict, rather than throwing an
# exception it will change the requested name from "name" to "name (handle)" thus making it
# unique. Default is true, set to false to turn unique name checking off.
#
# portico.uniqueFederateNames = true
# ================================
# 3. Advanced Options
# ================================
# These really shouldn't be changed unless you really know what you want
# (3.1) Portico Communications Binding
# Defines the mechanism used by federates to communicate. Two valid options: jgroups, jvm.
#
# jgroups: Use for LAN/WAN communications (default)
# jvm: Use when running many federates in separate threads within a single process.
#
# portico.connection = jgroups
# (3.2) LRC Tick Timeout
# When a federate calls tick() and there is no work to do, the LRC will wait for a period of
# time to allow work to arrive before it returns. This is designed to avoid a busy-looping
# situation where people are calling tick in a loop while waiting for some event.
#
# The period of time the LRC will wait is specified by this value (in *MILLISECONDS*).
# DEFAULT = 5
#
# (NOTE) This does not apply to the tick(min,max) call (in that case, the LRC will wait
# for at most "min" seconds for work to arrive).
#
# portico.lrc.tt = 5
portico.lrc.queue.warningCount = -1
# =========================================
# 4. JGroups Network Settings
# =========================================
# Portico uses the JGroups library for its inter-federate network communication.
# These settings control various parameters of the network layer and JGroups itself.
# (4.1) JGroups UDP Address and Port
# Address and port to use for communication between federates.
# DEFAULT: 239.20.9.13:20913
#
# portico.jgroups.udp.address = 239.20.9.13
# portico.jgroups.udp.port = 20913
# (4.2) JGroups Bind Address
# The address/NIC Portico should use. Can use an IP address associated with a NIC, or
# one of the following special values:
#
# GLOBAL: Pick a global IP address if available. If not, falls back to a SITE_LOCAL IP address.
# SITE_LOCAL: Picks a site local (non routable) IP address, e.g. from the 192.168.0.0 or 10.0.0.0 address range.
# LINK_LOCAL: Picks a link-local IP address, from 169.254.1.0 through 169.254.254.255.
# NON_LOOPBACK: Picks any non loopback address.
# LOOPBACK: Pick a loopback address, e.g. 127.0.0.1.
# match-interface: Pick an address which matches a pattern against the interface name, e.g. match-interface:eth.*
# match-address: Pick an address which matches a pattern against the host address, e.g. match-address:192.168.*
# match-host: Pick an address which matches a pattern against the host name, e.g. match-host:linux.*
#
# DEFAULT: SITE_LOCAL
#
#portico.jgroups.udp.bindAddress = 192.168.111.168
# (4.3) JGroups UDP Sent/Receive Buffer Size
# Incoming/Outgoing buffer sizes. Default receive buffer is quite large to allow ample
# space on fast networks and avoid dropped packets.
#
# portico.jgroups.udp.receiveBuffer = 25M
# portico.jgroups.udp.sendBuffer = 640K
# (4.4) JGroups Bundling Support
# If you are sending lots of smaller messages, higher overall throughput can be obtained by
# bundling them together into a fewer number of larger messages. However, doing so comes at
# the cost of latency. Messages are buffered until either the timeout period (milliseconds)
# is reached, or the total size of the messages exceeds the specified threshold. Bundling
# is enabled by default. For latency-critical tasks, disable it or reduce the max-timeout.
#
# portico.jgroups.bundling = true
# portico.jgroups.bundling.maxSize = 64K
# portico.jgroups.bundling.maxTime = 30
# (4.5) JGroups Flow Control
# Flow control is used to rate limit transmission so that slow receivers don't get overrun,
# causing them to drop messages and requiring expensive retransmission.
#
# This value sets the maximum number of bytes that can be sent by a federate before it
# needs to receive more credits from other cluster members. These credits are not sent
# until the other federates have processed enough of the prior sent messages. The ratio
# setting defines how far through its current credits a sender can get before it should
# issue a request for more.
#
# Setting the credit limit higher will allow a federate to send more messages before it
# gets blocked. Consider adjusting this value in conjunction with the buffer sizes, as
# they will dictate storage capacity on the sender side.
#
# Note: If you start experiencing unstable behaviour, turn this value down. Flow control
# can be sensitive to the number of messages you try to send out in a hurry. If
# bundling is enabled, you can use a higher value because although you are sending
# more messages, the actual number hitting the network is smaller.
#
# portico.jgroups.flow.credits = 2M
# portico.jgroups.flow.threshold = 0.4
# (4.6) Packet Fragmentation Size
# Messages larger than this size will be broken down into smaller ones for transmission,
# reducing potentially lengthy delays retransmitting whole large messages when a single
# datagram is lost.
# Note: The max bundling size must be greater than this value.
#
# portico.jgroups.frag.size = 60K
# (4.7) JGroups Traffic Auditing
# If this option is enabled a special log file will be produced for each federate listing
# the messages it has sent and received, along with their size and other useful details.
# This information can be used to make judgements about network config (such as bundling
# limits) or to just see what is happening in the federation at a network level.
#
# The audit files are placed in the logs directory (see sec 1.1) with the name:
# "audit-FEDERATENAME.log"
#
# If the auditor is enabled you can specify a detail level to control what is logged.
# When set to "full", each message will be logged with its specific details. (default)
# When set to "summary", only the summary tables will be printed
#
# portico.jgroups.auditor.enabled = false
# portico.jgroups.auditor.details = full
# (4.8) JGroups Traffic Audit Filtering
# Federates can generate a lot of messages. Sometimes you really just want to zero in
# on a particular type of message, or messages for a particular FOM type. These filters
# let you do that. These filters work in combination. For example, consider the following:
# - action = sent
# - type = UpdateAttributes
# - fomtype = Lifeform, GroundVehicle
#
# Given this, only attribute updates for the FOM classes "Lifeform" and "GroundVehicle"
# that the local federate sends will be logged. Leaving a value empty, or using the
# keyword "all" will cause no filtering for that type to be applied.
#
# NOTE: If the detail level is set to "summary", -no- individual messages will be logged,
# regardless of the filter settings.
#
# portico.jgroups.auditor.filter.direction =
# portico.jgroups.auditor.filter.message =
# portico.jgroups.auditor.filter.fomtype =
# =========================================
# 5. WAN Connection Options
# =========================================
# (5.1) WAN Mode Enable/Disable
# If true, WAN mode will be enabled and this federate will act as both a
# local participant, and also as a bridge for all the local federates.
# Messages exchanged on the local JGroups channel will be forwarded to a
# central router (see 5.2) to be reflected out to other sites. Messagest
# received from the router will be pushed out to the local JGroups channel
# so everyone here can process them.
#
# Note that this mode does not support bundling. If enabled in the RID, it
# will be active on the local JGroups network, but ignored for the WAN.
#
# Note: Router must be running before federate startup. If not - federates
# will fail to start.
#
# Default: false
#
#portico.wan.enabled = true
# (5.2) Router Address/Port
# Specifies the address and port of the WAN router to use. Note that the
# syntax is "address:port".
#
# Default: 127.0.0.1:23114
#
#portico.wan.router = 192.168.10.220:23114
# (5.2) Enable / Disable Bundling
# Bundling enables higher throughput by grouping together a number of
# smaller messages and sending them as one. This makes much more efficient
# use of the network and provides considerable improvements to throughput
# at a minor cost to latency.
#
# If enabled, the subsequent options will control how it is applied.
#
# Default: true
#
# portico.wan.bundle.enabled = true
# (5.3) Max Bundle Size
# Messages sent over the WAN will be grouped into bundles and sents as
# a batch when their total size exceeds this value. Specify a size with
# a suffix of 'b', 'k' or 'm' (or 'g' if you dare!)
#
# Default: 64k
#
# portico.wan.bundle.maxsize = 64K
# (5.4) Max Bundle Timeout
# The maximum amount of time we will hold messages in the bundler for while
# waiting for more messages to arrive and bundle together. From the time that
# a message is received, the bundler will hold it for no longer than this
# value (specified in milliseconds).
#
# Default: 20
#
# portico.wan.bundle.timeout = 20
# =========================================
# A51. Undocumented Settings
# =========================================
# This section is a catch-all of settings we use for internal work, and infrequently.
# Their specific usecase and function is undocumented as they are not intended for general use.
# portico.container.loglevel = OFF
# portico.jgroups.loglevel = OFF
# portico.jgroups.timeout = 1000