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