small fix for txt/dotdraw patchh
[olsrd.git] / README
diff --git a/README b/README
index 0481cab..91d2b52 100644 (file)
--- a/README
+++ b/README
@@ -1,13 +1,17 @@
 
 +====================================================================+
 
 +====================================================================+
-| README - olsr.org OLSR daemon 0.4.8, 05.12.04                      |
+| README - olsr.org OLSR daemon 0.5.4, 21.10.2007                    |
 +====================================================================+
 
 +====================================================================+
 
+Authors:
 Andreas Tonnesen(andreto@olsr.org)
 Thomas Lopatic  (thomas@lopatic.de)
 Andreas Tonnesen(andreto@olsr.org)
 Thomas Lopatic  (thomas@lopatic.de)
+Aaron Kaplan (aaron@lo-res.org)
+
 
 http://www.olsr.org
 
 
 http://www.olsr.org
 
+
 CONTENTS:
 
 I.   - GENERAL INFORMATION
 CONTENTS:
 
 I.   - GENERAL INFORMATION
@@ -43,17 +47,11 @@ II.  - BUILDING AND RUNNING OLSRD
 The olsr.org OLSR daemon is an implementation of the Optimized Link State
 routing protocol. The protocol is documented in RFC3626. The website
 of olsrd is http://www.olsr.org
 The olsr.org OLSR daemon is an implementation of the Optimized Link State
 routing protocol. The protocol is documented in RFC3626. The website
 of olsrd is http://www.olsr.org
-Olsrd started out as part of the master thesis project for Andreas T√łnnesen 
-at UniK University Graduate Center in Norway. This master thesis is now 
-finished(it is available for download at the olsrd website) but the olsrd 
-project moves on. Initially olsrd only compiled for GNU/Linux systems.
-Then Thomas Lopatic joined up with the project in aug. 04 and he has seen 
-to it that olsrd now, also compiles on MS-Windows, Mac OSX and FreeBSD.
 
 Olsrd is designed to be a modular an extensible implementation. It features
 a plugin interface, allowing for developers to extend OLSR operation without
 interfering with the core code. It also features a experimental link quality
 
 Olsrd is designed to be a modular an extensible implementation. It features
 a plugin interface, allowing for developers to extend OLSR operation without
 interfering with the core code. It also features a experimental link quality
-routing scheme, by Thomas and people at the c-base in Berlin.
+routing scheme.
 
 To ask questions or make comments, join up with the mailing lists:
 olsr-dev@olsr.org   - development discussion
 
 To ask questions or make comments, join up with the mailing lists:
 olsr-dev@olsr.org   - development discussion
@@ -63,7 +61,10 @@ A bug tracker is also available at the sourceforge project site
 http://sourceforge.net/projects/olsrd/
 
 Olsrd source or binaries can be downloaded from olsr.org. CVS is available
 http://sourceforge.net/projects/olsrd/
 
 Olsrd source or binaries can be downloaded from olsr.org. CVS is available
-for the brave ;)
+for the cutting edge features ;-)
+
+The current Olsrd work is done via http://olsr.funkfeuer.at/ in the OLSR-NG
+project.
 
 
 =================
 
 
 =================
@@ -79,14 +80,16 @@ for the brave ;)
 If olsrd is ran without using link-quality routing/MPR selection it is RFC3626
 compliant in that it will inter-operate with other RFC3626 implementations.
 Internally there are a few things that are solved differently that proposed 
 If olsrd is ran without using link-quality routing/MPR selection it is RFC3626
 compliant in that it will inter-operate with other RFC3626 implementations.
 Internally there are a few things that are solved differently that proposed 
-in the RFC. Check out the "Conclusions" section of my master thesis for details.
+in the RFC. Check out the "Conclusions" section of the "Implementing And
+Extending The Optimized Link State routing Protocol" thesis available at
+olsr.org.
 
 
 ===========
  * PLUGINS
 ===========
 
 
 
 ===========
  * PLUGINS
 ===========
 
-Olsrd supports dynamic loading of plugins(dynamically loaded libraries) for 
+Olsrd supports dynamic loading of plugins (dynamically loaded libraries) for 
 functions like generation and processing of private package types, setting
 olsrd configurations in run-time and much more. This design is chosen for
 amongst others, the following reasons:
 functions like generation and processing of private package types, setting
 olsrd configurations in run-time and much more. This design is chosen for
 amongst others, the following reasons:
@@ -95,9 +98,8 @@ amongst others, the following reasons:
    functionality.
  * Users are free to implement olsrd plugins and license them under whatever 
    terms they like.
    functionality.
  * Users are free to implement olsrd plugins and license them under whatever 
    terms they like.
