1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package jgroup.relacs.config;
20
21 import jgroup.core.ConfigurationException;
22
23
24
25
26
27
28
29
30
31
32
33 final public class TransportConfig
34 implements ConfigurationObject
35 {
36
37
38
39
40
41 private static final String dsPayloadAttrib = "payload";
42 private static final String dsMulticastTTLAttrib = "multicastTTL";
43 private static final String dsAlfaNAttrib = "alfaN";
44 private static final String dsAlfaDAttrib = "alfaD";
45 private static final String dsRoutingTimeoutAttrib = "routingTimeout";
46 private static final String dsCongestionTimeoutAttrib = "congestionTimeout";
47 private static final String dsStartingWindowAttrib = "startingWindow";
48 private static final String dsMaxWindowAttrib = "maxWindow";
49 private static final String dsMinWindowAttrib = "minWindow";
50 private static final String dsMaxTTLAttrib = "maxTTL";
51 private static final String dsTTLWarningAttrib = "TTLWarning";
52 private static final String dsMaxPathLengthAttrib = "maxPathLength";
53 private static final String dsPathLengthWarningAttrib = "pathLengthWarning";
54 private static final String dsLocalPingTimeoutAttrib = "localPingTimeout";
55 private static final String dsdaemonLookupRetryNoAttrib = "daemonLookupRetryNo";
56 private static final String dsdaemonLookupRetryDelayAttrib = "daemonLookupRetryDelay";
57
58
59
60
61
62
63
64 private static final int PAYLOAD = 1024;
65
66
67 private static final int MULTICAST_TTL = 2;
68
69
70 private static final int ALFAN = 7;
71
72
73 private static final int ALFAD = 8;
74
75
76 private static final int ROUTING_TIMEOUT = 1000;
77
78
79 private static final int CONGESTION_TIMEOUT = 1000;
80
81
82 private static final int STARTING_WINDOW = 100;
83
84
85 private static final int MAX_WINDOW = 10;
86
87
88 private static final int MIN_WINDOW = 1;
89
90
91 private static final int MAX_TTL = 6;
92
93
94 private static final int TTL_WARNING = MAX_TTL / 2;
95
96
97 private static final int MAX_PATH_LENGTH = 6;
98
99
100 private static final int PATH_LENGTH_WARNING = MAX_PATH_LENGTH / 2;
101
102
103 private static final int LOCAL_PING_TIMEOUT = 2000;
104
105
106 private static final int RETRIES = 5;
107
108
109 private static final int RETRY_DELAY = 2000;
110
111
112
113
114
115
116
117 private int payload;
118
119
120 private int multicastTTL;
121
122
123 private int alfan;
124
125
126 private int alfad;
127
128
129 private int routingTimeout;
130
131
132 private int congestionTimeout;
133
134
135 private int startingWindow;
136
137
138 private int maxWindow;
139
140
141 private int minWindow;
142
143
144 private int maxTTL;
145
146
147 private int ttlWarning;
148
149
150 private int maxPathLength;
151
152
153 private int pathLengthWarning;
154
155
156 private int localPingTimeout;
157
158
159 private int retryNo;
160
161
162 private int retryDelay;
163
164
165
166
167
168
169
170
171
172
173 public TransportConfig()
174 {
175 this(PAYLOAD, MULTICAST_TTL, ALFAN, ALFAD, ROUTING_TIMEOUT, CONGESTION_TIMEOUT,
176 STARTING_WINDOW, MAX_WINDOW, MIN_WINDOW, MAX_TTL, TTL_WARNING,
177 MAX_PATH_LENGTH, PATH_LENGTH_WARNING, LOCAL_PING_TIMEOUT, RETRIES, RETRY_DELAY);
178 }
179
180
181
182
183
184
185 public TransportConfig(int payload, int multicastTTL, int alfan, int alfad, int congestionTimeout,
186 int routingTimeout, int startingWindow, int maxWindow, int minWindow, int maxTTL,
187 int ttlWarning, int maxPathLength, int pathLengthWarning, int localPingTimeout, int retryNo, int retryDelay)
188 {
189 this.payload = payload;
190 this.multicastTTL = multicastTTL;
191 this.alfan = alfan;
192 this.alfad = alfad;
193 this.congestionTimeout = congestionTimeout;
194 this.routingTimeout = routingTimeout;
195 this.startingWindow = startingWindow;
196 this.maxWindow = maxWindow;
197 this.minWindow = minWindow;
198 this.maxTTL = maxTTL;
199 this.ttlWarning = ttlWarning;
200 this.maxPathLength = maxPathLength;
201 this.pathLengthWarning = pathLengthWarning;
202 this.localPingTimeout = localPingTimeout;
203 this.retryNo = retryNo;
204 this.retryDelay = retryDelay;
205 }
206
207
208
209
210
211
212
213
214
215 public void parse(org.w3c.dom.Element elm)
216 throws ConfigurationException
217 {
218 payload = ConfigParser.getIntAttrib(elm, dsPayloadAttrib, false);
219 multicastTTL = ConfigParser.getIntAttrib(elm, dsMulticastTTLAttrib, false);
220 alfan = ConfigParser.getIntAttrib(elm, dsAlfaNAttrib, false);
221 alfad = ConfigParser.getIntAttrib(elm, dsAlfaDAttrib, false);
222 routingTimeout = ConfigParser.getIntAttrib(elm, dsRoutingTimeoutAttrib, false);
223 congestionTimeout = ConfigParser.getIntAttrib(elm, dsCongestionTimeoutAttrib, false);
224 startingWindow = ConfigParser.getIntAttrib(elm, dsStartingWindowAttrib, false);
225 maxWindow = ConfigParser.getIntAttrib(elm, dsMaxWindowAttrib, false);
226 minWindow = ConfigParser.getIntAttrib(elm, dsMinWindowAttrib, false);
227 maxTTL = ConfigParser.getIntAttrib(elm, dsMaxTTLAttrib, false);
228 ttlWarning = ConfigParser.getIntAttrib(elm, dsTTLWarningAttrib, false);
229 maxPathLength = ConfigParser.getIntAttrib(elm, dsMaxPathLengthAttrib, false);
230 pathLengthWarning = ConfigParser.getIntAttrib(elm, dsPathLengthWarningAttrib, false);
231 localPingTimeout = ConfigParser.getIntAttrib(elm, dsLocalPingTimeoutAttrib, false);
232 retryNo = ConfigParser.getIntAttrib(elm, dsdaemonLookupRetryNoAttrib, false);
233 retryDelay = ConfigParser.getIntAttrib(elm, dsdaemonLookupRetryDelayAttrib, false);
234 }
235
236
237
238
239
240
241
242
243
244 public int getPayload()
245 {
246 return payload;
247 }
248
249
250
251
252
253
254
255
256
257
258
259
260 public int getMulticastTTL()
261 {
262 return multicastTTL;
263 }
264
265
266
267
268
269
270
271
272
273
274 public int getAlfan()
275 {
276 return alfan;
277 }
278
279
280
281
282
283
284
285
286
287
288 public int getAlfad()
289 {
290 return alfad;
291 }
292
293
294
295
296
297
298 public int getRoutingTimeout()
299 {
300 return routingTimeout;
301 }
302
303
304
305
306
307
308 public void setRoutingTimeout(int rt)
309 {
310 routingTimeout = rt;
311 }
312
313
314
315
316
317
318 public int getCongestionTimeout()
319 {
320 return congestionTimeout;
321 }
322
323
324
325
326
327
328
329
330
331 public int getDaemonSuspectTimeout()
332 {
333 return localPingTimeout * 2;
334 }
335
336
337
338
339
340
341 public int getLocalPingRate()
342 {
343 return localPingTimeout;
344 }
345
346
347
348
349
350 public int getStartingWindow()
351 {
352 return startingWindow;
353 }
354
355
356
357
358
359 public int getMaxWindow()
360 {
361 return maxWindow;
362 }
363
364
365
366
367
368 public int getMinWindow()
369 {
370 return minWindow;
371 }
372
373
374
375
376
377
378
379
380
381
382 public int getReachabilityThreshold()
383 {
384 return (maxTTL / 2) + 1;
385 }
386
387
388
389
390
391
392 public int getMaxTTL()
393 {
394 return maxTTL;
395 }
396
397
398
399
400
401 public int getTTLWarning()
402 {
403 return ttlWarning;
404 }
405
406
407
408
409
410 public int getMaxPathLength()
411 {
412 return maxPathLength;
413 }
414
415
416
417
418
419 public int getPathWarning()
420 {
421 return pathLengthWarning;
422 }
423
424
425
426
427
428
429
430
431
432
433 public int getRetryNo()
434 {
435 return retryNo;
436 }
437
438
439
440
441
442
443
444
445
446
447
448
449
450 public int getRetryDelay()
451 {
452 return retryDelay;
453 }
454
455
456
457
458
459
460
461
462 public String toString() {
463 StringBuilder buf = new StringBuilder();
464 buf.append("[p=");
465 buf.append(payload);
466 buf.append(", mTTL=");
467 buf.append(multicastTTL);
468 buf.append(", an=");
469 buf.append(alfan);
470 buf.append(", ad=");
471 buf.append(alfad);
472 buf.append(", rt=");
473 buf.append(routingTimeout);
474 buf.append(", ct=");
475 buf.append(congestionTimeout);
476 buf.append(", sw=");
477 buf.append(startingWindow);
478 buf.append(", maxw=");
479 buf.append(maxWindow);
480 buf.append(", minw=");
481 buf.append(minWindow);
482 buf.append(", maxttl=");
483 buf.append(maxTTL);
484 buf.append(", ttlw=");
485 buf.append(ttlWarning);
486 buf.append(", maxpathl=");
487 buf.append(maxPathLength);
488 buf.append(", pathw=");
489 buf.append(pathLengthWarning);
490 buf.append(", ping=");
491 buf.append(localPingTimeout);
492 buf.append("]");
493 return buf.toString();
494 }
495
496 }