CHANGES 13.8 KB
Newer Older
1
3 May 2013: babeld-1.4.0
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15

  * Change the route selection algorithm to used a smoothed metric in
    addition to the "real" metric.  This reduces the amount of route
    flapping without any special case hacks.
  * New flag -r, use a random router-id.  This avoids temporarily
    unreachable nodes after a reboot when persistent storage is not
    available.
  * INCOMPATIBLE CHANGE: the local interface now announces the local
    hostname, and marks the end of the initial route dump.  (Thanks to
    Gabriel Kerneis.)
  * The local interface is now able to accept multiple simultaneous
    connections.
  * Detect BATMAN interfaces, don't assume they are wired.

16 17 18 19 20
2 May 2013: babeld-1.3.6

  * Work around recent Linux kernels advertising the IPv6 route cache
    as if it were part of the routing table.  Thanks to Baptiste Jonglez.

21 22 23 24 25 26 27 28 29 30
12 April 2013: babeld-1.3.5

  * Fix parsing of "channel interfering".  Reported by Gioacchino
    Mazzurco.
  * Correctly reset rp_filter to its old value at shutdown.  Thanks to
    Matthias Schiffer.
  * Work around a race condition that could cause us to fail to notice
    an interface's link-local address, and hence mark all neighbours
    as unreachable.  Reported by Gabriel Kerneis.

31 32 33 34 35 36
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.

37 38 39 40 41 42 43
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.

44 45 46 47 48 49 50
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
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
51 52 53 54 55 56 57 58

  * 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.

59
8 December 2011: babeld-1.3.0
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
60 61 62 63 64 65 66

  * 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.
67 68
  * Rate-limit the reaction to wildcard requests.  This avoids an update
    storm at boot in large networks.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
69 70 71
  * Fixed a bug that prevented usage of the "default" keyword in
    configuration files.

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
72 73 74 75 76
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).

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
77
9 September 2011: babeld 1.2.0
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
78 79 80 81

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

85 86 87 88
27 August 2011: babeld 1.1.4

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

89 90 91 92 93 94 95 96
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).

97
27 July 2011: babeld 1.1.2:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
98 99 100 101 102 103

  * 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).

104
16 May 2011: babeld 1.1.1:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
105

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
106
  * Fixed two bugs in the message parser that could cause IPv4 updates to
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
107 108 109
    get lost.
  * Fixed a bug in the monitoring interface that could cause route ids
    to change (thanks to Gabriel Kerneis).
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
110
  * INCOMPATIBLE CHANGE: the default wired hello interval is now 4 seconds.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
111 112
  * Ported to Bionic libc.

113
30 January 2011: babeld 1.1.0:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
114

115 116 117
  * 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.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
118

119 120 121 122
1 October 2010: babeld 1.0.2:

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

123
2 May 2010: babeld 1.0.1:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
124 125 126

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

127 128 129 130
22 April 2010: babeld 1.0:

  * Minor portability fixes.

131
8 February 2010: babeld 0.98:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
132

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
133 134
  * Implement the ability to prefer Babel routes to external routes
    according to the kernel priority (-A).
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
135 136
  * Implement the ability to redistribute "boot" routes when the protocol
    is explicitly specified on the "redistribute" line.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
137 138
  * Allow trailing whitespace in config file.

139
5 November 2009: babeld 0.97:
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
140

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
141
  * INCOMPATIBLE CHANGE: rename babel.{conf,log} to babeld.*.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
142 143
  * Use getopt for parsing command-line options.

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
144
11 August 2009: babeld 0.96
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
145

146
  * Renamed babel to babeld.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
147 148 149 150
  * Routes are now automatically flushed when an interface goes down or an
    IPv4 address changes, which avoids desynchronisation between Babel and
    the kernel.

151
21 April 2009: babel 0.95
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
152

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
153 154
  * Fixed a bug that broke link-quality estimation, and could cause
    severe instability when we had both good and marginal neighbours.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
155 156 157
  * 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.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
