1 #ifndef _PUD_CONFIGURATION_H_
2 #define _PUD_CONFIGURATION_H_
7 #include "olsrd_plugin.h"
11 #include <sys/socket.h>
12 #include <OlsrdPudWireFormat/wireFormat.h>
18 /** The name of the nodeIdType plugin parameter */
19 #define PUD_NODE_ID_TYPE_NAME "nodeIdType"
21 /** The default value of the nodeIdType plugin parameter */
22 #define PUD_NODE_ID_TYPE_DEFAULT PUD_NODEIDTYPE_IPV4
24 /** The maximum value of the nodeIdType plugin parameter */
25 #define PUD_NODE_ID_TYPE_MAX 254
27 NodeIdType getNodeIdTypeNumber(void);
28 int setNodeIdType(const char *value, void *data,
29 set_plugin_parameter_addon addon);
31 /** The name of the nodeId plugin parameter */
32 #define PUD_NODE_ID_NAME "nodeId"
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);
43 /** The name of the receive non-OLSR interfaces plugin parameter */
44 #define PUD_RX_NON_OLSR_IF_NAME "rxNonOlsrIf"
46 bool isRxNonOlsrInterface(const char *ifName);
47 int addRxNonOlsrInterface(const char *value, void *data,
48 set_plugin_parameter_addon addon);
50 /** The name of the allowed source IP address plugin parameter */
51 #define PUD_RX_ALLOWED_SOURCE_IP_NAME "rxAllowedSourceIpAddress"
53 bool isRxAllowedSourceIpAddress(struct sockaddr * sender);
54 int addRxAllowedSourceIpAddress(const char *value, void *data,
55 set_plugin_parameter_addon addon);
57 /** The name of the receive multicast address plugin parameter */
58 #define PUD_RX_MC_ADDR_NAME "rxMcAddr"
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"
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"
66 union olsr_sockaddr * getRxMcAddr(void);
68 setRxMcAddr(const char *value, void *data, set_plugin_parameter_addon addon);
70 /** The name of the receive multicast port plugin parameter */
71 #define PUD_RX_MC_PORT_NAME "rxMcPort"
73 /** The default value of the receive multicast port plugin parameter */
74 #define PUD_RX_MC_PORT_DEFAULT 2240
76 unsigned short getRxMcPort(void);
78 setRxMcPort(const char *value, void *data, set_plugin_parameter_addon addon);
84 /** The name of the transmit non-OLSR interfaces plugin parameter */
85 #define PUD_TX_NON_OLSR_IF_NAME "txNonOlsrIf"
87 bool isTxNonOlsrInterface(const char *ifName);
88 int addTxNonOlsrInterface(const char *value, void *data,
89 set_plugin_parameter_addon addon);
91 /** The name of the transmit multicast address plugin parameter */
92 #define PUD_TX_MC_ADDR_NAME "txMcAddr"
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"
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"
100 union olsr_sockaddr * getTxMcAddr(void);
102 setTxMcAddr(const char *value, void *data, set_plugin_parameter_addon addon);
104 /** The name of the transmit multicast port plugin parameter */
105 #define PUD_TX_MC_PORT_NAME "txMcPort"
107 /** The default value of the transmit multicast port plugin parameter */
108 #define PUD_TX_MC_PORT_DEFAULT 2240
110 unsigned short getTxMcPort(void);
112 setTxMcPort(const char *value, void *data, set_plugin_parameter_addon addon);
114 /** The name of the transmit multicast time-to-live plugin parameter */
115 #define PUD_TX_TTL_NAME "txTtl"
117 /** The default value of the transmit multicast time-to-live plugin parameter */
118 #define PUD_TX_TTL_DEFAULT 1
120 unsigned char getTxTtl(void);
121 int setTxTtl(const char *value, void *data, set_plugin_parameter_addon addon);
123 /** The name of the transmit multicast NMEA message prefix plugin parameter */
124 #define PUD_TX_NMEAMESSAGEPREFIX_NAME "txNmeaMessagePrefix"
126 /** The default value of the transmit multicast NMEA message prefix plugin parameter */
127 #define PUD_TX_NMEAMESSAGEPREFIX_DEFAULT "NBSX"
129 unsigned char * getTxNmeaMessagePrefix(void);
130 int setTxNmeaMessagePrefix(const char *value, void *data,
131 set_plugin_parameter_addon addon);
137 /** The name of the uplink address plugin parameter */
138 #define PUD_UPLINK_ADDR_NAME "uplinkAddr"
140 /** The default value of the uplink address plugin parameter fro IPv4*/
141 #define PUD_UPLINK_ADDR_4_DEFAULT "0.0.0.0"
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"
146 bool isUplinkAddrSet(void);
147 union olsr_sockaddr * getUplinkAddr(void);
149 setUplinkAddr(const char *value, void *data, set_plugin_parameter_addon addon);
151 /** The name of the uplink port plugin parameter */
152 #define PUD_UPLINK_PORT_NAME "uplinkPort"
154 /** The default value of the uplink port plugin parameter */
155 #define PUD_UPLINK_PORT_DEFAULT 2241
157 unsigned short getUplinkPort(void);
159 setUplinkPort(const char *value, void *data, set_plugin_parameter_addon addon);
162 * Downlink Parameters
165 /** The name of the downlink port plugin parameter */
166 #define PUD_DOWNLINK_PORT_NAME "downlinkPort"
168 /** The default value of the downlink port plugin parameter */
169 #define PUD_DOWNLINK_PORT_DEFAULT 2242
171 unsigned short getDownlinkPort(void);
173 setDownlinkPort(const char *value, void *data, set_plugin_parameter_addon addon);
179 /** The name of the OLSR multicast time-to-live plugin parameter */
180 #define PUD_OLSR_TTL_NAME "olsrTtl"
182 /** The default value of the OLSR multicast time-to-live plugin parameter */
183 #define PUD_OLSR_TTL_DEFAULT 64
185 unsigned char getOlsrTtl(void);
186 int setOlsrTtl(const char *value, void *data, set_plugin_parameter_addon addon);
192 /** The name of the stationary update interval plugin parameter */
193 #define PUD_UPDATE_INTERVAL_STATIONARY_NAME "updateIntervalStationary"
195 /** The default value of the stationary update interval plugin parameter */
196 #define PUD_UPDATE_INTERVAL_STATIONARY_DEFAULT 60
198 unsigned long long getUpdateIntervalStationary(void);
199 int setUpdateIntervalStationary(const char *value, void *data,
200 set_plugin_parameter_addon addon);
202 /** The name of the moving update interval plugin parameter */
203 #define PUD_UPDATE_INTERVAL_MOVING_NAME "updateIntervalMoving"
205 /** The default value of the moving update interval plugin parameter */
206 #define PUD_UPDATE_INTERVAL_MOVING_DEFAULT 5
208 unsigned long long getUpdateIntervalMoving(void);
209 int setUpdateIntervalMoving(const char *value, void *data,
210 set_plugin_parameter_addon addon);
212 /** The name of the uplink stationary update interval plugin parameter */
213 #define PUD_UPLINK_UPDATE_INTERVAL_STATIONARY_NAME "uplinkUpdateIntervalStationary"
215 /** The default value of the uplink stationary update interval plugin parameter */
216 #define PUD_UPLINK_UPDATE_INTERVAL_STATIONARY_DEFAULT 180
218 unsigned long long getUplinkUpdateIntervalStationary(void);
219 int setUplinkUpdateIntervalStationary(const char *value, void *data,
220 set_plugin_parameter_addon addon);
222 /** The name of the uplink moving update interval plugin parameter */
223 #define PUD_UPLINK_UPDATE_INTERVAL_MOVING_NAME "uplinkUpdateIntervalMoving"
225 /** The default value of the uplink moving update interval plugin parameter */
226 #define PUD_UPLINK_UPDATE_INTERVAL_MOVING_DEFAULT 15
228 unsigned long long getUplinkUpdateIntervalMoving(void);
229 int setUplinkUpdateIntervalMoving(const char *value, void *data,
230 set_plugin_parameter_addon addon);
232 /** The name of the moving speed threshold plugin parameter */
233 #define PUD_MOVING_SPEED_THRESHOLD_NAME "movingSpeedThreshold"
235 /** The default value of the moving speed threshold plugin parameter */
236 #define PUD_MOVING_SPEED_THRESHOLD_DEFAULT 5
238 unsigned long long getMovingSpeedThreshold(void);
239 int setMovingSpeedThreshold(const char *value, void *data,
240 set_plugin_parameter_addon addon);
242 /** The name of the moving distance threshold plugin parameter */
243 #define PUD_MOVING_DISTANCE_THRESHOLD_NAME "movingDistanceThreshold"
245 /** The default value of the moving distance threshold plugin parameter */
246 #define PUD_MOVING_DISTANCE_THRESHOLD_DEFAULT 50
248 unsigned long long getMovingDistanceThreshold(void);
249 int setMovingDistanceThreshold(const char *value, void *data,
250 set_plugin_parameter_addon addon);
252 /** The name of the DOP multiplier plugin parameter */
253 #define PUD_DOP_MULTIPLIER_NAME "dopMultiplier"
255 /** The default value of the DOP multiplier plugin parameter */
256 #define PUD_DOP_MULTIPLIER_DEFAULT 1.0
258 double getDopMultiplier(void);
259 int setDopMultiplier(const char *value, void *data,
260 set_plugin_parameter_addon addon);
262 /** The name of the default HDOP plugin parameter */
263 #define PUD_DEFAULT_HDOP_NAME "defaultHdop"
265 /** The default value of the default HDOP plugin parameter */
266 #define PUD_DEFAULT_HDOP_DEFAULT 50
268 unsigned long long getDefaultHdop(void);
269 int setDefaultHdop(const char *value, void *data,
270 set_plugin_parameter_addon addon);
272 /** The name of the default VDOP plugin parameter */
273 #define PUD_DEFAULT_VDOP_NAME "defaultVdop"
275 /** The default value of the default VDOP plugin parameter */
276 #define PUD_DEFAULT_VDOP_DEFAULT 50
278 unsigned long long getDefaultVdop(void);
279 int setDefaultVdop(const char *value, void *data,
280 set_plugin_parameter_addon addon);
282 /** The name of the average depth plugin parameter */
283 #define PUD_AVERAGE_DEPTH_NAME "averageDepth"
285 /** The default value of the average depth plugin parameter */
286 #define PUD_AVERAGE_DEPTH_DEFAULT 5
288 unsigned long long getAverageDepth(void);
289 int setAverageDepth(const char *value, void *data,
290 set_plugin_parameter_addon addon);
292 /** The name of the hysteresis count to stationary plugin parameter */
293 #define PUD_HYSTERESIS_COUNT_2STAT_NAME "hysteresisCountToStationary"
295 /** The default value of the hysteresis count to stationary plugin parameter */
296 #define PUD_HYSTERESIS_COUNT_2STAT_DEFAULT 17
298 unsigned long long getHysteresisCountToStationary(void);
299 int setHysteresisCountToStationary(const char *value, void *data,
300 set_plugin_parameter_addon addon);
302 /** The name of the hysteresis count to moving plugin parameter */
303 #define PUD_HYSTERESIS_COUNT_2MOV_NAME "hysteresisCountToMoving"
305 /** The default value of the hysteresis count to moving plugin parameter */
306 #define PUD_HYSTERESIS_COUNT_2MOV_DEFAULT 5
308 unsigned long long getHysteresisCountToMoving(void);
309 int setHysteresisCountToMoving(const char *value, void *data,
310 set_plugin_parameter_addon addon);
313 * Other Plugin Settings
316 /** The name of the deduplication usage plugin parameter */
317 #define PUD_USE_DEDUP_NAME "useDeDup"
319 /** The default value of the deduplication usage plugin parameter */
320 #define PUD_USE_DEDUP_DEFAULT true
322 bool getUseDeDup(void);
324 setUseDeDup(const char *value, void *data, set_plugin_parameter_addon addon);
326 /** The name of the deduplication depth plugin parameter */
327 #define PUD_DEDUP_DEPTH_NAME "deDupDepth"
329 /** The default value of the deduplication depth plugin parameter */
330 #define PUD_DEDUP_DEPTH_DEFAULT 256
332 unsigned long long getDeDupDepth(void);
334 setDeDupDepth(const char *value, void *data, set_plugin_parameter_addon addon);
336 /** The name of the loopback usage plugin parameter */
337 #define PUD_USE_LOOPBACK_NAME "useLoopback"
339 /** The default value of the loopback usage plugin parameter */
340 #define PUD_USE_LOOPBACK_DEFAULT false
342 bool getUseLoopback(void);
344 setUseLoopback(const char *value, void *data, set_plugin_parameter_addon addon);
350 unsigned int checkConfig(void);
352 unsigned int checkRunSetup(void);
354 #endif /* _PUD_CONFIGURATION_H_ */