pud: remove getNodeId, rename getNodeIdWithLength to getNodeId
[olsrd.git] / lib / pud / src / configuration.h
1 #ifndef _PUD_CONFIGURATION_H_
2 #define _PUD_CONFIGURATION_H_
3
4 /* Plugin includes */
5
6 /* OLSR includes */
7 #include "olsrd_plugin.h"
8 #include "olsr_types.h"
9
10 /* System includes */
11 #include <stdbool.h>
12 #include <stddef.h>
13 #include <OlsrdPudWireFormat/wireFormat.h>
14
15 /*
16  * Global Parameters
17  */
18
19 /** The name of the nodeIdType plugin parameter */
20 #define PUD_NODE_ID_TYPE_NAME                                   "nodeIdType"
21
22 /** The default value of the nodeIdType plugin parameter */
23 #define PUD_NODE_ID_TYPE_DEFAULT                                PUD_NODEIDTYPE_IPV4
24
25 NodeIdType getNodeIdTypeNumber(void);
26 int setNodeIdType(const char *value, void *data,
27                 set_plugin_parameter_addon addon);
28
29 /** The name of the nodeId plugin parameter */
30 #define PUD_NODE_ID_NAME                                                "nodeId"
31
32 unsigned char * getNodeId(size_t *length);
33 nodeIdBinaryType * getNodeIdBinary(void);
34 int setNodeId(const char *value, void *data, set_plugin_parameter_addon addon);
35
36 /*
37  * RX Parameters
38  */
39
40 /** The name of the receive non-OLSR interfaces plugin parameter */
41 #define PUD_RX_NON_OLSR_IF_NAME                                 "rxNonOlsrIf"
42
43 bool isRxNonOlsrInterface(const char *ifName);
44 int addRxNonOlsrInterface(const char *value, void *data,
45                 set_plugin_parameter_addon addon);
46 unsigned int getRxNonOlsrInterfaceCount(void);
47 unsigned char * getRxNonOlsrInterfaceName(unsigned int index);
48
49 /** The name of the allowed source IP address plugin parameter */
50 #define PUD_RX_ALLOWED_SOURCE_IP_NAME                   "rxAllowedSourceIpAddress"
51
52 bool isRxAllowedSourceIpAddress(union olsr_sockaddr * sender);
53 int addRxAllowedSourceIpAddress(const char *value, void *data,
54                 set_plugin_parameter_addon addon);
55
56 /** The name of the receive multicast address plugin parameter */
57 #define PUD_RX_MC_ADDR_NAME                                             "rxMcAddr"
58
59 /** The default value of the receive multicast address plugin parameter for IPv4 */
60 #define PUD_RX_MC_ADDR_4_DEFAULT                                "224.0.0.224"
61
62 /** The default value of the receive multicast address plugin parameter for IPv6 */
63 #define PUD_RX_MC_ADDR_6_DEFAULT                                "FF02:0:0:0:0:0:0:1"
64
65 union olsr_sockaddr * getRxMcAddr(void);
66 int
67 setRxMcAddr(const char *value, void *data, set_plugin_parameter_addon addon);
68
69 /** The name of the receive multicast port plugin parameter */
70 #define PUD_RX_MC_PORT_NAME                                             "rxMcPort"
71
72 /** The default value of the receive multicast port plugin parameter */
73 #define PUD_RX_MC_PORT_DEFAULT                                  2240
74
75 unsigned short getRxMcPort(void);
76 int
77 setRxMcPort(const char *value, void *data, set_plugin_parameter_addon addon);
78
79 /** The name of the positionFile plugin parameter */
80 #define PUD_POSFILE_NAME                                                "positionFile"
81
82 char * getPositionFile(void);
83 int setPositionFile(const char *value, void *data, set_plugin_parameter_addon addon);
84
85 /** The name of the positionFilePeriod plugin parameter */
86 #define PUD_POSFILEPERIOD_NAME    "positionFilePeriod"
87
88 /** The default value of the positionFilePeriod plugin parameter */
89 #define PUD_POSFILEPERIOD_DEFAULT ((unsigned long long)0)
90
91 /** The minimal value of the positionFilePeriod plugin parameter */
92 #define PUD_POSFILEPERIOD_MIN     ((unsigned long long)1000)
93
94 /** The maximal value of the positionFilePeriod plugin parameter */
95 #define PUD_POSFILEPERIOD_MAX     ((unsigned long long)320000000)
96
97 unsigned long long getPositionFilePeriod(void);
98 int setPositionFilePeriod(const char *value, void *data, set_plugin_parameter_addon addon);
99
100 /*
101  * TX Parameters
102  */
103
104 /** The name of the transmit non-OLSR interfaces plugin parameter */
105 #define PUD_TX_NON_OLSR_IF_NAME                                 "txNonOlsrIf"
106
107 bool isTxNonOlsrInterface(const char *ifName);
108 int addTxNonOlsrInterface(const char *value, void *data,
109                 set_plugin_parameter_addon addon);
110 unsigned int getTxNonOlsrInterfaceCount(void);
111 unsigned char * getTxNonOlsrInterfaceName(unsigned int index);
112
113 /** The name of the transmit multicast address plugin parameter */
114 #define PUD_TX_MC_ADDR_NAME                                             "txMcAddr"
115
116 /** The default value of the transmit multicast address plugin parameter fro IPv4*/
117 #define PUD_TX_MC_ADDR_4_DEFAULT                                "224.0.0.224"
118
119 /** The default value of the transmit multicast address plugin parameter for IPv6 */
120 #define PUD_TX_MC_ADDR_6_DEFAULT                                "FF02:0:0:0:0:0:0:1"
121
122 union olsr_sockaddr * getTxMcAddr(void);
123 int
124 setTxMcAddr(const char *value, void *data, set_plugin_parameter_addon addon);
125
126 /** The name of the transmit multicast port plugin parameter */
127 #define PUD_TX_MC_PORT_NAME                             "txMcPort"
128
129 /** The default value of the transmit multicast port plugin parameter */
130 #define PUD_TX_MC_PORT_DEFAULT                          2240
131
132 unsigned short getTxMcPort(void);
133 int
134 setTxMcPort(const char *value, void *data, set_plugin_parameter_addon addon);
135
136 /** The name of the transmit multicast time-to-live plugin parameter */
137 #define PUD_TX_TTL_NAME                                                 "txTtl"
138
139 /** The default value of the transmit multicast time-to-live plugin parameter */
140 #define PUD_TX_TTL_DEFAULT                                              1
141
142 unsigned char getTxTtl(void);
143 int setTxTtl(const char *value, void *data, set_plugin_parameter_addon addon);
144
145 /** The name of the transmit multicast NMEA message prefix plugin parameter */
146 #define PUD_TX_NMEAMESSAGEPREFIX_NAME                   "txNmeaMessagePrefix"
147
148 /** The default value of the transmit multicast NMEA message prefix plugin parameter */
149 #define PUD_TX_NMEAMESSAGEPREFIX_DEFAULT                "NBSX"
150
151 unsigned char * getTxNmeaMessagePrefix(void);
152 int setTxNmeaMessagePrefix(const char *value, void *data,
153                 set_plugin_parameter_addon addon);
154
155 /*
156  * Uplink Parameters
157  */
158
159 /** The name of the uplink address plugin parameter */
160 #define PUD_UPLINK_ADDR_NAME                                    "uplinkAddr"
161
162 /** The default value of the uplink address plugin parameter for IPv4*/
163 #define PUD_UPLINK_ADDR_4_DEFAULT                               "0.0.0.0"
164
165 /** The default value of the uplink address plugin parameter for IPv6 */
166 #define PUD_UPLINK_ADDR_6_DEFAULT                               "0:0:0:0:0:0:0:0"
167
168 bool isUplinkAddrSet(void);
169 union olsr_sockaddr * getUplinkAddr(void);
170 int
171 setUplinkAddr(const char *value, void *data, set_plugin_parameter_addon addon);
172
173 /** The name of the uplink port plugin parameter */
174 #define PUD_UPLINK_PORT_NAME                            "uplinkPort"
175
176 /** The default value of the uplink port plugin parameter */
177 #define PUD_UPLINK_PORT_DEFAULT                         2241
178
179 unsigned short getUplinkPort(void);
180 int
181 setUplinkPort(const char *value, void *data, set_plugin_parameter_addon addon);
182
183 /*
184  * Downlink Parameters
185  */
186
187 /** The name of the downlink port plugin parameter */
188 #define PUD_DOWNLINK_PORT_NAME                          "downlinkPort"
189
190 /** The default value of the downlink port plugin parameter */
191 #define PUD_DOWNLINK_PORT_DEFAULT                       2242
192
193 unsigned short getDownlinkPort(void);
194 int
195 setDownlinkPort(const char *value, void *data, set_plugin_parameter_addon addon);
196
197 /*
198  * OLSR Parameters
199  */
200
201 /** The name of the OLSR multicast time-to-live plugin parameter */
202 #define PUD_OLSR_TTL_NAME                                               "olsrTtl"
203
204 /** The default value of the OLSR multicast time-to-live plugin parameter */
205 #define PUD_OLSR_TTL_DEFAULT                                    64
206
207 unsigned char getOlsrTtl(void);
208 int setOlsrTtl(const char *value, void *data, set_plugin_parameter_addon addon);
209
210 /*
211  * Update Parameters
212  */
213
214 /** The name of the stationary update interval plugin parameter */
215 #define PUD_UPDATE_INTERVAL_STATIONARY_NAME             "updateIntervalStationary"
216
217 /** The default value of the stationary update interval plugin parameter */
218 #define PUD_UPDATE_INTERVAL_STATIONARY_DEFAULT  60
219
220 unsigned long long getUpdateIntervalStationary(void);
221 int setUpdateIntervalStationary(const char *value, void *data,
222                 set_plugin_parameter_addon addon);
223
224 /** The name of the moving update interval plugin parameter */
225 #define PUD_UPDATE_INTERVAL_MOVING_NAME                 "updateIntervalMoving"
226
227 /** The default value of the moving update interval plugin parameter */
228 #define PUD_UPDATE_INTERVAL_MOVING_DEFAULT              5
229
230 unsigned long long getUpdateIntervalMoving(void);
231 int setUpdateIntervalMoving(const char *value, void *data,
232                 set_plugin_parameter_addon addon);
233
234 /** The name of the uplink stationary update interval plugin parameter */
235 #define PUD_UPLINK_UPDATE_INTERVAL_STATIONARY_NAME      "uplinkUpdateIntervalStationary"
236
237 /** The default value of the uplink stationary update interval plugin parameter */
238 #define PUD_UPLINK_UPDATE_INTERVAL_STATIONARY_DEFAULT   180
239
240 unsigned long long getUplinkUpdateIntervalStationary(void);
241 int setUplinkUpdateIntervalStationary(const char *value, void *data,
242                 set_plugin_parameter_addon addon);
243
244 /** The name of the uplink moving update interval plugin parameter */
245 #define PUD_UPLINK_UPDATE_INTERVAL_MOVING_NAME          "uplinkUpdateIntervalMoving"
246
247 /** The default value of the uplink moving update interval plugin parameter */
248 #define PUD_UPLINK_UPDATE_INTERVAL_MOVING_DEFAULT               15
249
250 unsigned long long getUplinkUpdateIntervalMoving(void);
251 int setUplinkUpdateIntervalMoving(const char *value, void *data,
252                 set_plugin_parameter_addon addon);
253
254 /** The name of the gateway determination interval plugin parameter */
255 #define PUD_GATEWAY_DETERMINATION_INTERVAL_NAME                 "gatewayDeterminationInterval"
256
257 /** The default value of the gateway determination interval plugin parameter */
258 #define PUD_GATEWAY_DETERMINATION_INTERVAL_DEFAULT              1
259
260 unsigned long long getGatewayDeterminationInterval(void);
261 int setGatewayDeterminationInterval(const char *value, void *data,
262                 set_plugin_parameter_addon addon);
263
264 /** The name of the moving speed threshold plugin parameter */
265 #define PUD_MOVING_SPEED_THRESHOLD_NAME                 "movingSpeedThreshold"
266
267 /** The default value of the moving speed threshold plugin parameter */
268 #define PUD_MOVING_SPEED_THRESHOLD_DEFAULT              9
269
270 unsigned long long getMovingSpeedThreshold(void);
271 int setMovingSpeedThreshold(const char *value, void *data,
272                 set_plugin_parameter_addon addon);
273
274 /** The name of the moving distance threshold plugin parameter */
275 #define PUD_MOVING_DISTANCE_THRESHOLD_NAME              "movingDistanceThreshold"
276
277 /** The default value of the moving distance threshold plugin parameter */
278 #define PUD_MOVING_DISTANCE_THRESHOLD_DEFAULT   50
279
280 unsigned long long getMovingDistanceThreshold(void);
281 int setMovingDistanceThreshold(const char *value, void *data,
282                 set_plugin_parameter_addon addon);
283
284 /** The name of the DOP multiplier plugin parameter */
285 #define PUD_DOP_MULTIPLIER_NAME         "dopMultiplier"
286
287 /** The default value of the DOP multiplier plugin parameter */
288 #define PUD_DOP_MULTIPLIER_DEFAULT      2.5
289
290 double getDopMultiplier(void);
291 int setDopMultiplier(const char *value, void *data,
292                 set_plugin_parameter_addon addon);
293
294 /** The name of the default HDOP plugin parameter */
295 #define PUD_DEFAULT_HDOP_NAME           "defaultHdop"
296
297 /** The default value of the default HDOP plugin parameter */
298 #define PUD_DEFAULT_HDOP_DEFAULT        50
299
300 unsigned long long getDefaultHdop(void);
301 int setDefaultHdop(const char *value, void *data,
302                 set_plugin_parameter_addon addon);
303
304 /** The name of the default VDOP plugin parameter */
305 #define PUD_DEFAULT_VDOP_NAME           "defaultVdop"
306
307 /** The default value of the default VDOP plugin parameter */
308 #define PUD_DEFAULT_VDOP_DEFAULT        50
309
310 unsigned long long getDefaultVdop(void);
311 int setDefaultVdop(const char *value, void *data,
312                 set_plugin_parameter_addon addon);
313
314 /** The name of the average depth plugin parameter */
315 #define PUD_AVERAGE_DEPTH_NAME                                  "averageDepth"
316
317 /** The default value of the average depth plugin parameter */
318 #define PUD_AVERAGE_DEPTH_DEFAULT                               5
319
320 unsigned long long getAverageDepth(void);
321 int setAverageDepth(const char *value, void *data,
322                 set_plugin_parameter_addon addon);
323
324 /** The name of the hysteresis count to stationary plugin parameter */
325 #define PUD_HYSTERESIS_COUNT_2STAT_NAME                 "hysteresisCountToStationary"
326
327 /** The default value of the hysteresis count to stationary plugin parameter */
328 #define PUD_HYSTERESIS_COUNT_2STAT_DEFAULT              17
329
330 unsigned long long getHysteresisCountToStationary(void);
331 int setHysteresisCountToStationary(const char *value, void *data,
332                 set_plugin_parameter_addon addon);
333
334 /** The name of the hysteresis count to moving plugin parameter */
335 #define PUD_HYSTERESIS_COUNT_2MOV_NAME                  "hysteresisCountToMoving"
336
337 /** The default value of the hysteresis count to moving plugin parameter */
338 #define PUD_HYSTERESIS_COUNT_2MOV_DEFAULT               5
339
340 unsigned long long getHysteresisCountToMoving(void);
341 int setHysteresisCountToMoving(const char *value, void *data,
342                 set_plugin_parameter_addon addon);
343
344 /** The name of the hysteresis count to stationary plugin parameter */
345 #define PUD_GAT_HYSTERESIS_COUNT_2STAT_NAME                     "gatewayHysteresisCountToStationary"
346
347 /** The default value of the hysteresis count to stationary plugin parameter */
348 #define PUD_GAT_HYSTERESIS_COUNT_2STAT_DEFAULT          17
349
350 unsigned long long getGatewayHysteresisCountToStationary(void);
351 int setGatewayHysteresisCountToStationary(const char *value, void *data,
352                 set_plugin_parameter_addon addon);
353
354 /** The name of the hysteresis count to moving plugin parameter */
355 #define PUD_GAT_HYSTERESIS_COUNT_2MOV_NAME                      "GatewayHysteresisCountToMoving"
356
357 /** The default value of the hysteresis count to moving plugin parameter */
358 #define PUD_GAT_HYSTERESIS_COUNT_2MOV_DEFAULT           5
359
360 unsigned long long getGatewayHysteresisCountToMoving(void);
361 int setGatewayHysteresisCountToMoving(const char *value, void *data,
362                 set_plugin_parameter_addon addon);
363
364 /*
365  * Other Plugin Settings
366  */
367
368 /** The name of the deduplication usage plugin parameter */
369 #define PUD_USE_DEDUP_NAME                                              "useDeDup"
370
371 /** The default value of the deduplication usage plugin parameter */
372 #define PUD_USE_DEDUP_DEFAULT                                   true
373
374 bool getUseDeDup(void);
375 int
376 setUseDeDup(const char *value, void *data, set_plugin_parameter_addon addon);
377
378 /** The name of the deduplication depth plugin parameter */
379 #define PUD_DEDUP_DEPTH_NAME                                    "deDupDepth"
380
381 /** The default value of the deduplication depth plugin parameter */
382 #define PUD_DEDUP_DEPTH_DEFAULT                                 256
383
384 unsigned long long getDeDupDepth(void);
385 int
386 setDeDupDepth(const char *value, void *data, set_plugin_parameter_addon addon);
387
388 /** The name of the loopback usage plugin parameter */
389 #define PUD_USE_LOOPBACK_NAME                                   "useLoopback"
390
391 /** The default value of the loopback usage plugin parameter */
392 #define PUD_USE_LOOPBACK_DEFAULT                                false
393
394 bool getUseLoopback(void);
395 int
396 setUseLoopback(const char *value, void *data, set_plugin_parameter_addon addon);
397
398 /*
399  * Check Functions
400  */
401
402 unsigned int checkConfig(void);
403
404 unsigned int checkRunSetup(void);
405
406 #endif /* _PUD_CONFIGURATION_H_ */