"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 or download 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
    3 
    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
   11 
   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.
   21 
   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
   33 
   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
   45      https://scan.coverity.com/projects/3320
   46 
   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.
   52 
   53 ** Bug Fixes
   54 
   55    - Serious regression in route.c, introduced in 3.9.5, caused by the link
   56      list refactor. Fix by Seth Hinze <ultrix@gmail.com>
   57 
   58    - Fix GCC 4.6 warnings for unused variables.
   59 
   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.
   64 
   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.
   68 
   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.
   73 
   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."
   78 
   79 * Release 3.9.4: November 19, 2010
   80 
   81 ** Bug Fixes
   82   - ~kern.c:k_del_vif()~ does not work properly in Linux.
   83 
   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:
   87 
   88     setsockopt ~MRT_DEL_VIF~ on vif 3: Invalid argument
   89 
   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.
   94 
   95     Fix contributed by Dan Kruchinin <mailto:dkruchinin@acm.org>
   96 
   97 * Release 3.9.3: October 11, 2010
   98 
   99 ** Changes & New Features
  100   - Update man page with =--long-options=, missing sections and improve debug help.
  101 
  102   - Cleanup Makefile for use with BSD PMake as well as GNU Make.
  103 
  104 ** Bug Fixes
  105 
  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.
  108 
  109     Reported by Dan Kruchinin <mailto:dkruchinin@acm.org>
  110 
  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.
  113 
  114     See http://openvpn.net/archive/openvpn-users/2004-04/msg00003.html for original
  115     problem report.
  116 
  117     Fix contributed by Dan Kruchinin <mailto:dkruchinin@acm.org>
  118 
  119   - ~route.c:accept_probe()~: Fix missing check of ~malloc()~ return value.
  120 
  121   - ~vif.c:SetTimer()~: Dito.
  122 
  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.
  126 
  127 * Release 3.9.2: August 16, 2010
  128 
  129 ** Changes & New Features
  130 
  131   - Reduce code duplication on platforms carrying ~strlcpy()~ and ~strtonum()~.
  132 
  133 ** Bug Fixes
  134   - Fix file paths for GNU/Linux installations, they too use ~/var/tmp~ rather than
  135     ~/usr/tmp~ today.
  136 
  137   - Code fixes in RSRR code (disabled by default).
  138 
  139   - Fix possible build error in strtonum.c on platforms not supporting ~LLONG_MIN/MAX~
  140 
  141 * Release 3.9.1: April 10, 2010
  142 
  143 Biggest news in this release is that all OpenBSD patches as of this date are merged.
  144 
  145 ** Changes & New Featues
  146 
  147   - Change license to 3-clause BSD on mrinfo, RSRR and mrouted sources, thanks to
  148     hard working OpenBSD team!
  149 
  150   - Support for older yacc versions.
  151 
  152 ** Bug Fixes
  153 
  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.
  157 
  158 * Release 3.9.0: January 23, 2010
  159 
  160 ** Changes & New Features
  161 
  162   - Debian, build fixes for GNU/Linux.
  163 
  164   - FreeBSD ports collection, major API cleanups.
  165 
  166   - Buildroot, some minor cleanups of old deprecated APIs
  167 
  168   - Philippe Troin <mailto:phil@fifi.org>, added more compiler warnings and fixed the
  169     problems uncovered by that.
  170 
  171 * 3.9-beta3: April 26, 1999
  172 
  173 ** Changes & New Features
  174 
  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
  177     once.
  178 
  179   - A ~notransit~ keyword; routes learned on a ~notransit~ vif will not be
  180     readvertised onto another ~notransit~ vif.
  181 
  182   - The 500 kbps default rate limit on tunnels has been removed.
  183 
  184   - An ICMP listener which logs ICMP errors which appear to be in response to
  185     tunnel packets that we sent.
  186 
  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.
  190 
  191   - A ~force_leaf~ flag to ignore any potential neighbors on a given interface.
  192 
  193 ** Bug Fixes
  194 
  195   - There was a bug handling routing updates which caused random black holes.
  196 
  197   - There was a race condition in the timer handlers causing free'd memory
  198     to sometimes get touched.
  199 
  200   - ~allow_nonpruners~ wasn't allowed in the configuration file (and almost
  201     nobody noticed! - probably a good sign)
  202 
  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.
  205 
  206   - mrouted now ignores unreachable routes when making a routing decision
  207     (previously it would blackhole, now it can find a less-specific)
  208 
  209 * 3.9-beta2: June 11, 1997
  210 
  211 There is no need to upgrade to 3.9-beta2 if you are not experiencing one of the
  212 following bugs.
  213 
  214 ** Bug Fixes
  215 
  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.
  218 
  219   - RSRR would not clear out the group membership information if
  220     further notification of changes to this route entry was not possible.
  221 
  222 * 3.9-beta1: June 6, 1997
  223 
  224 ** Changes & New Features
  225 
  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.
  231 
  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.
  238 
  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).
  244 
  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.
  249 
  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
  252     peerings.
  253 
  254   - mrouted now allows route filtering using ~allow~ and ~deny~ in ~mrouted.conf~.
  255     - Only ~accept~ or ~deny~ is allowed, no combinations.
  256 
  257     - Add ~bidir~ to apply the filter to output too, otherwise it's input only.
  258 
  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).
  264 
  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
  269 
  270   - mrouted now malloc's the buffer it uses for ~SIOCGIFCONF~, to allow
  271     for more interfaces.  Thanks to Danny Mitzel
  272 
  273   - mrouted now ignores multiple entries for a single interface name (temporary hack
  274     until mrouted understands interface aliases)
  275 
  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
  279 
  280   - mrouted now times neighbors out fater, and fully detects and ignores routes from
  281     one-way peerings.
  282 
  283   - mrouted's route processing has been sped up, especially at startup.
  284 
  285   - mrouted uses the biggest ~SO_RCVBUF~ the operating system allows (up to 256 kb)
  286 
  287   - mrouted uses TOS =0xC0= ("Internet Control") for DVMRP messages.
  288 
  289 ** Known Bugs
  290 
  291   - The startup message doesn't print properly if you have too many interfaces.
  292 
  293 ** Bug Fixes
  294 
  295   - mrouted did not properly keep track of subordinates, and would not time out
  296     subordinateness.  This caused 2 major problems:
  297 
  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
  302        flow.
  303 
  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.
  307 
  308   - mrouted is much more careful about forgetting prunes; 3.8 would forget prunes
  309     whenever any route change ocurred.
  310 
  311 * Release 3.8: November 29, 1995
  312 
  313 ** Bug Fixes
  314 
  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.
  318 
  319   - mrouted could send prunes with negative lifetimes.  This causes slightly higher
  320     prune traffic but shouldn't be any major problem.
  321 
  322 * Release 3.7: November 28, 1995
  323 
  324 ** Changes & New Features
  325 
  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.
  329 
  330   - mrinfo now sends requests to all interfaces of a multihomed host.
  331 
  332   - mtrace's passive mode has been implemented.
  333 
  334   - The first screen of mtrace statistics is shorter and more likely
  335     to fit on one screen.
  336 
  337 ** Bug Fixes
  338 
  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.
  343 
  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 .
  346 
  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.
  351 
  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
  354     time.
  355 
  356   - mrouted now loops back multicasted mtrace responses and
  357     group-specific membership queries
  358 
  359   - mrouted now performs deterministic tiebreaking between two
  360     neighbors on the same vif.
  361 
  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.
  365 
  366   - the buffer size that mrouted uses has been increased to allow
  367     more than 16 hops in mtrace messages.
  368 
  369   - mtrace's hop-by-hop termination is now more likely to be correct.
  370 
  371   - mrinfo now waits for the responses to its retransmitted queries.
  372 
  373 * Release 3.6: June 26, 1995
  374 
  375 ** Bug Fixes
  376 
  377   - mrouted would dump core when attempting to report no routes (i.e. upon
  378     startup, if you have no enabled phyint's)
  379 
  380   - mrouted would dump core if requested to traceroute a source for which it
  381     had no route
  382 
  383   - neighbor flags were not always properly updated on probe or report
  384 
  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.
  387 
  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.
  391 
  392   - ~send_igmp()~ now treats the failure to send an mtrace or a neighbor
  393     reply as informational, as opposed to warning.
  394 
  395   - mrouted would go into an infinite loop trying to respond to a traceroute
  396     for a source with a netmask of =0xffffffff=.
  397 
  398   - ~vifs_with_neighbors~ was not being reset if the mrouted was restarted
  399     with =SIGHUP=.
  400 
  401   - the default route was not being properly advertised to neighbors (although
  402     it was accepted if it was advertised to it)
  403 
  404   - ANSI-fication for those who it helps, still-K&R-ish for those it doesn't.
  405 
  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).
  410 
  411   - mrinfo now times out even on a multicast router.
  412 
  413 * Release 3.5: May 8, 1995
  414 
  415 ** Changes & New Features
  416 
  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:
  420 
  421     can't enable DVMRP routing in kernel: Option not supported by protocol
  422 
  423   - mrouted can accept and propogate a default route (essential for
  424     heirarchical multicast routing)
  425 
  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)
  429 
  430   - Cached kernel routes only get deleted if no traffic is flowing, to
  431     facilitate multicast traceroute
  432 
  433   - mrouted has a new configuration file parser, which provides better error
  434     messages than before, and allows named boundaries (see man page)
  435 
  436   - added ~netmask~ to phyint configuration, at the suggestion of
  437     Anders Klemets
  438 
  439   - System V and FreeBSD compatibility from John Brezak <mailto:brezak@ch.hp.com>
  440 
  441   - phyint's can have additional subnets configured, for people with multiple
  442     subnets on one physical network.  mrouted.conf syntax is altnet 1.2.3.0,
  443     or altnet 1.2.3.0/24 if you need to specify a different netmask.  There
  444     can be as many altnet statements as you need.
  445 
  446   - both mrouted and the kernel now support classless addresses.
  447 
  448   - the kernel supports PIM assert processing by notifying the router
  449     when a packet arrives on the wrong interface
  450 
  451   - the kernel keeps additional counters, and mrouted can be compiled to
  452     support SNMP and the Multicast MIB
  453 
  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:
  457 
  458     - ~[0, 16384)~: lowest priority, unclassified
  459 
  460     - ~[16384, 32768)~: highest priority, i.e. audio
  461 
  462     - ~[32768, 49152)~: medium priority, i.e. whiteboard
  463 
  464     - ~[49152, 65536)~: low priority, i.e. video
  465 
  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.
  469 
  470   - The tunnel sending code now caches a route for ~ip_output()~, this should
  471     help performance on machines with lots of tunnels.
  472 
  473   - Dispatching for de-capsulating packets is now via protosw[], making
  474     reception of other raw protocols more efficient
  475 
  476   - Neighbor capabilities are discovered via a bitmask as opposed to
  477     version number.
  478 
  479   - Multicast traceroute code improved
  480 
  481   - mrouted can be compiled with Routing Support for Resource Reservation
  482     (RSRR), required for RSVP.
  483 
  484 ** Bug Fixes
  485 
  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.
  491 
  492   - IGMP could report membership in local-only groups (i.e. 224.0.0.X)
  493 
  494   - IGMP could get confused by hearing its own new membership reports, thus
  495     a router would never perform fast leave.
  496 
  497   - IGMP could reset timers for the wrong interface.
  498 
  499   - mrouted put a bogus value in the maximum timeout field of IGMPv2 query
  500     packets.
  501 
  502   - Non-querier mrouters would respond to IGMP leave messages
  503 
  504   - mrouted was not performing fast leave properly
  505 
  506   - If the last member goes away on a transit network, the upstream router
  507     would stop forwarding even if there are downstream members.
  508 
  509   - Kernel hash function improved
  510 
  511   - Eliminated possibility of ~panic()~: timeout in cache maintenance
  512 
  513   - Reordered resource allocation when sending upcall to handle failure properly
  514 
  515   - some endian-ness bugs squashed in mrouted, probably more to go.
  516 
  517   - Multicast traceroute could send a reply on a disabled interface.
  518 
  519 ** Included Files
  520 
  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        |
  527 
  528 # Local Variables:
  529 #  mode: org
  530 # End: