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