doc: completed man pages by adding plugins to olsrd.conf(5)
[olsrd.git] / files / olsrd-manpages.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4 <article id="olsrd_manpages" lang="en">
5   <title>Unik OLSRD Man Pages</title>
6
7   <articleinfo>
8     <titleabbrev>Olsrd Man Pages</titleabbrev>
9
10     <author>
11       <firstname>Sven-Ola</firstname>
12
13       <surname>Tücke</surname>
14
15       <affiliation>
16         <address><email>sven-ola@gmx.de</email></address>
17       </affiliation>
18     </author>
19
20     <releaseinfo>Version 0.5.7-pre</releaseinfo>
21
22     <copyright>
23       <year>2004</year>
24
25       <holder>Andreas Tønnesen</holder>
26     </copyright>
27
28     <copyright>
29       <year>2008</year>
30
31       <holder>Sven-Ola Tücke</holder>
32     </copyright>
33
34     <abstract>
35       <para>Source for <productname>olsrd</productname> man pages</para>
36     </abstract>
37   </articleinfo>
38
39   <para>This document contains sources for man pages. They where converted
40   from the original man page files which are maintained by Andreas Tønnesen
41   until 2005. Because the 0.5.7 version of <productname>olsrd</productname>
42   introduces several configuration changes and removes old configuration
43   options, a re-write was necessary in late 2008.</para>
44
45   <para>To process this file and convert the included man pages, use the
46   <ulink url="http://docbook2x.sourceforge.net/">docbook2X</ulink> tool
47   kit.</para>
48
49   <procedure>
50     <step>
51       <para>Install docbook2X: <command>sudo apt-get install
52       docbook2x</command></para>
53     </step>
54
55     <step>
56       <para>Install the XML DTD: <command>sudo apt-get install
57       docbook-xml</command></para>
58     </step>
59
60     <step>
61       <para>Run the converter: <command>cd ./files &amp;&amp;
62       make</command></para>
63     </step>
64   </procedure>
65
66   <refentry id="olsrd_8">
67     <indexterm>
68       <primary><productname>olsrd</productname></primary>
69     </indexterm>
70
71     <refentryinfo>
72       <titleabbrev><productname>olsrd</productname> Optimized Link State
73       Routing Protocol Daemon</titleabbrev>
74     </refentryinfo>
75
76     <refmeta>
77       <refentrytitle id="olsrd_8-title">olsrd</refentrytitle>
78
79       <manvolnum>8</manvolnum>
80     </refmeta>
81
82     <refnamediv>
83       <refname>olsrd</refname>
84
85       <refpurpose>Optimized Link State Routing protocol daemon</refpurpose>
86     </refnamediv>
87
88     <refsynopsisdiv>
89       <para><cmdsynopsis>
90           <command>olsrd</command>
91
92           <group>
93             <arg>-h</arg>
94
95             <arg>--help</arg>
96           </group>
97
98           <group>
99             <arg>-v</arg>
100
101             <arg>--version</arg>
102           </group>
103
104           <group choice="req">
105             <arg>-f</arg>
106
107             <arg>--config</arg>
108
109             <replaceable> configfile</replaceable>
110           </group>
111
112           <group choice="req">
113             <arg>-d</arg>
114
115             <arg>--DebugLevel</arg>
116
117             <replaceable> level</replaceable>
118           </group>
119
120           <group>
121             <arg>-n</arg>
122
123             <arg>--nofork</arg>
124           </group>
125
126           <group>
127             <arg>-X</arg>
128
129             <arg>--dispin</arg>
130           </group>
131
132           <group>
133             <arg>-O</arg>
134
135             <arg>--dispout</arg>
136           </group>
137
138           <group>
139             <arg>-D</arg>
140
141             <arg>--delgw</arg>
142           </group>
143
144           <group>
145             <arg>-P</arg>
146
147             <arg>--ipc</arg>
148           </group>
149
150           <group choice="req">
151             <arg>-H</arg>
152
153             <arg>--hemu</arg>
154
155             <replaceable> ipaddr</replaceable>
156           </group>
157
158           <arg>interface1</arg>
159
160           <arg rep="repeat">interface2</arg>
161         </cmdsynopsis></para>
162
163       <para><emphasis role="strong">Note</emphasis>: Only if
164       <productname>olsrd</productname> is started without arguments, the
165       default config file is loaded - which is usually
166       <filename>/etc/olsrd.conf</filename> or
167       <filename>/usr/local/etc/olsrd.conf</filename>.</para>
168     </refsynopsisdiv>
169
170     <refsect1>
171       <title>Description</title>
172
173       <para>The <productname>olsrd</productname> daemon is an implementation
174       of the <emphasis>O</emphasis>ptimized <emphasis>L</emphasis>ink
175       <emphasis>S</emphasis>tate <emphasis>R</emphasis>outing protocol (OLSR)
176       for <emphasis>M</emphasis>obile <emphasis>A</emphasis>d-hoc
177       <emphasis>NET</emphasis>works (MANETs). The protocol is described in
178       RFC3626. It is designed to be run as a standalone server process - but
179       as it is still in an experimental stage most users will prefer running
180       it with some debug output.</para>
181
182       <para>This implementation of the OLSR protocol features an alternative
183       routing scheme based on link quality using an ETX-like metric which was
184       initially developed by the c-base community in Berlin and extended by
185       the Funkfeuer community in Vienna. This alternative routing scheme uses
186       non-standard messages and is therefore incompatible to standard OLSR as
187       it is described in the RFC. To switch back to RFC-mode, you need to
188       enable a (currently unavailable) metrics plugin using the
189       <option>LinkQualityAlgorithm</option> option (see <xref
190       endterm="olsrd_conf_5-title" linkend="olsrd_conf_5" />).</para>
191
192       <para>The home page of <productname>olsrd</productname> is <ulink
193       url="http://www.olsr.org">http://www.olsr.org</ulink></para>
194     </refsect1>
195
196     <refsect1>
197       <title>Getting Started</title>
198
199       <para>Running and maintaining a larger mesh network is a complex task.
200       Nevertheless, you may simply want to test
201       <productname>olsrd</productname>. If you have at least 3 devices, all
202       equipped with a WLAN card, the following short list of steps may
203       help.</para>
204
205       <orderedlist>
206         <listitem>
207           <para>Set up the necessary connectivity. Configure all WLAN cards to
208           Ad hoc (IBSS) or similar, use same ESSID and channel setting. All
209           WLAN cards need to use a fixed IP in the same IP address range (e.g.
210           10.0.0.0/8). Verify, that the interfaces are configured with the
211           correct broadcast address. Otherwise you will experience ARP lookups
212           on the broadcast address when running
213           <productname>olsrd</productname>. Also stop any firewalling and
214           enable forwarding. Test the connectivity by using the
215           <command>ping</command> command. Remember:
216           <productname>olsrd</productname> is a layer 3 routing daemon and
217           therefore simply is not responsible for any layer 2 problems. No
218           ping - no routes.</para>
219         </listitem>
220
221         <listitem>
222           <para>Install <productname>olsrd</productname> on every device. This
223           is different for several supported operating systems:</para>
224
225           <variablelist>
226             <varlistentry>
227               <term>Linux</term>
228
229               <listitem>
230                 <para>Download a stable source tar.gz. Unpack. Be sure to
231                 install the build tools (e.g. <command>apt-get install
232                 build-essential flex bison</command>). Do <command>make
233                 build_all</command>. Do <command>sudo make
234                 install_all</command>. Edit the
235                 <filename>/usr/local/etc/olsrd.conf</filename> file and change
236                 at least the <option>Interface</option> section for your WLAN
237                 card. You may also want to enable the httpinfo plugin. Start
238                 with <command>olsrd -f /usr/local/etc/olsrd.conf -d
239                 1</command>.</para>
240
241                 <para>You may add <option>PREFIX=/usr</option> to the
242                 <command>make</command> commands which changes the
243                 installation pathes to <filename>/etc</filename>,
244                 <filename>/usr/sbin</filename>, and
245                 <filename>/usr/lib</filename> as it is the default with
246                 previous <productname>olsrd</productname> versions.</para>
247               </listitem>
248             </varlistentry>
249
250             <varlistentry>
251               <term>Windows</term>
252
253               <listitem>
254                 <para>Download the Windows installer. Install and run the
255                 <filename>Switch.exe</filename> GUI as admin. Select the WLAN
256                 card and de-select any other interface offered. Click the
257                 <guibutton>Start</guibutton> button. Keep in mind: only a user
258                 with admin rights can change the routing table. Because a
259                 personal operating system is optimize to give you a maximum of
260                 security and convenience. As a consequence, it does not
261                 support cooperation too well. To cooperate, disable at least
262                 any active firewall solution on the WLAN card to enable
263                 forwarding for others. For security, disable all protocols and
264                 services for the WLAN card with the exception of basic TCP/IP.
265                 </para>
266               </listitem>
267             </varlistentry>
268
269             <varlistentry>
270               <term>BSD</term>
271
272               <listitem>
273                 <para>Basically use the same procedure as with Linux. You need
274                 to install and use the <command>gmake</command> command to
275                 build and install.</para>
276               </listitem>
277             </varlistentry>
278
279             <varlistentry>
280               <term>Embedded:</term>
281
282               <listitem>
283                 <para>Your mileage may vary with different embedded firmwares
284                 and operating systems. You may flash the Freifunk Firmware.
285                 DD-WRT has <productname>olsrd</productname> support. OpenWrt
286                 comes with a pre-compiled binary for
287                 <productname>olsrd</productname>. There is an ongoing
288                 OpenWrt/Kamikaze project with <productname>olsrd</productname>
289                 named ffluci. Installation and configuration is different for
290                 those Linux flavours - be sure to read their docs or online
291                 help files.</para>
292               </listitem>
293             </varlistentry>
294           </variablelist>
295         </listitem>
296
297         <listitem>
298           <para>If <productname>olsrd</productname> detects the correct
299           topology as well as installs/removes routes matching that topology,
300           you may offer Internet on one of your devices. Either enable a
301           manual <quote>HNA { 0.0.0.0 0.0.0.0 }</quote> in the configuration
302           file or use the dyn_gw or dyn_gw_plain plugins. For most Internet
303           connections, you need to enable NAT/MASQUERADING to translate the
304           private IP addresses to the globally valid IP address on the
305           Internet gateway device.</para>
306         </listitem>
307
308         <listitem>
309           <para>Start debugging if necessary. Use the <ulink
310           url="http://localhost:8080/">http://localhost:8080/</ulink> URL to
311           query information from the httpinfo plugin. Use
312           <command>wireshark</command> or <command>tcpdump -ni [iface] udp and
313           port 698</command> to verify OLSR messaging. Take special care for
314           the WLAN cards in Ad hoc / IBSS mode: typical driver/card
315           combinations tend to disagree about the auto-negotiated BSSID over
316           time (also called IBSS-split) which may be solved by using a
317           manually configured BSSID.</para>
318         </listitem>
319       </orderedlist>
320     </refsect1>
321
322     <refsect1>
323       <title>Options</title>
324
325       <para>You can specify options either on the command line or by using a
326       config file - usually <filename>/etc/olsrd.conf</filename> or
327       <filename>/usr/local/etc/olsrd.conf</filename>. The getopt parser
328       replaces the <option>--config</option> option with options acquired in
329       from the specified config file. While it is possible to operate using
330       only command line options, you may want a config file especially for
331       readability of the larger config options (e.g. <option>Interface { ...
332       }</option> or <option>LoadPlugin { ... }</option> option blocks). To
333       preset a config file setting, add an option before
334       <option>--config</option>. To overwrite a config file setting, add an
335       option after <option>--config</option>.</para>
336
337       <para>The following list summarizes options frequently specified on the
338       command line. If you use one or more command line options, you normally
339       also have to specify <option>--config</option> for the desired config
340       file.</para>
341
342       <variablelist>
343         <varlistentry>
344           <term><option>-h</option> or <option>--help</option></term>
345
346           <listitem>
347             <para>Prints out the list of valid command line / config file
348             options and exits.</para>
349           </listitem>
350         </varlistentry>
351
352         <varlistentry>
353           <term><option>-v</option> or <option>--version</option></term>
354
355           <listitem>
356             <para>Prints out the current version number and exits.</para>
357           </listitem>
358         </varlistentry>
359
360         <varlistentry>
361           <term><option>-f <replaceable>configfile</replaceable></option> or
362           <option>--config
363           <replaceable>configfile</replaceable></option></term>
364
365           <listitem>
366             <para>Reads in the specified config file. The acquired options are
367             inserted into the command line at the position of the
368             <option>-f</option> or <option>--config</option> option.</para>
369           </listitem>
370         </varlistentry>
371
372         <varlistentry>
373           <term><option>-d level</option> or <option>--DebugLevel
374           <replaceable>level</replaceable></option></term>
375
376           <listitem>
377             <para>Specifies the amount of debug information to be printed out
378             during operation. If set to 0, <productname>olsrd</productname>
379             will run in the background.</para>
380           </listitem>
381         </varlistentry>
382
383         <varlistentry>
384           <term><option>-n</option> or <option>--nofork</option></term>
385
386           <listitem>
387             <para>This option causes <productname>olsrd</productname> not to
388             fork into the background, even when started with
389             <option>--DebugLevel 0</option>.</para>
390           </listitem>
391         </varlistentry>
392
393         <varlistentry>
394           <term><option>-X</option> or <option>--dispin</option></term>
395
396           <listitem>
397             <para>This option causes <productname>olsrd</productname> to
398             display all incoming packet data.</para>
399           </listitem>
400         </varlistentry>
401
402         <varlistentry>
403           <term><option>-O</option> or <option>--dispout</option></term>
404
405           <listitem>
406             <para>This option causes <productname>olsrd</productname> to
407             display all outgoing packet data.</para>
408           </listitem>
409         </varlistentry>
410
411         <varlistentry>
412           <term><option>-D</option> or <option>--delgw</option></term>
413
414           <listitem>
415             <para>This option will remove a static default route when
416             <productname>olsrd</productname> adds an Internet route based on
417             OLSR routing.</para>
418           </listitem>
419         </varlistentry>
420
421         <varlistentry>
422           <term><option>-P</option> or <option>--ipc</option></term>
423
424           <listitem>
425             <para>This option allows the GUI front end to create one
426             connection to <productname>olsrd</productname> at runtime.</para>
427           </listitem>
428         </varlistentry>
429
430         <varlistentry>
431           <term><option>-H <replaceable>ipaddr</replaceable></option> or
432           <option>--hemu <replaceable>ipaddr</replaceable></option></term>
433
434           <listitem>
435             <para>Use this option to connect to the <xref
436             endterm="olsr_switch_8-title" linkend="olsr_switch_8" /> network
437             simulation application. Here <replaceable>ipaddr</replaceable>
438             will be the IP address that the process will set as its main
439             address in the emulation mode. This emulated interfaces have no
440             connection to the real IP stack and can be chosen freely.</para>
441           </listitem>
442         </varlistentry>
443
444         <varlistentry>
445           <term><option>-i</option></term>
446
447           <listitem>
448             <para>Ignored for compatibility - older versions of
449             <productname>olsrd</productname> expect one or more interface
450             names after this option (see below).</para>
451           </listitem>
452         </varlistentry>
453
454         <varlistentry>
455           <term><option><replaceable>interface1</replaceable>
456           interface2...</option></term>
457
458           <listitem>
459             <para>Any character combination without a leading dash is
460             interpreted as a list of interfaces. The list specifies on what
461             network interfaces <productname>olsrd</productname> should run.
462             Only the main IP address of an interface is evaluated, so you
463             cannot specify an interface alias such as eth0:1. Note, that you
464             also cannot change the interface parameters such as intervals and
465             validity times. Use the <option>Interface { ... }</option> option
466             block instead.</para>
467           </listitem>
468         </varlistentry>
469       </variablelist>
470     </refsect1>
471
472     <refsect1>
473       <title>Files</title>
474
475       <simplelist type="vert">
476         <member><filename><?install-datadir ?>/etc/olsrd.conf</filename></member>
477       </simplelist>
478     </refsect1>
479
480     <refsect1>
481       <title>See Also</title>
482
483       <simplelist type="inline">
484         <member><xref endterm="olsrd_conf_5-title"
485         linkend="olsrd_conf_5" /></member>
486       </simplelist>
487     </refsect1>
488   </refentry>
489
490   <refentry id="olsrd_conf_5">
491     <indexterm>
492       <primary><filename>olsrd.conf</filename></primary>
493     </indexterm>
494
495     <refentryinfo>
496       <titleabbrev>Configuration File for
497       <productname>olsrd</productname></titleabbrev>
498     </refentryinfo>
499
500     <refmeta>
501       <refentrytitle id="olsrd_conf_5-title">olsrd.conf</refentrytitle>
502
503       <manvolnum>5</manvolnum>
504     </refmeta>
505
506     <refnamediv>
507       <refname><filename>olsrd.conf</filename></refname>
508
509       <refpurpose>configuration file for <xref endterm="olsrd_8-title"
510       linkend="olsrd_8" /></refpurpose>
511     </refnamediv>
512
513     <refsect1>
514       <title>Description</title>
515
516       <para>The <filename>olsrd.conf</filename> file is located in /etc or
517       /usr/local/etc by default. The file contains run-time configuration
518       settings for the Optimized Link State Routing daemon <xref
519       endterm="olsrd_8-title" linkend="olsrd_8" />. During startup, the
520       <productname>olsrd</productname> daemon reads in the file. If no command
521       line options are present, the default configuration file is read in.
522       Otherwise, the file specified by the <option>-f</option> or
523       <option>--config</option> command line option is used. All settings are
524       inserted as command line options by prepending a double dash and feeding
525       them to the getopt parser. The configuration file consists of comments,
526       single options and option blocks explained below.</para>
527
528       <para><emphasis role="strong">Note</emphasis>: With earlier versions of
529       <productname>olsrd</productname>, the configuration parser was offered
530       as stand alone shared library or DLL. With the exception of the Windows
531       GUI program (<command>Switch.exe</command>), this was unused. To
532       optimize the file size for embedded devices, the stand-alone
533       configuration parser was discarded.</para>
534     </refsect1>
535
536     <refsect1>
537       <title>Comments</title>
538
539       <para>Comments are everything following a hash character
540       (<emphasis>#</emphasis>) on a line. This data is discarded. Commenting
541       out an option is an easy way to make <productname>olsrd</productname>
542       use the default value for that option.</para>
543     </refsect1>
544
545     <refsect1>
546       <title>Option Syntax</title>
547
548       <para>An option starts with a keyword. If the option accepts arguments,
549       separate the keyword and the arguments with one or more space characters
550       (or tabs) on the same line. You can surround arguments with double or
551       single quotes, for example if an argument contains a space
552       character.</para>
553     </refsect1>
554
555     <refsect1>
556       <title>Single Options</title>
557
558       <para><emphasis role="strong">Caution</emphasis>: The current
559       implementation (olsrd-0.5.7-pre as of Dec-2008) discards several single
560       options controlling the Link Quality Extensions valid with earlier
561       versions. It is planned to re-implement the RFC-mode by using a special
562       LinkQualityAlgorithm plugin. Discarded options:
563       <option>UseHysteresis</option>, <option>HystScaling</option>,
564       <option>HystThrHigh</option>, <option>HystThrLow</option>,
565       <option>LinkQualityLevel</option>, and
566       <option>LinkQualityWinsize</option>.</para>
567
568       <para>Single options consists of a keyword and a value. Note, that a
569       comment can follow such a option on the same line. Valid single options
570       are:</para>
571
572       <variablelist>
573         <varlistentry>
574           <term><option>config</option>
575           <replaceable>configfile</replaceable></term>
576
577           <listitem>
578             <para>Nesting within config files is not supported. Do not
579             use.</para>
580           </listitem>
581         </varlistentry>
582
583         <varlistentry>
584           <term><option>delgw</option>, <option>dispin</option>,
585           <option>dispout</option>, <option>help</option>,
586           <option>hemu</option>, <option>iface</option>, <option>ipc</option>,
587           <option>nofork</option>, <option>version</option>:</term>
588
589           <listitem>
590             <para>While these are valid options, they do not make much sense
591             in a config file. Refer to <xref endterm="olsrd_8-title"
592             linkend="olsrd_8" /> for their meaning.</para>
593           </listitem>
594         </varlistentry>
595
596         <varlistentry>
597           <term><option>AllowNoInt</option>
598           <replaceable>yes</replaceable>|<replaceable>no</replaceable></term>
599
600           <listitem>
601             <para><productname>olsrd</productname> supports dynamic
602             configuration of network interfaces. This means that interfaces on
603             which <productname>olsrd</productname> runs on can be reconfigured
604             and <productname>olsrd</productname> will update itself with no
605             need to be restarted. <productname>olsrd</productname> also
606             supports removal and addition of interfaces in run-time. This
607             option specifies that <productname>olsrd</productname> should keep
608             running if no network interfaces are available. Defaults to
609             <replaceable>yes</replaceable>.</para>
610           </listitem>
611         </varlistentry>
612
613         <varlistentry>
614           <term><option>ClearScreen</option>
615           <replaceable>yes</replaceable>|<replaceable>no</replaceable></term>
616
617           <listitem>
618             <para>If set to <replaceable>yes</replaceable> and
619             <productname>olsrd</productname> running with a
620             <option>DebugLevel</option> other that
621             <replaceable>0</replaceable>, the terminal to which output is sent
622             (STDOUT) is cleared prior to writing updated tables. This makes it
623             easier to follow changes in real-time.</para>
624           </listitem>
625         </varlistentry>
626
627         <varlistentry>
628           <term><option>DebugLevel</option>
629           <replaceable>0</replaceable>-<replaceable>9</replaceable></term>
630
631           <listitem>
632             <para>Controls the amount of debug output
633             <productname>olsrd</productname> prints out. If set to
634             <replaceable>0</replaceable>, <productname>olsrd</productname>
635             will detach from the current process and run in the background. A
636             value of <replaceable>9</replaceable> yields a maximum of debug
637             output. Defaults to <replaceable>0</replaceable>.</para>
638           </listitem>
639         </varlistentry>
640
641         <varlistentry>
642           <term><option>FIBMetric</option>
643           <replaceable>flat</replaceable>|<replaceable>correct</replaceable>|<replaceable>approx</replaceable></term>
644
645           <listitem>
646             <para>This setting controls how the metric value for kernel routes
647             is handled. While analyzing new information of the mesh topology,
648             <productname>olsrd</productname> may change the internal routing
649             path to several distant nodes (in hops). If this setting is set to
650             <replaceable>flat</replaceable>, kernel routes always have a
651             metric of 2. No route update is necessary if the internal routing
652             pathes change. If this setting is set to
653             <replaceable>correct</replaceable>, the kernel metric shows the
654             number of hops to the destination. This induces frequent routing
655             changes in larger meshes. If this setting is set to
656             <replaceable>approx</replaceable>, the current hop number is set
657             as a route metric but not updated if
658             <productname>olsrd</productname> detects a hop number change.
659             Defaults to <replaceable>flat</replaceable>.</para>
660           </listitem>
661         </varlistentry>
662
663         <varlistentry>
664           <term><option>IpVersion</option>
665           <replaceable>4</replaceable>|<replaceable>6</replaceable></term>
666
667           <listitem>
668             <para><productname>olsrd</productname> supports both IP versions:
669             <replaceable>4</replaceable> and <replaceable>6</replaceable>.
670             This option controls what IP version
671             <productname>olsrd</productname> uses. Defaults to
672             <replaceable>4</replaceable>.</para>
673           </listitem>
674         </varlistentry>
675
676         <varlistentry>
677           <term><option>LinkQualityAging</option>
678           <replaceable>0.01</replaceable>-<replaceable>1.0</replaceable></term>
679
680           <listitem>
681             <para>This setting controls the LQ/ETX change speed for the
682             <emphasis>etx_fpm</emphasis> and <emphasis>etx_float</emphasis>
683             link quality plugins. A higher value will result in faster LQ/ETX
684             changes. Defaults to <replaceable>0.1</replaceable>.</para>
685           </listitem>
686         </varlistentry>
687
688         <varlistentry>
689           <term><option>LinkQualityAlgorithm</option>
690           <replaceable>etx_fpm</replaceable>|<replaceable>etx_float</replaceable>|<replaceable>etx_ff</replaceable></term>
691
692           <listitem>
693             <para>Selects one of the internal LQ/ETX detection algorithms.
694             Both <replaceable>etx_fpm</replaceable> (uses integers) and
695             <replaceable>etx_float</replaceable> (uses floating point math)
696             calculate the link quality based on HELLO and LQ_HELLO message
697             loss. Note, that HELLO messages trigger a send-buffer-flush, so
698             basically HELLOs are sent in small packets. Because the packet
699             loss for small packets is much lower than for large packets, these
700             algorithms may not discover optimal routes. If set to
701             <replaceable>etx_ff</replaceable>, LQ/ETX detection is based on
702             OLSR packet loss as it is the default with previous
703             <productname>olsrd</productname> versions. Note, that
704             <productname>olsrd</productname> needs to send large signaling
705             packet for this to work properly, which is only true if you have a
706             larger mesh (&gt;50 nodes). Defaults to
707             <replaceable>etx_fpm</replaceable>.</para>
708           </listitem>
709         </varlistentry>
710
711         <varlistentry>
712           <term><option>LinkQualityDijkstraLimit</option>
713           <replaceable>0</replaceable>|<replaceable>255</replaceable>
714           <replaceable>[Pollrate]</replaceable>-<replaceable>120.0</replaceable></term>
715
716           <listitem>
717             <para>This setting configures a calculation optimization which may
718             be necessary for large meshes with slow nodes (e.g. 100 MHz ARM
719             CPU). Normally, an incoming TC message triggers a re-calculation
720             of the internal network model. This setting can be used switch to
721             a regularly calculation (first value set to
722             <replaceable>0</replaceable>) and to use a specific calculation
723             interval in seconds (second value larger then
724             <replaceable>[Pollrate]</replaceable>). Note, that infrequent
725             re-calculation may introduce routing loops because nodes need more
726             time to adapt their routing tables. Defaults to
727             <replaceable>255</replaceable> <replaceable>0.0</replaceable>
728             (inactive).</para>
729           </listitem>
730         </varlistentry>
731
732         <varlistentry>
733           <term><option>LinkQualityFishEye</option>
734           <replaceable>0</replaceable>|<replaceable>1</replaceable></term>
735
736           <listitem>
737             <para>Enables (<replaceable>1</replaceable>) or disables
738             (<replaceable>0</replaceable>) the experimental fish eye
739             algorithm. In mesh network with high packet loss, the topology
740             information does not spread fast and synchronized, which
741             introduces routing loops. The fish eye algorithm will send TC
742             (Topology Control) messages with varying TTL values. Which floods
743             the near neighborhood more often with topology information than
744             distant nodes (in hops). Use this option together with a shorter
745             <option>TcInterval</option> and a higher
746             <option>MprCoverage</option> setting.</para>
747           </listitem>
748         </varlistentry>
749
750         <varlistentry>
751           <term><option>MprCoverage</option> <replaceable>1</replaceable> or
752           higher</term>
753
754           <listitem>
755             <para>This value decides, how many MPRs a node should attempt to
756             select for every two hop neighbor. Defaults to
757             <emphasis><replaceable>1</replaceable></emphasis>, and any other
758             setting will severely reduce the optimization introduced by the
759             MPR scheme. Note, that when using the
760             <option>LinkQualityFishEye</option> option, a higher value is
761             recommended.</para>
762           </listitem>
763         </varlistentry>
764
765         <varlistentry>
766           <term><option>NatThreshold</option>
767           <replaceable>0.1</replaceable>-<replaceable>1.0</replaceable></term>
768
769           <listitem>
770             <para>In a large mesh network, several gateways may announce HNA
771             0/0 which basically says <quote>Internet here</quote>. Because
772             most Internet gateways offer their service using a translated
773             globally valid IP (NAT), switching the current gateway terminates
774             all running NATted connections. In other words: if you live
775             between 2 Internet gateways and start download, the download may
776             block some OLSR packets. The download will stop because this
777             triggers a route change - especially if you do not use traffic
778             shaping to prioritize OLSR packets. This setting introduces a
779             threshold to stop switching the default gateway on minor LQ/ETX
780             changes if another (NATted) gateway is to be used. As a trade off,
781             this may introduce routing loops or selects a bad gateway if the
782             threshold is too low. Defaults to <replaceable>1.0</replaceable>
783             (inactive).</para>
784           </listitem>
785         </varlistentry>
786
787         <varlistentry>
788           <term><option>NicChgsPollInt</option>
789           <replaceable>0.1</replaceable>-<replaceable>100.0</replaceable></term>
790
791           <listitem>
792             <para>This option sets the interval, in seconds, that
793             <productname>olsrd</productname> will check the configured
794             interfaces for changes in configuration. Defaults to
795             <replaceable>2.5</replaceable>.</para>
796           </listitem>
797         </varlistentry>
798
799         <varlistentry>
800           <term><option>Pollrate</option>
801           <replaceable>0.1</replaceable>-<replaceable>10.0</replaceable></term>
802
803           <listitem>
804             <para>This option sets the sleep interval, in seconds. While
805             polling the interfaces, the <productname>olsrd</productname>
806             scheduler will sleep for this time if no packets are to be
807             received. If the value is set too high for the current UDP receive
808             buffer size, packet loss will occur. Note, that the current
809             <productname>olsrd</productname> implementation internally
810             calculates timing values in milliseconds (1/1000s). Defaults to
811             <replaceable>0.1</replaceable>.</para>
812           </listitem>
813         </varlistentry>
814
815         <varlistentry>
816           <term><option>RtProto</option>
817           <replaceable>0</replaceable>-<replaceable>255</replaceable></term>
818
819           <listitem>
820             <para>This setting configures the routing protocol ID to be used
821             when setting routes via rtnetlink, see RTNETLINK(7) for the
822             <emphasis>rtm_protocol</emphasis> keyword. Defaults to
823             <replaceable>3</replaceable>.</para>
824           </listitem>
825         </varlistentry>
826
827         <varlistentry>
828           <term><option>RtTableDefault</option>
829           <replaceable>0</replaceable>|<replaceable>1</replaceable>-<replaceable>254</replaceable></term>
830
831           <listitem>
832             <para>Defines the routing table for inserting a new default route.
833             Defaults to <replaceable>0</replaceable> (use
834             <option>RtTable</option>)</para>
835           </listitem>
836         </varlistentry>
837
838         <varlistentry>
839           <term><option>RtTable</option>
840           <replaceable>1</replaceable>-<replaceable>254</replaceable></term>
841
842           <listitem>
843             <para>With Linux and BSD, more than one routing table exist in the
844             system. Together with a rules set that determines which table
845             handles what packets, these system functions are called
846             <quote>iproute2</quote> or <quote>Policy Routing</quote>. You may
847             want to read the <ulink url="http://lartc.org/">Linux Advanced
848             Routing &amp; Traffic Control</ulink> for details. Defaults to
849             <replaceable>254</replaceable> (or <quote>main</quote>, see
850             <filename>/etc/iproute2/rt_tables</filename>)</para>
851           </listitem>
852         </varlistentry>
853
854         <varlistentry>
855           <term><option>TcRedundancy</option>
856           <replaceable>0</replaceable>|<replaceable>1</replaceable>|<replaceable>2</replaceable></term>
857
858           <listitem>
859             <para>This value controls the TC redundancy used by the local node
860             in TC message generation. To enable a more robust understanding of
861             the topology, nodes can be set to announce more than just their
862             MPR selector set in TC messages. If set to
863             <replaceable>0</replaceable>, the advertised link set of the node
864             is limited to the MPR selectors. If set to
865             <replaceable>1</replaceable>, the advertised link set of the node
866             is the union of its MPR set and its MPR selector set. If set to
867             <replaceable>2</replaceable>, the advertised link set of the node
868             is the full symmetric neighbor set of the node. Defaults to
869             <replaceable>0</replaceable>.</para>
870           </listitem>
871         </varlistentry>
872
873         <varlistentry>
874           <term><option>TosValue</option>
875           <replaceable>0</replaceable>-<replaceable>16</replaceable></term>
876
877           <listitem>
878             <para>This value controls the type of service value to set in the
879             IP header of OLSR control traffic. Defaults to
880             <replaceable>16</replaceable>.</para>
881           </listitem>
882         </varlistentry>
883
884         <varlistentry>
885           <term><option>Willingness</option>
886           <replaceable>0</replaceable>-<replaceable>7</replaceable></term>
887
888           <listitem>
889             <para>Nodes participating in an OLSR routed network will announce
890             their willingness to act as relays for OLSR control traffic for
891             their neighbors (MPR). This option specifies a fixed willingness
892             value to be announced by the local node.
893             <replaceable>4</replaceable> is a neutral option here, while
894             <replaceable>0</replaceable> specifies that this node will never
895             act as a relay, and <replaceable>7</replaceable> specifies that
896             this node will always act as such a relay. If this option is unset
897             in the configuration file, then <productname>olsrd</productname>
898             will try to retrieve information about the system power and
899             dynamically update willingness according to this info. If no such
900             info can be retrieved willingness is set to
901             <replaceable>4</replaceable>.</para>
902           </listitem>
903         </varlistentry>
904       </variablelist>
905     </refsect1>
906
907     <refsect1 id="olsrd_conf_5_optionblocks">
908       <title id="olsrd_conf_5_optionblocks-title">Option Blocks</title>
909
910       <para>Option blocks are configuration options that holds a body of
911       sub-options encapsulated in curled braces <quote>{...}</quote>. Note,
912       that you need to separate the keyword and the starting brace with one or
913       more whitespace characters (spaces, tabs, or newlines). Also separate
914       sub-options as well as the closing brace with additional whitespace
915       characters. Valid options are:</para>
916
917       <variablelist>
918         <varlistentry>
919           <term><option>IpcConnect { <replaceable>sub-options</replaceable>
920           }</option></term>
921
922           <listitem>
923             <para><productname>olsrd</productname> can allow processes to make
924             a TCP connection to itself on which data regarding the topology
925             will be transmitted. This is typically used by GUI applications to
926             provide a user-friendly front-end to
927             <productname>olsrd</productname>. This option block controls the
928             IPC access. Sub options are:</para>
929
930             <variablelist>
931               <varlistentry>
932                 <term><option>MaxConnections</option>
933                 <replaceable>0</replaceable>-<replaceable>5</replaceable></term>
934
935                 <listitem>
936                   <para>This option specifies how many connections that can
937                   exist simultaneously. Multiple connections have not been
938                   tested, and probably do not work! This option should only be
939                   used to control whether or not processes can connect to
940                   <productname>olsrd</productname> by setting it either to
941                   <replaceable>0</replaceable>, which will tell
942                   <productname>olsrd</productname> not to allow any
943                   connections, or by setting it to a positive value. Defaults
944                   to <replaceable>0</replaceable>.</para>
945                 </listitem>
946               </varlistentry>
947
948               <varlistentry>
949                 <term><option>Host</option>
950                 <replaceable>ipaddr</replaceable></term>
951
952                 <listitem>
953                   <para>This option specifies a single host that is allowed to
954                   connect to <productname>olsrd</productname>. By default only
955                   the loopback address (127.0.0.1) is allowed to access. If
956                   you want to be able to connect from another host, you should
957                   add that IP address. You may add multiple hosts.</para>
958                 </listitem>
959               </varlistentry>
960
961               <varlistentry>
962                 <term><option>Net</option> <replaceable>ipaddr</replaceable>
963                 <replaceable>netmask</replaceable>|<replaceable>prefix</replaceable></term>
964
965                 <listitem>
966                   <para>You can specify a net range of IP addresses which
967                   <productname>olsrd</productname> will allow TCP connections
968                   from. Besides the IP address, you need to specify a netmask
969                   for IPv4 and a prefix for IPv6. You may add multiple
970                   networks.</para>
971                 </listitem>
972               </varlistentry>
973             </variablelist>
974           </listitem>
975         </varlistentry>
976
977         <varlistentry>
978           <term><option>Hna4 { <replaceable>sub-options</replaceable>
979           }</option></term>
980
981           <listitem>
982             <para>Hosts in a routed network can announce connectivity to
983             external networks or hosts using HNA messages. This option block
984             is used to set the IPv4 networks or hosts to be announced. Sub
985             options are:</para>
986
987             <variablelist>
988               <varlistentry>
989                 <term><replaceable>IPv4-address</replaceable>
990                 <replaceable>IPv4-netmask</replaceable></term>
991
992                 <listitem>
993                   <para>Specifies an IPv4 network or host to be announced via
994                   HNA messages. Multiple entries can be added. To announce
995                   Internet connectivity, add
996                   <replaceable>0.0.0.0</replaceable>
997                   <replaceable>0.0.0.0</replaceable>. To announce a single
998                   host, add <replaceable>ipaddr</replaceable>
999                   <replaceable>255.255.255.255</replaceable>.</para>
1000                 </listitem>
1001               </varlistentry>
1002             </variablelist>
1003           </listitem>
1004         </varlistentry>
1005
1006         <varlistentry>
1007           <term><option>Hna6 { <replaceable>sub-options</replaceable>
1008           }</option></term>
1009
1010           <listitem>
1011             <para>Hosts in a routed network can announce connectivity to
1012             external networks or hosts using HNA messages. This option block
1013             is used to set the IPv6 networks or hosts to be announced. Sub
1014             options are:</para>
1015
1016             <variablelist>
1017               <varlistentry>
1018                 <term><replaceable>IPv6-address</replaceable> 0-128</term>
1019
1020                 <listitem>
1021                   <para>Specifies an IPv6 network or host to be announced via
1022                   HNA messages. Multiple entries can be added. To announce
1023                   Internet connectivity, add <replaceable>::</replaceable>
1024                   <replaceable>0</replaceable> . To announce a single host,
1025                   add <replaceable>ipaddr</replaceable>
1026                   <replaceable>128</replaceable>.</para>
1027                 </listitem>
1028               </varlistentry>
1029             </variablelist>
1030           </listitem>
1031         </varlistentry>
1032
1033         <varlistentry>
1034           <term><option>LoadPlugin <replaceable>plugin-filename</replaceable>
1035           { <replaceable>sub-options</replaceable> }</option></term>
1036
1037           <listitem>
1038             <para>Specifies a plugin that <productname>olsrd</productname>
1039             should load at startup. You need to specify the filename for the
1040             shared object file (<filename>*.so</filename> on Linux and
1041             <filename>*.dll</filename> on Windows). Read the
1042             <filename>README</filename> in the plugin's source directory or
1043             refer the <xref endterm="olsrd_conf_5_plugins-title"
1044             linkend="olsrd_conf_5_plugins" /> section below. This option block
1045             can be repeated to add multiple plugins. Sub options are:</para>
1046
1047             <variablelist>
1048               <varlistentry>
1049                 <term><option>PlParam</option> <replaceable>key</replaceable>
1050                 <replaceable>value</replaceable></term>
1051
1052                 <listitem>
1053                   <para>Sends a pair of parameters to the plugin at
1054                   initialization. The parameter's
1055                   <replaceable>key</replaceable> is case insensitive. Refer to
1056                   the <xref endterm="olsrd_conf_5_plugins-title"
1057                   linkend="olsrd_conf_5_plugins" /> section below or consult
1058                   individual plugin documentation for possible
1059                   parameters.</para>
1060                 </listitem>
1061               </varlistentry>
1062             </variablelist>
1063           </listitem>
1064         </varlistentry>
1065
1066         <varlistentry>
1067           <term><option>Interface <replaceable>interface1</replaceable>
1068           <replaceable>interface2...</replaceable> {
1069           <replaceable>sub-options</replaceable> }</option></term>
1070
1071           <listitem>
1072             <para>This option block specifies one or more network interfaces
1073             on which <productname>olsrd</productname> should run. At least one
1074             network interface block must be specified for
1075             <productname>olsrd</productname> to run. Various parameters can be
1076             specified on individual interfaces or groups of interfaces. This
1077             option block can be repeated to add multiple interface
1078             configurations. Sub options are:</para>
1079
1080             <variablelist>
1081               <varlistentry>
1082                 <term><option>AutoDetectChanges</option>
1083                 <replaceable>yes</replaceable>|<replaceable>no</replaceable></term>
1084
1085                 <listitem>
1086                   <para><productname>olsrd</productname> can auto detect
1087                   changes in interface configurations by polling on the
1088                   interval set by <option>NicChgsPollInt</option>. This is
1089                   enabled by default but can be turned off per interface to
1090                   save CPU cycles.</para>
1091                 </listitem>
1092               </varlistentry>
1093
1094               <varlistentry>
1095                 <term><option>Ip4Broadcast</option>
1096                 <replaceable>IPv4-address</replaceable></term>
1097
1098                 <listitem>
1099                   <para>Forces the given IPv4 broadcast address to be used as
1100                   destination address for all outgoing OLSR traffic on the
1101                   interface. If your mesh uses several IP address ranges, the
1102                   global broadcast address
1103                   <replaceable>255.255.255.255</replaceable> can be used. If
1104                   you use a point-to-point link (e.g. a tun-type VPN tunnel),
1105                   you may configure the neighbours IP address. If this option
1106                   is unset, the broadcast address of the interface will be
1107                   used. In this case, the broadcast address will be updated
1108                   during run-time if a change is detected.</para>
1109                 </listitem>
1110               </varlistentry>
1111
1112               <varlistentry>
1113                 <term><option>Ip6AddrType</option>
1114                 <replaceable>site-local</replaceable>|<replaceable>unique-local</replaceable>|<replaceable>global</replaceable></term>
1115
1116                 <listitem>
1117                   <para>This option sets the IPv6 address type to be used for
1118                   interface address detection. Defaults to
1119                   <replaceable>site-local</replaceable>.</para>
1120                 </listitem>
1121               </varlistentry>
1122
1123               <varlistentry>
1124                 <term><option>Ip6MulticastSite</option>
1125                 <replaceable>IPv6-address</replaceable></term>
1126
1127                 <listitem>
1128                   <para>If <option>Ip6AddrType</option> is set to
1129                   <replaceable>site-local</replaceable>, this setting forces
1130                   the given IPv6 broadcast address to be used as destination
1131                   address for all outgoing OLSR traffic on the interface.
1132                   .</para>
1133                 </listitem>
1134               </varlistentry>
1135
1136               <varlistentry>
1137                 <term><option>Ip6MulticastGlobal</option>
1138                 <replaceable>IPv6-address</replaceable></term>
1139
1140                 <listitem>
1141                   <para>If <option>Ip6AddrType</option> is set to
1142                   <replaceable>global</replaceable>, this setting forces the
1143                   given IPv6 broadcast address to be used as destination
1144                   address for all outgoing OLSR traffic on the interface.
1145                   .</para>
1146                 </listitem>
1147               </varlistentry>
1148
1149               <varlistentry>
1150                 <term><option>HelloInterval</option>
1151                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1152
1153                 <listitem>
1154                   <para>Sets the interval on which HELLO (RFC-mode) or
1155                   LQ_HELLO (LQ/ETX-mode) messages will be generated and
1156                   transmitted on the interface. Note, that HELLO messages are
1157                   used to detect neighbours and determine symmetric
1158                   (bi-directional) links. These messages also include the
1159                   current neighbour information and always have a TTL of 1
1160                   which prevents any forwarding.</para>
1161                 </listitem>
1162               </varlistentry>
1163
1164               <varlistentry>
1165                 <term><option>HelloValidityTime</option>
1166                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1167
1168                 <listitem>
1169                   <para>Sets the validity time to be announced in HELLO or
1170                   LQ_HELLO messages transmitted on the interface. This value
1171                   must be larger than <option>HelloInterval</option>.</para>
1172                 </listitem>
1173               </varlistentry>
1174
1175               <varlistentry>
1176                 <term><option>TcInterval</option>
1177                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1178
1179                 <listitem>
1180                   <para>Sets the interval on which TC (RFC-mode) or LQ_TC
1181                   (LQ/ETX-mode) messages will be generated and transmitted on
1182                   the interface. Note, that TC (Topology Control) messages are
1183                   used to spread topology information. These messages also
1184                   include the current neighbour information and normally have
1185                   a TTL larger than 1 to flood them through the mesh network.
1186                   TC or LQ_TC messages may be forwarded delayed to support
1187                   packet aggregation. If the
1188                   <option>LinkQualityFishEye</option> option is enabled, the
1189                   TTL for these messages is varied to faster distribute
1190                   topology information in the near neighbourhood.</para>
1191                 </listitem>
1192               </varlistentry>
1193
1194               <varlistentry>
1195                 <term><option>TcValidityTime</option>
1196                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1197
1198                 <listitem>
1199                   <para>Sets the validity time to be announced in TC or LQ_TC
1200                   messages transmitted on the interface. This value must be
1201                   larger than <option>TcInterval</option>.</para>
1202                 </listitem>
1203               </varlistentry>
1204
1205               <varlistentry>
1206                 <term><option>MidInterval</option>
1207                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1208
1209                 <listitem>
1210                   <para>Sets the interval on which MID messages will be
1211                   generated and transmitted on the interface. Note, that MID
1212                   messages spread alias information and will be emitted only
1213                   by nodes with more than one <productname>olsrd</productname>
1214                   interface.</para>
1215                 </listitem>
1216               </varlistentry>
1217
1218               <varlistentry>
1219                 <term><option>MidValidityTime</option>
1220                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1221
1222                 <listitem>
1223                   <para>Sets the validity time to be announced in MID messages
1224                   transmitted on the interface. This value must be larger than
1225                   <option>MidInterval</option>.</para>
1226                 </listitem>
1227               </varlistentry>
1228
1229               <varlistentry>
1230                 <term><option>HnaInterval</option>
1231                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1232
1233                 <listitem>
1234                   <para>Sets the interval on which HNA messages will be
1235                   generated and transmitted on the interface. Note, that HNA
1236                   messages spread gateway information and will be emitted only
1237                   by nodes with configured <option>Hna4</option> or
1238                   <option>Hna6</option> options.</para>
1239                 </listitem>
1240               </varlistentry>
1241
1242               <varlistentry>
1243                 <term><option>HnaValidityTime</option>
1244                 <replaceable>0.0</replaceable>-<replaceable>3968.0</replaceable></term>
1245
1246                 <listitem>
1247                   <para>Sets the validity time to be announced in HNA messages
1248                   transmitted on the interface. This value must be larger than
1249                   <option>HnaInterval</option>.</para>
1250                 </listitem>
1251               </varlistentry>
1252
1253               <varlistentry>
1254                 <term><option>Weight</option>
1255                 <replaceable>0</replaceable>-<replaceable>[maxint]</replaceable></term>
1256
1257                 <listitem>
1258                   <para>When multiple links exist between hosts, the
1259                   <emphasis>weight</emphasis> of the interface is used to
1260                   determine the link to route by. Normally the
1261                   <emphasis>weight</emphasis> is automatically calculated by
1262                   <productname>olsrd</productname> based on the
1263                   characteristics of the interface, but here you can specify a
1264                   fixed value. <productname>olsrd</productname> will choose
1265                   links with the lowest <emphasis>weight</emphasis>
1266                   value.</para>
1267                 </listitem>
1268               </varlistentry>
1269
1270               <varlistentry>
1271                 <term><option>LinkQualityMult</option>
1272                 <replaceable>default</replaceable>|<replaceable>neighbour-ipaddr</replaceable>
1273                 <replaceable>0.1</replaceable>-<replaceable>1.0</replaceable></term>
1274
1275                 <listitem>
1276                   <para>When using <productname>olsrd</productname> in
1277                   LQ/ETX-mode, the neighbour link cost is calculated based on
1278                   packet loss or hello message loss (see
1279                   <option>LinkQualityAlgorithm</option> option). Because the
1280                   applied measurement may not reflect the real-live connection
1281                   quality and link speed, this setting allows you to manually
1282                   fine-tune the measurement results. You can add one or more
1283                   <option>LinkQualityMult</option> options and correlate the
1284                   IP address of a neighbour with a multiplication factor. This
1285                   setting only allows you to determine bad links, e.g. a
1286                   factor of <replaceable>0.5</replaceable> basically says:
1287                   <quote>this link is only half as good as the packet loss may
1288                   indicate</quote>. For this reason, the
1289                   <replaceable>default</replaceable> keyword can be used to
1290                   lower all ETX/LQ values with a lower factor. You then define
1291                   better links by adding further entries with known IP
1292                   addresses and a higher factor.</para>
1293
1294                   <para><emphasis role="strong">Note</emphasis>: While
1295                   switching routes generally is not harmful, people tend to
1296                   fiddle with the <option>LinkQualityMult</option> setting
1297                   only because their automatically selected Internet gateway
1298                   flaps. This is a bad habit, because it disturbs the ETX/LQ
1299                   measurement and leads to sub-optimal routes for others. Try
1300                   using the <option>NatThreshold</option> option instead.
1301                   Another option is manual gateway selection either by
1302                   automatic tunneling or by using a VPN technique.</para>
1303                 </listitem>
1304               </varlistentry>
1305             </variablelist>
1306           </listitem>
1307         </varlistentry>
1308       </variablelist>
1309     </refsect1>
1310
1311     <refsect1 id="olsrd_conf_5_plugins">
1312       <title id="olsrd_conf_5_plugins-title">Plugins</title>
1313
1314       <para>The functionality of the <productname>olsrd</productname> daemon
1315       is extendable by plugins. Plugins are shared object files
1316       (<filename>*.so</filename> on Linux or <filename>*.dll</filename> on
1317       Windows) to be loaded from <productname>olsrd</productname> during
1318       startup. To load a plugin, add the appropriate
1319       <option>LoadPlugin</option> option to the config file (see <xref
1320       endterm="olsrd_conf_5_optionblocks-title"
1321       linkend="olsrd_conf_5_optionblocks" /> above). A plugin accepts zero or
1322       more parameters, which can be added by <option>PlParam</option>
1323       <replaceable>key</replaceable> <replaceable>value</replaceable>
1324       statements to the <option>LoadPlugin</option> option block. The
1325       following plugin are included with the current
1326       <productname>olsrd</productname> installation:</para>
1327
1328       <variablelist>
1329         <varlistentry>
1330           <term><option>LoadPlugin arprefresh.so.0.1 {
1331           <replaceable>...</replaceable> }</option></term>
1332
1333           <listitem>
1334             <para>This plugin refreshes the local ARP cache from received OLSR
1335             messages. This optimizes the ARP lookups otherwise required if
1336             unicast traffic is send on a previously unused link chain. The
1337             correct function requires Linux kernel 2.6. The plugin accepts no
1338             parameters.</para>
1339           </listitem>
1340         </varlistentry>
1341
1342         <varlistentry>
1343           <term><option>LoadPlugin olsrd_bmf.so.1.5.3 {
1344           <replaceable>...</replaceable> }</option></term>
1345
1346           <listitem>
1347             <para>This plugin floods IP-multicast and optional IP-broadcast
1348             traffic via the MPR chain. The multicast or broadcast traffic is
1349             grabbed from a non-OLSR interface, forwarded through the mesh and
1350             exits to another non-OLSR interface. Note, that this plugin
1351             requires multi-threading support. Also note, that this plugin has
1352             a separate source repository on <ulink
1353             url="http://olsr-bmf.sourceforge.net/">http://olsr-bmf.sourceforge.net/</ulink>
1354             . The plugin accepts the following parameters.</para>
1355
1356             <variablelist>
1357               <varlistentry>
1358                 <term><option>PlParam</option> NonOlsrIf
1359                 <replaceable>interface</replaceable></term>
1360
1361                 <listitem>
1362                   <para>As a special feature, it is possible to also forward
1363                   from and to non-OLSR interfaces. If you have network
1364                   interfaces on which <productname>olsrd</productname> is not
1365                   running, but you do want to forward multicast and
1366                   local-broadcast IP packets, specify up to 32
1367                   <option>NonOlsrIf</option> sub-options.</para>
1368                 </listitem>
1369               </varlistentry>
1370
1371               <varlistentry>
1372                 <term><option>PlParam</option> DoLocalBroadcast
1373                 <replaceable>yes</replaceable>|<replaceable>true</replaceable>|<replaceable>no</replaceable>|<replaceable>false</replaceable></term>
1374
1375                 <listitem>
1376                   <para>Enable or disable the flooding of local broadcast
1377                   packets (e.g. packets with IP destination 192.168.1.255).
1378                   Defaults to <replaceable>yes</replaceable>.</para>
1379                 </listitem>
1380               </varlistentry>
1381
1382               <varlistentry>
1383                 <term><option>PlParam</option> BmfInterface
1384                 <replaceable>interface</replaceable></term>
1385
1386                 <listitem>
1387                   <para>Specifies the name of the BMF network interface.
1388                   Defaults to <replaceable>bmf0</replaceable>.</para>
1389                 </listitem>
1390               </varlistentry>
1391
1392               <varlistentry>
1393                 <term><option>PlParam</option> BmfInterfaceIp
1394                 <replaceable>ipaddr/prefix</replaceable></term>
1395
1396                 <listitem>
1397                   <para>Specifies the IP address and netmask for the BMF
1398                   network interface. By default, the IP address of the first
1399                   OLSR interface is copied. The default prefix is
1400                   <replaceable>32</replaceable>.</para>
1401                 </listitem>
1402               </varlistentry>
1403
1404               <varlistentry>
1405                 <term><option>PlParam</option> CapturePacketsOnOlsrInterfaces
1406                 <replaceable>yes</replaceable>|<replaceable>true</replaceable>|<replaceable>no</replaceable>|<replaceable>false</replaceable></term>
1407
1408                 <listitem>
1409                   <para>Enables or disables capturing packets on the
1410                   OLSR-enabled interfaces (in promiscuous mode). The multicast
1411                   (and, if configured, local broadcast) packets sent on the
1412                   non-OLSR network interfaces and on the BMF network interface
1413                   will always be flooded over the OLSR network. If this
1414                   parameter is <replaceable>yes</replaceable>, also the
1415                   packets sent on the OLSR-enabled network interfaces will be
1416                   flooded over the OLSR network. Note, that his parameter
1417                   should be set consistently on all hosts throughout the
1418                   network. If not, hosts may receive multicast packets in
1419                   duplicate. Defaults to <replaceable>no</replaceable>.</para>
1420                 </listitem>
1421               </varlistentry>
1422
1423               <varlistentry>
1424                 <term><option>PlParam</option> BmfMechanism
1425                 <replaceable>Broadcast</replaceable>|<replaceable>UnicastPromiscuous</replaceable></term>
1426
1427                 <listitem>
1428                   <para>Determines the forwarding mechanism to use. In the
1429                   <replaceable>UnicastPromiscuous</replaceable> mode, packets
1430                   are forwarded (unicast) to the best candidate neighbor;
1431                   other neighbors listen promiscuously. IP-local broadcast is
1432                   not used. This saves air time on 802.11 WLAN networks, on
1433                   which unicast packets are usually sent at a much higher bit
1434                   rate than broadcast packets (which are sent at a basic bit
1435                   rate). Defaults to
1436                   <replaceable>Broadcast</replaceable>.</para>
1437                 </listitem>
1438               </varlistentry>
1439
1440               <varlistentry>
1441                 <term><option>PlParam</option> FanOutLimit
1442                 <replaceable>1</replaceable>-<replaceable>10</replaceable></term>
1443
1444                 <listitem>
1445                   <para>If the number of neighbors to forward to is less than
1446                   or equal to the <option>FanOutLimit</option>, then packets
1447                   to be relayed will be sent via unicast. If the number is
1448                   greater than the <option>FanOutLimit</option>, the packet
1449                   goes out as broadcast. Not used if
1450                   <option>BmfMechanism</option> is set to
1451                   <replaceable>UnicastPromiscuous</replaceable>. Defaults to
1452                   <replaceable>2</replaceable>.</para>
1453                 </listitem>
1454               </varlistentry>
1455
1456               <varlistentry>
1457                 <term><option>PlParam</option> BroadcastRetransmitCount
1458                 <replaceable>1</replaceable>-<replaceable>10</replaceable></term>
1459
1460                 <listitem>
1461                   <para>Determines the number of times BMF will transmit the
1462                   same packet whenever it decides to use broadcast to forward
1463                   a packet. Not used if <option>BmfMechanism</option> is set
1464                   to <replaceable>UnicastPromiscuous</replaceable>. Defaults
1465                   to <replaceable>1</replaceable>.</para>
1466                 </listitem>
1467               </varlistentry>
1468             </variablelist>
1469           </listitem>
1470         </varlistentry>
1471
1472         <varlistentry>
1473           <term><option>LoadPlugin olsrd_dot_draw.so.0.3 {
1474           <replaceable>...</replaceable> }</option></term>
1475
1476           <listitem>
1477             <para>This plugin can be used to query topology graphs via a
1478             network connection. To visualize the queried information, you need
1479             the <productname>GraphViz</productname> package from: <ulink
1480             url="http://www.graphviz.org/">http://www.graphviz.org/</ulink>.
1481             The plugin accepts the following parameters.</para>
1482
1483             <variablelist>
1484               <varlistentry>
1485                 <term><option>PlParam</option> port
1486                 <replaceable>1</replaceable>-<replaceable>65535</replaceable></term>
1487
1488                 <listitem>
1489                   <para>Determines the port number to be queried. Defaults to
1490                   <replaceable>2004</replaceable>.</para>
1491                 </listitem>
1492               </varlistentry>
1493
1494               <varlistentry>
1495                 <term><option>PlParam</option> accept
1496                 <replaceable>ipaddr</replaceable></term>
1497
1498                 <listitem>
1499                   <para>Determines a single IP address from which a connection
1500                   is accepted. Defaults to
1501                   <replaceable>127.0.0.1</replaceable>.</para>
1502                 </listitem>
1503               </varlistentry>
1504             </variablelist>
1505           </listitem>
1506         </varlistentry>
1507
1508         <varlistentry>
1509           <term><option>LoadPlugin olsrd_dyn_gw.so.0.4 {
1510           <replaceable>...</replaceable> }</option></term>
1511
1512           <listitem>
1513             <para>This plugin announces <quote>HNA { 0.0.0.0 0.0.0.0 }</quote>
1514             if it detects a functional static default route. The plugin
1515             constantly tests the default route using ICMP
1516             (<command>ping</command>). Note, that this plugin requires
1517             multi-threading support. Note also, that you need a static default
1518             route on the node. The plugin accepts the following
1519             parameters.</para>
1520
1521             <variablelist>
1522               <varlistentry>
1523                 <term><option>PlParam</option> interval
1524                 <replaceable>1</replaceable>-<replaceable>3600</replaceable></term>
1525
1526                 <listitem>
1527                   <para>Determines the time between ping tests. Defaults to
1528                   <replaceable>5</replaceable>.</para>
1529                 </listitem>
1530               </varlistentry>
1531
1532               <varlistentry>
1533                 <term><option>PlParam</option> ping
1534                 <replaceable>ipaddr</replaceable></term>
1535
1536                 <listitem>
1537                   <para>Adds a ping destination address. If one or more IPv4
1538                   addresses are configured, the plugin performs a ping test on
1539                   these addresses in descending order. If a ping test is
1540                   successful, subsequent addresses won't be pinged No
1541                   default.</para>
1542                 </listitem>
1543               </varlistentry>
1544
1545               <varlistentry>
1546                 <term><option>PlParam</option> hna "<replaceable>ipaddr
1547                 netmask-or-prefix</replaceable>"</term>
1548
1549                 <listitem>
1550                   <para>Specifies an optional HNA entry to be announced if the
1551                   ping test succeeds. Note, that the <option>PlParam</option>
1552                   sequence matters: to link a specific HNA entry to a ping
1553                   test, add the desired <replaceable>hna</replaceable>
1554                   parameter followed by one or more
1555                   <replaceable>ping</replaceable> parameters. Defaults to
1556                   <replaceable>0.0.0.0 0.0.0.0</replaceable>.</para>
1557                 </listitem>
1558               </varlistentry>
1559             </variablelist>
1560           </listitem>
1561         </varlistentry>
1562
1563         <varlistentry>
1564           <term><option>LoadPlugin olsrd_dyn_gw_plain.so.0.4 {
1565           <replaceable>...</replaceable> }</option></term>
1566
1567           <listitem>
1568             <para>This plugin announces <quote>HNA { 0.0.0.0 0.0.0.0 }</quote>
1569             if it detects a static default route. To maintain the default
1570             route, you need an external program such as a cron job. The plugin
1571             accepts no parameters.</para>
1572           </listitem>
1573         </varlistentry>
1574
1575         <varlistentry>
1576           <term><option>LoadPlugin olsrd_httpinfo.so.0.1 {
1577           <replaceable>...</replaceable> }</option></term>
1578
1579           <listitem>
1580             <para>This plugin can be used to query internal information via a
1581             web browser. The plugin implements a tiny HTTP server and
1582             publishes information on several pages. The plugin accepts the
1583             following parameters.</para>
1584
1585             <variablelist>
1586               <varlistentry>
1587                 <term><option>PlParam</option> port
1588                 <replaceable>1</replaceable>-<replaceable>65535</replaceable></term>
1589
1590                 <listitem>
1591                   <para>Determines the port number to be queried. No default,
1592                   <replaceable>8080</replaceable> recommended.</para>
1593                 </listitem>
1594               </varlistentry>
1595
1596               <varlistentry>
1597                 <term><option>PlParam</option> host
1598                 <replaceable>ipaddr</replaceable></term>
1599
1600                 <term><option>PlParam</option> host4
1601                 <replaceable>ipaddr</replaceable></term>
1602
1603                 <listitem>
1604                   <para>Adds a single IPv4 address to the list of allowed
1605                   source addresses. No default.</para>
1606                 </listitem>
1607               </varlistentry>
1608
1609               <varlistentry>
1610                 <term><option>PlParam</option> net "<replaceable>ipaddr
1611                 netmask</replaceable>"</term>
1612
1613                 <term><option>PlParam</option> net4 "<replaceable>ipaddr
1614                 netmask</replaceable>"</term>
1615
1616                 <listitem>
1617                   <para>Adds an IPv4 network range to the list of allowed
1618                   source addresses. No default.</para>
1619                 </listitem>
1620               </varlistentry>
1621
1622               <varlistentry>
1623                 <term><option>PlParam</option> host6
1624                 <replaceable>IPv6-address</replaceable></term>
1625
1626                 <listitem>
1627                   <para>Adds a single IPv6 address to the list of allowed
1628                   source addresses. No default.</para>
1629                 </listitem>
1630               </varlistentry>
1631
1632               <varlistentry>
1633                 <term><option>PlParam</option> net6 "<replaceable>IPv6-address
1634                 0-128</replaceable>"</term>
1635
1636                 <listitem>
1637                   <para>Adds an IPv6 network range to the list of allowed
1638                   source addresses. No default.</para>
1639                 </listitem>
1640               </varlistentry>
1641
1642               <varlistentry>
1643                 <term><option>PlParam</option> resolve
1644                 <replaceable>yes</replaceable>|<replaceable>true</replaceable>|<replaceable>no</replaceable>|<replaceable>false</replaceable></term>
1645
1646                 <listitem>
1647                   <para>Determines if the plugin tries to resolve IP addresses
1648                   to names when generating output. Note, that if you are using
1649                   private IP addresses in your mesh, you also need to load
1650                   <option>olsrd_nameservice.so.0.3</option> and link the local
1651                   <filename>/etc/hosts</filename> file to the
1652                   <option>hosts-file</option> generated by this plugin.
1653                   Otherwise this option slows down the plugins operation.
1654                   Defaults to <replaceable>no</replaceable>.</para>
1655                 </listitem>
1656               </varlistentry>
1657             </variablelist>
1658           </listitem>
1659         </varlistentry>
1660
1661         <varlistentry>
1662           <term><option>LoadPlugin olsrd_mini.so.0.1 {
1663           <replaceable>...</replaceable> }</option></term>
1664
1665           <listitem>
1666             <para>This plugin is an example to be copied if you want to
1667             program a new plugin. The plugin accepts the following
1668             parameters.</para>
1669
1670             <variablelist>
1671               <varlistentry>
1672                 <term><option>PlParam</option> test
1673                 "<replaceable>some-text</replaceable>"</term>
1674
1675                 <listitem>
1676                   <para>Prints out some text during plugin initialization. No
1677                   default.</para>
1678                 </listitem>
1679               </varlistentry>
1680             </variablelist>
1681           </listitem>
1682         </varlistentry>
1683
1684         <varlistentry>
1685           <term><option>LoadPlugin olsrd_nameservice.so.0.3 {
1686           <replaceable>...</replaceable> }</option></term>
1687
1688           <listitem>
1689             <para>This plugin floods node information through the mesh
1690             piggy-backed on the OLSR protocol. It also collects information
1691             received by other nodes and stores that information in different
1692             text files on a regularly basis. The plugin accepts the following
1693             parameters.</para>
1694
1695             <variablelist>
1696               <title>General</title>
1697
1698               <varlistentry>
1699                 <term><option>PlParam</option> interval
1700                 <replaceable>1</replaceable>-<replaceable>3968</replaceable></term>
1701
1702                 <listitem>
1703                   <para>Determines the interval for sending NAME messages in
1704                   seconds. Defaults to <replaceable>120</replaceable> (2
1705                   minutes).</para>
1706                 </listitem>
1707               </varlistentry>
1708
1709               <varlistentry>
1710                 <term><option>PlParam</option> timeout
1711                 <replaceable>1.0</replaceable>-<replaceable>3968.0</replaceable></term>
1712
1713                 <listitem>
1714                   <para>Determines the validity time for received NAME
1715                   messages in seconds. Defaults to
1716                   <replaceable>1800.0</replaceable> (30 minutes)</para>
1717                 </listitem>
1718               </varlistentry>
1719             </variablelist>
1720
1721             <variablelist>
1722               <title>Host Names</title>
1723
1724               <varlistentry>
1725                 <term><option>PlParam</option> name
1726                 <replaceable>hostname</replaceable></term>
1727
1728                 <listitem>
1729                   <para>Configures a host name for the
1730                   <productname>olsrd</productname> node. This name together
1731                   with the main IP address of <productname>olsrd</productname>
1732                   is flooded though the mesh. You can specify this parameter
1733                   more than once to flood different names. No default.</para>
1734                 </listitem>
1735               </varlistentry>
1736
1737               <varlistentry>
1738                 <term><option>PlParam</option> suffix
1739                 <replaceable>dotname</replaceable></term>
1740
1741                 <listitem>
1742                   <para>Configures a suffix which is appended to all received
1743                   names. No default, but <replaceable>.olsr</replaceable>
1744                   (with a dot) is recommended to prevent DNS name
1745                   spoofing.</para>
1746                 </listitem>
1747               </varlistentry>
1748
1749               <varlistentry>
1750                 <term><option>PlParam</option> hosts-file
1751                 <replaceable>filename</replaceable></term>
1752
1753                 <listitem>
1754                   <para>The plugin writes received IP addresses and names to a
1755                   resolver compatible file which is updated on a regularly
1756                   basis. To overwrite the local hosts file, specify
1757                   <filename>/etc/hosts</filename> (Linux, BSD) or
1758                   <filename>c:\\windows\\system32\\drivers\\etc\\hosts</filename>
1759                   (Windows). Defaults to
1760                   <filename>/var/run/hosts_olsr</filename> (Linux, BSD) or
1761                   <filename>c:\windows\hosts_olsr</filename> (Windows).</para>
1762                 </listitem>
1763               </varlistentry>
1764
1765               <varlistentry>
1766                 <term><option>PlParam</option> add-hosts
1767                 <replaceable>filename</replaceable></term>
1768
1769                 <listitem>
1770                   <para>Configures a file which contents are appended when
1771                   writing the <option>hosts-file</option>. If
1772                   <productname>olsrd</productname> is configured to overwrite
1773                   your /etc/hosts file, you may rename your current /etc/hosts
1774                   file and configure this parameter to preserve any static
1775                   entries. No default.</para>
1776                 </listitem>
1777               </varlistentry>
1778
1779               <varlistentry>
1780                 <term><option>PlParam</option> name-change-script
1781                 <replaceable>filename</replaceable></term>
1782
1783                 <listitem>
1784                   <para>Configures a shell script which is executed after
1785                   updating the <option>hosts-file</option>. Can be used to
1786                   update a website or database. No default.</para>
1787                 </listitem>
1788               </varlistentry>
1789
1790               <varlistentry>
1791                 <term><option>PlParam</option> sighup-pid-file
1792                 <replaceable>filename</replaceable></term>
1793
1794                 <listitem>
1795                   <para>Sends a SIGHUP to the process specified by the pidfile
1796                   (usually <filename>/var/run/dnsmasq.pid</filename>) when the
1797                   host name table changes. This is useful for letting
1798                   <productname>dnsmasq</productname> or
1799                   <productname>bind</productname> know they have to reload
1800                   their hosts file. Linux or BSD only, no default.</para>
1801                 </listitem>
1802               </varlistentry>
1803
1804               <varlistentry>
1805                 <term><option>PlParam</option>
1806                 <replaceable>[ipaddr]</replaceable>
1807                 <replaceable>hostname</replaceable></term>
1808
1809                 <listitem>
1810                   <para>Adds a host name to be announced for the specified IP
1811                   address. Note, that this parameter is not commonly used,
1812                   specify the <option>name</option> parameter instead (see
1813                   above). The IP address has to be either from one of the
1814                   <productname>olsrd</productname> interfaces or within a
1815                   configured HNA network. This parameter can be specified
1816                   multiple times. No default.</para>
1817                 </listitem>
1818               </varlistentry>
1819             </variablelist>
1820
1821             <variablelist>
1822               <title>Services</title>
1823
1824               <varlistentry>
1825                 <term><option>PlParam</option> service
1826                 "<replaceable>announcement</replaceable>"</term>
1827
1828                 <listitem>
1829                   <para>Floods the configured service announcement through the
1830                   mesh. The announcement must include 3 fields separated with
1831                   a pipe character:
1832                   <replaceable>URL</replaceable>|<replaceable>Protocol</replaceable>|<replaceable>Description</replaceable>.
1833                   The <replaceable>URL</replaceable> field needs to start with
1834                   a protocol id, determines an IP or host.suffix combination
1835                   and adds a port number. Examples:
1836                   <quote>http://10.0.0.1:80</quote> or
1837                   <quote>ftp://myname.olsr:20</quote>.
1838                   <productname>olsrd</productname> also checks, if the address
1839                   is a local IP address, is included with any configured HNA
1840                   range, or is equal to a configured <option>name</option> and
1841                   <option>suffix</option> parameter. The
1842                   <replaceable>Protocol</replaceable> field indicates either
1843                   <replaceable>tcp</replaceable> or
1844                   <replaceable>udp</replaceable>. Use any non-empty text for
1845                   the <replaceable>Description</replaceable> field. You can
1846                   specify this parameter more than once to flood different
1847                   services. No default.</para>
1848                 </listitem>
1849               </varlistentry>
1850
1851               <varlistentry>
1852                 <term><option>PlParam</option> services-file
1853                 <replaceable>filename</replaceable></term>
1854
1855                 <listitem>
1856                   <para>The plugin writes received service announcements to a
1857                   file which is updated on a regularly basis. Defaults to
1858                   <filename>/var/run/services_olsr</filename> (Linux, BSD) or
1859                   <filename>c:\windows\services_olsr</filename>
1860                   (Windows).</para>
1861                 </listitem>
1862               </varlistentry>
1863
1864               <varlistentry>
1865                 <term><option>PlParam</option> services-change-script
1866                 <replaceable>filename</replaceable></term>
1867
1868                 <listitem>
1869                   <para>Configures a shell script which is executed after
1870                   updating the <option>services-file</option>. No
1871                   default.</para>
1872                 </listitem>
1873               </varlistentry>
1874             </variablelist>
1875
1876             <variablelist>
1877               <title>MAC Addresses</title>
1878
1879               <varlistentry>
1880                 <term><option>PlParam</option> mac
1881                 <replaceable>xx:xx:xx:xx:xx:xx[,0-255]</replaceable></term>
1882
1883                 <listitem>
1884                   <para>Floods the configured MAC address through the mesh.
1885                   This MAC address may be used to fine control captive portal
1886                   solutions based on MAC adresses. The optional decimal number
1887                   designates a class. You can specify this parameter more than
1888                   once to flood different MAC addresses. No default.</para>
1889                 </listitem>
1890               </varlistentry>
1891
1892               <varlistentry>
1893                 <term><option>PlParam</option> macs-file
1894                 <replaceable>filename</replaceable></term>
1895
1896                 <listitem>
1897                   <para>The plugin writes received MAC adresses to a file
1898                   which is updated on a regularly basis. Defaults to
1899                   <filename>/var/run/macs_olsr</filename> (Linux, BSD) or
1900                   <filename>c:\windows\macs_olsr</filename> (Windows).</para>
1901                 </listitem>
1902               </varlistentry>
1903
1904               <varlistentry>
1905                 <term><option>PlParam</option> macs-change-script
1906                 <replaceable>filename</replaceable></term>
1907
1908                 <listitem>
1909                   <para>Configures a shell script which is executed after
1910                   updating the <option>macs-file</option>. No default.</para>
1911                 </listitem>
1912               </varlistentry>
1913             </variablelist>
1914
1915             <variablelist>
1916               <title>DNS Forwarders</title>
1917
1918               <varlistentry>
1919                 <term><option>PlParam</option> dns-server
1920                 <replaceable>ipaddr</replaceable></term>
1921
1922                 <listitem>
1923                   <para>Announces the configured IP address which should
1924                   indicate a DNS server or DNS forwarder. If you configure
1925                   <replaceable>0.0.0.0</replaceable>, the main IP address of
1926                   <productname>olsrd</productname> will be replaced. Other
1927                   running <productname>olsrd</productname> instances will
1928                   receive a list of announced DNS server IP addresses, select
1929                   the currently best reachable IP address, and write the
1930                   selected IP address to the <option>resolv-file</option>
1931                   file.</para>
1932                 </listitem>
1933               </varlistentry>
1934
1935               <varlistentry>
1936                 <term><option>PlParam</option> resolv-file
1937                 <replaceable>filename</replaceable></term>
1938
1939                 <listitem>
1940                   <para>Defaults to
1941                   <filename>/var/run/resolvconf_olsr</filename> (Linux, BSD)
1942                   or <filename>c:\windows\resolvconf_olsr</filename>
1943                   (Windows).</para>
1944                 </listitem>
1945               </varlistentry>
1946             </variablelist>
1947
1948             <variablelist>
1949               <title>GPS Positions</title>
1950
1951               <varlistentry>
1952                 <term><option>PlParam</option> lat
1953                 <replaceable>latitude</replaceable></term>
1954
1955                 <listitem>
1956                   <para>Configures a decimal float value (latitude) for this
1957                   node to be flooded in the mesh. No default.</para>
1958                 </listitem>
1959               </varlistentry>
1960
1961               <varlistentry>
1962                 <term><option>PlParam</option> lon
1963                 <replaceable>longitude</replaceable></term>
1964
1965                 <listitem>
1966                   <para>Configures a decimal float value (longitude) for this
1967                   node to be flooded in the mesh. No default.</para>
1968                 </listitem>
1969               </varlistentry>
1970
1971               <varlistentry>
1972                 <term><option>PlParam</option> latlon-file
1973                 <replaceable>filename</replaceable></term>
1974
1975                 <listitem>
1976                   <para>The plugin writes received positions to a file which
1977                   is updated on a regularly basis. The file format provides
1978                   javascript-compatible function calls ready for inclusion to
1979                   a web page. The file is written only, if the
1980                   <option>lat</option> and <option>lon</option> parameters are
1981                   set. Defaults to <filename>/var/run/latlon.js</filename>
1982                   (Linux, BSD) or <filename>c:\windows\latlon.js</filename>
1983                   (Windows).</para>
1984                 </listitem>
1985               </varlistentry>
1986
1987               <varlistentry>
1988                 <term><option>PlParam</option> latlon-infile
1989                 <replaceable>filename</replaceable></term>
1990
1991                 <listitem>
1992                   <para>Configures a file to read positions from. This
1993                   parameter is meant to be used by a moving GPS receiver,
1994                   which may write comma separated decimal latitude and
1995                   longitude to this file. This will overwrite the
1996                   <option>lat</option> and <option>lon</option> parameters
1997                   during runtime. No default.</para>
1998                 </listitem>
1999               </varlistentry>
2000             </variablelist>
2001           </listitem>
2002         </varlistentry>
2003
2004         <!--varlistentry>
2005           <term><option>LoadPlugin olsrd_pgraph.so.1.1 {
2006           <replaceable>...</replaceable> }</option></term>
2007
2008           <listitem>
2009             <para>We really need to get rid of this plugin, since it does not
2010             work nor is the OLSRConnect.py available.</para>
2011           </listitem>
2012         </varlistentry-->
2013
2014         <varlistentry>
2015           <term><option>LoadPlugin olsrd_quagga.so.0.2.2 {
2016           <replaceable>...</replaceable> }</option></term>
2017
2018           <listitem>
2019             <para>This plugin allows you to import or export
2020             <productname>olsrd</productname> routing information from or to
2021             the <productname>quagga</productname> routing daemon (see <ulink
2022             url="http://www.quagga.net/">http://www.quagga.net/</ulink>). You
2023             need a patched and running <productname>quagga</productname>
2024             routing daemon to load this plugin successfully. The plugin
2025             accepts the following parameters.</para>
2026
2027             <variablelist>
2028               <varlistentry>
2029                 <term><option>PlParam</option> redistribute
2030                 <replaceable>system</replaceable>|<replaceable>kernel</replaceable>|<replaceable>connect</replaceable>|<replaceable>static</replaceable>|<replaceable>rip</replaceable>|<replaceable>ripng</replaceable>|<replaceable>ospf</replaceable>|<replaceable>ospf6</replaceable>|<replaceable>isis</replaceable>|<replaceable>bgp</replaceable>|<replaceable>hsls</replaceable></term>
2031
2032                 <listitem>
2033                   <para>Notifies <productname>Zebra</productname> to add a
2034                   specific protocol for redistribution. You may add this
2035                   parameter more than once.</para>
2036                 </listitem>
2037               </varlistentry>
2038
2039               <varlistentry>
2040                 <term><option>PlParam</option> ExportRoutes
2041                 <replaceable>only/both</replaceable></term>
2042
2043                 <listitem>
2044                   <para>Determines, if <productname>olsrd</productname> should
2045                   <replaceable>only</replaceable> export routes to
2046                   <productname>quagga</productname> or should export routes to
2047                   <replaceable>both</replaceable>
2048                   <productname>quagga</productname> and kernel. If this
2049                   parameter is unset, no routes are exported to
2050                   <productname>quagga</productname>.</para>
2051                 </listitem>
2052               </varlistentry>
2053
2054               <varlistentry>
2055                 <term><option>PlParam</option> Distance
2056                 <replaceable>0</replaceable>-<replaceable>255</replaceable></term>
2057
2058                 <listitem>
2059                   <para>Configures the administrative distance for routes
2060                   exported to <productname>Zebra</productname>. Defaults to
2061                   <replaceable>0</replaceable>.</para>
2062                 </listitem>
2063               </varlistentry>
2064
2065               <varlistentry>
2066                 <term><option>PlParam</option> LocalPref
2067                 <replaceable>yes</replaceable>|<replaceable>true</replaceable>|<replaceable>no</replaceable>|<replaceable>false</replaceable></term>
2068
2069                 <listitem>
2070                   <para>Sets the SELECTED flag on the routes exported to
2071                   <productname>Zebra</productname> which means these routes
2072                   are preferred in any case. Defaults to
2073                   <replaceable>no</replaceable>.</para>
2074                 </listitem>
2075               </varlistentry>
2076             </variablelist>
2077           </listitem>
2078         </varlistentry>
2079
2080         <varlistentry>
2081           <term><option>LoadPlugin olsrd_secure.so.0.5 {
2082           <replaceable>...</replaceable> }</option></term>
2083
2084           <listitem>
2085             <para>This plugin uses a secret pre shared key for signature
2086             generation and verification of incoming OLSR messages. All nodes
2087             that participate in an OLSR routing domain need to use the same
2088             key. The key as a size of 128-bits and is read in from a key file
2089             which should contain 16 bytes of binary data. The plugin accepts
2090             the following parameters.</para>
2091
2092             <variablelist>
2093               <varlistentry>
2094                 <term><option>PlParam</option> keyfile
2095                 <replaceable>filename</replaceable></term>
2096
2097                 <listitem>
2098                   <para>Configure a filename to read the pre shared key from.
2099                   Defaults to
2100                   <filename>/etc/olsrd.d/olsrd_secure_key</filename>.</para>
2101                 </listitem>
2102               </varlistentry>
2103             </variablelist>
2104           </listitem>
2105         </varlistentry>
2106
2107         <varlistentry>
2108           <term><option>LoadPlugin olsrd_txtinfo.so.0.1 {
2109           <replaceable>...</replaceable> }</option></term>
2110
2111           <listitem>
2112             <para>This plugin can be used to query internal information via
2113             the <guilabel>wget</guilabel> command. This plugin is a de-bloated
2114             and scriptable version of the httpinfo-Plugin. Example usage:
2115             <command>wget -q -O - http://localhost:2006/neighbours</command>
2116             to display the current neighbour table. The plugin accepts the
2117             following parameters.</para>
2118
2119             <variablelist>
2120               <varlistentry>
2121                 <term><option>PlParam</option> port
2122                 <replaceable>1</replaceable>-<replaceable>65535</replaceable></term>
2123
2124                 <listitem>
2125                   <para>Determines the port number to be queried. Defaults to
2126                   <replaceable>2006</replaceable>.</para>
2127                 </listitem>
2128               </varlistentry>
2129
2130               <varlistentry>
2131                 <term><option>PlParam</option> accept
2132                 <replaceable>ipaddr</replaceable></term>
2133
2134                 <listitem>
2135                   <para>Adds a single IP address to the list of allowed source
2136                   addresses. Defaults to <replaceable>127.0.0.1</replaceable>
2137                   for IPv4 or <replaceable>::1</replaceable> for IPv6.</para>
2138                 </listitem>
2139               </varlistentry>
2140             </variablelist>
2141           </listitem>
2142         </varlistentry>
2143
2144         <varlistentry>
2145           <term><option>LoadPlugin olsrd_watchdog.so.0.1 {
2146           <replaceable>...</replaceable> }</option></term>
2147
2148           <listitem>
2149             <para>This plugin writes the current time to a file on a regularly
2150             basis. This can be used to detect a freezed instance of
2151             <productname>olsrd</productname> by an external script or cron
2152             job. The plugin accepts the following parameters.</para>
2153
2154             <variablelist>
2155               <varlistentry>
2156                 <term><option>PlParam</option> file
2157                 <replaceable>filename</replaceable></term>
2158
2159                 <listitem>
2160                   <para>Determines the file to be written. Defaults to
2161                   <filename>/tmp/olsr.watchdog</filename>.</para>
2162                 </listitem>
2163               </varlistentry>
2164
2165               <varlistentry>
2166                 <term><option>PlParam</option> interval
2167                 <replaceable>1</replaceable>-<replaceable>3600</replaceable></term>
2168
2169                 <listitem>
2170                   <para>Determines the update interval in seconds. Defaults to
2171                   <replaceable>5</replaceable>.</para>
2172                 </listitem>
2173               </varlistentry>
2174             </variablelist>
2175           </listitem>
2176         </varlistentry>
2177       </variablelist>
2178     </refsect1>
2179
2180     <refsect1>
2181       <title>Misc</title>
2182
2183       <para>The homepage of <productname>olsrd</productname> is <ulink
2184       url="http://www.olsr.org">http://www.olsr.org</ulink></para>
2185     </refsect1>
2186
2187     <refsect1>
2188       <title>Files</title>
2189
2190       <para><filename>/etc/olsrd.conf</filename></para>
2191     </refsect1>
2192
2193     <refsect1>
2194       <title>See Also</title>
2195
2196       <simplelist type="inline">
2197         <member><xref endterm="olsrd_8-title" linkend="olsrd_8" /></member>
2198       </simplelist>
2199     </refsect1>
2200   </refentry>
2201
2202   <refentry id="olsr_switch_8">
2203     <indexterm>
2204       <primary><command>olsr_switch</command></primary>
2205     </indexterm>
2206
2207     <refentryinfo>
2208       <titleabbrev>Olsrd Network Simulator</titleabbrev>
2209     </refentryinfo>
2210
2211     <refmeta>
2212       <refentrytitle id="olsr_switch_8-title">olsr_switch</refentrytitle>
2213
2214       <manvolnum>8</manvolnum>
2215     </refmeta>
2216
2217     <refnamediv>
2218       <refname>olsr_switch</refname>
2219
2220       <refpurpose><productname>olsrd</productname> network
2221       simulator</refpurpose>
2222     </refnamediv>
2223
2224     <refsynopsisdiv>
2225       <cmdsynopsis>
2226         <command>olsr_switch</command>
2227
2228         <arg>-foo <replaceable>foo</replaceable></arg>
2229
2230         <arg>-bar <replaceable>bar</replaceable></arg>
2231       </cmdsynopsis>
2232     </refsynopsisdiv>
2233
2234     <refsect1>
2235       <title>Description</title>
2236
2237       <para><command>olsr_switch</command> is an implementation of the
2238       Optimized Link State Routing protocol for Mobile Ad-Hoc networks
2239       (MANET). The protocol is described in RFC3626. It is designed to be run
2240       as a standalone server process - but as it is still in an experimental
2241       stage most users will prefer running it with some debug output which is
2242       directed to STDOUT.</para>
2243
2244       <para>This manual page only lists the command line arguments. For
2245       details of the configuration file see the comments included in
2246       <filename>/etc/olsrd.conf</filename>. Note that none of these options
2247       need to be set at the command line - all these options and others can be
2248       set in the configuration file.</para>
2249
2250       <para>The homepage of <productname>olsrd</productname> is <ulink
2251       url="http://www.olsr.org">http://www.olsr.org</ulink></para>
2252     </refsect1>
2253
2254     <refsect1>
2255       <title>Options</title>
2256
2257       <variablelist>
2258         <varlistentry>
2259           <term><option>-foo <replaceable>foo</replaceable></option></term>
2260
2261           <listitem>
2262             <para>This option specifies on what network interfaces
2263             <productname>olsrd</productname> should run. These interfaces
2264             cannot be aliased interfaces such as eth0:1.</para>
2265           </listitem>
2266         </varlistentry>
2267
2268         <varlistentry>
2269           <term><option>-bar <replaceable>bar</replaceable></option></term>
2270
2271           <listitem>
2272             <para>This option overrides the default configuration file path
2273             used by <productname>olsrd</productname> -
2274             <filename>/etc/olsrd.conf</filename></para>
2275           </listitem>
2276         </varlistentry>
2277       </variablelist>
2278     </refsect1>
2279
2280     <refsect1>
2281       <title>Files</title>
2282
2283       <para><filename>/etc/olsrd.conf</filename></para>
2284     </refsect1>
2285
2286     <refsect1>
2287       <title>See also</title>
2288
2289       <simplelist type="inline">
2290         <member><xref endterm="olsrd_8-title" linkend="olsrd_8" /></member>
2291
2292         <member><xref endterm="olsrd_conf_5-title"
2293         linkend="olsrd_conf_5" /></member>
2294       </simplelist>
2295     </refsect1>
2296   </refentry>
2297 </article>