CHANGES 12.6 KB
Newer Older
Jondy Zhao's avatar
Jondy Zhao committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
8 August 2012: babeld-1.3.4

  * Disable atomic route changes on Linux; this used to cause stuck
    unreachable routes on non-multipath kernels.
  * Improve error checking in command-line and configuration parser.

12 July 2012: babeld-1.3.3

  * More fixes to IPv4 support on BSD -- pure meshes are now
    supported.
  * Fixed a very rare bug where an unfeasible route could be
    selected.

30 June 2012: babeld-1.3.2

  * INCOMPATIBLE CHANGE: removed parasitic mode (-P).
  * Fixes to IPv4 support on BSD.
  * More reduction to the rate of sending requests.  

11 February 2012: babeld-1.3.1

  * Made the resend logic less aggressive.  This should lead to fewer
    request messages upon link failure, at the cost of somewhat worse
    behaviour in the presence of heavy packet loss.
  * INCOMPATIBLE CHANGE: removed the idle detection functionality (-i).
    This feature was little used and complicated the code somewhat.
  * Various internal tweaks to bring babeld closer to the Quagga version.

8 December 2011: babeld-1.3.0

  * Made the route table into a sorted array, and use binary sort for
    searching for routes.  This makes most route operations O(log n), at
    a slight cost in memory usage.
  * Changed the update sending strategy to use buffers large enough for
    a full update.  This makes the duplicate suppression mechanism
    effective in large networks, at a small cost in memory usage.
  * Rate-limit the reaction to wildcard requests.  This avoids an update
    storm at boot in large networks.
  * Fixed a bug that prevented usage of the "default" keyword in
    configuration files.

16 October 2011: babeld-1.2.1

  * Fixed an incorrect assertion that would cause a crash when -w was
    being used (reported by Thomas McLure).

9 September 2011: babeld 1.2.0

  * Merged the interference-aware branch ("babelz").  Please see the
    "-z" flag in the manual page.
  * Fixed a memory leak when expiring resent messages.
  * Fixed a buffer overflow when parsing MAC addresses (Matthieu Boutier).
  * Implemented MAC address parsing for BSD (Matthieu Boutier).

27 August 2011: babeld 1.1.4

  * Change the default port number to 6696, as allocated by IANA.

3 August 2011: babeld 1.1.3

  * Implemented an option -u to keep unfeasible routes; this is useful
    for giving more data to front-end interfaces.
  * Fixed a number of minor bugs in the front-end interface.
  * Fixed incorrect handling of interfaces with multiple link-local
    addresses (thanks to Matthieu Boutier).

27 July 2011: babeld 1.1.2:

  * Changed the strategy used to tweak an installed route in a way that
    should avoid packet loss (thanks to Dave Taht).
  * Fixed the handling of duplicate interface definitions in the config
    file (thanks to Matthieu Boutier).

16 May 2011: babeld 1.1.1:

  * Fixed two bugs in the message parser that could cause IPv4 updates to
    get lost.
  * Fixed a bug in the monitoring interface that could cause route ids
    to change (thanks to Gabriel Kerneis).
  * INCOMPATIBLE CHANGE: the default wired hello interval is now 4 seconds.
  * Ported to Bionic libc.

30 January 2011: babeld 1.1.0:

  * INCOMPATIBLE CHANGE: the UDP port number and multicast group have
    been changed to be the ones allocated by IANA.
  * Initial port to OpenBSD, by Vincent Gross.

1 October 2010: babeld 1.0.2:

  * Worked around a gcc bug that would cause assertion failures on MIPS.

2 May 2010: babeld 1.0.1:

  * Fixed a bug that could cause input filters to be ignored.

22 April 2010: babeld 1.0:

  * Minor portability fixes.

8 February 2010: babeld 0.98:

  * Implement the ability to prefer Babel routes to external routes
    according to the kernel priority (-A).
  * Implement the ability to redistribute "boot" routes when the protocol
    is explicitly specified on the "redistribute" line.
  * Allow trailing whitespace in config file.

