PUD: use mutex on stop
[olsrd.git] / files / olsrd.conf.default.full
1 #
2 # OLSR.org routing daemon config file
3 # This file contains ALL available options and explanations about them
4 #
5 # Lines starting with a # are discarded
6 #
7
8 #### ATTENTION for IPv6 users ####
9 # Because of limitations in the parser IPv6 addresses must NOT
10 # begin with a ":", so please add a "0" as a prefix.
11
12 ###########################
13 ### Basic configuration ###
14 ###########################
15 # keep this settings at the beginning of your first configuration file
16
17 # Debug level (0-9)
18 # If set to 0 the daemon runs in the background, unless "NoFork" is set to true
19 # (Default is 1)
20
21 # DebugLevel  1
22
23 # IP version to use (4 or 6)
24 # (Default is 4)
25
26 # IpVersion 4
27
28 #################################
29 ### OLSRd agent configuration ###
30 #################################
31 # this parameters control the settings of the routing agent which are not
32 # related to the OLSR protocol and it's extensions
33
34 # Clear the screen each time the internal state changes
35 # (Default is yes)
36
37 # ClearScreen     yes
38
39 # Should olsrd keep on running even if there are
40 # no interfaces available? This is a good idea
41 # for a PCMCIA/USB hotswap environment.
42 # (Default is yes)
43
44 # AllowNoInt  yes
45
46 # LockFile
47 # The lockfile is used to prevent multiple OLSR instances running at the same
48 # time.
49 # (Linux/BSD default is "/var/run/olsrd-ipv(4/6).lock")
50 # (Win32 default is "<configfile>-ipv(4/6).lock")
51
52 # LockFile "olsrd.lock"
53
54 # Polling rate for OLSR sockets in seconds (float). 
55 # (Default is 0.05)
56
57 # Pollrate  0.05
58
59 # Interval to poll network interfaces for configuration changes (in seconds).
60 # Linux systems can detect interface statechange via netlink sockets.
61 # (Defaults is 2.5)
62
63 # NicChgsPollInt  2.5
64
65 # TOS(type of service) byte value for the IP header of control traffic.
66 # Must be multiple of 4, because OLSR doesn't use ECN
67 # (Default is 192, CS6 - Network Control)
68
69 # TosValue 192
70
71 # FIBMetric controls the metric value of the host-routes OLSRd sets.
72 # - "flat" means that the metric value is always 2. This is the preferred value
73 #   because it helps the linux kernel routing to clean up older routes
74 # - "correct" use the hopcount as the metric value.
75 # - "approx" use the hopcount as the metric value too, but does only update the
76 #   hopcount if the nexthop changes too
77 # (Default is "flat")
78
79 # FIBMetric "flat"
80
81 #######################################
82 ### Linux specific OLSRd extensions ###
83 #######################################
84 # these parameters are only working on linux at the moment, but might become
85 # useful on BSD in the future
86
87 # SrcIpRoutes tells OLSRd to set the Src flag of host routes to the originator-ip
88 # of the node. In addition to this an additional localhost device is created
89 # to make sure the returning traffic can be received.
90 # (Default is "no")
91
92 # SrcIpRoutes no
93
94 # Specify the proto tag to be used for routes olsr inserts into kernel
95 # currently only implemented for linux
96 # valid values under linux are 1 .. 254
97 # 1 gets remapped by olsrd to 0 UNSPECIFIED (1 is reserved for ICMP redirects)
98 # 2 KERNEL routes (not very wise to use)
99 # 3 BOOT (should in fact not be used by routing daemons)
100 # 4 STATIC 
101 # 8 .. 15 various routing daemons (gated, zebra, bird, & co)
102 # (defaults to 0 which gets replaced by an OS-specific default value
103 # under linux 3 (BOOT) (for backward compatibility)
104
105 # RtProto 0
106
107 # Specifies the routing Table olsr uses
108 # RtTable is for host routes, RtTableDefault for the route to the default
109 # internet gateway (2 in case of IPv6+NIIT) and RtTableTunnel is for
110 # routes to the ipip tunnels, valid values are 1 to 254
111 # There is a special parameter "auto" (choose default below)
112 # (with smartgw: default is 254/223/224)
113 # (without smartgw: default is 254/254/254, linux main table)
114
115 # RtTable auto
116 # RtTableDefault auto
117 # RtTableTunnel auto
118
119 # Specifies the policy rule priorities for the three routing tables and
120 # a special rule for smartgateway routing (see README-Olsr-Extensions)
121 # Priorities can only be set if three different routing tables are set.
122 # if set the values must obey to condition
123 # RtTablePriority < RtTableDefaultOlsrPriority
124 # < RtTableTunnelPriority < RtTableDefaultPriority.
125 # There are two special parameters, "auto" (choose fitting to SmartGW
126 # mode) and "none" (do not set policy rule)
127 # (with smartgw: default is none/32776/32776/32796)
128 # (without smartgw: default is none/none/none/none)
129
130 # RtTablePriority auto
131 # RtTableDefaultOlsrPriority auto
132 # RtTableTunnelPriority auto
133 # RtTableDefaultPriority auto
134
135 # Activates (in IPv6 mode) the automatic use of NIIT
136 # (see README-Olsr-Extensions)
137 # (default is "yes")
138
139 # UseNiit yes
140
141 # Activates the smartgateway ipip tunnel feature.
142 # See README-Olsr-Extensions for a description of smartgateways.
143 # (default is "no")
144
145 # SmartGateway no
146
147 # Allows the selection of a smartgateway with NAT (only for IPv4)
148 # (default is "yes")
149
150 # SmartGatewayAllowNAT yes
151
152 # When another gateway than the current one has a cost of less than the cost
153 # of the current gateway multiplied by SmartGatewayThreshold then the smart
154 # gateway is switched to the other gateway. The unit is percentage.
155 # (defaults to 0)
156
157 # SmartGatewayThreshold 0
158
159 # Defines what kind of Uplink this node will publish as a
160 # smartgateway. The existence of the uplink is detected by
161 # a route to 0.0.0.0/0, ::ffff:0:0/96 and/or 2000::/3.
162 # possible values are "none", "ipv4", "ipv6", "both"
163 # (default is "both")
164
165 # SmartGatewayUplink "both"
166
167 # Specifies if the local ipv4 uplink use NAT
168 # (default is "yes")
169
170 # SmartGatewayUplinkNAT yes
171
172 # Specifies the speed of the uplink in kilobit/s.
173 # First parameter is upstream, second parameter is downstream
174 # (default is 128/1024)
175
176 # SmartGatewaySpeed 128 1024
177
178 # Specifies the EXTERNAL ipv6 prefix of the uplink. A prefix
179 # length of more than 64 is not allowed.
180 # (default is 0::/0
181
182 # SmartGatewayPrefix 0::/0
183
184 ##############################
185 ### OLSR protocol settings ###
186 ##############################
187
188 # For testing purposes it may be nice to use another port for olsrd
189 # for using another port than the IANA assigned one 
190 # for a production network, there should be a good reason!!
191 # valid values are integers >1, please be careful with using reserved
192 # port numbers
193 # (default is 698, the IANA assigned olsr-port)
194
195 # OlsrPort 698
196
197 # Sets the main IP (originator ip) of the router. This IP will NEVER
198 # change during the uptime of olsrd.
199 # (default is 0.0.0.0, which triggers usage of the IP of the first interface)
200
201 # MainIp 10.0.0.1
202
203 # The fixed willingness to use (0-7)
204 # If not set willingness will be calculated
205 # dynamically based on battery/power status
206 # (default is 3)
207
208 # Willingness     3
209
210 # HNA (Host network association) allows the OLSR to announce
211 # additional IPs or IP subnets to the net that are reachable
212 # through this node.
213 # Syntax for HNA4 is "network-address    network-mask"
214 # Syntax for HNA6 is "network-address    prefix-length"
215 # (default is no HNA)
216 Hna4
217 {
218 # Internet gateway
219 # 0.0.0.0   0.0.0.0
220 # specific small networks reachable through this node
221 # 15.15.0.0 255.255.255.0
222 }
223 Hna6
224 {
225 # Internet gateway
226 #   0::                     0
227 # specific small networks reachable through this node
228 #   fec0:2200:106:0:0:0:0:0 48
229 }
230
231
232 # Hysteresis for link sensing (only for hopcount metric)
233 # Hysteresis adds more robustness to the link sensing
234 # but delays neighbor registration.
235 # (defaults to yes)
236
237 # UseHysteresis yes
238
239 # Hysteresis parameters (only for hopcount metric)
240 # Do not alter these unless you know what you are doing!
241 # Set to auto by default. Allowed values are floating point
242 # values in the interval 0,1
243 # THR_LOW must always be lower than THR_HIGH!!
244 # (default is 0.5/0.8/0.3)
245
246 # HystScaling  0.50
247 # HystThrHigh  0.80
248 # HystThrLow 0.30
249
250 # TC redundancy
251 # Specifies how much neighbor info should be sent in
252 # TC messages. Because of a design problem in the 0.5.x
253 # dijkstra implementation this value must be set to 2.
254 # 2 - send all neighbors
255 # (default is 2)
256
257 # TcRedundancy  2
258
259 # MPR coverage specifies how many MPRs a node should
260 # try select to reach every 2 hop neighbor. Because of
261 # a design problem in the 0.5.x lq mpr selection algorithm
262 # this value should be set to 7.
263 # (default is 7)
264
265 # MprCoverage 7
266
267 ################################
268 ### OLSR protocol extensions ###
269 ################################
270
271 # Link quality level switch between hopcount and 
272 # cost-based (mostly ETX) routing. Because of
273 # a design problem in the 0.5.x dijkstra algorithm this
274 # value should not be set to 1.
275 # 0 = do not use link quality
276 # 2 = use link quality for MPR selection and routing
277 # (default is 2)
278
279 # LinkQualityLevel 2
280
281 # Link quality algorithm (only for lq level 2)
282 # (see README-Olsr-Extensions)
283 # - "etx_float", a floating point  ETX with exponential aging
284 # - "etx_fpm", same as ext_float, but with integer arithmetic
285 # - "etx_ff" (ETX freifunk), an etx variant which use all OLSR
286 #   traffic (instead of only hellos) for ETX calculation
287 # - "etx_ffeth", an incompatible variant of etx_ff that allows
288 #   ethernet links with ETX 0.1.
289 # (defaults to "etx_ff")
290
291 # LinkQualityAlgorithm    "etx_ff"
292
293 # Link quality aging factor (only for lq level 2)
294 # Tuning parameter for etx_float and etx_fpm, smaller values
295 # mean slower changes of ETX value. (allowed values are
296 # between 0.01 and 1.0)
297 # (default is 0.05)
298
299 # LinkQualityAging 0.05
300
301 # Fisheye mechanism for TCs (0 meansoff, 1 means on)
302 # (default is 1)
303
304 # LinkQualityFishEye  1
305
306 #
307 # NatThreshold 
308 #
309 # (currently this is only in the freifunk firmware)
310 # If the NAT-Endpoint (the preferred 0/0 HNA emitting node)
311 # is to be changed, the ETX value of the current 0/0 is 
312 # multiplied with the NatThreshold value before being
313 # compared to the new one.
314 # The parameter can be a value between 0.1 and 1.0, but
315 # should be close to 1.0 if changed.
316 # WARNING: This parameter should not be used together with
317 # the etx_ffeth metric !!
318 # (defaults to 1.0)
319
320 # NatThreshold  1.0
321
322 #############################################################
323 ### Configuration of the IPC to the windows GUI interface ###
324 #############################################################
325
326 IpcConnect
327 {
328      # Determines how many simultaneously
329      # IPC connections that will be allowed
330      # Setting this to 0 disables IPC
331
332      # MaxConnections  0
333
334      # By default only 127.0.0.1 is allowed
335      # to connect. Here allowed hosts and networks can
336      # be added
337
338      # Host            127.0.0.1
339      # Host            10.0.0.5
340      # Net             192.168.1.0 255.255.255.0     
341 }
342
343 #####################################
344 ### Example plugin configurations ###
345 #####################################
346 # Olsrd plugins to load
347 # This must be the absolute path to the file
348 # or the loader will use the following scheme:
349 # - Try the paths in the LD_LIBRARY_PATH 
350 #   environment variable.
351 # - The list of libraries cached in /etc/ld.so.cache
352 # - /lib, followed by /usr/lib
353 #
354 # the examples in this list are for linux, so check if the plugin is
355 # available if you use windows/BSD.
356 # each plugin should have a README file in it's lib subfolder
357
358 # LoadPlugin "olsrd_httpinfo.dll"
359 LoadPlugin "olsrd_httpinfo.so.0.1"
360 {
361     # port number the httpinfo plugin will be listening, default 1978
362 #   PlParam     "port"   "8000"
363     
364     # ip address that can access the plugin, use "0.0.0.0"
365     # to allow everyone
366     PlParam     "Host"   "127.0.0.1"
367 #   PlParam     "Host"   "80.23.53.22"
368     
369     # networks that can access the plugin (ip/netmask)
370     # careful with 0.0.0.0/0, makes (ddos) attacks poss.
371 #   PlParam     "Net"    "0.0.0.0 0.0.0.0"
372     PlParam     "Net"    "104.0.0.0 255.255.0.0"
373     PlParam     "Net"    "192.168.0.0 255.255.0.0"
374 }
375
376 # LoadPlugin "olsrd_txtinfo.dll"
377 LoadPlugin "olsrd_txtinfo.so.0.1"
378 {
379     # port number the txtinfo plugin will be listening, default 2006
380 #   PlParam     "port"   "81"
381     # ip address that can access the plugin, use "0.0.0.0"
382     # to allow everyone
383     PlParam     "Accept"   "127.0.0.1"
384 }
385
386 #LoadPlugin "olsrd_secure.so.0.3"
387 #{
388     # define source of keyfile for secure plugin
389     # see lib/secure/README_SECURE for more information
390     
391 #   PlParam     "Keyfile"   "/etc/olsr-keyfile.txt"
392 #}
393
394 #LoadPlugin "olsrd_dyn_gw.so.0.5"
395 #{
396     # The plugin check interval can be set here in milliseconds.
397     # The default is 1000 ms (1 second).
398 #    PlParam     "CheckInterval"  "5000"
399     
400     # The ping check interval in case there is any pinged host specified.
401     # The default is 5 seconds.
402 #    PlParam     "PingInterval"   "40"
403     
404     # If one or more IPv4 addresses are given, do a ping on these in
405     # descending order to validate that there is not only an entry in
406     # routing table, but also a real network connection. If any of
407     # these addresses could be pinged successfully, the test was
408     # succesful, i.e. if the ping on the 1st address was successful,the
409     # 2nd won't be pinged.
410     #
411     # The Ping list applies to the group of HNAs specified above or to the 
412                 # default internet gateway when no HNA is specified.
413                 #
414                 # Running the plugin without parameters acts as the 'old' dyn_gw_plain.
415     
416     #   The following ping entries for the internet gateway
417 #    PlParam "Ping"   "141.1.1.1"
418 #    PlParam "Ping"   "194.25.2.129"
419     
420     #   First group of HNAs with related ping host
421 #    PlParam    "HNA"      "192.168.80.0 255.255.255.0"
422 #    PlParam    "HNA"      "192.168.81.0 255.255.255.0"
423 #    PlParam    "Ping"   "192.168.81.12"
424     
425     #   Second HNA group with multiple related ping hosts.
426     #   Specifying multiple ping hosts provides redundancy.
427 #    PlParam "HNA"    "192.168.100.0 255.255.255.0"
428 #    PlParam "HNA"    "192.168.101.0 255.255.255.0"
429 #    PlParam "HNA"    "192.168.102.0 255.255.255.0"
430 #    PlParam "Ping"   "192.168.100.10"
431 #    PlParam "Ping"   "192.168.101.10"
432     
433     #   Third HNA group without ping check
434 #    PlParam "HNA"    "192.168.200.0 255.255.255.0"
435 #    PlParam "HNA"    "192.168.201.0 255.255.255.0"
436 #    PlParam "HNA"    "192.168.202.0 255.255.255.0"
437 #}
438
439 #LoadPlugin "olsrd_dyn_gw_plain.so.0.4"
440 #{
441 #}
442
443 #############################################
444 ### OLSRD default interface configuration ###
445 #############################################
446 # the default interface section can have the same values as the following
447 # interface configuration. It will allow you so set common options for all
448 # interfaces.
449
450 InterfaceDefaults {
451     # Ip4Broadcast      255.255.255.255
452 }
453
454 ######################################
455 ### OLSRd Interfaces configuration ###
456 ######################################
457 # multiple interfaces can be specified for a single configuration block
458 # multiple configuration blocks can be specified
459
460 # WARNING, don't forget to insert your interface names here !
461 Interface "<OLSRd-Interface1>" "<OLSRd-Interface2>"
462 {
463     # Interface Mode is used to prevent unnecessary
464     # packet forwarding on switched ethernet interfaces
465     # valid Modes are "mesh" and "ether"
466     # (default is "mesh")
467
468     # Mode "mesh"
469
470     # IPv4 broadcast address for outgoing OLSR packets.
471     # One usefull example would be 255.255.255.255
472     # The second useful value would be to
473     # specify the peer adress of an ptp-tunnel.
474     # another name of this parameter is "IPv4Multicast"
475     # (default is 0.0.0.0, which triggers the usage of the
476     # interface broadcast IP)
477     
478     # Ip4Broadcast      0.0.0.0
479
480     # IPv6 multicast address
481     # (default is FF02::6D, the manet-router linklocal multicast)
482
483     # IPv6Multicast     FF02::6D
484
485     # IPv4 src address for outgoing OLSR packages
486     # (default is 0.0.0.0, which triggers usage of the interface IP)
487
488     # IPv4Src 0.0.0.0
489
490     # IPv6 src prefix. OLSRd will choose one of the interface IPs
491     # which matches the prefix of this parameter.
492     # (default is 0::/0, which triggers the usage
493     # of a not-linklocal interface IP)
494
495     # IPv6Src 0::/0
496     
497     # Emission intervals in seconds.
498     # If not defined, Freifunk network defaults are used
499     # (default is 2.0/20.0 for Hello and 5.0/300.0 for Tc/Mid/Hna)
500
501     # HelloInterval       2.0
502     # HelloValidityTime  20.0
503     # TcInterval          5.0
504     # TcValidityTime    300.0
505     # MidInterval         5.0
506     # MidValidityTime   300.0
507     # HnaInterval         5.0
508     # HnaValidityTime   300.0
509     
510     # When multiple links exist between hosts
511     # the weight of interface is used to determine
512     # the link to use. Normally the weight is
513     # automatically calculated by olsrd based
514     # on the characteristics of the interface,
515     # but here you can specify a fixed value.
516     # Olsrd will choose links with the lowest value.
517     # Note:
518     # Interface weight is used only when LinkQualityLevel is set to 0.
519     # For any other value of LinkQualityLevel, the interface ETX
520     # value is used instead.
521     # Weight 0
522
523     # If a certain route should be preferred 
524     # or ignored by the mesh, the Link Quality 
525     # value of a node can be multiplied with a factor 
526     # entered here. In the example the route 
527     # using 192.168.0.1 would rather be ignored.
528     # A multiplier of 0.5 will result in a small
529     # (bad) LinkQuality value and a high (bad)
530     # ETX value.
531     # Note:
532     # Link quality multiplier is used only when
533     # LinkQualityLevel is > 0.
534
535     # example 1: reduce LQ to 192.168.0.1 by half
536     # LinkQualityMult 192.168.0.1 0.5
537
538     # example 2: reduce LQ to all nodes on this interface by 20%
539     # LinkQualityMult default 0.8
540 }