- * If you, unlike yours truly, don't love C, the plugins can be written in 
-   any language that can be compiled as a dynamic library. Linux even allows 
-   scripts!
+ * The plugins can be written in any language that can be compiled as 
+   a dynamic library. Linux even allows scripts!
  * No need for people with extended OLSR versions to rely on heavy patching 
    to maintain functionality when new olsrd versions are released.
 
  * No need for people with extended OLSR versions to rely on heavy patching 
    to maintain functionality when new olsrd versions are released.
 
@@ -118,6 +120,18 @@ it with custom actions.
 
   Plugins that are part of this release(can be found in the lib/ directory):
 
 
   Plugins that are part of this release(can be found in the lib/ directory):
 
+  - Tiny Application Server (TAS).
+
+  - HttpInfo. This plugin implements a simple HTTP server that serves dynamic
+    pages with lots of information about the running olsrd process.
+
+  - TxtInfo. This delivers output similar to the above. However, it is intended
+    for external tools to use the output.
+
+  - Mini.
+
+  - Nameservice.
+
   - Dynamic Internet gateway. A plugin that dynamically adds and removes Internet
     HNA transmissions based on if there exists a default gateway to Internet
     with hop count = 0(non OLSR gateway). It has been extended to be able to
   - Dynamic Internet gateway. A plugin that dynamically adds and removes Internet
     HNA transmissions based on if there exists a default gateway to Internet
     with hop count = 0(non OLSR gateway). It has been extended to be able to
@@ -131,9 +145,6 @@ it with custom actions.
     shared key can participate in the routing.
     You need to have the OpenSSL libs installed to use this plugin.
 
     shared key can participate in the routing.
     You need to have the OpenSSL libs installed to use this plugin.
 
-  - Power plugin. A plugin that uses OLSRs MPR flooding to spread information
-    about the power status of nodes. Meant as an example plugin to get coders
-    started.
 
 
 ========================
 
 
 ========================
@@ -149,32 +160,20 @@ hops. Have a look at the README-Link-Quality.html file for details.
  * KNOWN PROBLEMS
 ==================
 
  * KNOWN PROBLEMS
 ==================
 
-We suspect that in the previous version 0.4.7 OLSR traffic, in
-particular HELLO messages, is more prone to packet loss than data
-traffic. We think so, because the OLSR people of Vienna have excellent
-links but link detection reports links as broken very often. This
-problem exists in 0.4.7. We think that the reason for this is that in
-multi-interface configurations olsrd 0.4.7 sends HELLO messages via
-all interfaces at the same time without any jitter, which probably
-results in interference, as HELLO messages from different interfaces
-"collide". 0.4.8 should solve this problem, as we now have
-per-interface jitter when sending HELLO messages. So collisions
-between HELLO messages of different interfaces should be significantly
-reduced. So, if you have a multi-interface configuration, too, please
-let us know if you observe anything unusual. We'll also keep
-investigating this problem with the Vienna guys.
+There is no synchronization concept (and thus - and for Gods sake -  no
+code). Some plugins use threads for concurrency so this should be solved.
+ATM the bmf plugin is the only one using threads.
 
 ===============
  * FUTURE WORK
 ===============
 
 
 ===============
  * FUTURE WORK
 ===============
 
-As the 0.4.8 release contains huge amounts of new code, the releases up to 0.5 
-will focus much on bug fixing. If relatively serious bugs are found new releases
-will be made fixing thees issues.
-Asides from that there will be some focus on redesigning the IPC interface, and
-hopefully we will end up with a neat platform independent GUI front-end to
-work over this new IPC interface.
-IPv6 support for Windows, FreeBSD and OSX will also be an issue.
+Future work concentrates on reduction of ressource (ab)use and to make
+it more scalable. Of course additional useful plugins are always
+appreciated.
+
+The current track of development is documented in the OLSR-NG 
+project: http://olsr.funkfeuer.at
 
 
 ----------------------------------------------------------------------
 
 
 ----------------------------------------------------------------------
@@ -185,9 +184,8 @@ IPv6 support for Windows, FreeBSD and OSX will also be an issue.
  * GENERAL INFORMATION
 =======================
 
  * GENERAL INFORMATION
 =======================
 