158
  * We no longer obey a silent time at startup, instead sending a bunch of
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
159
    retractions.  The silent time is inconvenient, but seldom useful.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
160 161
  * Updates for routes to self are now sent together with other updates
    (they used to be sent more frequently).
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
162 163 164
  * 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).
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
165
  * INCOMPATIBLE CHANGE: the update interval is now a per-interface value,
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
166 167
    may be configured manually in the configuraton file, and defaults to
    4 times the hello interval.  The -u flag is gone.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
168

169
10 April 2009: babel 0.94
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
170

171 172
  * Fixed a bug introduced in 0.17 that caused recently retracted routes to
    remain until the routing table entry was flushed.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
173 174 175 176
  * Implemented per-interface configuration of parameters such as link
    cost, hello interval etc.  The command-line flags are now only used to
    set defaults.

177
15 March 2009: babel 0.93
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
178 179 180

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

181
21 January 2009: babel 0.92
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
182 183 184 185 186 187

  * 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.

188
10 November 2008: babel 0.91
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
189 190 191 192 193

  * 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.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
194
  * Fixed a bug that would cause multi-hop requests to be spuriously resent.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
195 196
  * Made a number of micro-optimisations throughout.

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
197 198 199 200 201 202 203 204 205 206
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.

207
18 October 2008: babel 0.17
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
208 209

  * INCOMPATIBLE CHANGE: removed support for ``inherit'' in redistribution.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
210
  * INCOMPATIBLE CHANGE: a pidfile is now created by default.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
211
  * Increased the default seqno interval.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
212
  * Use a fixed kernel priority for routes installed by babel.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
213

214
29 September 2008: babel 0.16
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
215 216

  * Tweaked cost computation to be slightly slower.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
217
  * Implemented a local interface for GUIs.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
218
  * INCOMPATIBLE CHANGE: the -X command-line option is no more.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
219

220
8 July 2008: babel 0.15
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
221

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
222
  * Fixed a bug that could break link-quality estimation on yo-yo links.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
223
  * Protect against duplicate neighbour ids on the same interface.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
224
  * More tweaks to improve scaling with the number of kernel routes.
225
  * Tweaked the default update interval.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
226

227
1 July 2008: babel 0.14
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
228 229

  * Use POSIX clocks if available to protect against clock stepping.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
230 231
  * Made babel use available internal routes straight away when the
    set of redistributed routes changes.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
232
  * Lifted the arbitrary limit on the number of kernel routes.
233
  * Changed the routing metric used on wireless links to plain ETX.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
234 235 236
  * Bridges are now automatically detected and treated as potential
    wireless interfaces.
  * Reduced the default hello interval.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
237

238
24 May 2008: babel 0.13
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
239

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
240 241
  * Removed all arbitrary limits (interfaces, neighbours, routes,
    xroutes and sources).
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
242 243 244
  * 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.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
245

246
7 April 2008: babel 0.12
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
247

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

256
29 March 2008: babel 0.11
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
257 258 259 260

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

278
11 March 2008: babel 0.10
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
279

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

301
14 February 2008: babel 0.9
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
302 303 304

  * Implemented a proper configuration language to specify input and
    output filters and redistribution policies.
305
  * INCOMPATIBLE CHANGE: the flags -4, -x and -c are no longer supported.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
306

307
8 February 2008: babel 0.8
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
308 309

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

317
3 January 2008: babel 0.7
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
318 319

  * Implemented support for IPv4.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
320
  * Fixed sending of unicast requests.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
321 322
  * Don't send poison when receiving a request for an unknown route.
  * Basic filtering infrastructure.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
323
  * Removed support for broadcast IHU.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
324
  * Changed the behaviour of -d.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
325

326 327 328 329 330 331
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.

332 333 334 335 336 337 338 339 340
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.

341 342 343 344 345
23 September 2007: babel 0.4

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

346
16 September 2007: babel 0.3
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
347 348 349

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

Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
350 351 352 353 354 355 356 357 358 359 360
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.