X-Git-Url: http://olsr.org/git/?p=olsrd.git;a=blobdiff_plain;f=CHANGELOG;h=c55f12a737cbe0f3eff9bafdff26538fe42d0683;hp=a3c6524cab53b29c0054788d0c6b60687f454260;hb=958eedcfe815f2b552eb39d103bc286160cd64cd;hpb=c3bcf0d059a2e09e1b31e8f97347849642ccd28f;ds=sidebyside diff --git a/CHANGELOG b/CHANGELOG index a3c6524c..c55f12a7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,9 +1,302 @@ This file states changes as of version 0.2.4: -$Id: CHANGELOG,v 1.108 2007/11/03 22:56:07 bernd67 Exp $ + +0.6.1 -------------------------------------------------------------------- + +Bugfix release for 0.6.0 + +Markus Kittenberger +- Major bugfix for the neighbor table when a neighbor gets a new main IP. +- add /interface command to txtinfo, allow multiple commands per request + +Henning Rogge +- wait up to four seconds for aquiring the OLSRd lock. This helps to + shutdown OLSRd with a script and restart it at once (kill is + asynchrone, and kill -w is not available in busybox) +- add md5 has of all source/headers into version string + +Mitar +- lot's of small changes for Android. Slowly Android gets a fully + supported platform for OLSRd. + +and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git +to see a complete history. + +0.6.0 -------------------------------------------------------------------- + +Change in version number system. No more -rcX for release candidates and +-rX for bugfix releases. In future bugfix releases or updates of plugins +will increase the third digit of the version string while feature releases +will increase the first and/or the second one. + +Markus Kittenberger +Henning Rogge +- added NIIT kernel module support for sending IPv4 traffic over + IPv6 mesh networks. See README-Olsr-Extensions for more information. +- added SmartGateway support. OLSRd can now automatically build + IPIP tunnels towards the gateway to prevent gateway flapping. + See README-Olsr-Extensions for more information. +- complete rewrite of linux netlink routing code. New code should be + more understandable and easier to debug/improve. + +Teco Boots +- new dyngw plugin. More flexible and more features. +- new p2pd plugin (generalized mdns plugin) + +Vasilis Tsiligiannis +- new version of quagga plugin (with IPv6 support !) + +Sven-Ola Tuecke +- fixes for improved uClibc support +- fixes for better linux kernel 2.4 support + +Saverio Proto +- new mdns plugin. (backport from master branch) + +Eric Tromps +- new version of bmf plugin. NO pthreads are necessary anymore + +and a lot more small bugfixes. Read GIT changelog at http://olsr.org/git +to see a complete history. + +0.5.6-r8 --------------------------------------------------------------------- + +Alina Friedrichsen +- patch for using deticated output socket for OLSR packages. This allows + to set the src-ip of OLSR packages, which is useful for interfaces + with multiple IPs + +Bruce Ford +- fixes for compiling olsrd for win32 + +Henning Rogge +- fix for memoryleak during MID processing +- patch series for "network logoff" of OLSRd, other nodes now get + notified if an OLSR node switch down to remove it from their database. +- cleanup of naming conventions for settings src/dst-ips of OLSR-packets + for ipv4/6. See example config files. +- patch to ignore HNA4 for IPv6 and HNA6 for IPv4 + +Markus Kittenberger +- patch series for MID handling cleanup +- compiletime switch for txtinfo to always allow localhost access +- add "InterfaceDefaults" section to config files to allow setting values + which are shared by all interfaces but can be overwritten in specific + config file settings +- patch series to allow OLSRd handle multiple config files + (multiple "-f " options) + +0.5.6 --------------------------------------------------------------------- + +PATCHES and BUGFIXES from Henning Rogge +- Bugfix for fragmented TC sequence numbers +- eliminate second timer for edge garbage collection (aka border code). +- fix SPF bug +- fix for jitter calculation +- refactor linkset code +- add netsimpcap, a network simulation device +- parser refactoring +- fix for possible overflow in fpm plugin +- prevent Originator-IP from changing during runtime +- fix several compiler warnings +- fix hanging TC entry from lost onehop neighbor +- fix drop package with same seqno in etx_ff +- fix segfault in parsing HNA package with bad netmask +- fix avl_comparator for route_paths +- fix alignment problem in packet buffers +- fix: segfault in neighbor/neighbor-2 table +- fix: lqmult default parsing +- HACK: MinTCVTime parameter hack for Berlin FF network... + feel free to ask on the mailing list. +- add Watchdog plugin +- add explicit runtime lock for OLSR. +- remove lq-hysteresis for tc on the receiver side. +- enhance protection against malformed packages to prevent + OLSR parsing uninitialized data. Thank you Markus and Keks for the LONG + debugging session +- block tc-redundancy 0/1, it doesn't work with the current dijkstra code +- convert httpinfo/txtinfo/dotdraw to nonblocking and autobuf to + prevent blocking outgoing connections +- fix some bugs with lq-mult +- fix bug in duplicate set sequencenumber handling +- add Debian/KFreeBSD support (Thanks to Holger Levsen and friends for help) +- fix segfault in 'interface lost' monitor +- add LQ hysteresis to etx-ff metric + +PATCH from Markus Kittenberger : +- txtinfo plugin: add more http options +- allow configuration of OLSR UDP port +- allow configuration of proto Tag for Routes (RtProto) +- add fallback policy rule (priority 65536) if RtTable is used, + to ensure that routes can be added to this table +- resolve many error conditions while adding routes to the linux kernel + (Warning this will also delete any conflicting routes made by other routing daemons or admins) +- interface modes mesh (default) and ether (no retransmit of olsr-messages back into a broadcastdomain) +- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X) +- fix several compiler warnings +- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X) +- create policy rule later during startup +- send MID also with one interface, if its ip different from originator-id +- linux rtnetlink code cleanup +- workaround: generate routes to single hop neighbours on the fly when inserting routes via them + (active only with fib_metric=flat) +- testing: insert routes with source-ip set to originator ip +- testing: syslog numbering (e.g. useful to detect lost syslog messages when using remote-syslog) +- testing: custom library path (default /usr/testlib) +Testing features must be activated in olsr_cfg.h before compiling olsrd. +This features are used to run a test network in Vienna parallel to the existing +OLSR network. +- more RT-Netlink cleanups and fixes +- backport of timejump patch from TIP +- Add detection for vanishing interfaces to Linux netlink code +- fix incorret route sorting on new neighbours. use only delete and add/change avl tree, + instead of 3 trees +- learn neighbours interface alias adress from received hellos + +PATCHES from Hannes Gredler : +- add small valgrind howto +- remove the per tc_edge timer +- add some basic infrastructure for cookies + cookies are used to track usage of timer and memory resources +- add a lightweight memory manager to reduce malloc() churn. +- eliminate data field from avl_node and list_node and + replace this via inline recasts +- add indentation dotfile for future code cleanup +- refactor the timer implementation, get rid of timeout functions + all manipulations done in constant time. +- use calloc rather than malloc for lazy callers +- log RIB add/del transactions only if there is an actual route change +- fix to to always insert a HNA Net when receiving a HNA refresh +- fix delete all routes if the last IP address is gone +- reduce TC vtime jitter from 25% down to 5% + +PATCHES and BUGFIXES from Sven-Ola Tuecke : +- add a fixed-point math implementation, which saves + a great deal of CPU on embedded devices +- fix for Link quality dijkstra limit +- nameservice plugin supports mac addresses +- fix fork/restart code +- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X) +- fix several compiler warnings +- fix olsr_times() to handle different OS implementations (Linux, BSD, OS X) +- add makefile support for google android +- fix default olsrd.conf examples + +PATCHES and BUGFIXES from Aaron Kaplan : +- fix openbsd warnings / compile errors about sprintf strcpy +- fix string overflow in dyn_gw plugin +- fix string overflow in pgraph plugin +- fix openbsd/osx coompile errors + +BUGFIX by Peter Tarjan : +- Do not remember LQ information UNSPEC_LINK neighbors in Hellos. +- ignore UNSPEC link for linktype if there is an ASYM/LOST/SYM Link in the + same Hello message +- ignore UNSPEC_LINKS during MPR lookup +- broken MID route handling: we also check the data structures for routing, + even if a MID entry exists. + +BUGFIX by John Hay : +- FIX: IPv6 MTU in BSD +- Another BSD ipv6 Patch by John Hay +- fixes for 64 Bit FreeBSD +- fixes for NetBSD + + +BUGFIX from Erik Tromp : +- update in bmf due to new flags field in tc_edge_entry + +PATCH from Clemens Hopfer : +- dot_draw plugin: close the connection after graph output. + +PATCH from Joe Gio : +- track if AC power is connected/disconnected + +PATCH from Hagen Paul Pfeifer : +- import jenkins hash for good hash calculations + +PATCH from Andres Ambrois : +- nameservice plugin: add parameters for SIGHUPing other daemons, or calling scripts + +BUGFIX by Benny Tops : +- fix wrong order of drop_tc checkt in olsr_input_tc + +Felix (OpenWRT NBD): +- fix bison problem for OpenWRT + +Sebastian Harl: +- add LISTEN parameter for httpinfo/txtinfo/dotdraw 0.5.5 --------------------------------------------------------------------- -BUGFIX by Hannes Gredler fixing not deleted tc entry. +BUGFIX from Andreas Jacobs : +- calculate correct sleeptime + +BUGFIX from Dario Borriello : +- do not update LQ if not configured + +BUGFIX from Jo-Philipp Wich : +- compile clean on FreeBSD +- bugfix: do not account for IP headers when building MID6 messages + +PATCHES from Henning Rogge : +- join LQ and non-LQ Hello execution paths + +PATCHES from otti : +- rttable-default: configures a new policy routing table for the default route + +BUGFIXES and PATCHES by Sven-Ola Tuecke : +- Windows Vista: add interface metric to SPF computed metric +- lqtc-seqno: Optimize check for old seqno numbers in LQTC messages +- lqnatthresh: maintain an advantage for the current (NAT) inet gw +- fisheye-startup: Changed to MAX_TTL for the first 32 LQTCs +- Added and removed files necessary for win32 compile +- Fix for hg: do not remove anything in .hg with 'make uberclean' +- 104-olsrd-verysmallfix +- 105-fix-lq-buffer-quirks +- 106-fix-seqnocheck +- 110-bmf-v152 +- 121-olsrd-fib-metric-approx +- 133-fix-lqneigh +- 136-optimize-invalidip-check +- 138-optimize-message-generation + +BUGFIX from Lorenz Shori : +- Mac OSX compile fixes + +BUGFIXES and PATCHES by Hannes Gredler +- fix not deleted tc entry. +- avoid setting routes with an invalid/impossible netmask. +- refactoring of TC parsing to kill another pile of malloc()/free()s + saving (again) code and especially run.time performance. +- RIB Refactoring, Part 2: + - avoid the periodical rib-tree insertion + - add a FOR_ALL_HNA_RT_ENTRIES() macro for the snmp folks + (or any parties who want to walk HNA entries). + - add an olsr_cnf option 'flat_fib_metrics' which defaults to TRUE. +- fix broken prefix insertion (regression of the RIB refactoring) +- squelsh compiler warnings on Mac OSX + +PATCH by John Hay : +- also printout our own HNAs in the dotdraw plugin. + +PATCH by Patrick McCarty : +- fixed compile errors in the BSD port + +PATCHES by Sven-Ola Tuecke : +- 102-olsrd-cvs-fixes.patch: use different buffers in the same printf() +- 103-olsrd-rt-exportroute-cleanup.patch: avoid a malloc()ed list of functions +- 132-save-the-fish.patch: really save the fish and avoid to forward invalid + messages from older olsrd versions +- 135-georss-map-for-nameservice.patch: fixes and extensions for the namesaervice plugin +- 138-olsrd-fixdotdraw.patch: fix the dot_draw plugin +(all to be found on http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/) +- Replaced "which" with a /bin/sh script snippet PATCHES and CLEANUPS by Bernd Petrovitsch - Jens Nachtigall suggested (and reminded) to use @@ -37,6 +330,107 @@ PATCHES and CLEANUPS by Bernd Petrovitsch And use them everywhere. - added http://meshcube.org/nylon/utils/olsr-topology-view.pl into lib/httpinfo/misc as suggested by Jens Nachtigall +- Killed "struct olsrd_config *cnf" in src/cfgparser/olsrd_conf.h and replaced + it's usage with "olsr_cnf" from src/defs.h. + Serious cleanup: olsrd_get_default_cnf() does no longer initialize the global + "cnf" variable" but uses a local one which is returned as before. And + olsrd_parse_cnf() does no longer return the global variable it is working on. +- Merged "struct hna4_entry" and "struct hna6_entry" into + "struct local_hna_entry" (as "struct hna_entry" is a different thing) + Both have almost the same data (IP address + netmask/prefix) so we use + the quite new "struct olsr_ip_prefix" to store it. + Also merged the "hna4" and "hna6" pointer in "struct olsr_config" - + look at the global "olsr_cnf->ip_version". +- added a olsr_ip_prefix_to_string() function +- .h file cleanup: def.h does not longer include net_olsr.h because it + doesn't needs it. +- more type safety: the macros COPY_IP() and COMP_IP are gone and replaced + with "=" or similar "normal" C operations. There are also now the inline + functions ip4cmp() and ip4equal() to work on "struct in_addr", ip6cmp() + and ip6equal() to work on "struct in6_addr" and ipcmp() and ip6equal() + to work on "union olsr_ip_addr". + Most (or even more precise: almost all) uses of COPY_IP() and COMP_IP() + are in "if (olsr_cnf->ip_version) { ... } else { ... }" anyway to + there is no reson to copy an IPv4 address effectively with + "memcpy(&dst, &src, 4)" or compare with memcmp(&a, &b, 4)" wher the + always "4" is stored in a variable inhibiting compiler optimization. + There is also the deprecated function genipcopy() mimicking the old + typeless COPY_IP() macro for the last few places where a cleanup is + needed anyways. + There also lots of old macros left over (commented out of course) until + we are confident that everything works. And then I will kill them too. +- Fixed the misleading definition of "v4" in "struct olsr_ip_addr" fom + "olsr_u32_t" (in network-byteorder!) to "struct in_addr". Lots of + temporary variables to call inet_ntoa()/inet_ptoa() vanished ..... +- We have now ip4_to_string(), ip6_to_string() and olsr_ip_to_string() + to print a "struct in_addr", "struct in6_addr" and "union olsr_ip_addr" + into a string buffer. +- cleanup: olsr_ip_to_string() and similar non-reentrant functions now must + get a target buffer. To ease that, there is the "struct ipaddr_str" + which is large enough for all of them (read: for an IPv6 address). This + also removes the cyclic buffer there. + All of these function return a "const char *" which can be directly used + for printf(3) and friends. +- const'ified more functions +- converted the source to UTF-8. +- "struct sig_msg" uses an olsr_u8_t for a byte array (and not "char") +- force the few inline function to always be inlined. +- #ifdef the body of the olsr_print_hna_set() and olsr_print_neighbor_table() + if nothing is done +- declare "int_addr", "int_netmask" and "int_broadaddr" in "struct interface" + as "struct sockaddr_in" since it is that what we actually want there (and + it is similar to the IPv6 code). +- updated the olsrd.conf.default.lq-fisheye to the Debian-deliverd version + after recent discussions olsr-dev@olsr.org +- use "inline_avl_comp_ipv4()" in "avl_comp_ipv4()" +- clean up the routes on more signals. Basically we want to do this on all + signals which terminate the program. +- killed a superflous global buffer in src/main.c +- made inline functions from avl_walk_{first,last,next,prev} and created + "const" versions of it. inline_avl_comp_ipv4() is now also an inline function + (and not a macro) +- created a typedef's for various function pointers - much easier to read. +- cleanup: compare tree->comp (adn other pointers)) to NULL (and not 0) +- killed superflous "return"s at the end of void functions +- const'ified more parameters in many more functions in the .h and + .c files +- init-functions with constant or ignored return values are "void" +- created a typedef fro the callback in "struct export_route_entry" + and using it! +- moved the initialization of the {add,chg,del}_kernel_list variables + into process_routes.c. So they are now "static" there. +- olsr_export_{add,del}_route{,6} are now static in process_routes.c + since they are not used elsewhere. +- olsr_addroute_add_function() and olsr_deldroute_add_function() were + almost identical - made one function out of it. + Same for olsr_addroute_del_function() and olsr_deldroute_del_function(). +- fixed the sort order in avl_comp_ipv4_prefix(): We compare now the IPv4 + values in host byte order (and not network byte order). So the route + list in the e.g. httpinfo plugin is now nicely sorted. +- fixed and improved the `gcc-warnings` script: + * support older gcc's (as on Debian/Sarge) as they have slightly different + error messages + * removed superflous lines + * replaced the call of `sed` with shell built-in features fixing syntax + errors on Debian/Sarge + * set all locale-relevant variables to "C" (just to be sure) +- consolidated ip{4,6,}{cmp,equal}: all are nwo inline functions using only + the minimal necessary operations. Thanks to Hannes Gredler + and Sven-Ola Tuecke for pointing + that out and suggesting the `inline`, respectively. + use ip{4,}cmp in lq_avl.[ch] to resue the code. inline_avl_comp_ipv4 + is superflous now (and replaced by ip4cmp) and use the global MIN and MAX + macro instead of AVLMIN and AVLMAX +- killed netmasks from the IPv4 part of the code and use the prefixlen there + (similar to thte IPv6 part). Manymore details on + http://lists.olsr.org/pipermail/olsr-dev/2007-November/001464.html +- removed the superflous "open_ipc" field from the "struct olsrd_config" as + it contains only the equivalent of "olsr_cnf->debug_level > 1". +- inspired by Sven-Ola Tuecke: avoid a bash'ism (i.e. "OPTS="${OPTS//$opt}") in + gcc-warnings and ld-warnings. But we do not replace it with `sed` (since it + costs a fork(2) and an exec(3)) but also with shell code which doesn't use + any external program. +- added configuration file support for "flat fib metrics". 0.5.4 ---------------------------------------------------------------------