-Olsrd is implemented in pure C with very few dependencies. The 0.4.8
-release has removed the pthread dependency making olsrd even more
-portable! Olsrd is known to run on various hardware like:
+Olsrd is implemented in pure C with very few dependencies. Olsrd is 
+known to run on various hardware like:
  * x86    - your regular PC
  * PPC    - Macintosh hardware
  * MIPSEL - Embedded systems like the LinkSys WRT54g
  * x86    - your regular PC
  * PPC    - Macintosh hardware
  * MIPSEL - Embedded systems like the LinkSys WRT54g
@@ -195,6 +193,20 @@ portable! Olsrd is known to run on various hardware like:
 A binary tarball featuring x86, MIPSEL and ARM binaries is available
 for download at olsr.org
 
 A binary tarball featuring x86, MIPSEL and ARM binaries is available
 for download at olsr.org
 
+Ports exist for all major operating systems:
+- Linux
+- Mac OS X
+- NetBSD/OpenBSD/FreeBSD: ATM the main development occurs on Linux with
+         GNU tools so occasionally it needs some minor tweaks to compile
+         it on *BSD. Please send patches if you fix problems there.
+- Win32: You need (the relevant parts of) cygwin to compile the daemon
+         as such. The installer and GUI needs VisualC++ though.
+         Win32 is the least supported port. Feel free to send patches!
+
+Packages for the operating systems and various distributions are available
+at olsr.org. Feel free to package it and announce it on the mailing lists.
+
+
 ===========
  * PLUGINS
 ===========
 ===========
  * PLUGINS
 ===========
@@ -206,6 +218,7 @@ Building the plugins are just a matter of executing:
 make
 while installing requires(as root):
 make install
 make
 while installing requires(as root):
 make install
+in the plugins top directory (i.e. "lib/$plugin/").
 To use the plugins add them to the olsrd configuration file.
 
 =====================
 To use the plugins add them to the olsrd configuration file.
 
 =====================
@@ -215,17 +228,21 @@ To use the plugins add them to the olsrd configuration file.
 COMPONENT/OS   Linux   Win32   FreeBSD NetBSD  OpenBSD OSX
 ------------------------------------------------------------
 olsrd          +/+     +/+     +/+     +/+     +/+     ?
 COMPONENT/OS   Linux   Win32   FreeBSD NetBSD  OpenBSD OSX
 ------------------------------------------------------------
 olsrd          +/+     +/+     +/+     +/+     +/+     ?
-olsr_switch    +/+     +/?     +/+     +/+     ?       ?
+olsr_switch    +/+     +/+     +/+     +/+     +/+     ?
 ------------------------------------------------------------
 PLUGINS
 ------------------------------------------------------------
 PLUGINS
-dot_draw       +/+     +/?     +/+     +/+     +/+     ?
-dyn_gw         +/+     +/?     +/-     +/-     +/?     ?
-httpinfo       +/+     +/+     +/+     +/+     +/?     ?
-mini           +/+     +/?     +/+     +/+     ?       ?
-nameservice    +/+     +/?     +/+     +/+     +/?     ?
-powerinfo      +/+     +/+     +/-     +/-     +/?     ?
-secure         +/+     +/+     +/+     +/+     +/?     ?
+bmf            +/+     +/?     +/+     +/+     +/+     -
+dot_draw       +/+     +/?     +/+     +/+     +/+     +/+
+dyn_gw         +/+     +/?     +/-     +/-     +/-     +/+
+dyn_gw_plain   +/+     +/?     +/-     +/-     +/-     +/+
+httpinfo       +/+     +/+     +/+     +/+     +/+     +/+
+mini           +/+     +/?     +/+     +/+     +/+     +/+
+nameservice    +/+     +/?     +/+     +/+     +/+     +/+
+pgraph         +/+     +/+     +/+     +/+     +/+     +/+
+quagga         +/+     -/-     +/+     +/+     +/+     ?
+secure         +/+     +/+     +/+     +/+     +/+     +/+
 tas            +/+     -       -       -       -       ?
 tas            +/+     -       -       -       -       ?
+txtinfo                +/+     +/+     +/+     +/+     +/+     +/+
 ------------------------------------------------------------
 
 LEGEND:   +/+ = compiles/runs
 ------------------------------------------------------------
 
 LEGEND:   +/+ = compiles/runs
@@ -237,9 +254,9 @@ LEGEND:   +/+ = compiles/runs
  * GUI FRONTENDS
 =================
 
  * GUI FRONTENDS
 =================
 
