Various updates
[olsrd.git] / CHANGELOG
1 This file states changes as of version 0.2.4:
2 $Id: CHANGELOG,v 1.16 2004/12/02 16:37:13 kattemat Exp $
3
4 0.4.8 ---------------------------------------------------------------------
5
6 LICENSE CHANGE
7
8 Olsrd is now distributed under a BSD style license. We belive olsrd will
9 be better off using this license as it opens up for commercial players
10 to use olsrd freely in their products. In the end this will lead to
11 this kind of users doing serious testing and bugfixing of olsrd. 
12
13 ETX-LIKE LINK QUALITY DETECTION
14
15 We can now determine the packet loss on a link by looking at the serial
16 numbers of the OLSR messages received from a neighbour. This tells us how
17 many packets get through from our neighbour to us. We use a new extended
18 kind of HELLO messages (LQ_HELLO messages, LQ = link quality) to broadcast
19 the link quality that we have determined on our end of the link to our
20 neighbours. So do our neighbours, and we as well as they end up with an
21 idea of how good the link is in both directions. From the LQ_HELLOs we
22 also learn the link quality between our neighbours and our two-hop neigh-
23 bours. In this way we can select those neighbours as MPRs that have the
24 best links to our two-hop neighbours. To distribute the link quality
25 throughout the network, we use a new extended version of TC messages
26 (LQ_TC messages). They contain the qualities at both ends of each of our
27 links. Nodes can then run Dijkstra's algorithm to find a path between
28 themselves and other nodes that minimizes the packet loss.
29
30 If the newly introduced "LinkQualityLevel" is set to zero in the
31 configuration file, link quality is not used and the daemon behaves as
32 before, i.e. as specified by the OLSR RFC. If this parameter is set
33 to 1, LQ_HELLOs and LQ_TCs are used instead of HELLOs and TCs, link
34 quality is measured and MPRs are selected based on the link qualities.
35 If this parameter is set to 2, the routing table is additionally
36 calculated based on the link qualities.
37
38 Setting "LinkQualityLevel" to a non-zero value BREAKS COMPATIBILITY. You
39 will then not be able to participate in RFC-conformant OLSR networks
40 any longer. This is because we use LQ_HELLOs and LQ_TCs instead of HELLOs
41 and TCs in this case.
42
43 It's best practice to set "LinkQualityLevel" to the same value on all
44 nodes in a network.
45
46 When determining the quality of a link olsrd only considers a given
47 number of most recent OLSR packets received from its neighbours. By
48 default, olsrd looks at the 10 most recent OLSR packets. This can be
49 changed via the "LinkQualityWinSize" configuration option. Values
50 between 3 and 128 are legal.
51
52 NEW CONFIGFILE PARSER/FORMAT/SCHEME
53
54 ToDo
55
56 FREEBSD AND MAC OSX PORT
57
58 This version offers an initial port of olsrd to FreeBSD and Mac OS
59 X. Like the Windows port it currently does not support IPv6. As this
60 is a very first try at supporting FreeBSD and Mac OS X, this port is
61 probably not as reliable as the Linux version. We'd greatly appreciate
62 feedback and bug reports. To compile you need GNU make. Then simply
63 run "gmake OS=fbsd" to build the executable.
64
65 DEBUG OUTPUT
66
67 Tables are now only printed if changes occure, so there are no longer 
68 any periodical output when using a debuglevel >0. A "heartbeat" is 
69 now printet to STDOUT(if it is a terminal) in the form of a rotating 
70 line to show that olsrd is actually operating.
71 Adding "ClearScreen yes" to the configuration file clears the screen
72 each time before the debug output shows updated information. This
73 makes the debug output easier to read in many cases. "ClearScreen no"
74 is the default, if no "ClearScreen" directive is given in the
75 configuration file.
76
77 PLUGIN INTERFACE
78
79 There are some changes in the plugin interface. It is now at
80 version 2. Plugin specific parameters from the configfile 
81 using the PlParam option, will now be passed on to plugins.
82 To receive such parameters a plugin myst implement a function:
83 int
84 register_olsr_param(char *key, char *value)
85 to which parameter pairs will be passed.
86
87 NO MORE THREADS
88
89 Olsrd no longer uses any thread library on its operation. Everything
90 now happens in the main thread allowing for use of olsrd on platforms
91 with no thread library.
92
93 ACPI SUPPORT IN WILLINGNESS CALCULATION(LINUX)
94
95 The willingness calculation for Linux, now also supports the more
96 modern ACPI proc interface in addittion to APM. This is not well
97 tested and feedback is appreciated!
98
99 IPC OPTIONS
100
101 Various options regarding IPC connections can now be set in the 
102 configfile. The options are max connections, allowed unicast
103 hosts and allowed net-ranges.
104
105 CODE REWRITES
106
107 Much of the message generation and net output code is rewritten.
108 Sending of partial messages should now work 100%. Also TC, MID 
109 and HNA messages are now cached for a random amount of time
110 before transmitted - this often leads to the situation where these
111 messages are sent together with an HELLO maessage, which is highly
112 desireable since it saves network resources.
113 PLUGIN DEVELOPERS must note that the buffers and size variables
114 used in net output is no longer directly accessible!
115
116 NET OUTPUT CODE REWRITTEN
117
118 Every interface now has one outputbuffer registered. This allows
119 messages to be "cached" as explained above, so that multiple
120 messages are stacked together.
121 Also the outputbuffer and size are no longer accessable directly,
122 an API is available to plugins(and olsr code).
123
124 OS DEPENDENT NETWORK INTERFACE
125
126 The OS dependen network functions are now defined in net_os.h
127 instead of beeing mixed up with internal network functions
128 in net.h.
129
130 NEW MAKEFILE
131
132 The common makefile now includes automatic dependency generation 
133 using makedepend.
134
135 BUGFIXES
136
137 A bug that caused the announced ANSN sequence number to never stop
138 beeing increased when a change in the MPR selector set was detected
139 has been fixed. Another TC related bug that caused timed out TC
140 entries not to be deleted from the routing table in certain cases
141 has also been fixed. Theese bugs could cause unstable routes.
142 A bug that in many cases caused the wrong routes to be deleted 
143 when using IPv6 has been fixed.
144
145
146 0.4.7 ---------------------------------------------------------------------
147
148 NATIVE WINDOWS GUI AND INSTALLER
149
150 We now have a native Windows GUI. The GTK+ version is no longer
151 supported on Windows. The new native GUI is pretty compact as it does
152 not require the GTK+ runtime DLLs. In addition to monitoring olsrd's
153 state the GUI offers an easy way for novice users to configure
154 olsrd. It's pretty self-explanatory. Have a look at README-WIN32.txt
155 for details. The Windows version now also comes with an installer
156 based on the freely available Nullsoft Scriptable Install System
157 (NSIS). Looks like the Windows port is becoming more and more
158 Windows-ish. :-)
159
160 WIRELESS INTERFACE DETECTION ON WINDOWS
161
162 Like the Linux version the Windows port is now able to tell WLAN
163 interfaces from wired interfaces. We can now, for example, set
164 different HELLO intervals for WLAN interfaces and wired interfaces,
165 respectively.
166
167 ROUTE UPDATES
168
169 The order of updates of calculated routes is swapped. Now new routes
170 are added prior to deleting old ones. This could fix issues where
171 in some very very few cases one could experiment loss of routes.
172
173 BUGFIXES
174
175 There were quite some bugs in IPv6 operation in 0.4.6. These are
176 the bugs that were fixed:
177 - HNA message parsing did not work.
178 - Some IPv6 addresses were printed as IPv4 addresses in the
179   debug output.
180 - The '-dispin' option now works again.
181 - A filedescriptor leak in the IPv6 interface detection caused
182   olsrd to crash.
183
184
185 0.4.6 ---------------------------------------------------------------------
186
187 WINDOWS PORT!
188
189 Read the README-WIN32.txt file!
190
191 DYNAMIC NETWORK INTERFACE UPDATES
192
193 Network interfaces can now be updated and removed/added at
194 runtime. Olsrd will check all interfaces specified in the config 
195 file or on the command-line, every 5 seconds. If updates
196 occure, olsrd will register this and update the necessary data.
197 If interfaces are removed or added, olsrd will detect this
198 and configure the interfaces. If an interface is removed
199 olsrd will continue to check the interface, so if say, a PCMCIA
200 card is removed and later on reinserted(and given the same name),
201 olsrd will detect this and start running on it again.
202
203 Note that olsrd will now run even if no interfaces are detected.
204
205 ROUTE CALCULATION UPDATE
206
207 All 1 hop neighbor addresses that are not directly reachable trough
208 a symmetric link in the link set will now be added with a GW in the 
209 routing table. this GW will be an interface address from a registered
210 symmetric link to the neighbor.
211
212 MID UPDATE
213
214 Alias addresses are now registered in the link set processing
215 if available. This is not to pretty(since the vtime has to
216 be a mere guess) but it gives faster initial route updates.
217 If a HELLO is received(at initial registration) from an IP 
218 that is not the same as the one set as main address in the 
219 received HELLO header, then the IP from which the HELLO was 
220 received will be registered as an alias of the main address 
221 set in the HELLO header. The default vtime is set to 15 secs.
222
223 CODE RESTRUCTURING
224
225 All OS dependent interface configuration code is now located in
226 OS/ifnet.c(that would be linux/ifnet.c if using GNU/Linux).
227 The functions are available trough the headerfile src/ifnet.h
228
229 CODE CLEANUPS
230
231 - Some timer issues fixed
232 - Got rid of the global socket descriptors
233 - Updated indexing of network interfaces
234 - Introduced a global socket to use for ioctl calls(ioctl_s)
235 - Removed upper limit for interfaces to use
236 - Point-to-point interfaces are now allowed
237 - The main select(2) loop now uses a timeout
238 - A small bugfix in the select fd-set update code
239 - Some bugfixes in the configuration file parsing
240 - stdout/stderr are now set to not be buffered
241 - A bugfix in the MID generation regarding seq. numbering
242
243 PLUGIN INTERFCAE
244
245 A new set of functions that are called whenever a change in the 
246 interface configuration(update, addittion, removal) is made is 
247 introduced.
248 These functions are added and removed very much like the ptf
249 functions. Available trough the functions add_ifchgf and del_ifchgf.
250
251 OBS OBS OBS!!! PLUGIN DEVELOPERS READ THIS!!!!
252
253 The interface struct(declared in interfaces.h) has changed.
254 Plugin developers must update plugins that uses the interface
255 struct!
256
257 The headerfile olsr_plugin_io.h which contains the plugin interface
258 commands now contains a revision list where all changes are
259 stated.
260
261
262 0.4.5 ---------------------------------------------------------------------
263
264 PLUGIN: SECURE OLSR
265
266 A plugin that generates and checks message signatures is added.
267 Check lib/secure
268
269 PLUGIN: TOPOLOGY GRAPH
270
271 A plugin that generates output of the topology in the dot format
272 is added. See lib/dot_draw
273
274 OPTIMIZATIONS
275
276 Some optimizations done that should cause fewer route recalculations.
277
278 BUGFIXES
279
280 Some bugs reported by Takafumi Tanaka fixed.
281
282 RESTORATION OF NETWORK SETTINGS
283
284 Network settings like disabling of ICMP redirects and spoof filter, are
285 now restored at exit by olsrd.
286
287 RFC COMPLIANCE FIX
288
289 Nodes would in certain scenarios retransmit messages originating for
290 themselves. This was a RFC incompliance. Reported by Ingmar Baumgart.
291
292 NON-WLAN TIMERS
293
294 No longer setting the HELLO interval of non-wlan interfaces as a multiplier
295 of the wlan interval. The interval is set seperatly now.
296 Due to this there are some updates in the configfile imperatives.
297
298 CODE CLEANUPS
299
300 Some new macros introduced for table insertion and removal and IP
301 copying and comparision.
302
303 FRONT END BUGFIXES
304
305 IPv6 bugfixes in the GUI.
306
307
308 0.4.4 ---------------------------------------------------------------------
309
310 ROUTE CALCULATION
311
312 Routes are no longer added via neighbors declaring a willingness
313 of WILL_NEVER.
314
315 LINK SENSING AND ROUTE CALCULATION
316
317 Link sensing and route calculation has been updated to handle
318 multiple links between hosts in a sane way.
319
320 IP SPOOF FILTERING
321
322 IP spoof filtering is disabled on the interfaces which olsrd runs.
323 These settings are not restored!
324
325 ICMP REDIRECTS
326
327 ICMP redirect message generation is disabled on the interfaces
328 which olsrd runs.
329 These settings are not restored!
330
331 CONFIGFILE OPTIONS FOR MID AND HNA ADDED
332
333 Options to set the MID and HNA emission intervals and
334 validitytime in the configfile added.
335
336 IPv6 ADDRESS SCOPE
337
338 Option to set what IPv6 address type(scope) to use in the 
339 configfile added. It can be set to either global or site-local.
340
341 IPv6 MULTICAST
342
343 Options to set site-local and global multicast addresses
344 in the configfile added.
345
346 EMISSION INTERVAL FUNCTION
347
348 Functions to set emission intervals at runtime added.
349
350 LINK LAYER NOTIFICATIONS
351
352 If started with the -llinfo switch olsrd will collect and display
353 link-layer information on neighbors. This is no longer limited to
354 one interface. But no action is taken based on this info - and
355 there is a upper limit of 8 neighbors from which this info can
356 be collected pr. interface. This limitation is inherited from the
357 WLAN drivers and is not something imposed by the olsrd code!
358
359 IPv6 HNA MESSAGE FORMAT
360
361 IPv6 HNA messages now contains 128-bit netmask instead of prefix.
362
363 PLUGIN FUNCTIONS
364
365 Added "packet transform functions" which allow plugins to alter all
366 outgoing OLSR traffic.
367
368 RESTRUCTURING
369
370 Moved most headers out of OS dependent directories. The tunneling
371 and link-layer notification interface is not yet seperated from
372 the /linux directory.
373
374 MANUALPAGE
375
376 A manpage(olsrd(8)) describing olsrd has been created. It is installed
377 when using 'make install'.
378
379
380 0.4.3 ---------------------------------------------------------------------
381
382 PLUGIN SUPPORT
383
384 Olsrd now supports runtime-loadable plugins! A couple of example plugins
385 are located in the lib/ directory. Read the README files in the various 
386 plugin directories for more info. A directive to load plugins have been
387 added to the configfile as well. 
388 Documentation of the plugin interface can be fount at http://www.olsr.org.
389
390 The plugin interface is designed to be extendable. But it should _always_
391 be backwards compatible with the interface used in this release!
392
393 LINK-LAYER NOTIFICATION
394
395 Some preliminary link-layer notification code has been added. Link quality
396 can be written to stdout if olsrd is started with the -llinfo switch.
397 No action is currently taken based on this info. And info will only
398 be retreived from the interface named "eth1".
399 This code is not usable for users as of yet!
400
401 MPR UPDATES
402
403 Neighbors with willingness set to WILL_ALWAYS is now always added. The
404 MPR selection is optimized as described in RFC3626 section 8.3.1
405 point 5.
406
407 MPR BUGS
408
409 There was a couple of bugs in the MPR selection code. All fixed.
410
411 LINUX 2.6 BUG
412
413 Users could not run olsrd on multiple inerface using the Linux 2.6 kernel
414 series. This is now fixed.
415
416 MINOR BUGS
417
418 One small bug in link hysteresis initialization and one in HNA route
419 deletion.
420
421 MESSAGE-SEQUENCENUMBER INCOMPLIANCE
422
423 Message-seqnos was implementaed on a pr. messagetype and pr. interface
424 basis. This is not RFC3626 compliant and has been updates. All messages
425 and interfaces now uses a global seuencenumber.
426
427 RANDOM SEQUENCENUMBERS
428
429 Sequencenumbers are now initialized using a random value.
430
431 DAEMON MODE
432
433 Fixes for running olsrd in daemon mode(debug 0).
434
435 OPTIMIZATIONS
436
437 Optimizations based on profiling implemented.
438
439 SANITATION
440
441 Message size is checked for every massege before passing it to the
442 appropriate message persing function. If the size is bigger than the
443 remaining size of the olsr packet then the message is discarded.
444
445 GUI FRONT-END
446
447 Some minor modifications done to the gui.
448
449 INTERNAL CHANGES
450
451 Lots of changes in handling of registration and unregistration of
452 scheduler, socketparser, parser and local hna set.
453 Some restructuring and movement of functions.
454
455
456 0.4.2 ---------------------------------------------------------------------
457
458 No public release
459
460 0.4.1 ---------------------------------------------------------------------
461
462 No public release
463
464 0.4.0 ---------------------------------------------------------------------
465
466 LINK HYSTERESIS
467
468 Link hysteresis as described in the RFC added.
469
470 TC REDUNDANCY
471
472 TC redundancy as described in the RFC added
473
474 MPR REDUNDANCY
475
476 MPR redundancy as described in the RFC added
477
478 SCHEDULER REWRITE
479
480 The scheduler has been rewritten to register scheduled
481 events(function pointers) dynamically.
482
483 PARSER REWRITE
484
485 The parser has been rewritten to register parse functions
486 on a pr. messagetype dynamically
487
488 MALLOC WRAPPER
489
490 A wrapper for the malloc(3) syscal has been introduced.
491 olsr_malloc(size_t, const char *) should ALWAYS be used.
492
493 CODE RESTRUCTURING
494
495 Lots of restructuring in headerfiles.
496 Linux spesific code moved to subdirectory linux/
497 FreeBSD code to be put in freebsd/
498 LOTS of code restructured due to the rexrite of the scheduler
499 and parser.
500
501 MPR CALCULATION
502
503 Optimizing the MPR set as suggested in the RFC section
504 8.3.1 point 5 added.
505
506 BUGFIXES
507
508 Some bugs in MPR selection fixed.
509
510
511 0.3.8 ---------------------------------------------------------------------
512
513 CODE REWRITES
514
515 HNA code completeley rewritten!
516 The old code was really bad! Now it is much cleaner implemented and
517 should work fine.
518 One- and two-hop neighbor list structures rewritten. They now use
519 the same hashed double-linked lists as the rest of the information
520 sets use.
521
522 CODE RESTRUCTURING
523
524 Some code restructuing which resulted in the new files: timer.h,
525 mantissa.c, mantissa.h, hashing.c, hashing.h, linux/net.c 
526 linux/net.h, linux/kernel_routes.c, linux/kernel_routes.h and some 
527 renamed files
528
529 BUG FIXES
530
531 The bug causing errormessages on exit is fixed.
532 The bug that caused initial HNA routes in the GUI to display a hopcount
533 of 0 fixed.
534 IPv6 HNA netmasks were all added as /128. It's fixed now.
535
536 IPv6
537
538 Turns out sitelocal address had to be preferred to avoid IPv6 header
539 messing up link-sensing. Bug fixed
540
541
542 0.3.7 ---------------------------------------------------------------------
543
544 CODE REWRITES
545
546 The entire TC set and MPR selector set code rewritten. Hashing and
547 double linked lists added to the MID code.
548 Lots of HNA code has been rewriteen as well.
549
550 HNA bugfix
551
552 When a node lost connectivity to a HNA GW all HNA entries to that gw
553 was deleted. This has been fixed - and HNA entries only gets deleted
554 on timeout now.
555 Other HNA bugs have been fixed as well. But the whole HNA implementation
556 needs a rewrite!
557
558 Holdingtime BUGfix
559
560 There was a bug that caused holdingtime not to be properly recalculated
561 when using non-default emission intervals.
562
563 Forwarding and symmetric neighbors
564
565 Seems I had misread the RFC on what a 1-hop symmetric neighbor is.
566 Now the link-set is checked when a check for a symmetric neighbor
567 is done. Not the 1 hop neighbor set as it used to be. This way
568 the hack when receiving MID messages could be removed.
569
570 IPv6
571
572 Global addresses are now preferred. Sitelocal addresses are only used
573 if no global adresses are found. There have been problems where
574 the address set in the IP header of IPv6 packets do not match the
575 address chosen by OLSR.
576
577 GUI - 0.2.5
578
579 The GUI is finally updated! It can now handle piggybacked messages
580 and link sensing HELLO message format.
581
582
583 0.3.6 ---------------------------------------------------------------------
584
585 HNA support using IPv6
586
587 HNA now works using IPv6 as well! Just add the netwrok address and
588 prefix in the HNA6 section in the configfile. The IPv6 HNA packets differ
589 some from the IPv4 as they don't send the netmask but the prefix.
590
591
592 NEW FILENAME FOR THE BINARY AND CONFIG FILE
593
594 They are now called olsrd and olsrd.conf. I figured I'd use the olsrd
595 name before somebody else started using it ;-)
596
597
598 Config file
599
600 New options: DEBUG, HNA6 and IPC-CONNECT added to config file.
601
602
603 Output
604
605 A printf-wrapper hans been introduced - debug level output handeling
606 is much more uniform now.
607 The daemon sould run fine in detatched mode now(DEBUG 0)
608
609 GUI front-end
610
611 The GUI front-end can now connect and dissconnect at any time while the
612 daemon is running, if started using the -ipc switch or with IPC set to
613 'yes' in the configfile.
614
615
616 BUGS
617
618 A small HNA bug fixed.
619
620
621 0.3.5 ---------------------------------------------------------------------
622
623 Forwarding jitter
624
625 Forwarding jitter added. Messages are piggibacked if they arrive(and are to 
626 be forwarded) while there is data to be forwarded buffered.
627 Added some bugfixes to support parsing of piggybacked messages as well.
628
629 Route calculation
630
631 Fixed route calculation so that 2 hop neighbors are added. This smooths
632 changes from 1 hop to 2 hop neighbor out. The old way one had to wait for 
633 a TC before the 2 hop neighbors were added.
634
635 2 hop neighbor set
636
637 All neighbors recieved in HELLO messages are added to the two hop 
638 neighborhood. This helps smoothing out the 1-to-2 hop transition as well.
639
640 MID calculation
641
642 MID calculation had to be updated due to the registering of two hop neighbors
643 that are already one hop neighbors. They sould not be considered when calculatin
644 two hop coverage.
645
646 Optimalizations
647
648 Deletion of possible one hop neighbors registered on non main-addresses when
649 first registering MID info from a node removed. This can not occure due
650 to the fact that registering of neighbor nodes are done on main addresses
651 from link-sensing
652 Option to not forward messages on wired links on which they arrived removed.
653 This is no longer usable to any degree when adding support for piggybacking
654 of forwarded messages is to be implemented.
655
656 Cleanups
657
658 Some unused parameters and commandline options were removed.
659
660
661
662 0.3.3 ---------------------------------------------------------------------
663
664 TC MESSAGEING
665
666 Added sending of empty TC messages if all MPR selectors are removed. Empty
667 TC messages are sent for a TC_HOLD_TIME period as described in section
668 9.3 in the RFC.
669
670 HNA
671
672 Fixed HNA route calculations for IPv6. I forgot to upgrade this in 0.3.2
673
674 OPTIONS
675
676 -hnaint and -midint command line optionas added to set the interval
677 of HNA and MID generation.
678
679 FORWARDING
680
681 As an optimization messages have not been forwarded on the recieved interface
682 if this is registered as a non-WLAN interface. This causes problems for
683 people using ethernet-to-WLAN adapters. This optimalization is now turned
684 off by default. It can be activated using the -nofwlan option.
685
686 BUGS
687
688 THERE ARE SOME NASTY BUGS IN 0.3.2!
689 Fixed a bug that caused 2 hop neighbors not to time out.
690 Fixed a bug that caused a 1 hop neighbor timeout not to recalculate
691 the routing table.
692 Fixed a small memleak in the MID set
693 Fixed some smaller bugs.
694
695 IPv6 functioning is not well tested in this release.
696
697 0.3.2 ---------------------------------------------------------------------
698
699 HNA
700
701 Updated HNA to be RFC compliant. This means that all recieved HNA tuples
702 are registered and only the subset of uniqe entries(net/netmask) with
703 the smallest hocount is inserted into the routing table.
704
705 Config file
706
707 User can specify configfile name using the -f switch.
708
709 Bugs
710
711 Fixed a link-sensing bug that caused problems when using MID nodes.
712
713 0.3.1 ---------------------------------------------------------------------
714
715 MPR calculation
716
717 MPR calculation is now based on the willingness announced by nodes.
718
719 Neighbor set
720
721 The neighbor set does not have timeouts on entries any more. Creation
722 and deletion af neighbor entries is done from the link-set as suggested
723 in the RFC.
724
725 Cleanups
726
727 Gotten rid of a lot of code that became more or less obsolete due to
728 all the changes introduced in 0.3.0.
729
730 Bugs
731
732 Fixed a nasty bug concerning the sequence numbering of TC packets.
733 Fixed some bugs regarding MPR calculation - and probably introduced 
734 a whole new species when implementing the willingness-based calculation ;-)
735
736
737 0.3.0 ---------------------------------------------------------------------
738
739 Due to the extensive amount of updates this release is versioned 0.3.0
740
741 Duplicate table and forwarding
742
743 The duplicate table functionallity is totally rewritten in 100% RFC
744 compliance. The forward algorithm specified in the RFC is implmented
745 this meant rewriting much of the packet processing code. The daemon
746 also forwards unknown packettypes now.
747
748 Link sensing and neighbor processing
749
750 Link sensing and neighbor processing was done in the same operation in the
751 old code. Link sensing is now a mechanism of its own which is 100% RFC
752 compliant. Neighbor processing and HELLO generation has been partly 
753 rewritten to be RFC compliant. Neighbors are now registered as either
754 SYN or NOT_SYM. The NOT_NEIGH, SYM_NEIGH and MPR_NEIGH values are only
755 used when building HELLO messages. Links are in one of the following states:
756 UNSPEC_LINK, ASYM_LINK or SYM_LINK.
757 HELLO messages now advertise link status of neighbors on the interface
758 the message is transmitted.
759
760 Willingness
761
762 A node now dynamically calculates willingness based on powersource and
763 possibly battery power. If the node is AC powered it announces a willingness
764 of 6. If batterypowered the willingness is calculated as:
765 P / 26
766 Where P is percentage of power left.
767
768 Configuration file
769
770 The daemon now tries to read its configuration from the file /etc/uolsrd.conf
771 A "standard" configuration file is installed when doing 'make install'.
772 This file should be edited to fit your needs.
773 Command-line options can still be used to override the configuration form
774 the file(ore if no config file is present).
775 The -f switch can also be used to specify a configuration file.
776
777 Willingness
778
779 If AdvancedPowerManagemant(APM) is supported on your system the willingness
780 of the node is dynamically calculated based upon the powerstatus of the node.
781 MPR calculation based upon willingness is not done as of yet.
782
783 TC ANSN
784
785 A bugs in the TC processing fixed.
786
787 HNA
788
789 Some serious HNA bugs fixed. These bugs caused a node to always choos the 
790 gateway with the larges hopcout :) More seriousley - a bug caused looping
791 of HNA messages in certain scenarios.
792
793 Package sequence numbers
794
795 These were added. Not much use as of now - but they're there(as specified 
796 in the RFC).
797
798 Broadcast address
799
800 Users can now specify the broadcast address to use. Usefull if one wishes to
801 use the 255.255.255.255 broadcast.
802
803
804
805 0.2.5 ---------------------------------------------------------------------
806
807 Htime and Vtime
808
809 Htime and Vtime processing and handeling added. Holding times used to be 
810 a static value for all nodes. Now every node can signal its vlidity time
811 to others.
812 To achieve this mantissa/exponent calculation functionality was added.
813 Messages now include Vtime(and Htime in HELLO) values in mantissa/exponent
814 format instead of just zero. These values are as stated above, used as holding
815 time for nodes.
816 the GUI should be upgraded as well...
817
818 Jitter
819
820 The use of jitter in message generation intervals vere fixed.
821
822
823 0.2.4 ---------------------------------------------------------------------
824
825 Seqno bugs
826
827 Some bugs concerning sequence numbers in HELLO and MID message handling 
828 was fixed. Newly registered nodes in the neighbor and MID sets were
829 initialized with a seqno of 0. When using a "wraparound" sequencenumber
830 check(as defined in olsr_protocol.h) this can produce errors if a new
831 node joins a network where existing nodes has seqnos >0x00FF.
832
833 IPv6 related bugs
834
835 Some checks and copying of node addresses where done using sizeof(u_olsr32_t)
836 which is 32 bits. This caused only the 32 firs bits of IPv6 addresses to
837 be copied and checked.