5 November 2009: babeld 0.97:

  * INCOMPATIBLE CHANGE: rename babel.{conf,log} to babeld.*.
  * Use getopt for parsing command-line options.

11 August 2009: babeld 0.96

  * Renamed babel to babeld.
  * Routes are now automatically flushed when an interface goes down or an
    IPv4 address changes, which avoids desynchronisation between Babel and
    the kernel.

21 April 2009: babel 0.95

  * Fixed a bug that broke link-quality estimation, and could cause
    severe instability when we had both good and marginal neighbours.
  * We now send retractions after a redistributed route is retracted.
  * Fixed a bug that could cause reliable messages (retractions and
    router-id switches) to only be sent twice.
  * We no longer obey a silent time at startup, instead sending a bunch of
    retractions.  The silent time is inconvenient, but seldom useful.
  * Updates for routes to self are now sent together with other updates
    (they used to be sent more frequently).
  * Fixes the configuration parser to interpret hello-interval as a number
    of seconds, as specified in the documentation (it used to be interpreted
    as a number of milliseconds).
  * INCOMPATIBLE CHANGE: the update interval is now a per-interface value,
    may be configured manually in the configuraton file, and defaults to
    4 times the hello interval.  The -u flag is gone.

10 April 2009: babel 0.94

  * Fixed a bug introduced in 0.17 that caused recently retracted routes to
    remain until the routing table entry was flushed.
  * Implemented per-interface configuration of parameters such as link
    cost, hello interval etc.  The command-line flags are now only used to
    set defaults.

15 March 2009: babel 0.93

  * No longer update seqno periodically, rely on explicit seqno requests.

21 January 2009: babel 0.92

  * Fixed a bug that could cause a crash if an interface was repeatedly
    brought down and then back up.
  * Implemented some protection against time stepping when POSIX clocks are
    not available.

10 November 2008: babel 0.91

  * Maintain buffered updates per-interface, which makes multi-interface
    nodes significantly less noisy.
  * Changed the strategy for dealing with unfeasible routes to be slightly
    more generous while still avoiding loops.
  * Fixed a bug that would cause multi-hop requests to be spuriously resent.
  * Made a number of micro-optimisations throughout.

23 October 2008: babel 0.90

  * INCOMPATIBLE CHANGE: all new Babel version 2 protocol, which is both
    more robust and less chatty than version 1.
  * Tweaked the strategies for sending triggered updates and unfeasible
    requests to be more conservative.
  * Minor optimisations all over the place.
  * Removed the protocol specification -- the version 2 spec is maintained
    separately.

18 October 2008: babel 0.17

  * INCOMPATIBLE CHANGE: removed support for ``inherit'' in redistribution.
  * INCOMPATIBLE CHANGE: a pidfile is now created by default.
  * Increased the default seqno interval.
  * Use a fixed kernel priority for routes installed by babel.

29 September 2008: babel 0.16

  * Tweaked cost computation to be slightly slower.
  * Implemented a local interface for GUIs.
  * INCOMPATIBLE CHANGE: the -X command-line option is no more.

8 July 2008: babel 0.15

  * Fixed a bug that could break link-quality estimation on yo-yo links.
  * Protect against duplicate neighbour ids on the same interface.
  * More tweaks to improve scaling with the number of kernel routes.
  * Tweaked the default update interval.

1 July 2008: babel 0.14

  * Use POSIX clocks if available to protect against clock stepping.
  * Made babel use available internal routes straight away when the
    set of redistributed routes changes.
  * Lifted the arbitrary limit on the number of kernel routes.
  * Changed the routing metric used on wireless links to plain ETX.
  * Bridges are now automatically detected and treated as potential
    wireless interfaces.
  * Reduced the default hello interval.

24 May 2008: babel 0.13

  * Removed all arbitrary limits (interfaces, neighbours, routes,
    xroutes and sources).
  * Fixed a bug that prevented expiration of stale sources.
  * Updated the kernel interface to work with recent Linux kernels.
  * More tweaks to the order in which updates are sent.