-A GUI front end for GNU/Linux using GTK is available in the gui/ directory.
-this implementation is really no longer supported, but it should work with
-0.4.8 except that it will not show correct configuration parameters.
+A GUI front end for GNU/Linux using GTK is available in the gui/ 
+directory. This implementation is no longer supported, and might
+not work any more. It will be completly removed in a future release.
 
 There currently is, however, a native MFC-based Windows GUI. Unlike
 olsrd the GUI has to be compiled with Visual C++ 6. It can be found in
 
 There currently is, however, a native MFC-based Windows GUI. Unlike
 olsrd the GUI has to be compiled with Visual C++ 6. It can be found in
@@ -332,30 +349,31 @@ for details.
  * LINUX
 =========
 
  * LINUX
 =========
 
-To build olsrd you need to have all the regular development tools installed.
-This includes gcc, make, glibc, makedep etc.
-To install to a directory different from /(/etc, /usr/bin) use INSTALL_PREFIX=targetdir
-To use other compilers set CC=yourcompiler
+To build olsrd you need to have all the regular development tools 
+installed. This includes gcc, make, glibc, makedep etc.
+To install to a directory different from /(/etc, /usr/bin) use 
+DESTDIR=targetdir. To use other compilers set CC=yourcompiler.
 
 To build:
 
 To build:
- make OS=linux
+ make
 To install(as root):
  make install
 To delete object files run:
  make clean
 To install(as root):
  make install
 To delete object files run:
  make clean
+Optionally, to clean all generated files:
+ make uberclean
 
 
-
-Before running olsrd you must edit the default configuration file /etc/olsrd.conf
-adding at least what interfaces olsrd is to run on. Options in the config file can 
-also be overridden by command line options. See the manual pages olsrd(8) and 
-olsrd.conf(5) for details.
+Before running olsrd you must edit the default configuration file 
+/etc/olsrd.conf adding at least what interfaces olsrd is to run on. 
+Options in the config file can also be overridden by command line 
+options. See the manual pages olsrd(8) and olsrd.conf(5) for details.
 The binary is named 'olsrd' and is installed in (PREFIX)/usr/sbin. 
 You must have root privileges to run olsrd!
 To run olsrd just type:
 olsrd
 
 The binary is named 'olsrd' and is installed in (PREFIX)/usr/sbin. 
 You must have root privileges to run olsrd!
 To run olsrd just type:
 olsrd
 
-If debug level is set to 0 olsrd will detach and run in the background, if not
-it will keep running in your shell.
+If debug level is set to 0 olsrd will detach and run in the background, 
+if not it will keep running in your shell.
 
 ===========
  * WINDOWS
 
 ===========
  * WINDOWS
@@ -367,7 +385,7 @@ To compile the Windows version of the OLSR server or the dot_draw
 plugin you need a Cygwin installation with a current version of GCC
 and Mingw32. Simply use
 
 plugin you need a Cygwin installation with a current version of GCC
 and Mingw32. Simply use
 
-  make OS=win32
+  make
 
 to build the olsrd executable. Building the dot_draw plugin works
 slightly different, we do not yet have a unified makefile for all
 
 to build the olsrd executable. Building the dot_draw plugin works
 slightly different, we do not yet have a unified makefile for all
@@ -425,17 +443,19 @@ If you do not specify a configuration file, the OLSR server
 directory, e.g. "C:\WINDOWS\olsrd.conf".
 
 
 directory, e.g. "C:\WINDOWS\olsrd.conf".
 
 
-===========
- * FREEBSD
-===========
+=========================
+ * FREEBSD/NETBSD/OPENBSD
+=========================
 
 
-The FreeBSD version is an initial port. It has not been extensively
-tested beyond "doesn't core dump and it looks like it adds routes". In
-order to build it, you need GNU make. Then use
+The FreeBSD port should be relativley stable at this point.
+The OpenBSD and NetBSD versions are pretty much untested. They have 
+not been extensively tested beyond "doesn't core dump and it looks 
+like it adds routes". In order to build it, you need GNU make. Then 
+use:
 
 
-  gmake OS=fbsd
+  gmake
 
 
-to build the olsrd executable. Then say
+to build the olsrd executable. Then do:
 
   gmake install
 
 
   gmake install
 
@@ -449,10 +469,6 @@ the Linux section for details.
 
 The OS X port is a direct descendant of the FreeBSD port. So, the same
 limitations with respect to testing and maturity apply. Building and
 
 The OS X port is a direct descendant of the FreeBSD port. So, the same
 limitations with respect to testing and maturity apply. Building and
-installing works in the same was as on FreeBSD, except that you have
-to use "osx" instead of "fbsd", as in
-
-  gmake OS=osx
+installing works in the same was as on FreeBSD.
 
 
 
 
-$Id: README,v 1.14 2005/06/02 15:33:59 br1 Exp $