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