7 April 2008: babel 0.12

  * Retractions are now sent multiple times, which should speed up
    convergence in presence of packet loss.
  * Optimised the sending of updates to make them smaller.
  * Don't forward requests multiple times; this should reduce the
    noise due to requests with no increase in convergence time.
  * Fixed a bug that could cause a crash when resending requests.
  * Added some protection against clock stepping.

29 March 2008: babel 0.11

  * Implemented sub-second hello and update intervals.
  * Fixed a bug that could prevent the best route from being selected
    for extended periods of time.
  * Implemented protection against out-of-date requests being sent and
    forwarded when a node loses its sequence number.
  * INCOMPATIBLE CHANGE: reduced the cost of wired networks down to 96
    from 128.
  * Tweaked the frequency at which a router's seqno increases, to make
    it more likely that a feasible route will be available when needed.
  * Implemented garbage collection of old sources.
  * Implemented coalescing of unicast messages.
  * Fixed a bug that could cause a crash when a link's MTU changes.
  * Fixed a bug that could delay noticing that a network is no longer
    idle when running Babel with the -i flag.
  * Fixed a bug that could cause incorrect metrics to be advertised
    when output filtering was used.
  * Fixed a bug that could cause incorrect link costs to be computed when
    a neighbour reduces its hello interval.
  * Fixed some minor issues with the ordering of outgoing messages.

11 March 2008: babel 0.10

  * Implemented the ability to automatically export local addresses (see
    the ``local'' keyword in redistribute specifications).  This should
    avoid the need to explicitly specify -X on the command line
    (Julien Cristau and Juliusz Chroboczek).
  * INCOMPATIBLE CHANGE: local routes (local interface addresses) are
    now exported by default.  Specify ``redistribute local deny'' to
    avoid that.
  * Babel will now automatically choose a router id if none is
    specified on the command line.
  * Automatically adapt to interfaces appearing or disappearing at runtime,
    as is usually the case when running over tunnels or VPNs.
  * Changed the link quality computation algorithm to not discard very
    lossy links.
  * Multi-hop requests will now be forwarded to an unfeasible successor
    under some circumstances.
  * Send multi-hop requests more aggressively.
  * Send requests for a new seqno upon receiving an unfeasible update
    if it's better than what we have.
  * No longer consider the age of routes in route selection.
  * Added ability to run as a daemon.

14 February 2008: babel 0.9

  * Implemented a proper configuration language to specify input and
    output filters and redistribution policies.
  * INCOMPATIBLE CHANGE: the flags -4, -x and -c are no longer supported.

8 February 2008: babel 0.8

  * Babel will now automatically check for interfaces' up/down status,
    IPv4 address, and optionally for carrier sense.
  * Implemented the -w option, which disables all optimisations for
    wired interfaces.
  * Implemented support for non-default routing tables.
  * Fixed a bug that could spuriously remove IPv4 routes (thanks to
    Julien Cristau).

3 January 2008: babel 0.7

  * Implemented support for IPv4.
  * Fixed sending of unicast requests.
  * Don't send poison when receiving a request for an unknown route.
  * Basic filtering infrastructure.
  * Removed support for broadcast IHU.
  * Changed the behaviour of -d.

16 October 2007: babel 0.6

  * Implemented resending of unsatisfied requests, with exponential backoff.
  * Fixed a potential crash in the request handling code.
  * Send IHUs more aggressively.

9 October 2007: babel 0.5

  * Implemented forwarding of requests and replies.
  * Fixed a bug that prevented requests from being parsed correctly.
  * Fixed a bug that prevented IHU intervals from being sent.
  * Respect reboot_time even after an id change.
  * Deal with neighbours rebooting and losing their hello seqno when
    computing link quality.

23 September 2007: babel 0.4

  * Fixed incorrect expiration of old sources.  This could prevent
    convergence in some cases.

16 September 2007: babel 0.3

  * Fixes to Mac OS X support (Grégoire Henry).

29 August 2007: babel 0.2

  * Made jitter computation depend on how urgent a given message is.
    This dramatically improves convergence speed, without increasing
    network load.
  * Fixed a bug that prevented neighbour associations from being
    discarded at shutdown.

22 August 2007: babel 0.1

  * Initial public release.