5 Welcome to the first Windows release. Let's have a quick look at how
6 this version is different from the original Linux version.
10 While the Windows version looks pretty stable in basic scenarios, it
11 hasn't yet received the extensive testing by the OLSR community that
12 the Linux version has gone through. So, if you experience any
13 strange behaviour, it's probably my fault. In this case please bear
14 with me and send me a bug report via the OLSR-users mailing
15 list. I'll then do my best to find and fix the problem with your
18 ***** Configuration file *****
20 If you do not specify a configuration file, the OLSR server by
21 default attempts to use "olsrd.conf" in your Windows directory,
22 e.g. "C:\WINDOWS\olsrd.conf".
24 ***** Interface naming *****
26 On Linux network interfaces have nice names like "eth0". In
27 contrast, Windows internally identifies network interfaces by pretty
28 awkward names, for example:
30 "{EECD2AB6-C2FC-4826-B92E-CAA53B29D67C}"
32 Hence, the Windows version implements its own naming scheme that
33 maps each internal name to a made-up name like "if03", which is
34 easier to memorize. Simply invoke the OLSR executable as follows to
35 obtain the OLSR server's view of your interfaces:
39 This lists the made-up interface names along with their current IP
40 addresses to enable you to find out which made-up interface name
41 belongs to which of your physical interfaces.
43 For techies: The made-up names consist of the string "if" followed
44 by a two-digit hex representation of the least significant byte of
45 the Windows-internal interface index, which should be different for
46 each interface and thus make each made-up name unique. Again, this
47 is undocumented and this assumption may be wrong in certain
48 cases. So, if the "-int" option reports two interfaces that have the
49 same name, please do let me know.
51 ***** Running the GUI *****
53 The GUI is a GTK+ application and thus requires the GTK+ runtime
54 environment to work. The Windows port of GTK+ is available from the
57 http://www.gimp.org/~tml/gimp/win32/downloads.html
59 You need to download the following packages or newer versions of
63 - gettext-runtime-0.13.1.zip
66 - libiconv-1.9.1.bin.woe32.zip
69 Simply unzip the files into a directory that you've created,
70 e.g. into "GUI". Then copy the "olsrd-gui.exe" file into the "bin"
71 subdirectory, e.g. into "GUI\bin", and run it from there.
73 ***** Missing features *****
75 The Windows version currently does not implement the following
76 features known from the Linux release.
78 * IPv6. This will probably be in version 0.4.7.
80 * Link layer statistics.
82 * WLAN interface detection. The Windows port does not recognize
83 whether an interface is a WLAN interface or a wired LAN
84 interface. All specified interfaces are assumed to be WLAN
85 interfaces. So, for example, specifying a different HELLO
86 interval for wired interfaces does not currently work. Instead,
87 the HELLO interval for WLAN interfaces is always used.
89 * Gateway tunnelling. This is currently experimental on
90 Windows. It is intended to work reliably on Windows 2000 and
91 Windows XP in version 0.4.7. It is based on the ipinip.sys
92 device driver that comes with these operating systems, but which
93 is completely undocumented. I've figured out how to use the
94 device driver, but it looks like I've still missed one or two
95 little things. So, tunnelling might work on your OS version, but
96 it might as well not work. Unfortunately, currently I do not
97 even know why it works on some systems and fails on other
100 If you are brave, do the following, but be prepared for a BSOD
101 (blue screen of death) as a worst-case scenario. This is nothing
102 for the faint of the heart. :-) Never try this on production
105 * Start the IP-in-IP tunnel driver before running the OLSR
110 * When the OLSR server reports that the tunnel has been
111 established, find out, which interface index the tunnel
112 device has been assigned:
116 * Let's assume that the interface index is 0x1234 and the
117 gateway's IP address is 1.2.3.4. Manually add a default
118 route through the other end of the tunnel:
120 route add 0.0.0.0 mask 0.0.0.0 1.2.3.4 if 0x1234
122 * Try to ping somebody beyond the gateway and let me know
123 whether it works. If it doesn't and if you have time, please
124 do a packet dump for me to determine whether IP-in-IP
125 packets are leaving your system and, if yes, what they look
128 If you know of any freely available tunnel driver for Windows,
129 please let me know. We could then think about switching from the
130 native ipinip.sys driver to an alternative driver, perhaps one
131 that also works on Windows 9x.
133 If you are the Microsoft person that is responsible for the
134 tunnel driver, please have a look at my code in
135 src/win32/tunnel.* and tell me what I'm missing.
137 * Multiple interfaces in the same subnet. As they all share the
138 same subnet broadcast address, there's no way to tell Windows
139 which of these interfaces to send OLSR packets through. I guess
140 that we'll have to come up with a device driver that sits
141 between the TCP/IP stack and the network adapters and that
142 directs outbound OLSR packets to the correct interface after
143 they've been routed by the TCP/IP stack. Looks like there isn't
144 any other solution on Windows.
146 There are also some Windows-specific features that I currently work
147 on, but which have not made it into this release.
149 * A nice installation package based on Inno Setup 4. However,
150 there will always be a ZIP archive available, too, for those who
151 do not like installation packages.
153 * The option to run the OLSR server as a Windows service on
154 Windows NT, 2000, and XP.
156 These features will probably be in 0.4.7.
158 ***** Compiling *****
160 To compile the Windows version you need a Cygwin installation with a
161 current version of GCC and Mingw32. Currently the OLSR server, the
162 GUI, and the dot_draw plugin compile. Each of the corresponding
163 subdirectories contains a shell script named "mkmf.sh" that takes
164 "Makefile.win32.in" as its input, appends the dependencies, and
165 outputs "Makefile.win32". Then simply say
167 make -f Makefile.win32 clean
169 to remove any compiled files or
171 make -f Makefile.win32 mclean
173 to remove any compiled files and the generated makefile. Say
175 make -f Makefile.win32
177 to compile the source code.
179 To compile the GUI you additionally need the development packages of
180 the GTK+ Windows port. They are available from the same URL as the
181 GTK+ runtime environment. You need the following packages or newer
182 versions of these packages:
187 - pango-dev-1.4.1.zip
189 Simply unzip the files into a directory that you've created and make
190 the variable "GTKBASE" in "Makefile.win32" point to this directory.
192 Well, thanks for using the initial release of a piece of software and
193 please bear with me if there are any problems. Please do also feel
194 free to suggest any features that you'd like to see in future
197 Thomas Lopatic <thomas@lopatic.de>, 2004-08-24