Removed olsrd_plugin_io.h
[olsrd.git] / README-WIN32.txt
index 24a2481..090688f 100644 (file)
-
-                         olsr.org for Windows
-                         --------------------
-
-Welcome to the Windows release of olsr.org. Let's have a quick look at
-how this version differs from the original Linux version.
-
-
-                        ***** Stability *****
-
-  While the Windows version looks pretty stable in basic scenarios, it
-  hasn't yet received the extensive testing by the OLSR community that
-  the Linux version has gone through. So, if you experience any
-  strange behaviour, it's probably my fault. In this case please bear
-  with me and use the issue tracker on SourceForge. I'll then do my
-  best to find and fix the problem with your assistance. The
-  SourceForge homepage for olsrd.org has the following URL.
-
-                http://sourceforge.net/projects/olsrd/
-
-
-                    ***** Configuration file *****
-
-  If you do not specify a configuration file, the OLSR server
-  ("olsrd.exe") by default attempts to use "olsrd.conf" in your
-  Windows directory, e.g. "C:\WINDOWS\olsrd.conf".
-
-
-                     ***** Interface naming *****
-
-  On Linux network interfaces have nice names like "eth0". In
-  contrast, Windows internally identifies network interfaces by pretty
-  awkward names, for example:
-
-    "{EECD2AB6-C2FC-4826-B92E-CAA53B29D67C}"
-
-  Hence, the Windows version implements its own naming scheme that
-  maps each internal name to a made-up name like "if03", which is
-  easier to memorize. Simply invoke the OLSR server as follows to
-  obtain its view of your interfaces:
-
-    olsrd.exe -int
-
-  This lists the made-up interface names along with their current IP
-  addresses to enable you to find out which made-up interface name
-  corresponds to which of your physical interfaces.
-
-  For techies: The made-up names consist of the string "if" followed
-  by a two-digit hex representation of the least significant byte of
-  the Windows-internal interface index, which should be different for
-  each interface and thus make each made-up name unique. Again, this
-  is undocumented and this assumption may be wrong in certain
-  cases. So, if the "-int" option reports two interfaces that have the
-  same name, please do let me know.
-
-
-                     ***** Running the GUI *****
-
-  We now have a native Windows GUI. No more GTK+. Simply make sure
-  that "Switch.exe", "Shim.exe", and "olsrd.exe" are located in the
-  same directory and run "Switch.exe". "Shim.exe" is just an auxiliary
-  console application that is required by "Switch.exe".
-
-  The GUI is pretty self-explanatory. The three buttons on the lower
-  right of the GUI window start the OLSR server, stop the OLSR server,
-  and exit the GUI.
-
-  Use the "Settings" tab to specify the options that the GUI uses to
-  run the OLSR server "olsrd.exe". When you click "Start" the GUI
-  generates a temporary configuration file from the information given
-  by the "Settings" tab. This temporary configuration file is passed
-  to the OLSR server via its "-f" option. If you need options that
-  cannot be controlled via the "Settings" tab, simply add them to the
-  "Manual additions" text box as you would add them to a configuration
-  file, e.g. "HNA 192.168.0.0 255.255.255.0". The contents of this
-  text box are appended to the temporary configuration file when it is
-  generated.
-
-  "Offer Internet connection" is only available if you have an
-  Internet connection, i.e. if you have a default route configured. If
-  you tick this option, "HNA 0.0.0.0 0.0.0.0" is added to the
-  temporary configuration file, allowing other nodes in the OLSR
-  network to use your Internet connection.
-
-  Gateway tunnelling and IP version 6 cannot currently be selected, as
-  support for these features is not yet complete in the Windows
-  version.
-
-  The three buttons on the lower right of the "Settings" tab open
-  previously saved settings, save the current settings to a
-  configuration file, and reset the current settings to default
-  values. When opening a saved configuration file, the GUI adds lines
-  that it cannot interpret to the "Manual additions" text box.
-
-  If you start the GUI with the path to a configuration file as the
-  only command line argument, the GUI opens the given configuration
-  file and runs the OLSR server with this configuration. So, saving a
-  configuration file with a ".olsr" extension, for example, and making
-  "Switch.exe" the handler for ".olsr" files enables you to run the
-  OLSR server with a simple double click on the configuration file.
-
-  The "Output" tab shows the output of the currently running OLSR
-  server. When you click "Start" The GUI simply invokes the OLSR
-  server "olsrd.exe" and intercepts its console output. Use the four
-  buttons on the upper right of the tab to freeze the output, resume
-  frozen output, save the output to a file, or clear the output.
-
-  The "Nodes" tab contains information about the nodes that the OLSR
-  server currently knows about. If you click on the address of a node
-  in the "Node list" list box, the GUI populates the three "Node
-  information" list boxes on the right with the multi-point relays of
-  the selected node (MPR), the interfaces of the selected node (MID),
-  and the non-OLSR networks accessible via the selected node (HNA).
-
-  The "Routes" tab shows the routes that the currently running OLSR
-  server has added.
-
-
-                   ***** Running the GTK+ GUI *****
-
-  Please use the native Windows GUI instead. The GTK+ GUI is no longer
-  supported on Windows.
-
-
-                     ***** Missing features *****
-
-  The Windows version currently does not implement the following
-  features known from the Linux release.
-
-    * IPv6.
-
-    * Link layer statistics.
-
-    * WLAN interface detection. The Windows port does not recognize
-      whether an interface is a WLAN interface or a wired LAN
-      interface. All specified interfaces are assumed to be WLAN
-      interfaces. So, for example, specifying a different HELLO
-      interval for wired interfaces does not currently work. Instead,
-      the HELLO interval for WLAN interfaces is always used.
-
-    * Gateway tunnelling. This is currently experimental on
-      Windows. It is intended to work reliably on Windows 2000 and
-      Windows XP in a later version. It is based on the ipinip.sys
-      device driver that comes with these operating systems, but which
-      is completely undocumented. I've figured out how to use the
-      device driver, but it looks like I've still missed one or two
-      little things. So, tunnelling might work on your OS version, but
-      it might as well not work. Unfortunately, currently I do not
-      even know why it works on some systems and fails on other
-      systems.
-
-      If you are brave, do the following, but be prepared for a BSOD
-      (blue screen of death) as a worst-case scenario. This is nothing
-      for the faint of the heart. :-) Never try this on production
-      systems.
-
-        * Start the IP-in-IP tunnel driver before running the OLSR
-          server:
-
-            net start ipinip
-
-        * When the OLSR server reports that the tunnel has been
-          established, find out, which interface index the tunnel
-          device has been assigned:
-
-            route print
-
-        * Let's assume that the interface index is 0x1234 and the
-          gateway's IP address is 1.2.3.4. Manually add a default
-          route through the other end of the tunnel:
-
-            route add 0.0.0.0 mask 0.0.0.0 1.2.3.4 if 0x1234
-
-        * Try to ping somebody beyond the gateway and let me know
-          whether it works. If it doesn't and if you have time, please
-          do a packet dump for me to determine whether IP-in-IP
-          packets are leaving your system and, if yes, what they look
-          like.
-
-      If you know of any freely available tunnel driver for Windows,
-      please let me know. We could then think about switching from the
-      native ipinip.sys driver to an alternative driver, perhaps one
-      that also works on Windows 9x.
-
-      If you are the Microsoft person that is responsible for the
-      tunnel driver, please have a look at my code in
-      src/win32/tunnel.* and tell me what I'm missing.
-
-    * Multiple interfaces in the same subnet. As they all share the
-      same subnet broadcast address, there's no way to tell Windows
-      which of these interfaces to send OLSR packets through. I guess
-      that we'll have to come up with a device driver that sits
-      between the TCP/IP stack and the network adapters and that
-      directs outbound OLSR packets to the correct interface after
-      they've been routed by the TCP/IP stack. Looks like there isn't
-      any other solution on Windows.
-
-  There are also some Windows-specific features that I currently work
-  on, but which have not made it into this release.
-
-    * A nice installation package. However, there will always be a ZIP
-      archive available, too, for those who do not like installation
-      packages.
-
-    * The option to run the OLSR server as a Windows service on
-      Windows NT, 2000, and XP.
-
-
-                        ***** Compiling *****
-
-  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. Each of the corresponding subdirectories contains a
-  shell script named "mkmf.sh" that takes "Makefile.win32.in" as its
-  input, appends the dependencies, and outputs "Makefile.win32". Then
-  simply say
-
-    make -f Makefile.win32 clean
-
-  to remove any compiled files or
-
-    make -f Makefile.win32 mclean
-
-  to remove any compiled files and the generated makefile. Say
-
-    make -f Makefile.win32
-
-  to compile the source code.
-
-  The GUI has to be compiled with Visual C++ 6. Simply open the
-  "Frontend.dsw" workspace in the Visual C++ 6 IDE. Then compile
-  "Frontend" and "Shim", which creates "Switch.exe" and
-  "Shim.exe". Copy these two executables into the same directory as
-  "olsrd.exe" and you are ready to go.
-
-Well, thanks for using an early release of a piece of software and
-please bear with me if there are any problems. Please do also feel
-free to suggest any features that you'd like to see in future
-releases.
-
-Thomas Lopatic <thomas@lopatic.de>, 2004-09-14
+\r
+                         olsr.org for Windows\r
+                         --------------------\r
+\r
+Welcome to the Windows release of olsr.org. Let's have a quick look at\r
+how this version differs from the original Linux version.\r
+\r
+\r
+                        ***** Stability *****\r
+\r
+  While the Windows version looks pretty stable in basic scenarios, it\r
+  hasn't yet received the extensive testing by the OLSR community that\r
+  the Linux version has gone through. So, if you experience any\r
+  strange behaviour, it's probably my fault. In this case please bear\r
+  with me and use the issue tracker on SourceForge. I'll then do my\r
+  best to find and fix the problem with your assistance. The\r
+  SourceForge homepage for olsrd.org has the following URL.\r
+\r
+                http://sourceforge.net/projects/olsrd/\r
+\r
+\r
+                    ***** Configuration file *****\r
+\r
+  If you do not specify a configuration file, the OLSR server\r
+  ("olsrd.exe") by default attempts to use "olsrd.conf" in your\r
+  Windows directory, e.g. "C:\WINDOWS\olsrd.conf".\r
+\r
+\r
+                     ***** Interface naming *****\r
+\r
+  On Linux network interfaces have nice names like "eth0". In\r
+  contrast, Windows internally identifies network interfaces by pretty\r
+  awkward names, for example:\r
+\r
+    "{EECD2AB6-C2FC-4826-B92E-CAA53B29D67C}"\r
+\r
+  Hence, the Windows version implements its own naming scheme that\r
+  maps each internal name to a made-up name like "if03", which is\r
+  easier to memorize. Simply invoke the OLSR server as follows to\r
+  obtain its view of your interfaces:\r
+\r
+    olsrd.exe -int\r
+\r
+  This lists the made-up interface names along with their current IP\r
+  addresses to enable you to find out which made-up interface name\r
+  corresponds to which of your physical interfaces.\r
+\r
+  "+" in front of the IP addresses means that the OLSR server has\r
+  identified the interface as a WLAN interface. "-" indicates that the\r
+  OLSR server considers this interface to be a wired interface. "?"\r
+  means "no idea". Detection currently only works on NT, 2000, and\r
+  XP. Windows 9x and ME will always display "?".\r
+\r
+  For techies: The made-up names consist of the string "if" followed\r
+  by a two-digit hex representation of the least significant byte of\r
+  the Windows-internal interface index, which should be different for\r
+  each interface and thus make each made-up name unique. Again, this\r
+  is undocumented and this assumption may be wrong in certain\r
+  cases. So, if the "-int" option reports two interfaces that have the\r
+  same name, please do let me know.\r
+\r
+\r
+                     ***** Running the GUI *****\r
+\r
+  We now have a native Windows GUI. No more GTK+. Simply make sure\r
+  that "Switch.exe", "Shim.exe", "olsrd.exe", "olsrd_cfgparser.dll",\r
+  and "Default.olsr" are located in the same directory and run\r
+  "Switch.exe". "Shim.exe" is just an auxiliary console application\r
+  that is required by "Switch.exe".\r
+\r
+  The GUI is pretty self-explanatory. The three buttons on the lower\r
+  right of the GUI window start the OLSR server, stop the OLSR server,\r
+  and exit the GUI.\r
+\r
+  Use the "Settings" tab to specify the options that the GUI uses to\r
+  run the OLSR server "olsrd.exe". When you click "Start" the GUI\r
+  generates a temporary configuration file from the information given\r
+  by the "Settings" tab. This temporary configuration file is passed\r
+  to the OLSR server via its "-f" option. \r
+\r
+  "Offer Internet connection" is only available if you have an\r
+  Internet connection, i.e. if you have a default route configured. If\r
+  you tick this option an HNA entry for the default route is added to\r
+  the temporary configuration file, allowing other nodes in the OLSR\r
+  network to use your Internet connection.\r
+\r
+  IP version 6 cannot currently be selected, as support for IPv6 is\r
+  not yet complete in the Windows version.\r
+\r
+  "Enable ETX link quality" tells the OLSR server to detect the\r
+  quality of its links to its neighbours using a variant of the ETX\r
+  metric. "Window size" specifies the number of most recent packets to\r
+  be used when calculating the packet loss. If, for example, this\r
+  parameter is set to 10, then the OLSR server will calculate the\r
+  packet loss among the most recent 10 OLSR packets received from each\r
+  neighbour. If "For MPR selection only" is active, the link quality\r
+  information is only used to select MPRs that offer the best paths to\r
+  your two-hop neighbours. If "For MPR selection and routing" is\r
+  active, the link quality is additionally used to create the routing\r
+  table.\r
+\r
+  WARNING - Enabling ETX breaks compliance with the OLSR\r
+  standard. ETX-enabled nodes do not interoperate with nodes that have\r
+  ETX switched off. DO NOT USE NODES WITH DIFFERENT ETX SETTINGS IN A\r
+  SINGLE NETWORK!\r
+\r
+  The three buttons on the lower right of the "Settings" tab open\r
+  previously saved settings, save the current settings to a\r
+  configuration file, and reset the current settings to default\r
+  values.\r
+\r
+  If you start the GUI with the path to a configuration file as the\r
+  only command line argument, the GUI opens the given configuration\r
+  file and runs the OLSR server with this configuration. So, saving a\r
+  configuration file with a ".olsr" extension, for example, and making\r
+  "Switch.exe" the handler for ".olsr" files enables you to run the\r
+  OLSR server with a simple double click on the configuration file.\r
+\r
+  The "Output" tab shows the output of the currently running OLSR\r
+  server. The output is limited to 1000 lines. The 1001st line will\r
+  make the first line disappear and so on. When you click "Start" The\r
+  GUI simply invokes the OLSR server "olsrd.exe" and intercepts its\r
+  console output. Use the four buttons on the upper right of the tab\r
+  to freeze the output, resume frozen output, save the output to a\r
+  file, or clear the output.\r
+\r
+  The "Nodes" tab contains information about the nodes that the OLSR\r
+  server currently knows about. If you click on the address of a node\r
+  in the "Node list" list box, the GUI populates the three "Node\r
+  information" list boxes on the right with the multi-point relays of\r
+  the selected node (MPR), the interfaces of the selected node (MID),\r
+  and the non-OLSR networks accessible via the selected node (HNA).\r
+\r
+  The "Routes" tab shows the routes that the currently running OLSR\r
+  server has added.\r
+\r
+  The default settings for the "Settings" tab are taken from the\r
+  "Default.olsr" file. The configuration of the last interface in this\r
+  file is used to populate the per-interface settings (HELLO interval,\r
+  etc.) in the "Settings" tab. If you do not want to specify any\r
+  interface in "Default.olsr", the problem arises that you do not have\r
+  such a last interface. In this case simply create an interface with\r
+  the special name of "GUI". This tells the GUI to use the\r
+  configuration of the interface for the per-interface settings and to\r
+  forget about this interface afterwards.\r
+\r
+\r
+                   ***** Running the GTK+ GUI *****\r
+\r
+  Please use the native Windows GUI instead. The GTK+ GUI is no longer\r
+  supported on Windows.\r
+\r
+\r
+                     ***** Missing features *****\r
+\r
+  The Windows version currently does not implement the following\r
+  major features known from the Linux release.\r
+\r
+    * IPv6\r
+\r
+  There are also some Windows-specific features that I currently work\r
+  on, but which have not made it into this release.\r
+\r
+    * The option to run the OLSR server as a Windows service on\r
+      Windows NT, 2000, and XP.\r
+\r
+\r
+                        ***** Compiling *****\r
+\r
+  To compile the Windows version of the OLSR server or the dot_draw\r
+  plugin you need a Cygwin installation with a current version of GCC\r
+  and Mingw32.\r
+\r
+  The GUI has to be compiled with Visual C++ 6. Simply open the\r
+  "Frontend.dsw" workspace in the Visual C++ 6 IDE. Then compile\r
+  "Frontend" and "Shim", which creates "Switch.exe" and\r
+  "Shim.exe".\r
+\r
+Well, thanks for using an early release of a piece of software and\r
+please bear with me if there are any problems. Please do also feel\r
+free to suggest any features that you'd like to see in future\r
+releases.\r
+\r
+Thomas Lopatic <thomas@lopatic.de>, 2004-11-21\r