1 This file states changes as of version 0.2.4:
3 0.4.6 ---------------------------------------------------------------------
7 Read the README-WIN32.txt file!
9 DYNAMIC NETWORK INTERFACE UPDATES
11 Network interfaces can now be updated and removed/added at
12 runtime. Olsrd will check all interfaces specified in the config
13 file or on the command-line, every 5 seconds. If updates
14 occure, olsrd will register this and update the necessary data.
15 If interfaces are removed or added, olsrd will detect this
16 and configure the interfaces. If an interface is removed
17 olsrd will continue to check the interface, so if say, a PCMCIA
18 card is removed and later on reinserted(and given the same name),
19 olsrd will detect this and start running on it again.
21 Note that olsrd will now run even if no interfaces are detected.
23 ROUTE CALCULATION UPDATE
25 All 1 hop neighbor addresses that are not directly reachable trough
26 a symmetric link in the link set will now be added with a GW in the
27 routing table. this GW will be an interface address from a registered
28 symmetric link to the neighbor.
32 Alias addresses are now registered in the link set processing
33 if available. This is not to pretty(since the vtime has to
34 be a mere guess) but it gives faster initial route updates.
35 If a HELLO is received(at initial registration) from an IP
36 that is not the same as the one set as main address in the
37 received HELLO header, then the IP from which the HELLO was
38 received will be registered as an alias of the main address
39 set in the HELLO header. The default vtime is set to 15 secs.
43 All OS dependent interface configuration code is now located in
44 OS/ifnet.c(that would be linux/ifnet.c if using GNU/Linux).
45 The functions are available trough the headerfile src/ifnet.h
49 - Some timer issues fixed
50 - Got rid of the global socket descriptors
51 - Updated indexing of network interfaces
52 - Introduced a global socket to use for ioctl calls(ioctl_s)
53 - Removed upper limit for interfaces to use
54 - Point-to-point interfaces are now allowed
55 - The main select(2) loop now uses a timeout
56 - A small bugfix in the select fd-set update code
57 - Some bugfixes in the configuration file parsing
58 - stdout/stderr are now set to not be buffered
59 - A bugfix in the MID generation regarding seq. numbering
63 A new set of functions that are called whenever a change in the
64 interface configuration(update, addittion, removal) is made is
66 These functions are added and removed very much like the ptf
67 functions. Available trough the functions add_ifchgf and del_ifchgf.
69 OBS OBS OBS!!! PLUGIN DEVELOPERS READ THIS!!!!
71 The interface struct(declared in interfaces.h) has changed.
72 Plugin developers must update plugins that uses the interface
75 The headerfile olsr_plugin_io.h which contains the plugin interface
76 commands now contains a revision list where all changes are
80 0.4.5 ---------------------------------------------------------------------
84 A plugin that generates and checks message signatures is added.
87 PLUGIN: TOPOLOGY GRAPH
89 A plugin that generates output of the topology in the dot format
90 is added. See lib/dot_draw
94 Some optimizations done that should cause fewer route recalculations.
98 Some bugs reported by Takafumi Tanaka fixed.
100 RESTORATION OF NETWORK SETTINGS
102 Network settings like disabling of ICMP redirects and spoof filter, are
103 now restored at exit by olsrd.
107 Nodes would in certain scenarios retransmit messages originating for
108 themselves. This was a RFC incompliance. Reported by Ingmar Baumgart.
112 No longer setting the HELLO interval of non-wlan interfaces as a multiplier
113 of the wlan interval. The interval is set seperatly now.
114 Due to this there are some updates in the configfile imperatives.
118 Some new macros introduced for table insertion and removal and IP
119 copying and comparision.
123 IPv6 bugfixes in the GUI.
126 0.4.4 ---------------------------------------------------------------------
130 Routes are no longer added via neighbors declaring a willingness
133 LINK SENSING AND ROUTE CALCULATION
135 Link sensing and route calculation has been updated to handle
136 multiple links between hosts in a sane way.
140 IP spoof filtering is disabled on the interfaces which olsrd runs.
141 These settings are not restored!
145 ICMP redirect message generation is disabled on the interfaces
147 These settings are not restored!
149 CONFIGFILE OPTIONS FOR MID AND HNA ADDED
151 Options to set the MID and HNA emission intervals and
152 validitytime in the configfile added.
156 Option to set what IPv6 address type(scope) to use in the
157 configfile added. It can be set to either global or site-local.
161 Options to set site-local and global multicast addresses
162 in the configfile added.
164 EMISSION INTERVAL FUNCTION
166 Functions to set emission intervals at runtime added.
168 LINK LAYER NOTIFICATIONS
170 If started with the -llinfo switch olsrd will collect and display
171 link-layer information on neighbors. This is no longer limited to
172 one interface. But no action is taken based on this info - and
173 there is a upper limit of 8 neighbors from which this info can
174 be collected pr. interface. This limitation is inherited from the
175 WLAN drivers and is not something imposed by the olsrd code!
177 IPv6 HNA MESSAGE FORMAT
179 IPv6 HNA messages now contains 128-bit netmask instead of prefix.
183 Added "packet transform functions" which allow plugins to alter all
184 outgoing OLSR traffic.
188 Moved most headers out of OS dependent directories. The tunneling
189 and link-layer notification interface is not yet seperated from
190 the /linux directory.
194 A manpage(olsrd(8)) describing olsrd has been created. It is installed
195 when using 'make install'.
198 0.4.3 ---------------------------------------------------------------------
202 Olsrd now supports runtime-loadable plugins! A couple of example plugins
203 are located in the lib/ directory. Read the README files in the various
204 plugin directories for more info. A directive to load plugins have been
205 added to the configfile as well.
206 Documentation of the plugin interface can be fount at http://www.olsr.org.
208 The plugin interface is designed to be extendable. But it should _always_
209 be backwards compatible with the interface used in this release!
211 LINK-LAYER NOTIFICATION
213 Some preliminary link-layer notification code has been added. Link quality
214 can be written to stdout if olsrd is started with the -llinfo switch.
215 No action is currently taken based on this info. And info will only
216 be retreived from the interface named "eth1".
217 This code is not usable for users as of yet!
221 Neighbors with willingness set to WILL_ALWAYS is now always added. The
222 MPR selection is optimized as described in RFC3626 section 8.3.1
227 There was a couple of bugs in the MPR selection code. All fixed.
231 Users could not run olsrd on multiple inerface using the Linux 2.6 kernel
232 series. This is now fixed.
236 One small bug in link hysteresis initialization and one in HNA route
239 MESSAGE-SEQUENCENUMBER INCOMPLIANCE
241 Message-seqnos was implementaed on a pr. messagetype and pr. interface
242 basis. This is not RFC3626 compliant and has been updates. All messages
243 and interfaces now uses a global seuencenumber.
245 RANDOM SEQUENCENUMBERS
247 Sequencenumbers are now initialized using a random value.
251 Fixes for running olsrd in daemon mode(debug 0).
255 Optimizations based on profiling implemented.
259 Message size is checked for every massege before passing it to the
260 appropriate message persing function. If the size is bigger than the
261 remaining size of the olsr packet then the message is discarded.
265 Some minor modifications done to the gui.
269 Lots of changes in handling of registration and unregistration of
270 scheduler, socketparser, parser and local hna set.
271 Some restructuring and movement of functions.
274 0.4.2 ---------------------------------------------------------------------
278 0.4.1 ---------------------------------------------------------------------
282 0.4.0 ---------------------------------------------------------------------
286 Link hysteresis as described in the RFC added.
290 TC redundancy as described in the RFC added
294 MPR redundancy as described in the RFC added
298 The scheduler has been rewritten to register scheduled
299 events(function pointers) dynamically.
303 The parser has been rewritten to register parse functions
304 on a pr. messagetype dynamically
308 A wrapper for the malloc(3) syscal has been introduced.
309 olsr_malloc(size_t, const char *) should ALWAYS be used.
313 Lots of restructuring in headerfiles.
314 Linux spesific code moved to subdirectory linux/
315 FreeBSD code to be put in freebsd/
316 LOTS of code restructured due to the rexrite of the scheduler
321 Optimizing the MPR set as suggested in the RFC section
326 Some bugs in MPR selection fixed.
329 0.3.8 ---------------------------------------------------------------------
333 HNA code completeley rewritten!
334 The old code was really bad! Now it is much cleaner implemented and
336 One- and two-hop neighbor list structures rewritten. They now use
337 the same hashed double-linked lists as the rest of the information
342 Some code restructuing which resulted in the new files: timer.h,
343 mantissa.c, mantissa.h, hashing.c, hashing.h, linux/net.c
344 linux/net.h, linux/kernel_routes.c, linux/kernel_routes.h and some
349 The bug causing errormessages on exit is fixed.
350 The bug that caused initial HNA routes in the GUI to display a hopcount
352 IPv6 HNA netmasks were all added as /128. It's fixed now.
356 Turns out sitelocal address had to be preferred to avoid IPv6 header
357 messing up link-sensing. Bug fixed
360 0.3.7 ---------------------------------------------------------------------
364 The entire TC set and MPR selector set code rewritten. Hashing and
365 double linked lists added to the MID code.
366 Lots of HNA code has been rewriteen as well.
370 When a node lost connectivity to a HNA GW all HNA entries to that gw
371 was deleted. This has been fixed - and HNA entries only gets deleted
373 Other HNA bugs have been fixed as well. But the whole HNA implementation
378 There was a bug that caused holdingtime not to be properly recalculated
379 when using non-default emission intervals.
381 Forwarding and symmetric neighbors
383 Seems I had misread the RFC on what a 1-hop symmetric neighbor is.
384 Now the link-set is checked when a check for a symmetric neighbor
385 is done. Not the 1 hop neighbor set as it used to be. This way
386 the hack when receiving MID messages could be removed.
390 Global addresses are now preferred. Sitelocal addresses are only used
391 if no global adresses are found. There have been problems where
392 the address set in the IP header of IPv6 packets do not match the
393 address chosen by OLSR.
397 The GUI is finally updated! It can now handle piggybacked messages
398 and link sensing HELLO message format.
401 0.3.6 ---------------------------------------------------------------------
403 HNA support using IPv6
405 HNA now works using IPv6 as well! Just add the netwrok address and
406 prefix in the HNA6 section in the configfile. The IPv6 HNA packets differ
407 some from the IPv4 as they don't send the netmask but the prefix.
410 NEW FILENAME FOR THE BINARY AND CONFIG FILE
412 They are now called olsrd and olsrd.conf. I figured I'd use the olsrd
413 name before somebody else started using it ;-)
418 New options: DEBUG, HNA6 and IPC-CONNECT added to config file.
423 A printf-wrapper hans been introduced - debug level output handeling
424 is much more uniform now.
425 The daemon sould run fine in detatched mode now(DEBUG 0)
429 The GUI front-end can now connect and dissconnect at any time while the
430 daemon is running, if started using the -ipc switch or with IPC set to
431 'yes' in the configfile.
436 A small HNA bug fixed.
439 0.3.5 ---------------------------------------------------------------------
443 Forwarding jitter added. Messages are piggibacked if they arrive(and are to
444 be forwarded) while there is data to be forwarded buffered.
445 Added some bugfixes to support parsing of piggybacked messages as well.
449 Fixed route calculation so that 2 hop neighbors are added. This smooths
450 changes from 1 hop to 2 hop neighbor out. The old way one had to wait for
451 a TC before the 2 hop neighbors were added.
455 All neighbors recieved in HELLO messages are added to the two hop
456 neighborhood. This helps smoothing out the 1-to-2 hop transition as well.
460 MID calculation had to be updated due to the registering of two hop neighbors
461 that are already one hop neighbors. They sould not be considered when calculatin
466 Deletion of possible one hop neighbors registered on non main-addresses when
467 first registering MID info from a node removed. This can not occure due
468 to the fact that registering of neighbor nodes are done on main addresses
470 Option to not forward messages on wired links on which they arrived removed.
471 This is no longer usable to any degree when adding support for piggybacking
472 of forwarded messages is to be implemented.
476 Some unused parameters and commandline options were removed.
480 0.3.3 ---------------------------------------------------------------------
484 Added sending of empty TC messages if all MPR selectors are removed. Empty
485 TC messages are sent for a TC_HOLD_TIME period as described in section
490 Fixed HNA route calculations for IPv6. I forgot to upgrade this in 0.3.2
494 -hnaint and -midint command line optionas added to set the interval
495 of HNA and MID generation.
499 As an optimization messages have not been forwarded on the recieved interface
500 if this is registered as a non-WLAN interface. This causes problems for
501 people using ethernet-to-WLAN adapters. This optimalization is now turned
502 off by default. It can be activated using the -nofwlan option.
506 THERE ARE SOME NASTY BUGS IN 0.3.2!
507 Fixed a bug that caused 2 hop neighbors not to time out.
508 Fixed a bug that caused a 1 hop neighbor timeout not to recalculate
510 Fixed a small memleak in the MID set
511 Fixed some smaller bugs.
513 IPv6 functioning is not well tested in this release.
515 0.3.2 ---------------------------------------------------------------------
519 Updated HNA to be RFC compliant. This means that all recieved HNA tuples
520 are registered and only the subset of uniqe entries(net/netmask) with
521 the smallest hocount is inserted into the routing table.
525 User can specify configfile name using the -f switch.
529 Fixed a link-sensing bug that caused problems when using MID nodes.
531 0.3.1 ---------------------------------------------------------------------
535 MPR calculation is now based on the willingness announced by nodes.
539 The neighbor set does not have timeouts on entries any more. Creation
540 and deletion af neighbor entries is done from the link-set as suggested
545 Gotten rid of a lot of code that became more or less obsolete due to
546 all the changes introduced in 0.3.0.
550 Fixed a nasty bug concerning the sequence numbering of TC packets.
551 Fixed some bugs regarding MPR calculation - and probably introduced
552 a whole new species when implementing the willingness-based calculation ;-)
555 0.3.0 ---------------------------------------------------------------------
557 Due to the extensive amount of updates this release is versioned 0.3.0
559 Duplicate table and forwarding
561 The duplicate table functionallity is totally rewritten in 100% RFC
562 compliance. The forward algorithm specified in the RFC is implmented
563 this meant rewriting much of the packet processing code. The daemon
564 also forwards unknown packettypes now.
566 Link sensing and neighbor processing
568 Link sensing and neighbor processing was done in the same operation in the
569 old code. Link sensing is now a mechanism of its own which is 100% RFC
570 compliant. Neighbor processing and HELLO generation has been partly
571 rewritten to be RFC compliant. Neighbors are now registered as either
572 SYN or NOT_SYM. The NOT_NEIGH, SYM_NEIGH and MPR_NEIGH values are only
573 used when building HELLO messages. Links are in one of the following states:
574 UNSPEC_LINK, ASYM_LINK or SYM_LINK.
575 HELLO messages now advertise link status of neighbors on the interface
576 the message is transmitted.
580 A node now dynamically calculates willingness based on powersource and
581 possibly battery power. If the node is AC powered it announces a willingness
582 of 6. If batterypowered the willingness is calculated as:
584 Where P is percentage of power left.
588 The daemon now tries to read its configuration from the file /etc/uolsrd.conf
589 A "standard" configuration file is installed when doing 'make install'.
590 This file should be edited to fit your needs.
591 Command-line options can still be used to override the configuration form
592 the file(ore if no config file is present).
593 The -f switch can also be used to specify a configuration file.
597 If AdvancedPowerManagemant(APM) is supported on your system the willingness
598 of the node is dynamically calculated based upon the powerstatus of the node.
599 MPR calculation based upon willingness is not done as of yet.
603 A bugs in the TC processing fixed.
607 Some serious HNA bugs fixed. These bugs caused a node to always choos the
608 gateway with the larges hopcout :) More seriousley - a bug caused looping
609 of HNA messages in certain scenarios.
611 Package sequence numbers
613 These were added. Not much use as of now - but they're there(as specified
618 Users can now specify the broadcast address to use. Usefull if one wishes to
619 use the 255.255.255.255 broadcast.
623 0.2.5 ---------------------------------------------------------------------
627 Htime and Vtime processing and handeling added. Holding times used to be
628 a static value for all nodes. Now every node can signal its vlidity time
630 To achieve this mantissa/exponent calculation functionality was added.
631 Messages now include Vtime(and Htime in HELLO) values in mantissa/exponent
632 format instead of just zero. These values are as stated above, used as holding
634 the GUI should be upgraded as well...
638 The use of jitter in message generation intervals vere fixed.
641 0.2.4 ---------------------------------------------------------------------
645 Some bugs concerning sequence numbers in HELLO and MID message handling
646 was fixed. Newly registered nodes in the neighbor and MID sets were
647 initialized with a seqno of 0. When using a "wraparound" sequencenumber
648 check(as defined in olsr_protocol.h) this can produce errors if a new
649 node joins a network where existing nodes has seqnos >0x00FF.
653 Some checks and copying of node addresses where done using sizeof(u_olsr32_t)
654 which is 32 bits. This caused only the 32 firs bits of IPv6 addresses to
655 be copied and checked.