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