File: CHANGES

package info (click to toggle)
babeld 1.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 644 kB
  • sloc: ansic: 11,136; sh: 109; makefile: 44
file content (570 lines) | stat: -rw-r--r-- 23,268 bytes parent folder | download
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
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
20 August 2019: babeld-1.9.1

  * Fixed a crash that could happen when unicast and RTT estimation are
    both enabled on an interface.  Thanks to Dave Taht.
  * Fixed compilation under BSD.  Thanks to Dave Taht.

4 August 2019: babeld-1.9.0

  * Reworked buffering of unicast packets to use a per-neighbour buffer
    rather than a single buffer per interface.  This makes unicast as
    efficient as multicast, at the cost of slightly higher memory usage.
  * Added option "unicast" that allows sending most TLVs over unicast.
    This is necessary for the DTLS extension.
  * Implemented parsing of unicast Hellos.  This makes it possible to
    interoperate with neighbours that only speak unicast (e.g. over some
    kinds of tunnels that only do unicast).
  * Implemented sending of unscheduled unicast Hellos.  This makes the
    RTT extension work over unicast too.
  * Reworked the xroute data structures to use binary search and
    linear-time comparison.
  * Don't attempt to modify the rp_filter sysctl if it already has the
    desired value; this makes it possible to run babeld in an
    unpriviledged container.  Thanks to Christof Schulze.
  * Reinstated logging of late hellos.  Thanks to Dave Taht.
  * Don't send wildcard requests or Hellos to newish nodes.  This makes
    acquisition of new neighbours slower, but drastically reduces noise at
    startup.  Thanks to Teco Boot.
  * Remove an arbitrary limit on the number of interfaces.  Thanks to
    Christof Schulze.
  * Removed class E from martian filter.  Thanks to Dave Taht.
  * Added the ability to set the preferred source address in install filters.
    Thanks to Killian Lufau.
  * Fixed a number of read-only buffer overflows.  Thanks to Leo Stefanesco.

22 July 2019: babeld-1.8.5

  * Fixed a bug that caused confustion between learned routes and
    imported routes (thanks to Fabian Bläse).
  * Fixed a bug that prevented install filters from being evaluated
    (thanks to Killian Lufau).

9 November 2018: babeld-1.8.4

  * Fixed a bug that discarded pipelined commands received on the local
    configuration interface.
  * Added the per-interface option rfc6126-compatible.

24 September 2018: babeld-1.8.3

  * Fixed a read-only two byte buffer overflow in the packet parser.
    This is a read-only overflow, and hence most probably not exploitable.
  * Fixed an issue with creating unreachable routes on recent kernels
    (4.16 and up).  Thanks to Christof Schulze.
  * Notice interface changes faster by listening to more netlink events.
    Thanks to Christof Schulze.
  * Fixed a local interface issue when an interface has no link-local
    address.  Thanks to Christof Schulze.

12 May 2018: babeld-1.8.2

  * Fixed a bug that prevented redistribution of IPv4 routes.  Thanks to
    Niklas Yann Wettengel.

7 April 2018: babeld-1.8.1

  * Implemented parsing of mandatory sub-TLVs and unicast and unscheduled
    Hellos.  This makes this version comply with RFC 6126bis.  However, we
    don't send any of these yet, so this version remains compatible with
    RFC 6126.
  * Fixed a bug that prevented us from sending requests after we lose
    a route.  This makes convergence much faster in some cases, at the
    cost of slightly increased traffic.
  * Fixed interface addresses on some kinds of point-to-point links.
  * The keep-unfeasible (-u) option has been removed, this is now the
    default behaviour.

6 December 2016: babeld-1.8.0

  * Added the ability to reconfigure babeld dynamically from the
    monitoring interface.  This is an incompatible change.
  * Changed the configuration language to use an enumerated type instead
    of the "wired" boolean.  This is an incompatible change.
  * Setting max-rtt-penalty no longer enables timestamps.  This is an
    incompatible change.
  * Added PF_UNIX support to the local interface.  Thanks to Julien Cristau.
  * Made it possible to have a 0 channel number within the diversity extension,
    which is consistent with draft-chroboczek-babel-diversity-routing-01.
  * Fixed a bug (introduced in 1.7.0) that could cause spurious policy
    rules to be created in the kernel.  Thanks to Matthieu Boutier.

14 February 2016: babeld-1.7.1

  * Fix compilation under musl.  Thanks to Gabriel Kerneis.

