Fixup CHANGELOG file
[olsrd.git] / CHANGELOG
1 0.6.8.1 -------------------------------------------------------------------
2
3 Ferry Huberts (4):
4       pud: wireformat-java: improve java detection
5       release: stricter matching of release tags
6       autobuf: fix warning in Windows release builds
7       neighbors: signal link changes when deleting a neighbor
8
9 Henning Rogge (4):
10       Update version after release of v0.6.8
11       tc: properly initialise the path_costs field in a new tc
12       Handle interface broadcast/multicast address zero
13       Release v0.6.8.1
14
15 0.6.8 -------------------------------------------------------------------
16
17 Ferry Huberts (81):
18       linux: increase the netlink buffer size
19       linux: fix using tables >= 256
20       linux: fix type of af_family
21       linux: do not try to set routes with negative metric
22       linux: add 'flags' parameter to olsr_new_netlink_route function
23       linux: add 'scope' parameter to olsr_new_netlink_route function
24       linux: make it possible to add/remove blackhole routes
25       linux: export the olsr_new_netlink_route function
26       Update version after branch of v0.6.7
27       android: use the machine specific NDK instead of always the 32bit variant
28       Merge branch 'linux-routes.v1'
29       android: fix build on 32 bit platform (see 0295e11)
30       linux: olsr_if_isup: fix return code in error path
31       conf parser: fix a warning
32       Merge branch 'release-0.6.7'
33       linux: fix a typo
34       sgw: move add/remove of ifchange handler to better place
35       sgw: export multi_gateway_mode method
36       sgw: make sure gw->ipv6 is always set for a new gateway
37       sgw: cost calculation can now directly account for interface up/down
38          status
39       config parser: minor improvement for SmartGatewayEgressInterfaces
40       pud: fix strto* result checking for out-of-range situations
41       sgwdynspeed: fix strto* result checking for out-of-range situations
42       Merge branch 'release-0.6.7'
43       Merge branch 'release-0.6.7'
44       release: fix up the CHANGELOG
45       Merge branch 'release-0.6.7'
46       sgw: fix deserialize_gw_speed
47       txtinfo: fix formatting in ipc_print_sgw
48       sgw: move 'struct sgw_egress_if' type into a separate include file
49       sgw: store table & rule numbers in the sgw_egress_if structure
50       sgw: add egress file reader settings
51       sgw: add egress file reader
52       sgw: track the interface index of an egress interface
53       sgw: track the up status of an egress interface
54       sgw: use the smartgw_tunnel_monitor to track up/down of egress interfaces
55       sgw: introduce function to process multi-sgw changes
56       sgw: determine best exit link in doRoutesMultiGw
57       sgw: determine best overall link in doRoutesMultiGw
58       sgw: add SmartGatewayStatusFile setting
59       sgw: add the smart gateway status file writer
60       sgw: add reportNewGateway function
61       sgw: program best overall link routes
62       sgw: program best egress link route
63       sgw: program egress link routes
64       sgwdynspeed: only allow the plugin in single-sgw mode
65       sgw: fix default path costs for egress interfaces
66       sgw: initialise the egress interfaces earlier
67       sgw: lazily determine the sgw costs weights
68       sgw: show all sgw tunnels in the output file instead of only the active
69          one
70       sgw: reset cached egress file timestamp on file access errors
71       sgw: do not prematurely exit doRoutesMultiGw
72       Merge branch 'msgw'
73       sgw: do not make the egress types available only on linux
74       sgw: initialise the egress best routes differently
75       sgw: remove an unused variable
76       sgw: unshadow a variable
77       sgw: change the cached timestamp
78       build: make TOPDIR an absolute path
79       sgw: android has no getline(), implement it
80       android: bump the NDK compiler version
81       android: fixup regex makefile
82       sgw: fix android build
83       pud: duplicate android regex trick from nameservice
84       sgw: always clear egress settings when this egress file is not readable
85       Revert "sgw: always clear egress settings when this egress file is not
86          readable"
87       sgw: always clear egress settings when this egress file is not readable
88       sgw: refresh the advertised speed when the best overall link changes
89       sgw: when there is no best overall link advertise 0 bandwidth
90       sgw: only advertise egress speeds
91       sgw: refactor egress file change detection
92       sgw: uplink and downlink fields can be 9 chars wide in the output file
93       sgw: tune the status file for IPv4, making it a bit more compact
94       sgw: use MAX_SMARTGW_SPEED instead of hard-coding it
95       sgw: fix cost calculation for advertised speeds greater or equal than MAX
96       sgw: the costs are signed numbers
97       sgw: react to path cost changes on all active gateways
98       txtinfo: fix output of /sgw command
99       build: uberclean must also remove builddata.txt
100       build: add some pud targets
101       Rename 'struct interface' to 'struct interface_olsr'
102
103 Henning Rogge (6):
104       Update version after release of v0.6.7.1
105       Only use IPV6_TCLASS and IPV6_V6ONLY when defined
106       Merge branch 'master' of git://olsr.org/olsrd
107       Prevent memory leak when setting up new interface
108       Fix bug of former commit
109       Release v0.6.8
110
111 Nico Geyso (1):
112       dyn gw plugin - add PingCmd parameter
113
114 0.6.7.1 -------------------------------------------------------------------
115
116 Ferry Huberts (6):
117       android: use the machine specific NDK instead of always the 32bit variant
118       android: fix build on 32 bit platform (see 0295e11)
119       plugins: add a comment to clarify strange behaviour
120       txtinfo: duplicate code in branch
121       txtinfo: ensure null termination of string buffer
122       jsoninfo: fix indentation
123
124 Henning Rogge (2):
125       Update version after release of v0.6.7
126       Release v0.6.7.1
127
128 Nico Geyso (2):
129       jsoninfo: set_plugin_boolean stores into an int
130       txtinfo: set_plugin_boolean stores into an int
131
132 0.6.7 -------------------------------------------------------------------
133
134 Note: In this release the configuration files have been moved from /etc into
135       /etc/olsrd.
136
137 Note: In this release the pud plugin was upgraded to version 2.0.0.
138       This is because of a breaking change in its wire format. If you have
139       deployed the pud plugin on your mesh then you should update all nodes
140       to the new pud plugin at the same time since there is no interoperability
141       between the old version and the new version.
142
143 Alessio Caiazza (4):
144       Hotfix for very long http headers also for jsoninfo
145       Hotfix for very long http headers also for jsoninfo
146       jsoninfo: HTTP headers with CORS (if requested)
147       jsoninfo: HTTP headers with CORS (if requested)
148
149 Bernhard Marker (2):
150       added json plugin to openwrt build Makefile
151       json openwrt Makefile update
152
153 Charlie Root (1):
154       Small fixes to allow compilation with OpenBSD
155
156 David Dahlberg (4):
157       Adjusted OpenBSD installation paths
158       An rc.d file for OpenBSD
159       Remove linux-isms from Makefile
160       Install openbsd/olsrd.rcd to /etc/rc.d/olsrd.
161
162 Ferry Huberts (170):
163       release: use olsrd-version prefix for files in the tarballs
164       Update version after branch of v0.6.6
165       Remove mercurial ignore file; we use git
166       build: ignore builddata.c when hashing sources
167       Remove mercurial ignore file; we use git
168       build: ignore builddata.c when hashing sources
169       Revert "Update version after release of v0.6.5.3"
170       Merge branch 'release-0.6.5'
171       Merge branch 'release-0.6.6'
172       release: fix the list of generated files
173       release: update some comments
174       release: refactor the checkVersionIncrementing function
175       release: do not update the version on master when it's already higher
176       release: only report that master changed when it was actually changed
177       release: fix the list of generated files
178       release: update some comments
179       release: refactor the checkVersionIncrementing function
180       release: do not update the version on master when it's already higher
181       release: only report that master changed when it was actually changed
182       release: checkVersionIncrementing: optionally allow equal versions
183       release: also check against the Makefile version when branching
184       release: checkVersionIncrementing: optionally allow equal versions
185       release: also check against the Makefile version when branching
186       Merge branch 'release-0.6.4'
187       Merge branch 'release-0.6.5'
188       Merge branch 'release-0.6.6'
189       txtinfo: prevent buffer overflow
190       Merge branch 'release-0.6.6'
191       pud: wireformat-java: Makefile: also clean up the generated headers
192       pud: wireformat: java: rename Git-SHA1 manifest header to Git-SHA
193       pud: wireformat: java: also add a Git-Descriptor manifest header
194       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
195       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
196       quagga: add some parentheses
197       httpinfo: add smart gateway information tab
198       txtinfo: add sgw command
199       cfgfile: don't hard-code defaults in texts
200       txtinfo: mention the /sgw command in the README
201       Makefile: add cfgparser_install and cfgparser_clean targets
202       linux: add -rdynamic to linker options for debug builds
203       linux: fix 'add -rdynamic to linker options for debug builds'
204       build: really _ignore_ builddata.c when hashing sources
205       build: only print the md5 hash in hash_source.sh
206       Makefile: fix builddata when building from tarball
207       build: really _ignore_ builddata.c when hashing sources
208       build: only print the md5 hash in hash_source.sh
209       Makefile: fix builddata when building from tarball
210       build: only re-generate src/builddata.c when needed
211       cfgfile: no more magic numbers for RtTable* defaults
212       sgw: move cost calculation into it own unit
213       sgw: minor comment fixup
214       make: fixup bashisms in hash_source.sh
215       Move the configuration files into /etc/olsrd/
216       pud: install configuration files under ETCDIR
217       sgwdynspeed: install configuration files under ETCDIR
218       build: hash_source.sh: specify the mktemp template
219       pud: fix readIPAddress function
220       pud: fix readIPAddress function
221       httpinfo: center the header row of the smart gateway tables
222       Merge branch 'release-0.6.5'
223       Merge branch 'release-0.6.6'
224       Fix #34: Description of "timeout" parameter in "nameservice" plugin...
225       pud: remove getNodeId, rename getNodeIdWithLength to getNodeId
226       pud: firm up setupNodeIdBinaryAndValidate
227       pud: merge nodeIdType and nodeId parameters into nodeId parameter
228       pud: remove some strlen's in nettools
229       pud: remove a strlen in the DNS name handling of the wire format.
230       pud: make wireformat constants unsigned
231       pud: clarify the URN number
232       pud: add MIP OID nodeId type
233       pud: add an assert to silence a Coverity false positive
234       pud: specify conversion base in readULL
235       pud: don't copy memory we're not allowed to access
236       pud: specify where to store the result in
237          intSetupNodeIdBinaryDoubleLongLong
238       pud: fix intSetupNodeIdBinaryDoubleLongLong for short values
239       pud: add UUID nodeId type
240       httpinfo: rename a function
241       pud: make sure to only use accessor functions in the 'present' nmea field
242       httpinfo: also show the present field on the nmea info
243       Merge branch 'release-0.6.6'
244       pud: fix java detection in the wireformat java bindings (again)
245       pud: fix java detection in the wireformat java bindings (again)
246       Merge branch 'release-0.6.5'
247       Merge branch 'release-0.6.6'
248       pud: do the same fix as in the previous commit, now for i386
249       pud: do the same fix as in the previous commit, now for i386
250       Merge branch 'release-0.6.5'
251       Merge branch 'release-0.6.6'
252       Make sure to save/restore errno in signal handlers
253       Make sure to save/restore errno in signal handlers
254       Merge branch 'release-0.6.5'
255       Merge branch 'release-0.6.6'
256       main: olsr_create_lock_file: fix return value check on 'open' call
257       main: add some extra braces
258       main: olsr_create_lock_file: fix return value check on 'open' call
259       pud: use the nmea present field in the wireformat
260       pud: fix readIPAddress function
261       pud: fix readIPAddress function
262       Merge branch 'release-0.6.5'
263       Merge branch 'release-0.6.6'
264       tok: improve the nmea_calc_crc function a bit
265       tok: improve the nmea_calc_crc function a bit
266       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
267       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
268       win32: accomodate old and new mingw setups
269       mingw: fix Ubuntu 13.10 / Debian Wheezy mingw mess
270       p2pd: add UseTTLDecrement configuration setting
271       httpinfo: also show the path costs in the SmartGateway table
272       txtinfo: also show the path costs in the SmartGateway table
273       gw: make SmartGatewayDividerEtx a 32 bit number
274       doc: add a gnuplot file to show the smart gateway cost calculation
275       Fix some eclipse warnings
276       p2pd: recompute the IPv4 header checksum after adjusting the TTL
277       sgwdynspeed: ignore unknown options
278       sgw: adjust policy routing script a bit
279       sgw: rename a variable in parsing of sgw_egress_if
280       sgw: preserve order of declared SmartGatewayEgressInterfaces
281       sgwdynspeed: avoid spamming the log with 'unknown option' messages
282       sgw: fix the policy routing script
283       sgwdynspeed: allow string values and empty values in the speed file
284       sgwdynspeed: fgets includes EOLs in the read string, strip them off
285       sgwdynspeed: do not go outside of the string when stripping EOLs
286       sgwdynspeed: rename 2 variables
287       sgwdynspeed: ignore everything we don't understand when reading the file
288       sgwdynspeed: make the EOL stripping much faster
289       sgwdynspeed: remove some dead code
290       gw: remove commands in comments concerning the policy routing script
291       gw: fix the 'ip' delete argument in the policy routing script
292       gw: simplify overlap checking code
293       gw: Add endif comments
294       gw: fix gateway takedown calculation
295       gw: fix a typo
296       gw: move path_cost into the gateway struct, ensure it's always up-to-date
297       gw: add SmartGatewayMarkOffsetServerTunnel configuration parameter
298       gw: fix null pointer dereferences in cost calculation
299       gw: fix a minor copy/paste typo
300       gw: when a node advertises maximum bandwidth then only consider path costs
301       README-Olsr-Extensions: Fix some typos
302       pud: update  nmealib samples Makefile
303       sgw: rework policy rules setup
304       sgwdynspeed: rename a function parameter to avoid a compiler warning
305       common: add an extra check in autobuf_enlarge to avoid a compiler warning
306       pud: update nmealib to 2.0.0
307       pud: nmealib: Fix a typo in Tobias's surname
308       txtinfo: make the sgw output better machine parseable
309       pud: nmealib: include latest fixes
310       pud: nmealib: fix isInvalidNMEACharacter function
311       p2pd: fix recomputeIPv4HeaderChecksum function
312       Revert "Use strscpy instead of strcpy"
313       pud: nmealib: fix return value of nmea_parser_init
314       pud: disable distribution of position updates over OLSR when olsrTtl is 0
315       Fix strange coding in the 'long headers' fix
316       Fix strange coding in the 'long headers' fix
317       httpinfo: the position timestamp month is zero based
318       Merge tag 'v0.6.5.6'
319       Merge tag 'v0.6.6.2'
320       Revert "Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu"
321       pud: nmealib: NMEA String Length Override Support
322       Fix a signed/unsigned warning
323       gw: change the costs type to signed 64bits
324       build: gui: do not overwrite the LDFLAGS but append to it
325       build: add address santizer, compile with SANITIZE_ADDRESS=1
326       p2pd: fir compile warning, initialise ipHeader
327       gui: fix 'warning: multiple common of ...' warnings
328       conf: ensure the egress interface names have a valid length
329       README: improve the smart gateway text a bit
330       sgw: multi-sgw mode is only supported on IPv4
331       CHANGELOG: add a note about the configuration files
332       Merge remote-tracking branch 'olsr/openbsd'
333       Branch v0.6.7
334
335 Hans-Christoph Steiner (3):
336       purge ancient debian/ folder, people should use the current files
337       add instructions for building Debian package from canonical sources
338       clarify instructions for http:// downloading of debian/ folder
339
340 Henning Rogge (32):
341       Fix multicast join for IPv6
342       Release v0.6.5.3
343       Update version after release of v0.6.5.3
344       Update version after release of v0.6.5.3
345       Release v0.6.5.4
346       Update version after release of v0.6.5.4
347       Fix segfault in cfgparser standalone executable
348       Fix build break for MinGW compilation on Fedora 19.
349       Fix build break for MinGW compilation on Fedora 19.
350       Release v0.6.5.5
351       Update version after release of v0.6.5.5
352       Ignore IFF_RUNNING when checking if an interface is up or down.
353       use inet_pton instead of inet_aton
354       win32: do not add -Wcast-qual to compiler warning flags
355       Fix processing error for fragmented hellos
356       Fix some spelling mistakes
357       Merge branch 'master' of http://olsr.org/git/olsrd
358       Fix processing error for fragmented hellos
359       Fix some spelling mistakes
360       Try to delete and retry for BSD ipv4 too
361       Use strscpy instead of strcpy
362       Smooth LQ calculation if link suddenly breaks.
363       Clean before compile when using Openwrt olsrd-stable-git makefile
364       Fix copypaste error
365       Hotfix for very long http headers
366       Fix stupid mistake, don't know why gcc didn't complained locally
367       Hotfix for much too long http headers
368       Release v0.6.5.6
369       Make link debug output source a bit more readable
370       Add LQ/NLQ/ETX to neighbor table debug output
371       Add boolean ipv6only parameter to txtinfo and jsoninfo
372       Release v0.6.7
373
374 Manuel Munz (1):
375       Fix jsoninfo again after a regression which was introduced with
376
377 Markus Kittenberger (1):
378       fix: TXTINFO_ALLOW_LOCALHOST - add missing ntohl()
379
380 Patrick Grimm (2):
381       jsoninfo: only listen on IPv6 when running under IPv6
382       txtinfo: only listen on IPv6 when running under IPv6
383
384 Ronald in 't Velt (2):
385       Fix setsockopt for setting Traffic Class in IPv6
386       Fix setsockopt for setting Traffic Class in IPv6
387
388 Saverio Proto (2):
389       txtinfo: update README file
390       Missing patch of header files for "Add boolean ipv6only parameter to
391          txtinfo and jsoninfo"
392
393 Scott Kidder (2):
394       jsoninfo: ensure output is wrapped in curly braces.
395       jsoninfo: ensure output is wrapped in curly braces.
396
397 Teco Boot (2):
398       Added LINUX_NL80211 readme file
399       Support for FIB metric configuration, other than 2
400
401 Yury Popov (1):
402       Fix for win32 compiling with i686-w64-mingw32-gcc on ubuntu
403
404 0.6.6.2 -------------------------------------------------------------------
405
406 Alessio Caiazza (2):
407       Hotfix for very long http headers also for jsoninfo
408       jsoninfo: HTTP headers with CORS (if requested)
409
410 Ferry Huberts (8):
411       pud: fix java detection in the wireformat java bindings (again)
412       pud: do the same fix as in the previous commit, now for i386
413       Make sure to save/restore errno in signal handlers
414       main: olsr_create_lock_file: fix return value check on 'open' call
415       pud: fix readIPAddress function
416       tok: improve the nmea_calc_crc function a bit
417       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
418       Fix strange coding in the 'long headers' fix
419
420 Henning Rogge (5):
421       Update version after release of v0.6.6.1
422       Fix processing error for fragmented hellos
423       Fix some spelling mistakes
424       Hotfix for much too long http headers
425       Release v0.6.6.2
426
427 0.6.6.1 -------------------------------------------------------------------
428
429 Henning Rogge (2):
430       Update version after release of v0.6.6
431       Release v0.6.6.1
432
433 Manuel Munz (1):
434       Fix jsoninfo again after a regression which was introduced with
435
436 0.6.6 -------------------------------------------------------------------
437
438 Bastian Bittorf (3):
439       [hotfix] plugin: httpinfo: in case of an unrecoverable error ("could not
440          initialize HTTP socket") exit for returnvalue != 0
441       plugin: dot_draw: readme: make it clear, that it only opens an
442          IPv4-socket, so a 'telnet ::1 2004' is not possible
443       plugin: dot_draw: readme: replaced a b0rken link
444
445 Ferry Huberts (146):
446       Update version after branch of v0.6.5
447       gateway: store current gateway(s) in a struct
448       gateway: lazily allocate the current gateway structs
449       gateway: add path_cost to 'set gateway' interface
450       gateway: add interface to get the gateway costs
451       gateway: simplify by using the new costs interface
452       gateway: add gateway_list.{c,h}
453       gateway: keep track of the active gateways in a list
454       Merge branch 'release-0.6.5'
455       pud: java make target is dependent on library make target
456       Merge branch 'release-0.6.5'
457       Merge branch 'release-0.6.5'
458       json_info: only output smart gateway info on Linux
459       kernel_route: olsr_os_inetgw_tunnel_route can now take the table
460       gateway: let the gateway code determine the tunnel name
461       gateway: remove the worst gateway before adding new one
462       gateway: add SmartGatewayUseCount configuration parameter
463       gateway: use SmartGatewayUseCount setting the the gateway lists
464       gateway: add SmartGatewayEgressInterfaces configuration parameter
465       gateway: add SmartGatewayMarkOffset{Egress,Tunnels} configuration
466          parameters
467       gateway: add SmartGatewayPolicyRoutingScript configuration parameter
468       gateway: initialise a set of fixed tunnel names in/for multi-gateway mode
469       gateway: initialise the egress interface names in/for multi-gateway mode
470       gateway: use fixed tunnel names in/for multi-gateway mode
471       gateway: setup and clear table specific default routes in/for
472          multi-gateway mode
473       gateway: setup/cleanup multi-gateway mode during startup/shutdown of olsrd
474       gateway: introduce and use MULTI_GW_MODE define
475       gateway: enable multi-gateway mode
476       gateway: convert some defines into inline functions
477       kernel_route: olsr_os_inetgw_tunnel_route now needs the table explicitly
478       Merge branch 'multigw'
479       gateway: remove 2 superfluous asserts
480       gateway: add an assert to prevent an 'unused' warning
481       gateway: also adjust the IPv6 gateway list in olsr_update_gateway_entry
482       gateway: fix policy script permissions checking
483       gateway: the gateway policy script really is a bash script
484       gateway: minor indentation fixes in the gateway script
485       gateway: fix copy/paste mistake in setting up the egress rules
486       gateway: remove policy rules before adding them
487       gateway: ignore errors in remove-before-add rule removals
488       Revert "linux: name is required to be non-null in
489          olsr_os_cleanup_iptunnel"
490       gateway: do not show (bogus) errors
491       gateway: cleanup the server tunnel later
492       cfgparser: add SmartGatewayAlwaysRemoveServerTunnel configuration
493          parameter
494       gateway: use SmartGatewayAlwaysRemoveServerTunnel configuration parameter
495       gateway: fix a revert problem
496       gateway: use tnl_(4|6) tunnel names instead of tnl(4|6)_
497       gateway: properly set the egress interface names
498       json_info: do not loop forever on smart gateway egress interfaces
499       pud: the best uplink gateway is the same as the current (smart) gateway
500       pud: there is no hard dependency on smart gateway
501       pud: only forward downlinked messages when the smart gateway system is
502          enabled
503       pud: update documentation about smart gateway changes
504       gateway: fix 2 small typos in a comment
505       Revert "pud: the best uplink gateway is the same as the current (smart)
506          gateway"
507       pud: minor update resulting from the previous revert
508       pud: minor update to getBestUplinkGateway
509       gateway: minor improvement to get_unused_iptunnel_name
510       gateway: update some comments
511       gateway: remove 2 unneeded asserts
512       gateway: use standard macro to loop over the gateway tree in
513          olsr_cleanup_gateways
514       gateway: fix 'eligible' conditions in gw_default_choose_gateway
515       gateway: minor speed improvement in gw_default_choose_gateway
516       android: fix the path of the tunnel node in the /dev tree
517       pud: use the proper __ANDROID__ define
518       gateway: allow advertisement of zero bandwidth
519       gateway: add some comments
520       gateway: also set (update) the gateway when costs have changed
521       gateway: find_interfaceName only works in multi-gateway mode
522       gateway: simplify gw_default_calc_threshold
523       gateway: improve comments of gw_default_weigh_costs a bit
524       gateway: rename some variables to make it more readable
525       gateway: fix stable count dampening in gw_default_timer
526       gateway: do not use bitwise operators for logic conditions
527       gateway: reverse semantics of two variables
528       gateway: always select a new gateway when threshold != 0
529       main: add -pidfile command line option
530       main: fix pidfile compilation on windows
531       Merge branch 'release-0.6.5'
532       make: enable 32/64 bit cross compilation
533       pud: pull in nmealib v1.0.4
534       gateway: remove some 'unused' code from sgw script
535       make: fix typos in 'enable 32/64 bit cross compilation' commit
536       pud: enable 32/64 bit cross compilation for the java build
537       make: ifdef fixups
538       Merge branch 'release-0.6.5'
539       Merge branch 'release-0.6.5'
540       Merge branch 'release-0.6.5'
541       pud: detect the java include directory
542       dyn_gw: remove bogus include
543       make: fix a type in the Linux SUBDIRS assignment
544       make: add dyn_gw, mdns and p2pd to the Android SUBDIRS
545       pud: update nmealib 32/64 cross compilation
546       Revert "pud: update nmealib 32/64 cross compilation"
547       main: fix 2 minor warnings for win64 build on debian squeeze
548       make: only install sgw related files when sgw is supported
549       mdns: fix container_of pointer arith
550       mdns: don't use non-standard ushot type
551       mdns: fix three alignment warnings
552       mdns: supported on Android
553       p2pd: supported on Android
554       make: ensure win32 install respects DESTDIR
555       Merge branch 'release-0.6.5'
556       gateway: work around kernel IPIP module initialisation bug
557       gateway: fix overlap in success/fail IPIP tunnel init
558       doc: make the documentation generation commands a bit more verbose
559       pud: detect the java include directory
560       pud: better detection of java jdk
561       pud: better detection of java jdk
562       gateway: work around kernel IPIP module initialisation bug
563       Merge branch 'release-0.6.5'
564       PUD: nmealib: fix parsing of date in GPRMC
565       pud: nmealib: fixup the previous commit
566       main: use /dev/urandom by default
567       main: use /dev/urandom by default
568       pud: set local loopback for multicast tx
569       pud: set local loopback for multicast tx
570       Merge branch 'release-0.6.5'
571       arprefresh: fix some spelling
572       arprefresh: document the BPF program to make it readable
573       arprefresh: use the ARRAYSIZE macro
574       arprefresh: remove a comment
575       arprefresh: do not process IPv6 packets when in IPv4 mode
576       arprefresh: add a note about VLANs and IPv6
577       remove pthread usage as much as possible
578       Branch v0.6.6
579       Remove mercurial ignore file; we use git
580       build: ignore builddata.c when hashing sources
581       build: move build data into its own include file
582       gateway: always deal with 64bit scaled path costs
583       gateway: introduce and use removeGatewayFromList function
584       gateway: add SmartGatewayTakeDownPercentage configuration parameter
585       gateway: proactively take down 'expensive' gateways
586       release: fix the list of generated files
587       release: update some comments
588       release: refactor the checkVersionIncrementing function
589       release: do not update the version on master when it's already higher
590       release: only report that master changed when it was actually changed
591       release: checkVersionIncrementing: optionally allow equal versions
592       release: also check against the Makefile version when branching
593       txtinfo: prevent buffer overflow
594       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
595       build: really _ignore_ builddata.c when hashing sources
596       build: only print the md5 hash in hash_source.sh
597       Makefile: fix builddata when building from tarball
598       pud: fix readIPAddress function
599
600 Hans-Christoph Steiner (3):
601       GNU/Linux: add service profile for 'ufw' firewall package
602       update Commotion example olsrd.conf to represent current project state
603       dyn_gw/dyn_gw_plain require /proc, remove from default build on non-Linux
604
605 Henning Rogge (7):
606       Fixed debug output of Scheduler polling interval
607       Fix multicast join for IPv6
608       Merge branch 'master' of http://olsr.org/git/olsrd
609       Update version after release of v0.6.5.2
610       Update version after release of v0.6.5.2
611       Fix build break for MinGW compilation on Fedora 19.
612       Release v0.6.6
613
614 Ronald in 't Velt (1):
615       Fix setsockopt for setting Traffic Class in IPv6
616
617 Saverio Proto (3):
618       main: fix the check on inet_pton return value because it returns 1 on
619          success.
620       mDNS: remove from Makefile PTHREAD useless dependency
621       txtinfo: update README file
622
623 Scott Kidder (1):
624       jsoninfo: ensure output is wrapped in curly braces.
625
626 Vasilis Tsiligiannis (1):
627       olsrd-quagga: Fix memory leak when adding and deleting routes
628
629 equinox (1):
630       quagga plugin routes additional
631
632 0.6.5.6 -------------------------------------------------------------------
633
634 Alessio Caiazza (2):
635       Hotfix for very long http headers also for jsoninfo
636       jsoninfo: HTTP headers with CORS (if requested)
637
638 Ferry Huberts (8):
639       pud: fix java detection in the wireformat java bindings (again)
640       pud: do the same fix as in the previous commit, now for i386
641       Make sure to save/restore errno in signal handlers
642       main: olsr_create_lock_file: fix return value check on 'open' call
643       pud: fix readIPAddress function
644       tok: improve the nmea_calc_crc function a bit
645       neighbor table: fix crash in olsr_print_neighbor_table on MinGW
646       Fix strange coding in the 'long headers' fix
647
648 Henning Rogge (5):
649       Update version after release of v0.6.5.5
650       Fix processing error for fragmented hellos
651       Fix some spelling mistakes
652       Hotfix for much too long http headers
653       Release v0.6.5.6
654
655 0.6.5.5 -------------------------------------------------------------------
656
657 Ferry Huberts (4):
658       build: really _ignore_ builddata.c when hashing sources
659       build: only print the md5 hash in hash_source.sh
660       Makefile: fix builddata when building from tarball
661       pud: fix readIPAddress function
662
663 Henning Rogge (3):
664       Update version after release of v0.6.5.4
665       Fix build break for MinGW compilation on Fedora 19.
666       Release v0.6.5.5
667
668 Scott Kidder (1):
669       jsoninfo: ensure output is wrapped in curly braces.
670
671 0.6.5.4 -------------------------------------------------------------------
672
673 Ferry Huberts (11):
674       Remove mercurial ignore file; we use git
675       build: ignore builddata.c when hashing sources
676       release: fix the list of generated files
677       release: update some comments
678       release: refactor the checkVersionIncrementing function
679       release: do not update the version on master when it's already higher
680       release: only report that master changed when it was actually changed
681       release: checkVersionIncrementing: optionally allow equal versions
682       release: also check against the Makefile version when branching
683       txtinfo: prevent buffer overflow
684       pud: nmealib: _nmea_parse_time not parsing hsec when given "hhmmss" format
685
686 Henning Rogge (2):
687       Update version after release of v0.6.5.3
688       Release v0.6.5.4
689
690 0.6.5.3 -------------------------------------------------------------------
691
692 Ferry Huberts (5):
693       pud: detect the java include directory
694       pud: better detection of java jdk
695       gateway: work around kernel IPIP module initialisation bug
696       main: use /dev/urandom by default
697       pud: set local loopback for multicast tx
698
699 Henning Rogge (2):
700       Update version after release of v0.6.5.2
701       Release v0.6.5.3
702
703 Ronald in 't Velt (1):
704       Fix setsockopt for setting Traffic Class in IPv6
705
706 0.6.5.2 -------------------------------------------------------------------
707
708 Henning Rogge (2):
709       Update version after release of v0.6.5.1
710       Release v0.6.5.2
711
712 Saverio Proto (1):
713       main: fix the check on inet_pton return value because it returns 1 on
714          success.
715
716 Vasilis Tsiligiannis (1):
717       olsrd-quagga: Fix memory leak when adding and deleting routes
718
719 0.6.5.1 -------------------------------------------------------------------
720
721 Ferry Huberts (1):
722       release: use olsrd-version prefix for files in the tarballs
723
724 Henning Rogge (2):
725       Update version after release of v0.6.5
726       Release v0.6.5.1
727
728 0.6.5 -------------------------------------------------------------------
729
730 Aaron Kaplan (1):
731       chose the proper #define in order to take the right #include
732
733 Alessandro (4):
734       mDNS: Implemented Host Filtering for ipv4 and ipv6, writing in the config
735          file which hosts to ignore. The mDNS packets from the ignored hosts
736          will be ignored and not propagated in the network
737       mDNS: Updated README file for mDNS plugin
738       mDNS: Reworked logic of router Election. The election is now handled on
739          interface basis, because the router could have one interface where it
740          needs to be master and another interface where it needs to be
741          disabled. There was a logical bug in the earlier implementation.
742       mDNS: BUGFIX, mDNS plugin, hello message of router election not sent if
743          debug = 0
744
745 Alessandro Gnagni (3):
746       mDNS: Fixing loops for mDNS packets when mDNS plugin is misconfigured
747       mDNS: review of Alessandro Gnagni patch, inserted a config value to
748          enable or disable TTL check and change, default is enabled.
749       mDNS: Implemented router election mechansim to have only 1 active mDNS
750          OLSR router in 1 LAN
751
752 Andreas Tonnesen (1):
753       x86_64 patch from Bernd
754
755 Bernd Petrovitsch (1):
756       * added -Wbad-function-cast
757
758 Ferry Huberts (219):
759       gateway: clarify header with extra comments and ordering
760       gateway: reorder functions to reflect order in header
761       gateway: formatting
762       gateway: remove 'unused' v{4,6}gw_choosen_external
763       gateway: add asserts to validate gw_handler
764       gateway: clear gw_handler during cleanup
765       gateway: add init and cleanup hooks for gateway plugins
766       gateway: rename hooks
767       gateway: add comments to struct olsr_gw_handler function prototypes
768       gateway: inline olsr_find_gateway_entry function
769       gateway: inline olsr_trigger_inetgw_selection function
770       gateway: rename a function
771       gateway: simplify a condition
772       gateway: push an if condition into its nested if's
773       gateway: merge 2 code blocks
774       gateway: the gateway to set must be in the gateway tree
775       gateway: the gateway to set must either be an IPv4 or IPv6 gateway or
776          both
777       gateway: prevent 2 NULL dereferences
778       gateway: merge 2 code blocks
779       pud: force pending buffer out if not enough space for our message
780       pud: include nmealib v1.0.3
781       http_info: pud satellites in use are now green, not in use are red
782       ifdef: fix some include ifdefs
783       update comments on all ifdefs
784       olsrd_plugin: remove #if 1
785       gateway: rename 2 variables
786       remove most '#if 0' blocks
787       gateway: merge the olsr_get_ipv{4,6}_inet_gateway functions
788       mdns: fix compilation warnings
789       mdns: fix a compilation warning / copy-paste error
790       bsd: fixup comment
791       improve VERBOSE handling
792       common: fix varargs cleanup
793       pud: fix resource leak
794       pud: fix socket error
795       pud: fix socket error
796       pud: fix position file stat/use race
797       pud: fix getBestUplinkGateway
798       pud: nmealib: fix copy/paste error
799       pud: nmealib: fix buffer overrun
800       pud: nmealib: fix buffer overrun
801       pud: nmealib: fix invalid format string conversion
802       add a COVERITY instructions text file
803       pud: nmealib: fix invalid format string conversion
804       pud: nmealib: fix invalid format string conversion
805       pud: fix closing fd
806       pud: fix checking of downlink message IP version
807       sgwdynspeed: fix resource leak and file stat/use race
808       bmf: explicitly cast fgetc result into a char
809       bmf: do not close an 'error' socket return value
810       bmf: do not dereference NULL pointer
811       httpinfo: do not close an 'error' socket return value
812       httpdinfo: fix resource leak
813       secure: can only work for IPv4, so assert on it
814       secure: do not hard-code a sizeof()
815       secure: decrease a (stack allocated) buffer size
816       secure: use sizeof() of the fields being copied
817       secure: decrease a (stack allocated) buffer size
818       secure: initialise rrmsg correctly
819       secure: can only work for IPv4, so assert on it
820       secure: do not hard-code a sizeof()
821       secure: decrease a (stack allocated) buffer size
822       secure: use sizeof() of the fields being copied
823       secure: decrease a (stack allocated) buffer size
824       secure: initialise crmsg correctly
825       secure: can only work for IPv4, so assert on it
826       secure: do not hard-code a sizeof()
827       secure: decrease a (stack allocated) buffer size
828       secure: initialise cmsg correctly
829       nameservice: fix a resource leak
830       nameservice: fix wrong size argument
831       nameservice: check return value of fcntl
832       nameservice: do not close an fd that is not open
833       nameservice: remove some dead code
834       jsoninfo: fix a resource leak
835       jsoninfo: make sure that uuid is null-terminated
836       jsoninfo: remove some dead code
837       jsoninfo: remove pointless compare
838       mdns: suppress a Coverity warning
839       mdns: remove some dead code
840       mdns: do not close an fd that is not open
841       mdns: do not close an fd that is not open
842       mdns: check return value of inet_pton
843       mdns: check return value of sendto
844       p2pd: do not close an fd that is not open
845       p2pd: do not close an fd that is not open
846       p2pd: remove some dead code
847       bmf: do not close an fd that is not open
848       pud: remove some dead code
849       quagga: explicitly ignore return value of fcntl
850       tas: fix a memory leak
851       txtinfo: remove some dead code
852       main: fix an Out-of-bounds access
853       cfgparser: fix some memory leaks
854       cfgparser: fix a copy/paste error and resulting memory leak
855       cfgparser: fix dereference before assert
856       linux: apm: fix retry opening of apm proc file
857       olsr_switch: fix a memory leak
858       lq: make sure that info_head != NULL
859       lq: make sure last_ip != NULL
860       android: fix type punning warning
861       pud: fix alignment warning
862       gateway: initialise the handler before setting up the tunnel
863       gateway: cleanup: free the allocated memory cookie
864       gateway: ensure cleanup uses the reverse order of init
865       gateway: minor simplification in olsr_delete_gateway_entry
866       gateway: allow immediate removal of a gateway entry
867       gateway: split olsr_delete_gateway_entry
868       gateway: walk the gateway tree to properly cleanup
869       linux: sanitise ACPI battery data
870       defs: fix strscpy null pointer dereference
871       tas: lua: official source code for 5.0.2
872       tas: lua: run gnu-indent.sh script
873       cleanup, 1. step (to get some local changes away):
874       * added -Wcast-qual: this killed lots of unnecessary type-casts
875       Fix sytax errs and line break quirks for gnu-indent
876       ARM alignment warnings fixed
877       Patch ALIGN_NOWARN_ARM macro for better priority handling.
878       use the POSIX standard '__linux__' macro instead of 'linux'
879       tas: lua: run gnu-indent.sh script
880       tas: lua: sync up to official source code with fixes
881       Merge branch 'lua-official-502'
882       cookie: an array already is a pointer
883       cookie: add an assert
884       Revert "httpdinfo: fix resource leak"
885       httpinfo: add a comment about why the client socket is not closed
886       gateway: minor optimisation
887       gateway: improve cleanup
888       gateway: rename gw_mem_cookie to gateway_entry_mem_cookie
889       gateway: add a define for the tunnel name
890       gateway: stub out olsr_print_gateway_entries on #ifdef NODEBUG
891       duplicate_set: stub out olsr_print_duplicate_table on #ifdef NODEBUG
892       link_set: stub out olsr_print_link_set on #ifdef NODEBUG
893       mpr_set: stub out olsr_print_mpr_set on #ifdef NODEBUG
894       routing_table: stub out olsr_print_routing_table on #ifdef NODEBUG
895       tc_set: stub out olsr_print_tc_table on #ifdef NODEBUG
896       two_hop_neighbor_table: stub out olsr_print_two_hop_neighbor_table on
897          #ifdef NODEBUG
898       hna_set: stub out olsr_print_hna_set on #ifndef NODEBUG
899       hna_set: stub out olsr_print_hna_set on #ifdef NODEBUG and fix
900       neighbor_table: stub out olsr_print_neighbor_table on #ifndef NODEBUG
901       neighbor_table: stub out olsr_print_neighbor_table on #ifdef NODEBUG and
902          fix
903       use INET_ADDRSTRLEN and INET6_ADDRSTRLEN instead of magic constants
904       gateway: only remove a tunnel when there is one
905       gateway: rename a variable
906       gateway: minor improvement in NULL comparisons
907       hna_set: olsr_ip_prefix_to_string outputs a wider string
908       gateway: refactor olsr_set_inet_gateway
909       Merge tag 'v0.6.4'
910       win32: use #ifdef _WIN32
911       Makefile: fixup some forgotten make command prefixes
912       Makefile: add gui target
913       Makefile: always pass VERBOSE to the make command
914       gui: linux: minor Makefile fixup
915       gui: linux: clean and install are phony targets
916       gui: linux: add VERBOSE handling
917       gui: linux: fix some 'may be used uninitialized' compiler warnings
918       gui: linux: use toplevel make options
919       gui: linux: fix some 'noreturn' compiler warnings
920       gui: linux: fix some 'discards const qualifier' compiler warnings
921       gui: linux: fix some 'old-style function definition' compiler warnings
922       gui: linux: fix 'too few arguments to function ipc_connect' compiler
923          warning
924       gui: linux: fix a 'mixed declarations and code' compiler warning
925       gui: linux: fix some 'unused parameter' compiler warnings
926       Revert "gui: linux: fix some 'may be used uninitialized' compiler
927          warnings"
928       gui: linux: fix some 'may be used uninitialized' compiler warnings
929       gui: linux: fix some 'shadow' compiler warnings
930       gui: linux: fix inccorrect sizeof()
931       gui: linux: fix string buffer overflow
932       gui: linux: fix string buffer overflow
933       gui: linux: fix the string buffer overflow better
934       gateway: simplify stopping the cleanup timer
935       tas: remove plugin
936       main: do not seed the random number generator with the process id
937       win32: remove unused getpid() function
938       hna_set: explicitly cast to (time_t *) in calls to localtime()
939       neighbor_table: explicitly cast to (time_t *) in calls to localtime()
940       main: improve random number generator seed
941       bmf: do the minimum length check earlier
942       changelog: update to current state
943       print_packet: fix wrong use of sizeof()
944       main: remove -dispin and -dispout command line options
945       main: add release script
946       Update version after release of v0.6.4
947       Changelog: remove 0.6.5 preliminary changelog
948       Merge branch 'release-0.6.4'
949       bmf: check minimumLength against buffer size
950       sgwdynspeed: put plugin config in olsrd.conf.sample
951       pud: put plugin config in olsrd.conf.sample
952       cookie: raise the number of cookies
953       pud: enable dynamic polling of the position file
954       gateway: only check smart gateway configuration on linux
955       linux: put #ifdef __linux__ around code
956       doc: add doxygen documentation generation
957       doc: fix common documentation tags
958       doc: fix linux specific documentation tags
959       doc: fix unix specific documentation tags
960       doc: fix bsd specific documentation tags
961       doc: fix win32 specific documentation tags
962       doc: do not generate documentation for gui code
963       release: move the stringTrim function up a bit
964       release: make gitIsGitDirectory do the correct thing
965       release: fix usage of literal dot in regular expressions
966       release: move into the base directory earlier
967       release: convert some code into checkIsOlsrdGitCheckout function
968       release: convert some code into checkGitSigningKeyIsConfigured function
969       release: convert some code into getPrevRelTag function
970       release: the script can now also create a release branch
971       Merge branch 'release-0.6.4' into mmmm
972       Branch v0.6.5
973       pud: change java include path to generic java include path
974       pud: java make target is dependent on library make target
975       doc: clean up the latex directory if empty
976       Revert "linux: name is required to be non-null in
977          olsr_os_cleanup_iptunnel"
978       gateway: fix a revert problem
979       android: fix the path of the tunnel node in the /dev tree
980       gateway: fix stable count dampening in gw_default_timer
981       gateway: always select a new gateway when threshold != 0
982       main: add -pidfile command line option
983       main: fix pidfile compilation on windows
984
985 Frank de Brabander (4):
986       New feature: support for Linux NL802.11 wireless link information in cost
987          calculation.
988       Merge branch with new lq plugin for NL80211 support
989       Incorporate fix by Ferry Hubert for float to double promotion
990       Fix optional compilation of the nl80211 lq plugin
991
992 Hans-Christoph Steiner (9):
993       use the POSIX standard '__linux__' macro instead of 'linux'
994       use the Microsoft standard '_WIN32' macro instead of the self-defined
995          'WIN32'
996       olsrd-adhoc-setup: use static BSSID by default to assoc. with the right
997          mesh
998       olsrd-adhoc-setup: configure NetworkManager to be nice when adhoc is
999          manually setup
1000       fix misspelling: 'adress' --> 'address'
1001       fixed misspelling: usefull -> useful
1002       add gcc hardening flags to linux-gtk GUI
1003       android: update to use gcc 4.6, available starting with NDK r8
1004       android: gcc 4.6 comes with NDK r8b and is not in NDK r8
1005
1006 Henning Rogge (29):
1007       Pud: Do not use the variable name strlen.
1008       Fix buffer overflow in mdns plugin
1009       Add -Werror=format-security
1010       Add VERBOSE flag to makefile to display full gcc commands
1011       Fix slightly insulting error message.
1012       Moved regex library to a makefile of its own to solve the issues with
1013          compiler warnings.
1014       fix control flow if kill() command fails to end program
1015       fix wrong sizeof() parameter
1016       Convert allocated memory into temporary variable
1017       Protect against stupid data from ACPI
1018       Close socket if bind() fails.
1019       Merge branch 'master' of http://olsr.org/git/olsrd
1020       Use strscpy instead of strncpy.
1021       Check inet_pton return value
1022       Close file descriptor if error happens
1023       Fix scanf() format vulnerabilities
1024       Fix command line parsing macro
1025       Fail in IPC initializationis always fatal.
1026       fail of non-blocking netlink socket is not fatal
1027       Declare olsr_exit() as noreturn
1028       Interface will always be found.
1029       no hostroute possible in this if() branch
1030       reset link timer if not set
1031       Remove dead codepath
1032       Cleanup error handling in ipc_init()
1033       Remove unnecessary asserts
1034       Make sure calculated header length does not skip over buffer
1035       Fix multicast join for IPv6
1036       Release v0.6.5
1037
1038 Saverio Proto (12):
1039       mDNS: Skeleton code for new host filter feature in mDNS plugin
1040       mDNS: Upgrading the container_of.h that was backported from src/common in
1041          master
1042       mDNS: Fix most of the warnings from the compiler
1043       mDNS: Update checksum field of the IPv4 Header after altering TTL
1044       mDNS: trivial debug print fix and code readibility improvement
1045       mDNS: Change version of mdns plugin to 1.0.1 after GSoC 2012 work by
1046          Alessandro Gnagni
1047       mDNS: init ListOfFilteredHosts in the proper place and not at every
1048          received packet
1049       mDNS: trivial, removed TODO from code for something that was implemented
1050       mDNS: better debug support for filtered hosts feature
1051       mDNS: Fixed typo in README
1052       Revert "mDNS: init ListOfFilteredHosts in the proper place and not at
1053          every received packet"
1054       Merge remote-tracking branch 'origin/mDNS-plugin-GSoC-2012'
1055
1056 0.6.4 --------------------------------------------------------------------
1057
1058 Bugfix and plugin release 0.6.4
1059 - Update of Smartgateway system
1060 - small updates to several plugins
1061 - lots of updates for PUD plugin
1062
1063 0.6.3 --------------------------------------------------------------------
1064
1065 Bugfix and plugin release 0.6.3
1066
1067 - PUD plugin (position update plugin)
1068 - JSONinfo plugin
1069 - sgwdynspeed plugin (select dynamic smart gateway based on gw speed)
1070 - Update on Quagga plugin (for new Quagga)
1071 - Fixes for Androids
1072 - Some fixes for GTK and Win32 gui
1073 - Lots of core fixes to support new compiler warnings
1074
1075 0.6.2 --------------------------------------------------------------------
1076
1077 Bugfix release for 0.6.1
1078
1079 - Compatibility for Linux kernel 3.x
1080 - Lots of small fixes
1081 - reworked makefile output
1082 - updates for some plugins
1083 - repair for Smartgateway feature
1084
1085 Read GIT changelog at http://olsr.org/git to see a complete history.
1086
1087 0.6.1 --------------------------------------------------------------------
1088
1089 Bugfix release for 0.6.0
1090
1091 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1092 - Major bugfix for the neighbor table when a neighbor gets a new main IP.
1093 - add /interface command to txtinfo, allow multiple commands per request
1094
1095 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1096 - wait up to four seconds for aquiring the OLSRd lock. This helps to
1097   shutdown OLSRd with a script and restart it at once (kill <pid> is
1098   asynchrone, and kill -w is not available in busybox)
1099 - add md5 has of all source/headers into version string
1100
1101 Mitar<mitar@tnode.com>
1102 - lot's of small changes for Android. Slowly Android gets a fully
1103   supported platform for OLSRd.
1104
1105 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
1106 to see a complete history.
1107
1108 0.6.0 --------------------------------------------------------------------
1109
1110 Change in version number system. No more -rcX for release candidates and
1111 -rX for bugfix releases. In future bugfix releases or updates of plugins
1112 will increase the third digit of the version string while feature releases
1113 will increase the first and/or the second one.
1114
1115 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1116 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1117 - added NIIT kernel module support for sending IPv4 traffic over
1118   IPv6 mesh networks. See README-Olsr-Extensions for more information.
1119 - added SmartGateway support. OLSRd can now automatically build
1120   IPIP tunnels towards the gateway to prevent gateway flapping.
1121   See README-Olsr-Extensions for more information.
1122 - complete rewrite of linux netlink routing code. New code should be
1123   more understandable and easier to debug/improve.
1124
1125 Teco Boots <teco@inf-net.nl>
1126 - new dyngw plugin. More flexible and more features.
1127 - new p2pd plugin (generalized mdns plugin)
1128
1129 Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
1130 - new version of quagga plugin (with IPv6 support !)
1131
1132 Sven-Ola Tuecke <sven-ola@gmx.de>
1133 - fixes for improved uClibc support
1134 - fixes for better linux kernel 2.4 support
1135
1136 Saverio Proto <zioproto@gmail.com>
1137 - new mdns plugin. (backport from master branch)
1138
1139 Eric Tromps <erik_tromp@hotmail.com>
1140 - new version of bmf plugin. NO pthreads are necessary anymore
1141
1142 and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git
1143 to see a complete history.
1144
1145 0.5.6-r8 ---------------------------------------------------------------------
1146
1147 Alina Friedrichsen <x-alina@gmx.net>
1148 - patch for using deticated output socket for OLSR packages. This allows
1149   to set the src-ip of OLSR packages, which is useful for interfaces
1150   with multiple IPs
1151
1152 Bruce Ford <fordbr@gmail.com>
1153 - fixes for compiling olsrd for win32
1154
1155 Henning Rogge <henning.rogge@fkie.fraunhofer.de>
1156 - fix for memoryleak during MID processing
1157 - patch series for "network logoff" of OLSRd, other nodes now get
1158   notified if an OLSR node switch down to remove it from their database.
1159 - cleanup of naming conventions for settings src/dst-ips of OLSR-packets
1160   for ipv4/6. See example config files. 
1161 - patch to ignore HNA4 for IPv6 and HNA6 for IPv4
1162
1163 Markus Kittenberger <Markus.Kittenberger@gmx.at>
1164 - patch series for MID handling cleanup
1165 - compiletime switch for txtinfo to always allow localhost access
1166 - add "InterfaceDefaults" section to config files to allow setting values
1167   which are shared by all interfaces but can be overwritten in specific
1168   config file settings
1169 - patch series to allow OLSRd handle multiple config files
1170   (multiple "-f <cfgfile>" options)
1171
1172 0.5.6 ---------------------------------------------------------------------
1173
1174 PATCHES and BUGFIXES from Henning Rogge <rogge@fgan.de>
1175 - Bugfix for fragmented TC sequence numbers
1176 - eliminate second timer for edge garbage collection (aka border code).
1177 - fix SPF bug
1178 - fix for jitter calculation
1179 - refactor linkset code
1180 - add netsimpcap, a network simulation device
1181 - parser refactoring
1182 - fix for possible overflow in fpm plugin
1183 - prevent Originator-IP from changing during runtime
1184 - fix several compiler warnings
1185 - fix hanging TC entry from lost onehop neighbor
1186 - fix drop package with same seqno in etx_ff
1187 - fix segfault in parsing HNA package with bad netmask
1188 - fix avl_comparator for route_paths
1189 - fix alignment problem in packet buffers
1190 - fix: segfault in neighbor/neighbor-2 table
1191 - fix: lqmult default parsing
1192 - HACK: MinTCVTime parameter hack for Berlin FF network...
1193   feel free to ask on the mailing list.
1194 - add Watchdog plugin
1195 - add explicit runtime lock for OLSR.
1196 - remove lq-hysteresis for tc on the receiver side.
1197 - enhance protection against malformed packages to prevent
1198   OLSR parsing uninitialized data. Thank you Markus and Keks for the LONG
1199   debugging session
1200 - block tc-redundancy 0/1, it doesn't work with the current dijkstra code
1201 - convert httpinfo/txtinfo/dotdraw to nonblocking and autobuf to
1202   prevent blocking outgoing connections
1203 - fix some bugs with lq-mult
1204 - fix bug in duplicate set sequencenumber handling
1205 - add Debian/KFreeBSD support (Thanks to Holger Levsen and friends for help)
1206 - fix segfault in 'interface lost' monitor
1207 - add LQ hysteresis to etx-ff metric
1208
1209 PATCH from Markus Kittenberger <Markus.Kittenberger@gmx.at>:
1210 - txtinfo plugin: add more http options
1211 - allow configuration of OLSR UDP port
1212 - allow configuration of proto Tag for Routes (RtProto)
1213 - add fallback policy rule (priority 65536) if RtTable is used,
1214     to ensure that routes can be added to this table
1215 - resolve many error conditions while adding routes to the linux kernel
1216     (Warning this will also delete any conflicting routes made by other routing daemons or admins)
1217 - interface modes mesh (default) and ether (no retransmit of olsr-messages back into a broadcastdomain)
1218 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1219 - fix several compiler warnings
1220 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1221 - create policy rule later during startup
1222 - send MID also with one interface, if its ip different from originator-id
1223 - linux rtnetlink code cleanup
1224 - workaround: generate routes to single hop neighbours on the fly when inserting routes via them
1225     (active only with fib_metric=flat)
1226 - testing: insert routes with source-ip set to originator ip
1227 - testing: syslog numbering (e.g. useful to detect lost syslog messages when using remote-syslog)
1228 - testing: custom library path (default /usr/testlib)
1229 Testing features must be activated in olsr_cfg.h before compiling olsrd.
1230 This features are used to run a test network in Vienna parallel to the existing
1231 OLSR network.
1232 - more RT-Netlink cleanups and fixes
1233 - backport of timejump patch from TIP
1234 - Add detection for vanishing interfaces to Linux netlink code
1235 - fix incorret route sorting on new neighbours. use only delete and add/change avl tree,
1236   instead of 3 trees
1237 - learn neighbours interface alias address from received hellos
1238
1239 PATCHES from Hannes Gredler <hannes@gredler.at>:
1240 - add small valgrind howto
1241 - remove the per tc_edge timer
1242 - add some basic infrastructure for cookies
1243   cookies are used to track usage of timer and memory resources
1244 - add a lightweight memory manager to reduce malloc() churn.
1245 - eliminate data field from avl_node and list_node and
1246   replace this via inline recasts
1247 - add indentation dotfile for future code cleanup
1248 - refactor the timer implementation, get rid of timeout functions
1249   all manipulations done in constant time.
1250 - use calloc rather than malloc for lazy callers
1251 - log RIB add/del transactions only if there is an actual route change
1252 - fix to to always insert a HNA Net when receiving a HNA refresh
1253 - fix delete all routes if the last IP address is gone
1254 - reduce TC vtime jitter from 25% down to 5%
1255
1256 PATCHES and BUGFIXES from Sven-Ola Tuecke <sven-ola@gmx.de>:
1257 - add a fixed-point math implementation, which saves
1258   a great deal of CPU on embedded devices
1259 - fix for Link quality dijkstra limit
1260 - nameservice plugin supports mac addresses
1261 - fix fork/restart code
1262 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1263 - fix several compiler warnings
1264 - fix olsr_times() to handle different OS implementations (Linux, BSD, OS X)
1265 - add makefile support for google android
1266 - fix default olsrd.conf examples
1267
1268 PATCHES and BUGFIXES from Aaron Kaplan <aaron@lo-res.org>:
1269 - fix openbsd warnings / compile errors about sprintf strcpy
1270 - fix string overflow in dyn_gw plugin
1271 - fix string overflow in pgraph plugin
1272 - fix openbsd/osx coompile errors
1273
1274 BUGFIX by Peter Tarjan <peter.tarjan@birdtelecom.hu>:
1275 - Do not remember LQ information UNSPEC_LINK neighbors in Hellos.
1276 - ignore UNSPEC link for linktype if there is an ASYM/LOST/SYM Link in the
1277   same Hello message
1278 - ignore UNSPEC_LINKS during MPR lookup
1279 - broken MID route handling: we also check the data structures for routing,
1280   even if a MID entry exists.
1281
1282 BUGFIX by John Hay <jhay@meraka.org.za>:
1283 - FIX: IPv6 MTU in BSD
1284 - Another BSD ipv6 Patch by John Hay
1285 - fixes for 64 Bit FreeBSD
1286 - fixes for NetBSD
1287
1288
1289 BUGFIX from Erik Tromp <erik_tromp@hotmail.com>:
1290 - update in bmf due to new flags field in tc_edge_entry
1291
1292 PATCH from Clemens Hopfer <datacop@inode.at>:
1293 - dot_draw plugin: close the connection after graph output.
1294
1295 PATCH from Joe Gio <joezgio@gmail.com>:
1296 - track if AC power is connected/disconnected
1297
1298 PATCH from Hagen Paul Pfeifer <hagen@jauu.net>:
1299 - import jenkins hash for good hash calculations
1300
1301 PATCH from Andres Ambrois <andresambrois@gmail.com>:
1302 - nameservice plugin: add parameters for SIGHUPing other daemons, or calling scripts
1303
1304 BUGFIX by Benny Tops <b.tops@mindef.nl>:
1305 - fix wrong order of drop_tc checkt in olsr_input_tc
1306
1307 Felix (OpenWRT NBD):
1308 - fix bison problem for OpenWRT
1309
1310 Sebastian Harl:
1311 - add LISTEN parameter for httpinfo/txtinfo/dotdraw
1312
1313 0.5.5 ---------------------------------------------------------------------
1314
1315 BUGFIX from Andreas Jacobs <andjac@kawo1.rwth-aachen.de>:
1316 - calculate correct sleeptime
1317
1318 BUGFIX from Dario Borriello <dario_bodj@hotmail.com>:
1319 - do not update LQ if not configured
1320
1321 BUGFIX from Jo-Philipp Wich <freifunk@wwsnet.net:
1322 - fix olsr_ip_to_string() buffer quirk
1323 - fix txtinfo format quirks in HNA table
1324 - name-service plugin - write MID entries to hosts file
1325 - avoid infinite loop in the message parser
1326
1327 PATCH by John Hay <jhay@meraka.org.za>:
1328 - compile clean on FreeBSD
1329 - bugfix: do not account for IP headers when building MID6 messages
1330
1331 PATCHES from Henning Rogge <rogge@fgan.de>:
1332 - join LQ and non-LQ Hello execution paths
1333
1334 PATCHES from otti <otti@wirdorange.org>:
1335 - rttable-default: configures a new policy routing table for the default route
1336
1337 BUGFIXES and PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
1338 - Windows Vista: add interface metric to SPF computed metric
1339 - lqtc-seqno: Optimize check for old seqno numbers in LQTC messages
1340 - lqnatthresh: maintain an advantage for the current (NAT) inet gw
1341 - fisheye-startup: Changed to MAX_TTL for the first 32 LQTCs
1342 - Added and removed files necessary for win32 compile
1343 - Fix for hg: do not remove anything in .hg with 'make uberclean'
1344 - 104-olsrd-verysmallfix
1345 - 105-fix-lq-buffer-quirks
1346 - 106-fix-seqnocheck
1347 - 110-bmf-v152
1348 - 121-olsrd-fib-metric-approx
1349 - 133-fix-lqneigh
1350 - 136-optimize-invalidip-check
1351 - 138-optimize-message-generation
1352
1353 BUGFIX from Lorenz Shori <lorenz.schori@gmx.ch>:
1354 - Mac OSX compile fixes
1355
1356 BUGFIXES and PATCHES by Hannes Gredler <hannes@gredler.at>
1357 - fix not deleted tc entry.
1358 - avoid setting routes with an invalid/impossible netmask.
1359 - refactoring of TC parsing to kill another pile of malloc()/free()s
1360   saving (again) code and especially run.time performance.
1361 - RIB Refactoring, Part 2:
1362   - avoid the periodical rib-tree insertion
1363   - add a FOR_ALL_HNA_RT_ENTRIES() macro for the snmp folks
1364     (or any parties who want to walk HNA entries).
1365   - add an olsr_cnf option 'flat_fib_metrics' which defaults to TRUE.
1366 - fix broken prefix insertion (regression of the RIB refactoring)
1367 - squelsh compiler warnings on Mac OSX
1368
1369 PATCH by John Hay <jhay@meraka.org.za>:
1370 - also printout our own HNAs in the dotdraw plugin.
1371
1372 PATCH by Patrick McCarty <mccartyp@gmail.com>:
1373 - fixed compile errors in the BSD port
1374
1375 PATCHES by Sven-Ola Tuecke <mail2news@commando.de>:
1376 - 102-olsrd-cvs-fixes.patch: use different buffers in the same printf()
1377 - 103-olsrd-rt-exportroute-cleanup.patch: avoid a malloc()ed list of functions
1378 - 132-save-the-fish.patch: really save the fish and avoid to forward invalid
1379   messages from older olsrd versions
1380 - 135-georss-map-for-nameservice.patch: fixes and extensions for the namesaervice plugin
1381 - 138-olsrd-fixdotdraw.patch: fix the dot_draw plugin
1382 (all to be found on http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/)
1383 - Replaced "which" with a /bin/sh script snippet
1384
1385 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
1386 - Jens Nachtigall <nachtigall@web.de> suggested (and reminded) to use
1387   olsrd.conf.default.lq as the default installed one.
1388   It makes much more sense as - to the best of my(bernd's) knowledge - all
1389   larger networks uses the LQ extensions. And new customers should better
1390   be pushed in that direction.
1391 - with the help of Patrick McCarty <mccartyp@gmail.com>, we got olsr to build
1392   on OpenBSD again:
1393   * OpenBSD'd `sed` is pretty conservative and doesn't understand 's|re|sub|'.
1394     So we fall back to the old 's/re/sub/' and quote all '/' and '.' correctly
1395     (which was the main reason to use '|').
1396     And while I'm at it: Remove the useless $(CCACHE) from the $(CC) for
1397     dependency generation and beautify (read: "$(strip)") $(CPPFLAGS).
1398   * OpenBSD needs an explicit "#include <sys/types.h>" before
1399     "#include <netinet/in.h>".
1400 - fixed lib/secure/src/md5.h: This was broken as it had
1401   "typedef unsigned long int UINT4;". "unsigned long int" is 8 bytes on x86_64.
1402   We are using now the standardized types from <inttypes.h>.
1403 - fixed warnings and improved lib/secure/src/md5.c:
1404   * we are using memcpy() and memset() instead of the open-coded loops as
1405     suggested 
1406   * const'ified
1407   * added function prototypes for static functions
1408   * moved static functions to the top so that their declaration is before
1409     their use to allow gcc to inline if only used once.
1410   It remains ugly - God knows why there are that so many useless
1411   type-casts.
1412 - Some minor and trivial cleanup: Added two functions to calculate the ETX
1413   value from a struct tc_edge_entry and a struct link_entry, respectively.
1414   And use them everywhere.
1415 - added http://meshcube.org/nylon/utils/olsr-topology-view.pl into
1416   lib/httpinfo/misc as suggested by Jens Nachtigall <nachtigall@web.de>
1417 - Killed "struct olsrd_config *cnf" in src/cfgparser/olsrd_conf.h and replaced
1418   it's usage with "olsr_cnf" from src/defs.h.
1419   Serious cleanup: olsrd_get_default_cnf() does no longer initialize the global
1420   "cnf" variable" but uses a local one which is returned as before. And
1421   olsrd_parse_cnf() does no longer return the global variable it is working on.
1422 - Merged "struct hna4_entry" and "struct hna6_entry" into
1423   "struct local_hna_entry" (as "struct hna_entry" is a different thing)
1424   Both have almost the same data (IP address + netmask/prefix) so we use
1425   the quite new "struct olsr_ip_prefix" to store it.
1426   Also merged the "hna4" and "hna6" pointer in "struct olsr_config" -
1427   look at the global "olsr_cnf->ip_version".
1428 - added a olsr_ip_prefix_to_string() function
1429 - .h file cleanup: def.h does not longer include net_olsr.h because it 
1430   doesn't needs it.
1431 - more type safety: the macros COPY_IP() and COMP_IP are gone and replaced
1432   with "=" or similar "normal" C operations. There are also now the inline
1433   functions ip4cmp() and ip4equal() to work on "struct in_addr", ip6cmp()
1434   and ip6equal() to work on "struct in6_addr" and ipcmp() and ip6equal()
1435   to work on "union olsr_ip_addr".
1436   Most (or even more precise: almost all) uses of COPY_IP() and COMP_IP()
1437   are in "if (olsr_cnf->ip_version) { ... } else { ... }" anyway to
1438   there is no reson to copy an IPv4 address effectively with
1439   "memcpy(&dst, &src, 4)" or compare with memcmp(&a, &b, 4)" wher the
1440   always "4" is stored in a variable inhibiting compiler optimization.
1441   There is also the deprecated function genipcopy() mimicking the old
1442   typeless COPY_IP() macro for the last few places where a cleanup is
1443   needed anyways.
1444   There also lots of old macros left over (commented out of course) until
1445   we are confident that everything works. And then I will kill them too.
1446 - Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom
1447   "olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of
1448   temporary variables to call inet_ntoa()/inet_ptoa() vanished .....
1449 - We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string()
1450   to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr"
1451   into a string buffer.
1452 - cleanup: olsr_ip_to_string() and similar non-reentrant functions now must
1453   get a target buffer. To ease that, there is the "struct ipaddr_str"
1454   which is large enough for all of them (read: for an IPv6 address). This
1455   also removes the cyclic buffer there.
1456   All of these function return a "const char *" which can be directly used
1457   for printf(3) and friends.
1458 - const'ified more functions
1459 - converted the source to UTF-8.
1460 - "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char")
1461 - force the few inline function to always be inlined.
1462 - #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table()
1463   if nothing is done
1464 - declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface"
1465   as "struct sockaddr_in" since it is that what we actually want there (and
1466   it is similar to the IPv6 code).
1467 - updated the olsrd.conf.default.lq-fisheye to the Debian-deliverd version
1468   after recent discussions olsr-dev@olsr.org
1469 - use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()"
1470 - clean up the routes on more signals. Basically we want to do this on all
1471   signals which terminate the program.
1472 - killed a superflous global buffer in src/main.c
1473 - made inline functions from avl_walk_{first,last,next,prev} and created
1474   "const" versions of it. inline_avl_comp_ipv4() is now also an inline function
1475   (and not a macro)
1476 - created a typedef's for various function pointers - much easier to read.
1477 - cleanup: compare tree->comp (adn other pointers)) to NULL (and not 0)
1478 - killed superflous "return"s at the end of void functions
1479 - const'ified more parameters in many more functions in the .h and
1480   .c files
1481 - init-functions with constant or ignored return values are "void"
1482 - created a typedef fro the callback in "struct export_route_entry"
1483   and using it!
1484 - moved the initialization of the {add,chg,del}_kernel_list variables
1485   into process_routes.c. So they are now "static" there.
1486 - olsr_export_{add,del}_route{,6} are now static in process_routes.c
1487   since they are not used elsewhere.
1488 - olsr_addroute_add_function() and olsr_deldroute_add_function() were
1489   almost identical - made one function out of it.
1490   Same for olsr_addroute_del_function() and olsr_deldroute_del_function().
1491 - fixed the sort order in avl_comp_ipv4_prefix(): We compare now the IPv4
1492   values in host byte order (and not network byte order). So the route
1493   list in the e.g. httpinfo plugin is now nicely sorted.
1494 - fixed and improved the `gcc-warnings` script:
1495   * support older gcc's (as on Debian/Sarge) as they have slightly different
1496     error messages
1497   * removed superflous lines
1498   * replaced the call of `sed` with shell built-in features fixing syntax
1499     errors on Debian/Sarge
1500   * set all locale-relevant variables to "C" (just to be sure)
1501 - consolidated ip{4,6,}{cmp,equal}: all are nwo inline functions using only
1502   the minimal necessary operations. Thanks to Hannes Gredler
1503   <hannes@gedler.at> and Sven-Ola Tuecke <mail2news@commando.de> for pointing
1504   that out and suggesting the `inline`, respectively.
1505   use ip{4,}cmp in lq_avl.[ch] to resue the code. inline_avl_comp_ipv4
1506   is superflous now (and replaced by ip4cmp) and use the global MIN and MAX
1507   macro instead of AVLMIN and AVLMAX
1508 - killed netmasks from the IPv4 part of the code and use the prefixlen there
1509   (similar to thte IPv6 part). Manymore details on
1510   http://lists.olsr.org/pipermail/olsr-dev/2007-November/001464.html
1511 - removed the superflous "open_ipc" field from the "struct olsrd_config" as
1512   it contains only the equivalent of "olsr_cnf->debug_level > 1".
1513 - inspired by Sven-Ola Tuecke: avoid a bash'ism (i.e. "OPTS="${OPTS//$opt}") in
1514   gcc-warnings and ld-warnings. But we do not replace it with `sed` (since it
1515   costs a fork(2) and an exec(3)) but also with shell code which doesn't use
1516   any external program.
1517 - added configuration file support for "flat fib metrics".
1518
1519 0.5.4 ---------------------------------------------------------------------
1520
1521 QUAGGA by Immo 'FaUl' Wehrenberg <immo.olsr@do.bundessicherheitsministerium.de>
1522 - updated to svn version 33
1523
1524 BMF PLUGIN  by Erik Tromp <erik_tromp@hotmail.com>
1525 - updated to 1.5.1
1526 - updated to latest plugin interfaces changes and killed warnings (by Bernd
1527   Petrovitsch <bernd@firmix.at>)
1528
1529 PATCH by Hannes Gredler <hannes@gredler.at> which rewrites the route handling.
1530 To quote him:
1531 ----  snip  ----
1532 change list:
1533 - get rid of separate routing tables for HNA and per-node routes, everything is
1534   now unified in an AVL routing tree (&routingtree)
1535
1536 - introduce walking macros (OLSR_FOR_ALL_RT_ENTRIES()) that hide the internal
1537   structure of the RIB for making life of the plugin authors easier.
1538
1539 - get rid of different SPF implementations for LQ and non-LQ code paths. a
1540   non-LQ edge is simply substituted with a cost of 1.0
1541
1542 - get rid of host masks - a new data type olsr_prefix is introduced which is
1543   basically an ip address plus a prefix length.
1544
1545   do not install the metric in the kernel FIB - for the kernel its pointless
1546   if the route gets installed with a metric of N or M.
1547
1548   we do not need to update the kernel FIB if we have hop count only changes
1549   (for example if there is a reroute action further downstream)
1550
1551   the only things which triggers a kernel FIB route update is a next hop
1552   change (a next hop is neighboring gateway router plus an interface).
1553
1554   all OLSR routes are installed with a metric of 2
1555
1556 - separate between rt_entry and rt_path - the former is a route installed in the
1557   kernel with an next hop. the latter is a candidate for best path selection
1558   after SPF calculation has been done. in the rt_entry we keep a pointer to the
1559   best_path and also to the next hop that was installed in the kernel FIB.
1560
1561   we always keep all originator of a route, if a route originator goes away we
1562   can easy recompute the best path for the route.
1563
1564   the next hop in the rt_entry gets only updated upon a successful route_add
1565   call - that way we always remember what next hop to delete.
1566
1567   stray routes should be history now.
1568
1569 - tweak the linked list toolkit to operate on circular lists.
1570
1571 - get rid of malloc calls for building the kernel update list. the list node is
1572   now embedded in the rt_entry.
1573
1574 - introduce three queues (add/chg/del) for kernel updates.
1575
1576 - for neighbor route dependency tracking the neighbor routes are queued first or
1577   last (depending on which queue you work on)
1578
1579 - rework all the plugins which directly manipulate rt entries.
1580
1581 - rework the plugins that read from the routing table (most notably nameserver,
1582   httpinfo and quagga plugin)
1583
1584 - lots of comments that explains the intentions and purpose of this code-piece.
1585
1586 non RT related stuff:
1587 - use a list rather than a tree for storing the post-SPF results, which further
1588   improves the raw-SPF runtime.
1589
1590 - add display of SPF runtime (masked behind #ifdef SPF_PROFILING)
1591
1592 - http://gredler.at/download/olsrd/neighbor_routes3.diff: This updates the own
1593   IP address (read: the main address) after changes (e.g. on
1594   `ifup wlan0; sleep 1; ifdown wlan0`) and kills the
1595   olsr_fill_routing_table_with_neighbors() function.
1596 ----  snip  ----
1597 And Sven-Ola Tuecke <mail2news@commando.de> fixed an instability issue on interface
1598 up/down operations (see 102-olsrd-rt-refactoring-fixes.patch below) and a missing
1599 initialization.
1600
1601 PATCH by Hannes Gredler <hannes@gredler.at> which "consolidates
1602 the link-state database and the spf-calculation in order
1603 to calculate routes more efficiently".
1604 To quote him (more):
1605 ----  snip  ----
1606 - use the link-state (tc) database for SPF calculations rather than
1607   replicating the notion of vertices and edges for a SPF run.
1608   this heavily reduces malloc() calls and shrinks the total CPU
1609   load of the route calculation path between 60%-80%.
1610 ----  snip  ----
1611
1612 PATCHES by Sven-Ola Tuecke <mail2news@commando.de> to be found on from
1613 http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
1614 - 102-olsrd-rt-refactoring-fixes.patch
1615   Because you changed a lot of basics: It's time to handle a general
1616   flaw in the routing system. Plase take a look at chk_if_changed(). This
1617   will free() any "struct interface" pointer without warning at any time.
1618   This is why it's possile to SEGV olsrd with a simple "ifdown xxx".
1619   The patch replaces the (maybe) invalid pointer with an index reference
1620   "iif_index". You can always ask the OS for a name. Please note, that I do
1621   not have a working BSD toolchain, so I've placed an #error in the IPv6
1622   BSD-part where the author/porter has started to hack something funny.
1623
1624 - 110-olsrd-double-wlancard-neigh-hack.patch:
1625   This is a hack for Nodes having to wifi cards with the same channel,
1626   bssid, IP-Range etc. If two nodes can see each other by means of two
1627   possible links (here: two wifi cards with equal config), a bug is  triggered
1628   with the Neigh-is-SYM detections. This small little hack prevents this.
1629
1630 - 112-olsrd-nameservice-fixemptyname.patch:
1631   This is an addon to my lat/lon stuff which will prevent olsrd from
1632   running (oops?) if no hostname is given and the nameservice plugin
1633   is loaded.
1634
1635 - 113-olsrd-dyngwplain-pluginvers5.patch:
1636   This updates the dyngwplain plugin to the new Plugin Iface
1637
1638 - 140-olsrd-arprefreshed.patch:
1639   This is a new one. Opens a packet socket and listen to UDP(698), extract
1640   the sender MAC and refreshes the ARP cache whith that. Should speedup
1641   especially in cases, if you initially try to use a longer routing path which
1642   normally triggers a "ARP-Lookup-Chain".
1643 - 106-olsrd-nameserviceparams.patch:
1644   This patch converts more plugins to the new interface version.
1645 - 104-olsrd-policy-routing.patch
1646   Reworked this one to discard GPL helper functions. Also checked IPv6 and
1647   re-included the IPC hookup. The patch adds a "RtTable [number]" for
1648   /etc/olsrd.conf which is simply the Linux
1649   policy routing table to use. Defaults to 254 (== main).
1650   This patch was modified/clenaed up by <bernd@firmix.at> to use "#if"
1651   instead of "#ifdef" as it's more robust against typos.
1652 - 110-olsrd-fixpacketprint.patch, 112-olsrd-nameservice-fixemptyname.patch,
1653   113-olsrd-txtinfo-fixhttpget.patch, 114-olsrd-timeoutlimit.patch,
1654   115-olsrd-nameserviceparamfix.patch and
1655   116-olsrd-fix-pluginparam-addons.patch fixing the compilation warning
1656   on 64bit and lots of other improvements.
1657 - "Save the fish" patch: Avoid forwarding of packets with too low TTL. This
1658   kills lots of packet forwarding storms.
1659   NB: The oneliner was applied by hand by BP and formatted to look (in BPs O)
1660   more readable.
1661
1662 PATCH by Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>
1663 olsr_makefile_make_use_of_exename.patch
1664 - This patch makes sure that the EXENAME variable of Makefile.inc is used
1665   in Makefile.
1666
1667 PATCHES by John Hay <jhay@meraka.org.za>
1668 - update to new FreeBSD WLAN API
1669 - do not require /bin/bash, use /bin/sh
1670 - Fixed alignment so that olsrd runs on FreeBSD/arm
1671 - allow more interface in an IPv6 subnet on FreeBSD
1672 - use PREFIX and DESTDIR as all the other Makefile.$OS also for FreeBSD
1673 - make txtinfo plugin work with IPv6
1674
1675 PATCH by Andreas Jacobs <jacobs@i4.informatik.rwth-aachen.de>
1676 - fix the loss link quality calculation for "windows size % 4 != 0"
1677
1678 PATCH by Acinonyx <acinonyxs@yahoo.gr>
1679 - Bug fix: include $(TOPDIR)/Makefile.inc at the begin in the Quagga plugin
1680
1681 PATCH by David Cornejo <dcornejo@gmail.com>
1682 - fixed an "+=" of an uninitialized variable (detected with/by the
1683   scan.coverty.com).
1684
1685 BUG reported by Aaron Kaplan <aaron@lo-res.org>
1686 - BSD-xargs doesn't know "-r".
1687
1688 PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
1689 - Made a function from the ME_TO_DOUBLE() macro (in src/mantissa.h).
1690   This saves code throughout the code even on i386 and will even more
1691   on architectures without floating point units and "-msoft-float".
1692 - And the mathemathics in src/mantissa.h is reformulated to minimize
1693   floating point operations to save CPU power - especially on embedded
1694   devices.
1695 - I rewrote the half of src/lq_packet.[ch] which deals with incoming
1696   packets. This was triggered with performance output of gcc produced
1697   by Sven-Ola Tuecke at CCCamp07.
1698   This kills *lots* of (more than) superflous malloc()s and the same
1699   number of (free()s). And it also kills some code and copying around of
1700   data.
1701 - Make it compile without warning with flex-2.5.33 (to be found on Fedora 7
1702   and Gentoo in Sep-2007) again.
1703
1704 - converted the dyn_gw plugin to plugin interface version 5 (which leaves
1705   the quagga plugion as the last with the old one).
1706 - paving the way to activate -Wshadow, much more to do
1707 - const-ify parameters here and there
1708 - use NULL for pointers (and not "0")
1709 - Killed "extern" declarations in (not generated) .c files
1710
1711 - Based on a patch by Gianni Costanzi <gianni.costanzi@gmail.com> (so credits
1712   and thanks have to go there):
1713   added OS_CFLAG_PTHREAD Makefile variable since gcc (on Linux) requests this
1714   in the manual page.
1715   Changes/additions:
1716   - I added definitions to all OS-specific Makefile.$OS with the value similar
1717     to the value in OS_LIB_PTHREAD (either empty or "-pthread").
1718   - The variable is added to CPPFLAGS (and not CFLAGS) since CPPFLAGS is used
1719     for all cpp and gcc calls (and gcc's man page indicates that it sets
1720     variables for both of them).
1721
1722 0.5.3 ---------------------------------------------------------------------
1723
1724 URGENT BUG FIX
1725 Ignacio García Pérez <iggarpe@terra.es> found a serious bug in the dot-draw
1726 plugin and identified it's source.
1727
1728 BUG FIX
1729 The bmf plugin wanted to kill a not-started thread and this causes a segmentation
1730 violation. This happens if the old plugin interface support is not compiled in
1731 and one uses - or more asccurate: wants to use - the bmf plugin which uses that
1732 ATM. Thanks to Cedric Krier <ced@ced.homedns.org> for reporting this.
1733
1734 DEPENDENCIES FIXED
1735 The dependencies (*.d files) are now properly generated and used. And they also
1736 dependen on the Makefile in the current directory and the Makefile.inc so that
1737 changes there also lead to new compilation.
1738 Remember: We support "ccache" so install it to save lot of meaningless recompiles
1739 if nothing (as seen by the real C compiler, i.e. after the C preprocessor) has
1740 changed.
1741
1742 BUILD FIX
1743 Linux/IA64 and Linux/HPPA also need "-fPIC".
1744
1745 CLEANUPS
1746 - olsr_switch does no longer generate warnings
1747 - olsr_switch is also built with "build_all" and cleaned with "uberclean"
1748 - More "const" all over the place.
1749 - More "static" for local functions and variables.
1750 - Killed an unnecessary "static" variable.
1751
1752 0.5.2 ---------------------------------------------------------------------
1753
1754 URGENT BUG FIX
1755 Sven-Ola Tuecke found a serious bug of the class "show stopper" and sent a patch.
1756
1757 PLUGIN CLEANUP
1758 Plugins handle parameters quite individually (case-sensitive vs case-insensitive,
1759 different parsing functions for the same values, etc.). Plugin Interface version 5
1760 now exports a table of { parameter-name, parsing-function, addr-of-storage } and
1761 it's size. Common functions should be shared.
1762
1763 0.5.1 ---------------------------------------------------------------------
1764
1765 MISC
1766 Upgrade to olsr-bmf 1.5 from Erik Tromp <erik_tromp@hotmail.com>
1767
1768 latitude/longitude support is now in the nameservice plugin done by
1769 Sven-Ola Tuecke <mail2news@commando.de>
1770
1771 added the spf refactoring patch from  Hannes Gredler <hannes@gredler.at> which
1772 saves a noteworthy amount of CPU time. To quote him:
1773 ----  snip  ----
1774 1. use of an AVL tree as a min-heap implementation
1775
1776    as a means for efficient sorting.
1777    (the etx metric is used as the key in the candidate tree)
1778
1779 2. next-hop propagation
1780
1781    rather than tracking the previous node in olsr_relax()
1782    i have changed that model and pre-populate all one-hop neighbors
1783    with their own IP address as 'next-hop' and pull that
1784    pointer up once new paths are explored.
1785
1786    as a result no walker for counting hops and extracting next-hops
1787    is required - it turns out at this is slighly more efficient
1788    than the existing behaviour (even with the cache applied).
1789 ----  snip  ----
1790
1791 CLEANUPS
1792 * moved a only locally needed hack from "union olsr_ip_addr" into the only place
1793   where it is needed in hashing.c
1794
1795 0.5.0 ---------------------------------------------------------------------
1796
1797 APPLIED PATCHES FROM FREIFUNK-FIRMWARE
1798 libsmake, dyngwplain, nameservices+services, tzxtinfo, quagga, quagga-routehandler,
1799 optimize, fixes from Eric Tromp and Sven-Ola Tuecke, CPU-optimize, secure key, HNA-IP
1800
1801 CLEANUPS
1802 removed hardcoded limit on the number of interfaces (at least in the Unix part)
1803 made Makefile targets much more consistent
1804
1805 MISC
1806 put Bmf-1.3 plugin into it
1807
1808 FreeBSD IPv6 SUPPORT
1809
1810 Patch from John Hay applied.
1811
1812 BUGFIXES
1813
1814 0.4.10 --------------------------------------------------------------------
1815
1816 OLSR NETWORK SIMULATOR
1817
1818 An application called olsr_switch(sorry for the nameclash with the win32
1819 GUI) has been added. If olsrd is ran using the -hint option it can now
1820 connect to olsr_switch and be part of a virtual network. This means
1821 that multiple instances can be ran at the same host! The olsr_switch
1822 application allows the user to define link variables on all viritual
1823 links in the network, creating all possible topologies. Read more in
1824 the readme file.
1825
1826 EXPERIMENTAL FISH EYE ALGORITHM
1827
1828 An experimental algorithm for TTL settings on TC messages has
1829 been added. Read more in the corresponding README file.
1830
1831 OPENBSD SUPPORT
1832
1833 olsrd now also compiles on OpenBSD systems. Thanks a lot to Holger
1834 Mauermann for the patches!
1835
1836 BUILDSYSTEM REWRITE
1837
1838 Bruno has rewritten the make system. OS detection is now done
1839 automagically and the general design is much improved.
1840
1841 IP ADDRESS VALIDATION
1842
1843 Olsrd now maintains a set of IP addresses that is considered
1844 invalid. Checks against this set is done on all received
1845 OLSR packets announced originator addresses. The dataset can
1846 be updated dynamically.
1847
1848 PLUGIN INTERFACE
1849
1850 Updated interface version to 3 and added more noticeable warning
1851 for version missmatch.
1852
1853 MATH LIB DEPENDENCY
1854
1855 The dependency on the math lib came from the use of pow(3) in the
1856 mantissa/exponent calculation. The calls to pow in this long forgotten
1857 code, was very unnessecarry. The pow calls are replaced with bitwise
1858 shifts and -lm is no longer needed.
1859
1860 ICMP REDIRECTS ON LINUX
1861
1862 On Linux systems "0" is now also written to the all/send_redirects
1863 procfile and not only the pr. interface ones. Hopefully this resolves
1864 problems reported with systems still sending ICMP redirects.
1865
1866 BUGFIXES
1867
1868 - Fixed init of IPv6 addrtype variable. It used to be uninitialized,
1869   causing it to default to site-local and have some weird side-effects.
1870 - Fixed crash when changing IPv6 address at run-time
1871 - Fixed a bug that prevented setting willingness 0 in the configfile
1872 - Fixed bad handling of missing command line arguments
1873 - Did various updates to prevent assertion when a neighbor
1874   has changed IP and sends HELLO before its olsrd precess has detected
1875   the change.
1876 - Fixed return value check on times(2) calls in the scheduler
1877 - Fixed bug(s) that could cause crash when an interface was brought
1878   down while olsrd was running.
1879 - Removed the silent (read: unchecked) hard limit of 16 interfaces.
1880 - Compiles now cleanly on 64bit (e.g. x86_64).
1881
1882 0.4.9 ---------------------------------------------------------------------
1883
1884 OPTIMIZATIONS
1885
1886 The MID database is now also indexed by alias addresses. this makes
1887 look-ups of main addresses based on alias addresses _much_ faster.
1888 The mid_lookup_main_addr function alone has gone from >30% of the
1889 total CPU time used by olsrd to <1%.
1890 PLUGIN DEVELOPERS: datatypes for MID entries has been changed.
1891
1892 Routing table calculation in the LQ case now uses balanced binary
1893 trees instead of linked lists, which makes look-ups much faster.
1894
1895 The debug output function olsr_printf() is not used by olsrd
1896 internals any more. Instead the macro OLSR_PRINTF is to be used.
1897 This macro does debug level testing _before_ doing any function
1898 calls(both printf itself and parameters to printf). This is a much
1899 more optimized way of doing debug output. In addition olsrd can
1900 be built without any debug output code if doing 'make NODEBUG=1'.
1901
1902 TIMEOUT OF DATASETS
1903
1904 Validity times for dataset entries are now set using the clock_t type
1905 (used to be struct timeval). This data is now fetched from the times(2)
1906 function instead of gettimeofday(2). This prevents possible problems
1907 if the system time is changed.
1908 PLUGIN DEVELOPERS: Note that datatypes for close to all dataset entries
1909 (link, neighbor, mid, hna, tc etc.) has been changed!!
1910
1911 CONFIGURATION FILE
1912
1913 Multiple interfaces can now use the same interface configuration block.
1914 Example:
1915 Interface "if0" "if1" "if2"
1916 {
1917         .....
1918 }
1919
1920 Interface configurations now also support the "Weight" directive. When
1921 olsrd finds multiple links to a neighbor it will choose the link
1922 going via the interface with the lowest weight. Olsrd normally
1923 sets this weight dynamically based on interface characteristics,
1924 but if the user wishes to set a fixed weight in a interface(or
1925 a group of interfaces), this directive is now available.
1926
1927 Moreover, interface configurations now support the "LinkQualityMult"
1928 directive. It takes an IP address and a multiplier as arguments.
1929
1930 Example:
1931
1932 Interface "if0"
1933 {
1934   [...]
1935
1936   LinkQualityMult 192.168.0.1 0.7
1937   LinkQualityMult default 0.5
1938
1939   [...]
1940 }
1941
1942 The idea is to make certain links via the configured interface
1943 artificially worse or better than they really are. The first parameter
1944 specifies the IP address of a neighbour interface. The second
1945 parameter is the multiplier to be applied to the link to the specified
1946 neighbour interface.
1947
1948 After we have derived the link quality from the packet loss among the
1949 packets received from the specified neighbour interface, we multiply
1950 the link quality by the given multiplier. So, the multiplier changes
1951 the LQ value that we use when determining the ETX, which is 1 / (LQ *
1952 NLQ).
1953
1954 If "default" is given as the IP address then the multiplier applies to
1955 all links via the configured interface. Note, however, that olsrd only
1956 assigns one multiplier to each link. It does so in the following way.
1957
1958 * If there is a "LinkQualityMult" line that matches the IP address of
1959   the link's neighbour interface, then use the multiplier in this
1960   line.
1961
1962 * If there isn't any matching line, then look for a "default" line. If
1963   there is a "default" line, then use the multiplier in this "default"
1964   line.
1965
1966 * Otherwise use 1.0, i.e. do not modify the LQ value at all.
1967
1968 Hence, a line with an IP address has priority over a "default" line.
1969
1970 In the above example, the LQ value of the link between the local
1971 interface if0 and the neighbour interface 192.168.0.1 would be
1972 multiplied by 0.7. All other links between the local interface if0 and
1973 a neighbour interface would be multiplied by 0.5.
1974
1975 IPV6 SOCKETS
1976
1977 The socket option IPV6_V6ONLY is now set on IPv6 sockets in linux.
1978 This means that olsrd will no longer receive IPv4 traffic when
1979 running in IPv6 mode.
1980 This should enable users to actually run one olsrd instance using
1981 IPv6 and one using IPv4 at the same time :)
1982
1983 PLUGINS
1984
1985 The httpinfo, dyn_gw and dot_draw plugins now all include olsrd
1986 headerfiles directly. A plugin should define OLSR_PLUGIN before
1987 including olsrd headers. Doing things this way removed the
1988 redundant datatype definitions that has so often caused trouble
1989 when things has been updated in olsrd.
1990
1991 NETBSD SUPPORT
1992
1993 olsrd now also compiles on NetBSD systems. Use 'make OS=nbsd' to
1994 build. This port is not very well tested and feedback is greatly
1995 appreciated.
1996
1997 EXPERIMENTAL MULTI-INTERFACE CODE FOR FREEBSD
1998
1999 Experimental code using libnet can be compiled in allowing multiple
2000 interfaces to be used in FreeBSD.  You enable this by compiling using
2001 OS=fbsd-ll.  You must have libnet-devel installed for this to work
2002 (/usr/ports/net/libnet-devel).
2003
2004 OTHER UPDATES
2005
2006 - WLAN devices are now detected in FreeBSD
2007 - First specified interfaces IP is used as main address.
2008 - Broadcastflag is not checked on interface if fixed broadcast is
2009   set in config.
2010 - Removed Linux link layer code as this was not really in use.
2011 - Added -nofork command line option
2012
2013 BUGFIXES
2014
2015 - Link sensing now works according to announced vtime from
2016   neighbors. Previously links going symmetric->asymmetric
2017   were not necessarily detected until the holding time expired.
2018 - A bug in route addition/removal that could lead to routes
2019   using GWs being added before the actual route to the GW
2020   was set up, has been fixed.
2021 - A bug in the interface selection in route calculation has been
2022   fixed. New routes are no longer added prior to deleting old ones,
2023   since this caused trouble.
2024 - A bug in the IPv6 multicast address configuration has been fixed.
2025   This caused olsrd not to work with global IPv6 addresses.
2026 - A bug in the IPv6 prefix-from IPaddr function has been fixed. This
2027   bug caused HNA prefixes to always be calculated to 0.
2028 - If a 2-hop neighbor is also a 1-hop neighbor, a bug made olsrd
2029   prefer a bad direct link to a better link via an MPR.
2030 - If a link or interface lookup failed, olsrd crashed.
2031 - Fixed a crash in the LQ packet generation code based on a
2032   signed/unsigned integer comparison.
2033
2034
2035 0.4.8 ---------------------------------------------------------------------
2036
2037 LICENSE CHANGE
2038
2039 Olsrd is now distributed under a BSD style license. We believe olsrd will
2040 be better off using this license as it opens up for commercial players
2041 to use olsrd freely in their products. In the end this will lead to
2042 this kind of users doing serious testing and bug fixing of olsrd.
2043
2044 ETX-LIKE LINK QUALITY DETECTION
2045
2046 We can now determine the packet loss on a link by looking at the serial
2047 numbers of the OLSR messages received from a neighbor. This tells us how
2048 many packets get through from our neighbor to us. We use a new extended
2049 kind of HELLO messages (LQ_HELLO messages, LQ = link quality) to broadcast
2050 the link quality that we have determined on our end of the link to our
2051 neighbors. So do our neighbors, and we as well as they end up with an
2052 idea of how good the link is in both directions. From the LQ_HELLOs we
2053 also learn the link quality between our neighbors and our two-hop neigh-
2054 bors. In this way we can select those neighbors as MPRs that have the
2055 best links to our two-hop neighbors. To distribute the link quality
2056 throughout the network, we use a new extended version of TC messages
2057 (LQ_TC messages). They contain the qualities at both ends of each of our
2058 links. Nodes can then run Dijkstra's algorithm to find a path between
2059 themselves and other nodes that minimizes the packet loss.
2060
2061 If the newly introduced "LinkQualityLevel" is set to zero in the
2062 configuration file, link quality is not used and the daemon behaves as
2063 before, i.e. as specified by the OLSR RFC. If this parameter is set
2064 to 1, LQ_HELLOs and LQ_TCs are used instead of HELLOs and TCs, link
2065 quality is measured and MPRs are selected based on the link qualities.
2066 If this parameter is set to 2, the routing table is additionally
2067 calculated based on the link qualities.
2068
2069 Setting "LinkQualityLevel" to a non-zero value BREAKS COMPATIBILITY. You
2070 will then not be able to participate in RFC-conformant OLSR networks
2071 any longer. This is because we use LQ_HELLOs and LQ_TCs instead of HELLOs
2072 and TCs in this case.
2073
2074 It's best practice to set "LinkQualityLevel" to the same value on all
2075 nodes in a network.
2076
2077 When determining the quality of a link olsrd only considers a given
2078 number of most recent OLSR packets received from its neighbors. By
2079 default, olsrd looks at the 10 most recent OLSR packets. This can be
2080 changed via the "LinkQualityWinSize" configuration option. Values
2081 between 3 and 128 are legal.
2082
2083 NEW CONFIGFILE PARSER/FORMAT/SCHEME
2084
2085 A whole new config file syntax and parser is introduced with this
2086 release. The parser is generated using flex and bison and it is
2087 designed to be very modular. The parser can be compiled as either
2088 a standalone binary, a shared library or as part of olsrd. This way
2089 other applications can parse and generate olsrd configuration files
2090 only by linking to the dynamic library.
2091 In the new configfile options can be set pr. interface, plugin
2092 parameters can be set, more IPC options can be set...and more.
2093 The syntax is documented in the olsrd.conf(5) manual page found
2094 in the files/ directory.
2095 Olsrd internals now uses a single struct, as returned by the config
2096 parser, for all configuration in runtime. this means that updating
2097 values in this struct will dynamically update olsrd operation. It
2098 also means that all configuration is now kept in one place instead
2099 of spread all across the place.
2100
2101 FREEBSD AND MAC OSX PORT
2102
2103 This version offers an initial port of olsrd to FreeBSD and Mac OS
2104 X. Like the Windows port it currently does not support IPv6. As this
2105 is a very first try at supporting FreeBSD and Mac OS X, this port is
2106 probably not as reliable as the Linux version. We'd greatly appreciate
2107 feedback and bug reports. To compile you need GNU make. Then simply
2108 run "gmake OS=fbsd" to build the executable.
2109
2110 NEW MAKEFILE(S)
2111
2112 The makefiles used to build olsrd have been rewritten and now includes
2113 dependency file generation using makedep.
2114
2115 DEBUG OUTPUT
2116
2117 Tables are now only printed if changes occur, so there are no longer
2118 any periodical output when using a debuglevel >0. A "heartbeat" is
2119 now printed to STDOUT(if it is a terminal) in the form of a rotating
2120 line to show that olsrd is actually operating.
2121 Adding "ClearScreen yes" to the configuration file clears the screen
2122 each time before the debug output shows updated information. This
2123 makes the debug output easier to read in many cases. "ClearScreen no"
2124 is the default, if no "ClearScreen" directive is given in the
2125 configuration file.
2126
2127 PLUGIN INTERFACE
2128
2129 There are some changes in the plugin interface. It is now at
2130 version 2. Plugin specific parameters from the configfile
2131 using the PlParam option, will now be passed on to plugins.
2132 To receive such parameters a plugin must implement a function:
2133 int
2134 register_olsr_param(char *key, char *value)
2135 to which parameter pairs will be passed.
2136
2137 NO MORE THREADS
2138
2139 Olsrd no longer uses any thread library on its operation. Everything
2140 now happens in the main thread allowing for use of olsrd on platforms
2141 with no thread library.
2142
2143 ACPI SUPPORT IN WILLINGNESS CALCULATION(LINUX)
2144
2145 The willingness calculation for Linux, now also supports the more
2146 modern ACPI proc interface in addition to APM. This is not well
2147 tested and feedback is appreciated!
2148
2149 IPC OPTIONS
2150
2151 Various options regarding IPC connections can now be set in the
2152 configfile. The options are max connections, allowed unicast
2153 hosts and allowed net-ranges.
2154
2155 CODE REWRITES
2156
2157 Much of the message generation and net output code is rewritten.
2158 Sending of partial messages should now work 100%. Also TC, MID
2159 and HNA messages are now cached for a random amount of time
2160 before transmitted - this often leads to the situation where these
2161 messages are sent together with an HELLO message, which is highly
2162 desirable since it saves network resources.
2163 PLUGIN DEVELOPERS must note that the buffers and size variables
2164 used in net output is no longer directly accessible!
2165
2166 NET OUTPUT CODE REWRITTEN
2167
2168 Every interface now has one outputbuffer registered. This allows
2169 messages to be "cached" as explained above, so that multiple
2170 messages are stacked together.
2171 Also the outputbuffer and size are no longer accessible directly,
2172 an API is available to plugins(and olsr code).
2173
2174 OS DEPENDENT NETWORK INTERFACE
2175
2176 The OS dependent network functions are now defined in net_os.h
2177 instead of being mixed up with internal network functions
2178 in net.h.
2179
2180 BUGFIXES
2181
2182 A bug that caused the announced ANSN sequence number to never stop
2183 being increased when a change in the MPR selector set was detected
2184 has been fixed. Another TC related bug that caused timed out TC
2185 entries not to be deleted from the routing table in certain cases
2186 has also been fixed. These bugs could cause unstable routes.
2187 A bug that in many cases caused the wrong routes to be deleted
2188 when using IPv6 has been fixed.
2189
2190
2191 0.4.7 ---------------------------------------------------------------------
2192
2193 NATIVE WINDOWS GUI AND INSTALLER
2194
2195 We now have a native Windows GUI. The GTK+ version is no longer
2196 supported on Windows. The new native GUI is pretty compact as it does
2197 not require the GTK+ runtime DLLs. In addition to monitoring olsrds
2198 state the GUI offers an easy way for novice users to configure
2199 olsrd. It's pretty self-explanatory. Have a look at README-WIN32.txt
2200 for details. The Windows version now also comes with an installer
2201 based on the freely available Nullsoft Scriptable Install System
2202 (NSIS). Looks like the Windows port is becoming more and more
2203 Windows-ish. :-)
2204
2205 WIRELESS INTERFACE DETECTION ON WINDOWS
2206
2207 Like the Linux version the Windows port is now able to tell WLAN
2208 interfaces from wired interfaces. We can now, for example, set
2209 different HELLO intervals for WLAN interfaces and wired interfaces,
2210 respectively.
2211
2212 ROUTE UPDATES
2213
2214 The order of updates of calculated routes is swapped. Now new routes
2215 are added prior to deleting old ones. This could fix issues where
2216 in some very very few cases one could experiment loss of routes.
2217
2218 BUGFIXES
2219
2220 There were quite some bugs in IPv6 operation in 0.4.6. These are
2221 the bugs that were fixed:
2222 - HNA message parsing did not work.
2223 - Some IPv6 addresses were printed as IPv4 addresses in the
2224   debug output.
2225 - The '-dispin' option now works again.
2226 - A filedescriptor leak in the IPv6 interface detection caused
2227   olsrd to crash.
2228
2229
2230 0.4.6 ---------------------------------------------------------------------
2231
2232 WINDOWS PORT!
2233
2234 Read the README-WIN32.txt file!
2235
2236 DYNAMIC NETWORK INTERFACE UPDATES
2237
2238 Network interfaces can now be updated and removed/added at
2239 runtime. Olsrd will check all interfaces specified in the config
2240 file or on the command-line, every 5 seconds. If updates
2241 occur, olsrd will register this and update the necessary data.
2242 If interfaces are removed or added, olsrd will detect this
2243 and configure the interfaces. If an interface is removed
2244 olsrd will continue to check the interface, so if say, a PCMCIA
2245 card is removed and later on reinserted(and given the same name),
2246 olsrd will detect this and start running on it again.
2247
2248 Note that olsrd will now run even if no interfaces are detected.
2249
2250 ROUTE CALCULATION UPDATE
2251
2252 All 1 hop neighbor addresses that are not directly reachable trough
2253 a symmetric link in the link set will now be added with a GW in the
2254 routing table. this GW will be an interface address from a registered
2255 symmetric link to the neighbor.
2256
2257 MID UPDATE
2258
2259 Alias addresses are now registered in the link set processing
2260 if available. This is not to pretty(since the vtime has to
2261 be a mere guess) but it gives faster initial route updates.
2262 If a HELLO is received(at initial registration) from an IP
2263 that is not the same as the one set as main address in the
2264 received HELLO header, then the IP from which the HELLO was
2265 received will be registered as an alias of the main address
2266 set in the HELLO header. The default vtime is set to 15 secs.
2267
2268 CODE RESTRUCTURING
2269
2270 All OS dependent interface configuration code is now located in
2271 OS/ifnet.c(that would be linux/ifnet.c if using GNU/Linux).
2272 The functions are available trough the headerfile src/ifnet.h
2273
2274 CODE CLEANUPS
2275
2276 - Some timer issues fixed
2277 - Got rid of the global socket descriptors
2278 - Updated indexing of network interfaces
2279 - Introduced a global socket to use for ioctl calls(ioctl_s)
2280 - Removed upper limit for interfaces to use
2281 - Point-to-point interfaces are now allowed
2282 - The main select(2) loop now uses a timeout
2283 - A small bugfix in the select fd-set update code
2284 - Some bugfixes in the configuration file parsing
2285 - stdout/stderr are now set to not be buffered
2286 - A bugfix in the MID generation regarding seq. numbering
2287
2288 PLUGIN INTERFCAE
2289
2290 A new set of functions that are called whenever a change in the
2291 interface configuration(update, addition, removal) is made is
2292 introduced.
2293 These functions are added and removed very much like the ptf
2294 functions. Available trough the functions add_ifchgf and del_ifchgf.
2295
2296 OBS OBS OBS!!! PLUGIN DEVELOPERS READ THIS!!!!
2297
2298 The interface struct(declared in interfaces.h) has changed.
2299 Plugin developers must update plugins that uses the interface
2300 struct!
2301
2302 The headerfile olsr_plugin_io.h which contains the plugin interface
2303 commands now contains a revision list where all changes are
2304 stated.
2305
2306
2307 0.4.5 ---------------------------------------------------------------------
2308
2309 PLUGIN: SECURE OLSR
2310
2311 A plugin that generates and checks message signatures is added.
2312 Check lib/secure
2313
2314 PLUGIN: TOPOLOGY GRAPH
2315
2316 A plugin that generates output of the topology in the dot format
2317 is added. See lib/dot_draw
2318
2319 OPTIMIZATIONS
2320
2321 Some optimizations done that should cause fewer route recalculations.
2322
2323 BUGFIXES
2324
2325 Some bugs reported by Takafumi Tanaka fixed.
2326
2327 RESTORATION OF NETWORK SETTINGS
2328
2329 Network settings like disabling of ICMP redirects and spoof filter, are
2330 now restored at exit by olsrd.
2331
2332 RFC COMPLIANCE FIX
2333
2334 Nodes would in certain scenarios retransmit messages originating for
2335 themselves. This was a RFC incompliance. Reported by Ingmar Baumgart.
2336
2337 NON-WLAN TIMERS
2338
2339 No longer setting the HELLO interval of non-wlan interfaces as a multiplier
2340 of the wlan interval. The interval is set seperatly now.
2341 Due to this there are some updates in the configfile imperatives.
2342
2343 CODE CLEANUPS
2344
2345 Some new macros introduced for table insertion and removal and IP
2346 copying and comparison.
2347
2348 FRONT END BUGFIXES
2349
2350 IPv6 bugfixes in the GUI.
2351
2352
2353 0.4.4 ---------------------------------------------------------------------
2354
2355 ROUTE CALCULATION
2356
2357 Routes are no longer added via neighbors declaring a willingness
2358 of WILL_NEVER.
2359
2360 LINK SENSING AND ROUTE CALCULATION
2361
2362 Link sensing and route calculation has been updated to handle
2363 multiple links between hosts in a sane way.
2364
2365 IP SPOOF FILTERING
2366
2367 IP spoof filtering is disabled on the interfaces which olsrd runs.
2368 These settings are not restored!
2369
2370 ICMP REDIRECTS
2371
2372 ICMP redirect message generation is disabled on the interfaces
2373 which olsrd runs.
2374 These settings are not restored!
2375
2376 CONFIGFILE OPTIONS FOR MID AND HNA ADDED
2377
2378 Options to set the MID and HNA emission intervals and
2379 validity time in the configfile added.
2380
2381 IPv6 ADDRESS SCOPE
2382
2383 Option to set what IPv6 address type(scope) to use in the
2384 configfile added. It can be set to either global or site-local.
2385
2386 IPv6 MULTICAST
2387
2388 Options to set site-local and global multicast addresses
2389 in the configfile added.
2390
2391 EMISSION INTERVAL FUNCTION
2392
2393 Functions to set emission intervals at runtime added.
2394
2395 LINK LAYER NOTIFICATIONS
2396
2397 If started with the -llinfo switch olsrd will collect and display
2398 link-layer information on neighbors. This is no longer limited to
2399 one interface. But no action is taken based on this info - and
2400 there is a upper limit of 8 neighbors from which this info can
2401 be collected pr. interface. This limitation is inherited from the
2402 WLAN drivers and is not something imposed by the olsrd code!
2403
2404 IPv6 HNA MESSAGE FORMAT
2405
2406 IPv6 HNA messages now contains 128-bit netmask instead of prefix.
2407
2408 PLUGIN FUNCTIONS
2409
2410 Added "packet transform functions" which allow plugins to alter all
2411 outgoing OLSR traffic.
2412
2413 RESTRUCTURING
2414
2415 Moved most headers out of OS dependent directories. The tunneling
2416 and link-layer notification interface is not yet separated from
2417 the /linux directory.
2418
2419 MANUALPAGE
2420
2421 A manpage(olsrd(8)) describing olsrd has been created. It is installed
2422 when using 'make install'.
2423
2424
2425 0.4.3 ---------------------------------------------------------------------
2426
2427 PLUGIN SUPPORT
2428
2429 Olsrd now supports runtime-loadable plugins! A couple of example plugins
2430 are located in the lib/ directory. Read the README files in the various
2431 plugin directories for more info. A directive to load plugins have been
2432 added to the configfile as well.
2433 Documentation of the plugin interface can be fount at http://www.olsr.org.
2434
2435 The plugin interface is designed to be extendable. But it should _always_
2436 be backwards compatible with the interface used in this release!
2437
2438 LINK-LAYER NOTIFICATION
2439
2440 Some preliminary link-layer notification code has been added. Link quality
2441 can be written to stdout if olsrd is started with the -llinfo switch.
2442 No action is currently taken based on this info. And info will only
2443 be retrieved from the interface named "eth1".
2444 This code is not usable for users as of yet!
2445
2446 MPR UPDATES
2447
2448 Neighbors with willingness set to WILL_ALWAYS is now always added. The
2449 MPR selection is optimized as described in RFC3626 section 8.3.1
2450 point 5.
2451
2452 MPR BUGS
2453
2454 There was a couple of bugs in the MPR selection code. All fixed.
2455
2456 LINUX 2.6 BUG
2457
2458 Users could not run olsrd on multiple interfaces using the Linux 2.6 kernel
2459 series. This is now fixed.
2460
2461 MINOR BUGS
2462
2463 One small bug in link hysteresis initialization and one in HNA route
2464 deletion.
2465
2466 MESSAGE-SEQUENCENUMBER INCOMPLIANCE
2467
2468 Message-seqnos was implemented on a pr. messagetype and pr. interface
2469 basis. This is not RFC3626 compliant and has been updates. All messages
2470 and interfaces now uses a global seuencenumber.
2471
2472 RANDOM SEQUENCENUMBERS
2473
2474 Sequencenumbers are now initialized using a random value.
2475
2476 DAEMON MODE
2477
2478 Fixes for running olsrd in daemon mode(debug 0).
2479
2480 OPTIMIZATIONS
2481
2482 Optimizations based on profiling implemented.
2483
2484 SANITATION
2485
2486 Message size is checked for every message before passing it to the
2487 appropriate message parsing function. If the size is bigger than the
2488 remaining size of the olsr packet then the message is discarded.
2489
2490 GUI FRONT-END
2491
2492 Some minor modifications done to the gui.
2493
2494 INTERNAL CHANGES
2495
2496 Lots of changes in handling of registration and unregistration of
2497 scheduler, socketparser, parser and local hna set.
2498 Some restructuring and movement of functions.
2499
2500
2501 0.4.2 ---------------------------------------------------------------------
2502
2503 No public release
2504
2505 0.4.1 ---------------------------------------------------------------------
2506
2507 No public release
2508
2509 0.4.0 ---------------------------------------------------------------------
2510
2511 LINK HYSTERESIS
2512
2513 Link hysteresis as described in the RFC added.
2514
2515 TC REDUNDANCY
2516
2517 TC redundancy as described in the RFC added
2518
2519 MPR REDUNDANCY
2520
2521 MPR redundancy as described in the RFC added
2522
2523 SCHEDULER REWRITE
2524
2525 The scheduler has been rewritten to register scheduled
2526 events(function pointers) dynamically.
2527
2528 PARSER REWRITE
2529
2530 The parser has been rewritten to register parse functions
2531 on a pr. messagetype dynamically
2532
2533 MALLOC WRAPPER
2534
2535 A wrapper for the malloc(3) syscal has been introduced.
2536 olsr_malloc(size_t, const char *) should ALWAYS be used.
2537
2538 CODE RESTRUCTURING
2539
2540 Lots of restructuring in headerfiles.
2541 Linux spesific code moved to subdirectory linux/
2542 FreeBSD code to be put in freebsd/
2543 LOTS of code restructured due to the rexrite of the scheduler
2544 and parser.
2545
2546 MPR CALCULATION
2547
2548 Optimizing the MPR set as suggested in the RFC section
2549 8.3.1 point 5 added.
2550
2551 BUGFIXES
2552
2553 Some bugs in MPR selection fixed.
2554
2555
2556 0.3.8 ---------------------------------------------------------------------
2557
2558 CODE REWRITES
2559
2560 HNA code completely rewritten!
2561 The old code was really bad! Now it is much cleaner implemented and
2562 should work fine.
2563 One- and two-hop neighbor list structures rewritten. They now use
2564 the same hashed double-linked lists as the rest of the information
2565 sets use.
2566
2567 CODE RESTRUCTURING
2568
2569 Some code restructuring which resulted in the new files: timer.h,
2570 mantissa.c, mantissa.h, hashing.c, hashing.h, linux/net.c
2571 linux/net.h, linux/kernel_routes.c, linux/kernel_routes.h and some
2572 renamed files
2573
2574 BUG FIXES
2575
2576 The bug causing errormessages on exit is fixed.
2577 The bug that caused initial HNA routes in the GUI to display a hopcount
2578 of 0 fixed.
2579 IPv6 HNA netmasks were all added as /128. It's fixed now.
2580
2581 IPv6
2582
2583 Turns out sitelocal address had to be preferred to avoid IPv6 header
2584 messing up link-sensing. Bug fixed
2585
2586
2587 0.3.7 ---------------------------------------------------------------------
2588
2589 CODE REWRITES
2590
2591 The entire TC set and MPR selector set code rewritten. Hashing and
2592 double linked lists added to the MID code.
2593 Lots of HNA code has been rewritten as well.
2594
2595 HNA bugfix
2596
2597 When a node lost connectivity to a HNA GW all HNA entries to that gw
2598 was deleted. This has been fixed - and HNA entries only gets deleted
2599 on timeout now.
2600 Other HNA bugs have been fixed as well. But the whole HNA implementation
2601 needs a rewrite!
2602
2603 Holdingtime BUGfix
2604
2605 There was a bug that caused holdingtime not to be properly recalculated
2606 when using non-default emission intervals.
2607
2608 Forwarding and symmetric neighbors
2609
2610 Seems I had misread the RFC on what a 1-hop symmetric neighbor is.
2611 Now the link-set is checked when a check for a symmetric neighbor
2612 is done. Not the 1 hop neighbor set as it used to be. This way
2613 the hack when receiving MID messages could be removed.
2614
2615 IPv6
2616
2617 Global addresses are now preferred. Sitelocal addresses are only used
2618 if no global addresses are found. There have been problems where
2619 the address set in the IP header of IPv6 packets do not match the
2620 address chosen by OLSR.
2621
2622 GUI - 0.2.5
2623
2624 The GUI is finally updated! It can now handle piggybacked messages
2625 and link sensing HELLO message format.
2626
2627
2628 0.3.6 ---------------------------------------------------------------------
2629
2630 HNA support using IPv6
2631
2632 HNA now works using IPv6 as well! Just add the network address and
2633 prefix in the HNA6 section in the configfile. The IPv6 HNA packets differ
2634 some from the IPv4 as they don't send the netmask but the prefix.
2635
2636
2637 NEW FILENAME FOR THE BINARY AND CONFIG FILE
2638
2639 They are now called olsrd and olsrd.conf. I figured I'd use the olsrd
2640 name before somebody else started using it ;-)
2641
2642
2643 Config file
2644
2645 New options: DEBUG, HNA6 and IPC-CONNECT added to config file.
2646
2647
2648 Output
2649
2650 A printf-wrapper has been introduced - debug level output handling
2651 is much more uniform now.
2652 The daemon should run fine in detached mode now(DEBUG 0)
2653
2654 GUI front-end
2655
2656 The GUI front-end can now connect and disconnect at any time while the
2657 daemon is running, if started using the -ipc switch or with IPC set to
2658 'yes' in the configfile.
2659
2660
2661 BUGS
2662
2663 A small HNA bug fixed.
2664
2665
2666 0.3.5 ---------------------------------------------------------------------
2667
2668 Forwarding jitter
2669
2670 Forwarding jitter added. Messages are piggybacked if they arrive(and are to
2671 be forwarded) while there is data to be forwarded buffered.
2672 Added some bugfixes to support parsing of piggybacked messages as well.
2673
2674 Route calculation
2675
2676 Fixed route calculation so that 2 hop neighbors are added. This smooths
2677 changes from 1 hop to 2 hop neighbor out. The old way one had to wait for
2678 a TC before the 2 hop neighbors were added.
2679
2680 2 hop neighbor set
2681
2682 All neighbors received in HELLO messages are added to the two hop
2683 neighborhood. This helps smoothing out the 1-to-2 hop transition as well.
2684
2685 MID calculation
2686
2687 MID calculation had to be updated due to the registering of two hop neighbors
2688 that are already one hop neighbors. They should not be considered when calculating
2689 two hop coverage.
2690
2691 Optimizations
2692
2693 Deletion of possible one hop neighbors registered on non main-addresses when
2694 first registering MID info from a node removed. This can not occur due
2695 to the fact that registering of neighbor nodes are done on main addresses
2696 from link-sensing
2697 Option to not forward messages on wired links on which they arrived removed.
2698 This is no longer usable to any degree when adding support for piggybacking
2699 of forwarded messages is to be implemented.
2700
2701 Cleanups
2702
2703 Some unused parameters and commandline options were removed.
2704
2705
2706
2707 0.3.3 ---------------------------------------------------------------------
2708
2709 TC MESSAGEING
2710
2711 Added sending of empty TC messages if all MPR selectors are removed. Empty
2712 TC messages are sent for a TC_HOLD_TIME period as described in section
2713 9.3 in the RFC.
2714
2715 HNA
2716
2717 Fixed HNA route calculations for IPv6. I forgot to upgrade this in 0.3.2
2718
2719 OPTIONS
2720
2721 -hnaint and -midint command line optionas added to set the interval
2722 of HNA and MID generation.
2723
2724 FORWARDING
2725
2726 As an optimization messages have not been forwarded on the received interface
2727 if this is registered as a non-WLAN interface. This causes problems for
2728 people using Ethernet-to-WLAN adapters. This optimization is now turned
2729 off by default. It can be activated using the -nofwlan option.
2730
2731 BUGS
2732
2733 THERE ARE SOME NASTY BUGS IN 0.3.2!
2734 Fixed a bug that caused 2 hop neighbors not to time out.
2735 Fixed a bug that caused a 1 hop neighbor timeout not to recalculate
2736 the routing table.
2737 Fixed a small memleak in the MID set
2738 Fixed some smaller bugs.
2739
2740 IPv6 functioning is not well tested in this release.
2741
2742 0.3.2 ---------------------------------------------------------------------
2743
2744 HNA
2745
2746 Updated HNA to be RFC compliant. This means that all received HNA tuples
2747 are registered and only the subset of unique entries(net/netmask) with
2748 the smallest hopcount is inserted into the routing table.
2749
2750 Config file
2751
2752 User can specify configfile name using the -f switch.
2753
2754 Bugs
2755
2756 Fixed a link-sensing bug that caused problems when using MID nodes.
2757
2758 0.3.1 ---------------------------------------------------------------------
2759
2760 MPR calculation
2761
2762 MPR calculation is now based on the willingness announced by nodes.
2763
2764 Neighbor set
2765
2766 The neighbor set does not have timeouts on entries any more. Creation
2767 and deletion of neighbor entries is done from the link-set as suggested
2768 in the RFC.
2769
2770 Cleanups
2771
2772 Gotten rid of a lot of code that became more or less obsolete due to
2773 all the changes introduced in 0.3.0.
2774
2775 Bugs
2776
2777 Fixed a nasty bug concerning the sequence numbering of TC packets.
2778 Fixed some bugs regarding MPR calculation - and probably introduced
2779 a whole new species when implementing the willingness-based calculation ;-)
2780
2781
2782 0.3.0 ---------------------------------------------------------------------
2783
2784 Due to the extensive amount of updates this release is versioned 0.3.0
2785
2786 Duplicate table and forwarding
2787
2788 The duplicate table functionality is totally rewritten in 100% RFC
2789 compliance. The forward algorithm specified in the RFC is implemented
2790 this meant rewriting much of the packet processing code. The daemon
2791 also forwards unknown packettypes now.
2792
2793 Link sensing and neighbor processing
2794
2795 Link sensing and neighbor processing was done in the same operation in the
2796 old code. Link sensing is now a mechanism of its own which is 100% RFC
2797 compliant. Neighbor processing and HELLO generation has been partly
2798 rewritten to be RFC compliant. Neighbors are now registered as either
2799 SYN or NOT_SYM. The NOT_NEIGH, SYM_NEIGH and MPR_NEIGH values are only
2800 used when building HELLO messages. Links are in one of the following states:
2801 UNSPEC_LINK, ASYM_LINK or SYM_LINK.
2802 HELLO messages now advertise link status of neighbors on the interface
2803 the message is transmitted.
2804
2805 Willingness
2806
2807 A node now dynamically calculates willingness based on powersource and
2808 possibly battery power. If the node is AC powered it announces a willingness
2809 of 6. If batterypowered the willingness is calculated as:
2810 P / 26
2811 Where P is percentage of power left.
2812
2813 Configuration file
2814
2815 The daemon now tries to read its configuration from the file /etc/uolsrd.conf
2816 A "standard" configuration file is installed when doing 'make install'.
2817 This file should be edited to fit your needs.
2818 Command-line options can still be used to override the configuration form
2819 the file(ore if no config file is present).
2820 The -f switch can also be used to specify a configuration file.
2821
2822 Willingness
2823
2824 If AdvancedPowerManagemant(APM) is supported on your system the willingness
2825 of the node is dynamically calculated based upon the powerstatus of the node.
2826 MPR calculation based upon willingness is not done as of yet.
2827
2828 TC ANSN
2829
2830 A bugs in the TC processing fixed.
2831
2832 HNA
2833
2834 Some serious HNA bugs fixed. These bugs caused a node to always choos the
2835 gateway with the larges hopcout :) More seriously - a bug caused looping
2836 of HNA messages in certain scenarios.
2837
2838 Package sequence numbers
2839
2840 These were added. Not much use as of now - but they're there(as specified
2841 in the RFC).
2842
2843 Broadcast address
2844
2845 Users can now specify the broadcast address to use. Useful if one wishes to
2846 use the 255.255.255.255 broadcast.
2847
2848
2849
2850 0.2.5 ---------------------------------------------------------------------
2851
2852 Htime and Vtime
2853
2854 Htime and Vtime processing and handling added. Holding times used to be
2855 a static value for all nodes. Now every node can signal its vlidity time
2856 to others.
2857 To achieve this mantissa/exponent calculation functionality was added.
2858 Messages now include Vtime(and Htime in HELLO) values in mantissa/exponent
2859 format instead of just zero. These values are as stated above, used as holding
2860 time for nodes.
2861 the GUI should be upgraded as well...
2862
2863 Jitter
2864
2865 The use of jitter in message generation intervals vere fixed.
2866
2867
2868 0.2.4 ---------------------------------------------------------------------
2869
2870 Seqno bugs
2871
2872 Some bugs concerning sequence numbers in HELLO and MID message handling
2873 was fixed. Newly registered nodes in the neighbor and MID sets were
2874 initialized with a seqno of 0. When using a "wraparound" sequencenumber
2875 check(as defined in olsr_protocol.h) this can produce errors if a new
2876 node joins a network where existing nodes has seqnos >0x00FF.
2877
2878 IPv6 related bugs
2879
2880 Some checks and copying of node addresses where done using sizeof(u_olsr32_t)
2881 which is 32 bits. This caused only the 32 firs bits of IPv6 addresses to
2882 be copied and checked.