"Fossies" - the Fresh Open Source Software Archive
Member "mrouted-3.9.8/ChangeLog" (1 Jan 2017, 21048 Bytes) of package /linux/misc/mrouted-3.9.8.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard
) with prefixed line numbers.
Alternatively you can here view
the uninterpreted source code file.
See also the latest Fossies "Diffs"
side-by-side code changes report for "ChangeLog": 3.9.7_vs_3.9.8
1 #+TITLE: mrouted | Change Log
2 #+AUTHOR: David Waitzman, Craig Partridge, Steve Deering, Ajit Thyagarajan, Bill Fenner
4 * Release 3.9.8: January 1, 2017
5 ** Changes & New Features
6 - New option =-D= or =--startup-delay= to tune the initial delay
7 during which routes are exchanged, but not applied.
8 - The mrouted man page has been cleaned up and sections clarfied.
9 - Add =-D_DEFAULT_SOURCE= for building on GLIBC v2.20, and later.
10 - Sync with OpenBSD mrouted
12 ** Bug Fixes
13 - Matt Weber found and fixed a serious bug with DVMRP reports missing
14 subnet (off by one error) which seems to have been introduced in
15 v3.9.5. Issue #14
16 - Fix mtrace compilation with Clang 3.5, fix courtesy of FreeBSD.
17 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196166 by Dimitry
18 Andric (@DimitryAndric), heads-up by Olivier Cochard-Labbé (@ocochard)
19 - Minor warnings from scan-build (clang) also fixed. See the GIT log
20 for more details.
22 * Release 3.9.7: December 28, 2014
23 ** Changes & New Features
24 - SNMP Support removed. It never compiled and would have likely
25 needed a complete refactor to support modern AgentX.
26 - Replaced static =config.mk= with configure script from pimd
27 - RSRR Support disabled by default, use =--enable-rsrr= to configure script
28 - Add ='enable'= to =phyint= directive and =-M/-N= command line options,
29 thanks to Joseph Gooch (@goochjj)
30 - Add David Waitzman and Craig Partridge to list of original authors
31 after being contacted by Mr Waitzman :)
32 - Change to use =stdint.h= types instead of type unsafe homegrown types
34 ** Bug Fixes
35 - Fix issue with older BSD kernels, mainly for current FreeBSD 10 and
36 older, that don't really give RAW sockets but byte swap =ip_len=
37 field, Olivier Cochard-Labbé (@ocochard)
38 - Build fixes for FreeBSD, should make maintaining ports easier :)
39 - Change from =select()= to =poll()= due to descriptor limits, e.g.,
40 on BSD.
41 - UNIX 2038 first audit, inspired by OpenBSD. Cleanup type confusion
42 int/u_long where it should be time_t. Also, clarify that genid is
43 OK, since it's used and stored as unsigned 32-bit integer.
44 - Lots of minor fixes detected by Coverity Scan and Clang scan-build
47 * Release 3.9.6: October 23, 2011
48 ** Changes & New Features
49 - The Makefile now accepts CFLAGS from the environment instead of simply
50 overriding. The old USERFLAGS variable, previously intended for this
51 purpose, is still supported for backwards compatibility reasons.
53 ** Bug Fixes
55 - Serious regression in route.c, introduced in 3.9.5, caused by the link
56 list refactor. Fix by Seth Hinze <email@example.com>
58 - Fix GCC 4.6 warnings for unused variables.
60 * Release 3.9.5: March 5, 2011
61 ** Changes & New Features
62 - The location of dump files have been moved from /var/tmp to /var/run/mrouted
63 due to the insecure nature of /var/tmp. See more below.
65 - Add -r,--show-routes which sends SIGUSR1 to a running daemon, waits for the
66 file /var/run/mrouted/mrouted.dump to be updated, and then displays the
67 result on stdout.
69 ** Bug Fixes
70 - The linked list implementation used in route.c caused several problems and
71 as a result has been refactored. This fixes several SIGSEGV crashes a couple
72 of memory leaks as well as GitHub issue #7.
74 - Ported from pimd after CVE-2011-0007: Insecure file creation in /var/tmp.
75 "On USR1, pimd will write to /var/tmp/pimd.dump a dump of the multicast route
76 table. Since /var/tmp is writable by any user, a user can create a symlink to any
77 file he wants to destroy with the content of the multicast routing table."
79 * Release 3.9.4: November 19, 2010
81 ** Bug Fixes
82 - ~kern.c:k_del_vif()~ does not work properly in Linux.
84 When some interface (known by mrouted) goes down, mrouted tries to remove
85 related VIF by calling ~stop_vif()~, which in turn calls ~k_del_vif()~. After
86 ~k_del_vif()~ is called, mrouted exits with the following error:
88 setsockopt ~MRT_DEL_VIF~ on vif 3: Invalid argument
90 The reason for this is due to differences in the Linux and *BSD ~MRT_DEL_VIF~
91 API. The Linux kernel expects to receive a ~struct vifctl~ associated with the
92 VIF to be deleted, *BSD systems on the other hand expect to receive the index
93 of that VIF.
95 Fix contributed by Dan Kruchinin <mailto:firstname.lastname@example.org>
97 * Release 3.9.3: October 11, 2010
99 ** Changes & New Features
100 - Update man page with =--long-options=, missing sections and improve debug help.
102 - Cleanup Makefile for use with BSD PMake as well as GNU Make.
104 ** Bug Fixes
106 - Fix =NULL= pointer dereference in conf file parser. Problem will arise for all
107 interfaces that at one point might not have an address.
109 Reported by Dan Kruchinin <mailto:email@example.com>
111 - Fix problem with running the tunnel directive on OpenVPN, PPTP, L2TP tunnels as
112 well as PPP links. All of which use a 255.255.255.255 netmask on their interfaces.
114 See http://openvpn.net/archive/openvpn-users/2004-04/msg00003.html for original
115 problem report.
117 Fix contributed by Dan Kruchinin <mailto:firstname.lastname@example.org>
119 - ~route.c:accept_probe()~: Fix missing check of ~malloc()~ return value.
121 - ~vif.c:SetTimer()~: Dito.
123 - ~route.c:accept_report()~: Fix potential stack overflow issue. Also added checks
124 to prevent overstepping array boundaries in local ~rt~ array when parsing route
125 report messages.
127 * Release 3.9.2: August 16, 2010
129 ** Changes & New Features
131 - Reduce code duplication on platforms carrying ~strlcpy()~ and ~strtonum()~.
133 ** Bug Fixes
134 - Fix file paths for GNU/Linux installations, they too use ~/var/tmp~ rather than
135 ~/usr/tmp~ today.
137 - Code fixes in RSRR code (disabled by default).
139 - Fix possible build error in strtonum.c on platforms not supporting ~LLONG_MIN/MAX~
141 * Release 3.9.1: April 10, 2010
143 Biggest news in this release is that all OpenBSD patches as of this date are merged.
145 ** Changes & New Featues
147 - Change license to 3-clause BSD on mrinfo, RSRR and mrouted sources, thanks to
148 hard working OpenBSD team!
150 - Support for older yacc versions.
152 ** Bug Fixes
154 - OpenBSD, all patches from their CVS repository have been merged. Things like
155 missing free for malloc, missing checks for malloc return value, restart syscalls
156 after signal (=EINTR=). As well as a heap of neat code cleanup and modernization.
158 * Release 3.9.0: January 23, 2010
160 ** Changes & New Features
162 - Debian, build fixes for GNU/Linux.
164 - FreeBSD ports collection, major API cleanups.
166 - Buildroot, some minor cleanups of old deprecated APIs
168 - Philippe Troin <mailto:email@example.com>, added more compiler warnings and fixed the
169 problems uncovered by that.
171 * 3.9-beta3: April 26, 1999
173 ** Changes & New Features
175 - A ~blaster~ keyword for mrouted.conf, to turn on handling of routers (mostly
176 ciscos) which overwhelm the socket buffers by blasting the whole routing table at
179 - A ~notransit~ keyword; routes learned on a ~notransit~ vif will not be
180 readvertised onto another ~notransit~ vif.
182 - The 500 kbps default rate limit on tunnels has been removed.
184 - An ICMP listener which logs ICMP errors which appear to be in response to
185 tunnel packets that we sent.
187 - A tunnel traffic encapsulator, which encapsulates control traffic inside the
188 tunnel instead of unicasting it ~beside~ the tunnel. This is turned off by
189 default; use ~beside off~ to turn it on.
191 - A ~force_leaf~ flag to ignore any potential neighbors on a given interface.
193 ** Bug Fixes
195 - There was a bug handling routing updates which caused random black holes.
197 - There was a race condition in the timer handlers causing free'd memory
198 to sometimes get touched.
200 - ~allow_nonpruners~ wasn't allowed in the configuration file (and almost
201 nobody noticed! - probably a good sign)
203 - When a prune times out and the source has been active "recently", mrouted now
204 waits for further traffic instead of triggering a new prune.
206 - mrouted now ignores unreachable routes when making a routing decision
207 (previously it would blackhole, now it can find a less-specific)
209 * 3.9-beta2: June 11, 1997
211 There is no need to upgrade to 3.9-beta2 if you are not experiencing one of the
212 following bugs.
214 ** Bug Fixes
216 - There was a bug in 3.9-beta1's raw socket buffer processing that
217 would cause an immediate lockup on startup on some systems.
219 - RSRR would not clear out the group membership information if
220 further notification of changes to this route entry was not possible.
222 * 3.9-beta1: June 6, 1997
224 ** Changes & New Features
226 - Longer prune lifetimes (2 hours) by default. Prune lifetimes may be configured
227 per-vif, with the ~prune_lifetime N~ mrouted.conf configuration file entry
228 (where N is in seconds). This helps to work around the black holes caused on
229 restart when you have a Cisco upstream which does not handle genid's; if this is
230 your situation the recommended value is 300.
232 - mrouted's behavior of flooding new routes by default at startup in order to speed
233 healing of paths during startup can be turned off per-vif or globally with the
234 ~noflood~ configuration option. Turning this option off means you are likely to
235 experience black holes for a minute or two when you restart a router. The
236 default is to flood for a minute or two until mrouted is able to learn
237 subordinate relationships.
239 - mrouted now retransmits prunes by default on point-to-point links. The
240 mrouted.conf command ~rexmit_prunes [on|off]~ can be used to enable or disable
241 this feature on a per-vif basis. Prune retransmission helps on lossy links, and
242 also helps when a router has forgotten about a prune (e.g. if it is out of memory
243 and needs to shed state, or due to a bug).
245 - The new ~passive~ mode causes mrouted to not actively send probes looking for
246 neighbors. This allows a dialup link to become quiescent if there is no DVMRP
247 neighbor on the other end. Configuring ~passive~ on both ends of a link will
248 cause it to never come up.
250 - mrouted defaults to not peering with DVMRP routers that do not prune. Use the
251 ~allow_nonpruners~ mrouted.conf option on a vif on which you want to allow such
254 - mrouted now allows route filtering using ~allow~ and ~deny~ in ~mrouted.conf~.
255 - Only ~accept~ or ~deny~ is allowed, no combinations.
257 - Add ~bidir~ to apply the filter to output too, otherwise it's input only.
259 - Expected usage:
260 - Providers filter routes that customers send them
261 - Martian removal
262 - Topology modification (e.g. don't let the existence of private tunnel foo out
263 into the world).
265 - Syntax:
266 - accept 13/8 :: All routes matching 13/8 (e.g. 13.2.116/22)
267 - accept 13/8 exact :: If you want to accept exactly 13/8
268 - deny 10/8 64/2 130/8 exact 172/8 exact :: Common MBone martians
270 - mrouted now malloc's the buffer it uses for ~SIOCGIFCONF~, to allow
271 for more interfaces. Thanks to Danny Mitzel
273 - mrouted now ignores multiple entries for a single interface name (temporary hack
274 until mrouted understands interface aliases)
276 - mrouted's ~-d~ flag has been modified to accept the names of the systems which
277 you would like to debug: packet, prunes, routes, peers, cache, timeout,
278 interface, membership, traceroute, igmp
280 - mrouted now times neighbors out fater, and fully detects and ignores routes from
281 one-way peerings.
283 - mrouted's route processing has been sped up, especially at startup.
285 - mrouted uses the biggest ~SO_RCVBUF~ the operating system allows (up to 256 kb)
287 - mrouted uses TOS =0xC0= ("Internet Control") for DVMRP messages.
289 ** Known Bugs
291 - The startup message doesn't print properly if you have too many interfaces.
293 ** Bug Fixes
295 - mrouted did not properly keep track of subordinates, and would not time out
296 subordinateness. This caused 2 major problems:
298 1. pruning did not happen when there were equal-cost paths to the same
299 multi-access link
300 2. subordinateness which did not get cancelled by a non-poisoned route (e.g. in
301 the face of route filtering) did not time out, causing traffic to continue to
304 - mrouted's IGMPv2 processing when it is not the querier now conforms to
305 draft-ietf-idmr-igmp-v2-06.txt Thanks to Lorenzo VICISANO
306 <mailto:L.Vicisano@cs.ucl.ac.uk> for finding a problem.
308 - mrouted is much more careful about forgetting prunes; 3.8 would forget prunes
309 whenever any route change ocurred.
311 * Release 3.8: November 29, 1995
313 ** Bug Fixes
315 - mrouted would fail to forget prunes when a neighbor went away, thus potentially
316 sending traffic down a tunnel after the tunnel endpoint has gone down. This was
317 due to some research code making it into the "emergency" 3.7 release, sigh.
319 - mrouted could send prunes with negative lifetimes. This causes slightly higher
320 prune traffic but shouldn't be any major problem.
322 * Release 3.7: November 28, 1995
324 ** Changes & New Features
326 - The configuration file can accept a hostname as the other end of a tunnel. There
327 must be a single name=>ip mapping for the given name, however, or mrouted will
328 fail to start up.
330 - mrinfo now sends requests to all interfaces of a multihomed host.
332 - mtrace's passive mode has been implemented.
334 - The first screen of mtrace statistics is shorter and more likely
335 to fit on one screen.
337 ** Bug Fixes
339 - mrouted now ignores route reports that include bogus netmasks.
340 There was a bug in 3.5 that would mangle default routes into
341 tens of bogus routes; this should prevent that bug from killing
342 the MBONE.
344 This solution can cause route flaps and black holes until the
345 3.5's are gone or all of the 3.5's neighbors are 3.7 .
347 - mrouted now ignores duplicate routes. Ciscos and the above 3.5
348 bug could cause two copies of the same route to appear in a single
349 routing update; mrouted would insert two copies of the same route
350 into its routing table and wreak all sorts of havoc.
352 - mrouted now sends a group-specific query for both retransmissions
353 of a g-s query; previous versions sent a general query the second
356 - mrouted now loops back multicasted mtrace responses and
357 group-specific membership queries
359 - mrouted now performs deterministic tiebreaking between two
360 neighbors on the same vif.
362 - mrouted now only does duplicate suppression on traceroute requests,
363 not all traceroute packets, so that a loop can be nicely detected
364 via a duplicate router instead of just a timeout.
366 - the buffer size that mrouted uses has been increased to allow
367 more than 16 hops in mtrace messages.
369 - mtrace's hop-by-hop termination is now more likely to be correct.
371 - mrinfo now waits for the responses to its retransmitted queries.
373 * Release 3.6: June 26, 1995
375 ** Bug Fixes
377 - mrouted would dump core when attempting to report no routes (i.e. upon
378 startup, if you have no enabled phyint's)
380 - mrouted would dump core if requested to traceroute a source for which it
381 had no route
383 - neighbor flags were not always properly updated on probe or report
385 - mrouted would sometimes reply to a multicast traceroute on a disabled
386 phyint; now it uses the first configured phyint to reply to traceroutes.
388 - host routes (i.e. netmask =0xffffffff=) works now; it was discarding
389 IGMP from the host because it was coming from the "broadcast address"
390 of the subnet.
392 - ~send_igmp()~ now treats the failure to send an mtrace or a neighbor
393 reply as informational, as opposed to warning.
395 - mrouted would go into an infinite loop trying to respond to a traceroute
396 for a source with a netmask of =0xffffffff=.
398 - ~vifs_with_neighbors~ was not being reset if the mrouted was restarted
399 with =SIGHUP=.
401 - the default route was not being properly advertised to neighbors (although
402 it was accepted if it was advertised to it)
404 - ANSI-fication for those who it helps, still-K&R-ish for those it doesn't.
406 - mtrace now attempts to trace three hops past a non-responding router,
407 in the hopes that it does support traceroute but just couldn't respond
408 (i.e. unicast didn't work and it can't source multicast because all its
409 phyints are disabled).
411 - mrinfo now times out even on a multicast router.
413 * Release 3.5: May 8, 1995
415 ** Changes & New Features
417 - The kernel and mrouted make sure that each is the correct version, to
418 prevent problems with mismatched kernel/mrouted versions. A too-old
419 mrouted will die with the error:
421 can't enable DVMRP routing in kernel: Option not supported by protocol
423 - mrouted can accept and propogate a default route (essential for
424 heirarchical multicast routing)
426 - Kernel route cache keeps source-specific routes instead of subnet routes,
427 eliminating hashing and longest-match problems.
428 (allows classless routing, longest-match and default routing)
430 - Cached kernel routes only get deleted if no traffic is flowing, to
431 facilitate multicast traceroute
433 - mrouted has a new configuration file parser, which provides better error
434 messages than before, and allows named boundaries (see man page)
436 - added ~netmask~ to phyint configuration, at the suggestion of
437 Anders Klemets
439 - System V and FreeBSD compatibility from John Brezak <mailto:firstname.lastname@example.org>
441 - phyint's can have additional subnets configured, for people with multiple
442 subnets on one physical network. mrouted.conf syntax is altnet 126.96.36.199,
443 or altnet 188.8.131.52/24 if you need to specify a different netmask. There
444 can be as many altnet statements as you need.
446 - both mrouted and the kernel now support classless addresses.
448 - the kernel supports PIM assert processing by notifying the router
449 when a packet arrives on the wrong interface
451 - the kernel keeps additional counters, and mrouted can be compiled to
452 support SNMP and the Multicast MIB
454 - the packet classifier in the kernel now uses the following udp port
455 ranges. A future release of a session directory will allocate ports in
456 these ranges:
458 - ~[0, 16384)~: lowest priority, unclassified
460 - ~[16384, 32768)~: highest priority, i.e. audio
462 - ~[32768, 49152)~: medium priority, i.e. whiteboard
464 - ~[49152, 65536)~: low priority, i.e. video
466 - the configuration code has been modified to default tunnels' ~rate_limit~
467 parameters to 500kbps. This is easily modified with a ~rate_limit~ keyword
468 in mrouted.conf, but should be a good default for the MBONE in general.
470 - The tunnel sending code now caches a route for ~ip_output()~, this should
471 help performance on machines with lots of tunnels.
473 - Dispatching for de-capsulating packets is now via protosw, making
474 reception of other raw protocols more efficient
476 - Neighbor capabilities are discovered via a bitmask as opposed to
477 version number.
479 - Multicast traceroute code improved
481 - mrouted can be compiled with Routing Support for Resource Reservation
482 (RSRR), required for RSVP.
484 ** Bug Fixes
486 - The IGMPv2 query timeout field was interpreted as being in units of 200ms
487 as opposed to 100ms, thus the maximum timeout was set to twice the
488 expected value. This is not fatal, as mrouted always queries twice in the
489 expectation that a packet could get loss, but it does make it less robust
490 in the face of packet loss.
492 - IGMP could report membership in local-only groups (i.e. 224.0.0.X)
494 - IGMP could get confused by hearing its own new membership reports, thus
495 a router would never perform fast leave.
497 - IGMP could reset timers for the wrong interface.
499 - mrouted put a bogus value in the maximum timeout field of IGMPv2 query
502 - Non-querier mrouters would respond to IGMP leave messages
504 - mrouted was not performing fast leave properly
506 - If the last member goes away on a transit network, the upstream router
507 would stop forwarding even if there are downstream members.
509 - Kernel hash function improved
511 - Eliminated possibility of ~panic()~: timeout in cache maintenance
513 - Reordered resource allocation when sending upcall to handle failure properly
515 - some endian-ness bugs squashed in mrouted, probably more to go.
517 - Multicast traceroute could send a reply on a disabled interface.
519 ** Included Files
521 | README-3.8.mrouted | this file |
522 | mrouted/* | version 3.8 of mrouted, mrinfo, map-mbone and mtrace. |
523 | ifconfig/* | Changes to ifconfig to show multicast interfaces |
524 | netstat/* | Diffs to netstat |
525 | ping/* | sources for ping which support multicasting |
526 | mtest/* | utility for testing multicast group membership |
528 # Local Variables:
529 # mode: org
530 # End: