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