[Olsr-cvs] olsrd-current CHANGELOG,1.79,1.80

Bernd Petrovitsch (spam-protected)
Wed Sep 5 18:32:48 CEST 2007


Update of /cvsroot/olsrd/olsrd-current
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28053

Modified Files:
	CHANGELOG 
Log Message:
* added blurb for the changelog

Index: CHANGELOG
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/CHANGELOG,v
retrieving revision 1.79
retrieving revision 1.80
diff -C2 -d -r1.79 -r1.80
*** CHANGELOG	29 Aug 2007 23:17:13 -0000	1.79
--- CHANGELOG	5 Sep 2007 16:32:46 -0000	1.80
***************
*** 7,12 ****
--- 7,88 ----
  updated to svn version 33
  
+ PATCH by Hannes Gredler <(spam-protected)> which rewrites the route handling.
+ To quote him:
+ ----  snip  ----
+ change list:
+ - get rid of separate routing tables for HNA and per-node routes, everything is
+   now unified in an AVL routing tree (&routingtree)
+ 
+ - introduce walking macros (OLSR_FOR_ALL_RT_ENTRIES()) that hide the internal
+   structure of the RIB for making life of the plugin authors easier.
+ 
+ - get rid of different SPF implementations for LQ and non-LQ code paths. a
+   non-LQ edge is simply substituted with a cost of 1.0
+ 
+ - get rid of host masks - a new data type olsr_prefix is introduced which is
+   basically an ip address plus a prefix length.
+ 
+   do not install the metric in the kernel FIB - for the kernel its pointless
+   if the route gets installed with a metric of N or M.
+ 
+   we do not need to update the kernel FIB if we have hop count only changes
+   (for example if there is a reroute action further downstream)
+ 
+   the only things which triggers a kernel FIB route update is a next hop
+   change (a next hop is neighboring gateway router plus an interface).
+ 
+   all OLSR routes are installed with a metric of 2
+ 
+ - separate between rt_entry and rt_path - the former is a route installed in the
+   kernel with an next hop. the latter is a candidate for best path selection
+   after SPF calculation has been done. in the rt_entry we keep a pointer to the
+   best_path and also to the next hop that was installed in the kernel FIB.
+ 
+   we always keep all originator of a route, if a route originator goes away we
+   can easy recompute the best path for the route.
+ 
+   the next hop in the rt_entry gets only updated upon a successful route_add
+   call - that way we always remember what next hop to delete.
+ 
+   stray routes should be history now.
+ 
+ - tweak the linked list toolkit to operate on circular lists.
+ 
+ - get rid of malloc calls for building the kernel update list. the list node is
+   now embedded in the rt_entry.
+ 
+ - introduce three queues (add/chg/del) for kernel updates.
+ 
+ - for neighbor route dependency tracking the neighbor routes are queued first or
+   last (depending on which queue you work on)
+ 
+ - rework all the plugins which directly manipulate rt entries.
+ 
+ - rework the plugins that read from the routing table (most notably nameserver,
+   httpinfo and quagga plugin)
+ 
+ - lots of comments that explains the intentions and purpose of this code-piece.
+ 
+ non RT related stuff:
+ - use a list rather than a tree for storing the post-SPF results, which further
+   improves the raw-SPF runtime.
+ 
+ - add display of SPF runtime (masked behind #ifdef SPF_PROFILING)
+ ----  snip  ----
+ And Sven-Ola Tuecke <(spam-protected)> fixed an instability issue on interface
+ up/down operations (see 102-olsrd-rt-refactoring-fixes.patch below).
+ 
  PATCHES by Sven-Ola Tücke to be found on from
  http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
+ - 102-olsrd-rt-refactoring-fixes.patch
+   Because you changed a lot of basics: It's time to handle a general
+   flaw in the routing system. Plase take a look at chk_if_changed(). This
+   will free() any "struct interface" pointer without warning at any time.
+   This is why it's possile to SEGV olsrd with a simple "ifdown xxx". 
+   The patch replaces the (maybe) invalid pointer with an index reference
+   "iif_index". You can always ask the OS for a name. Please note, that I do
+   not have a working BSD toolchain, so I've placed an #error in the IPv6
+   BSD-part where the author/porter has started to hack something funny.
+ 
  - 110-olsrd-double-wlancard-neigh-hack.patch:
    This is a hack for Nodes having to wifi cards with the same channel,
***************
*** 26,31 ****
    This is a new one. Opens a packet socket and listen to UDP(698), extract
    the sender MAC and refreshes the ARP cache whith that. Should speedup
!   especially in cases, if you initially try to use a longer routing path which normally
!   triggers a "ARP-Lookup-Chain".
  - 106-olsrd-nameserviceparams.patch:
    This patch converts more plugins to the new interface version.
--- 102,107 ----
    This is a new one. Opens a packet socket and listen to UDP(698), extract
    the sender MAC and refreshes the ARP cache whith that. Should speedup
!   especially in cases, if you initially try to use a longer routing path which
!   normally triggers a "ARP-Lookup-Chain".
  - 106-olsrd-nameserviceparams.patch:
    This patch converts more plugins to the new interface version.
***************
*** 115,120 ****
  Sven-Ola Tuecke <(spam-protected)>
  
! added the spf refactoring patch from  Hannes Gredler <(spam-protected)> whicht saves
! a noteworthy amount of CPU time. To quote him:
  ----  snip  ----
  1. use of an AVL tree as a min-heap implementation
--- 191,196 ----
  Sven-Ola Tuecke <(spam-protected)>
  
! added the spf refactoring patch from  Hannes Gredler <(spam-protected)> which
! saves a noteworthy amount of CPU time. To quote him:
  ----  snip  ----
  1. use of an AVL tree as a min-heap implementation





More information about the Olsr-cvs mailing list