3 February 2016: babeld-1.7.0

  * Added the ability to choose the kernel routing table on a per-route
    basis.  Thanks to Matthieu Boutier.
  * Refactored the disambiguation code to live above the kernel interface.
    Thanks to Matthieu Boutier.
  * Reworked the source table to function in log time.
  * Optimised the disambiguation code to avoid scanning all routes in
    non-source-specific networks.  Thanks to Matthieu Boutier.
  * Modified the triggered updates logic to no longer send multihop
    requests.  This makes babeld slightly less noisy, at the cost of
    slightly longer reconvergence after mobility.
  * Increased the token bucket limits, which some large meshes are
    starting to hit.
  * Increased the size of the netlink socket buffer.

1 October 2015: babeld-1.6.3

  * Changed the handling of kernel configuration and added the
    skip-kernel-setup option.  Thanks to Toke Høiland-Jørgensen.
  * Added the option "router-id" and removed the flag "-R".  This is an
    incompatible change.

31 July 2015: babeld-1.6.2

  * Added the ability to specify a router-id explicitly (-R).
  * Changed router-id computation to use all interfaces, which increases
    the chances of a stable id.
  * Changed the format of babel-state to only contain the seqno -- the
    validation of router-id was useless, and actually harmful when the
    router-id changed multiple times.
  * Fixed a bug with native source-specific routing.  Thanks to Matthieu
    Boutier.

16 June 2015: babeld-1.6.1

  * Fixed a buffer overflow in zone_equal.  This is probably not
    exploitable, but might cause incorrect routing tables in the presence
    of source-specific routing.
  * Added support for defaulting ipv6-subtrees automatically based on the
    kernel version.
  * Fixed compilation under musl.

14 April 2015: babeld-1.6.0

  * Added support for source-specific routing.  Thanks to Matthieu Boutier.
  * Added support for reflecting metrics as kernel priorities.  Thanks to
    Pierre Pfister.
  * Worked around a Linux kernel bug with an infinite EAGAIN loop.  Thanks
    to Dave Taht.
  * Changed wildcard updates to not set flag 0x40.  Reported by Markus
    Stenberg.
  * Made ipv6-subtrees a runtime option.  Thanks to Matthieu Boutier.

4 July 2014: babeld-1.5.1

  * Added support for reading multiple configuration files by specifying
    the -c command-line flag multiple times.
  * Be less noisy about unknown TLV types.  Thanks to Baptiste Jonglez.

22 May 2014: babeld-1.5.0

  * Added support for an RTT-based metric -- see the description of
    "enable-timestamps" in the manual page.  This work was done by
    Baptiste Jonglez with help from Matthieu Boutier.

15 November 2013: babeld-1.4.3

  * Added random-id option to config file (equivalent to -r).
  * Fixed parsing of compressed IPv4 updates.  Thanks to Matthieu Boutier.
  * Fixed formatting of seqno requests with short prefixes.  Thanks to
    Matthieu Boutier.
  * Fixed possible DoS on the local interface.  Thanks to Baptiste Jonglez.
  * Fixed advertising costs higher than INFINITY on the local interface.
    Thanks to Baptiste Jonglez.
  * Fixed an assertion failure when an interface configuration is
    split into multiple config file directives.
  * Disable atomic route changes on BSD, which are buggy at least under
    Mac OS X.  Thanks to Grégoire Henry.

19 June 2013: babeld-1.4.2

  * Extensive changes to the configuration parser.  It is now possible
    to set all command-line options from the configuration file, and
    to specify default values for interface parameters.
  * Allow redistributing routes from multiple kernel tables.  Thanks
    to Toke Høiland-Jørgensen.
  * Fix some whitespace issues in the configuration parser.
  * Fix a bug in the configuration parser that could give wrong values
    to some exotic interface parameters (channel and faraway).
  * Fix a bug that could cause some extra traffic at shutdown.  Thanks
    to Matthieu Boutier.
  * Under Linux, set rp_filter explicitly for all interfaces.  This
    avoids mysterious routing failures on distributions that set
    rp_filter by default.  Reported by Baptiste Jonglez.

19 June 2013: babeld-1.3.8

  * Fix a bug in the configuration parser that could give wrong values
    to some exotic interface parameters (channel and faraway).
  * Fix a bug that could cause some extra traffic at shutdown.  Thanks
    to Matthieu Boutier.
  * Under Linux, set rp_filter explicitly for all interfaces.  This
    avoids mysterious routing failures on distributions that set
    rp_filter by default.  Reported by Baptiste Jonglez.

26 May 2013: babeld-1.4.1

  * Fix a bug that would cause the channel list to remain stuck at its
    initial value when running with -z3.

26 May 2013: babeld-1.3.7

  * Fix a bug that would cause the channel list to remain stuck at its
    initial value when running with -z3.

3 May 2013: babeld-1.4.0

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

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.

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.

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.