Annotation of embedaddon/pimd/ChangeLog.org, revision 1.1
1.1 ! misho 1: #+TITLE: pimd | Change Log
! 2: #+AUTHOR: Ahmed Helmy, George Edmond Eddy, Pavlin Ivanov Radoslavov, and Markus Veranen
! 3: #+OPTIONS: toc:nil
! 4: #+OPTIONS: H:3 num:0
! 5: #+LaTeX_HEADER: \usepackage{parskip} \usepackage{a4wide}
! 6: #+LaTeX_CLASS_OPTIONS: [twoside, colorlinks=true, linkcolor=blue, urlcolor=blue]
! 7:
! 8: * Version 2.3.2: March 10, 2016
! 9:
! 10: Bug fix release. All users should upgrade, in particular FreeBSD users!
! 11:
! 12: ** Changes
! 13: - Minor code cleanup and readability changes to simplify the code.
! 14: - Update to libite v1.4.2 with improved =min()=/=max()= macros
! 15: - Use =-Wextra= not =-Werror= in default =CFLAGS=, this to ensure that pimd
! 16: still builds OK on newer and more pedantic compilers
! 17: - Update man page and example `pimd.conf` with details on `rp-candidate`
! 18: `bsr-candidate`, two very important settings for correct operation.
! 19:
! 20: ** Bug Fixes
! 21: - Issue #57: Multicast routing table not updated on FreeBSD. Introduced
! 22: with issue #23, in pimd v2.2.0. Too intrusive changes altered handling
! 23: (forwarding) of PIM register messages. This only affects BSD systems,
! 24: in particular FreeBSD 10.2 (current), or any FreeBSD < 11.0
! 25: - Issue #63: Mika Joutsenvirta <mailto:mika.joutsenvirta@insta.fi> found
! 26: and fixed serious issues with the PIM Assert timeout handling.
! 27: - Issue #65: Missing slash in config file path when using env. variable
! 28: - Issue #66: Make it possible to run =pimd= without a configuration
! 29: file. If =pimd= cannot find its configuration file it will use
! 30: built-in fallback settings for =bsr-candidate= and =rp-candidate=.
! 31: This to ensure you do not end up with a non-working setup. To disable
! 32: =bsr-candidate= and =rp-candidate=, simply leave them out of your
! 33: config file, and make sure =pimd= can find the file.
! 34: - Issue #69: Rate limit only what is actually logged. The =logit()=
! 35: function counted filtered messages, causing long periods of silence
! 36: for no reason. Fix by Apollon Oikonomopoulos <mailto:apollon@skroutz.gr>
! 37:
! 38: #+LATEX: \newpage
! 39: * Version 2.3.1: November 15, 2015
! 40:
! 41: Bug fix release.
! 42:
! 43: ** Changes
! 44: - Let build system handle missing libite GIT submodule
! 45: - Issue #61: Debian packaging moved to https://github.com/bobek/pkg-pimd
! 46:
! 47: ** Bug Fixes
! 48: - Issue #53: Build problem with Clang on FreeBSD
! 49: - Issue #55: Default config uses =/etcpimd.conf= instead of
! 50: =/etc/pimd.conf=. Slashes added and now =pimd -h= lists
! 51: the default path instead of a hard coded string.
! 52: - Issue #60: Fix minor spelling errors.
! 53:
! 54: #+LATEX: \newpage
! 55: * Version 2.3.0: July 31, 2015 -- /PIM-SSM & IGMPv3 release!/
! 56:
! 57: The significant new features in this release would not have been
! 58: possible if not for the hard work of Markus Veranen
! 59: <mailto:markus.veranen@gmail.com>
! 60:
! 61: Tested on Ubuntu 14.04 (GLIBC/Linux 3.13), Debian 8.1 (GLIBC/Linux
! 62: 3.16), FreeBSD, NetBSD, and OpenBSD.
! 63:
! 64: ** Changes and New Features
! 65: - Support for PIM-SSM and IGMPv3, by Markus Veranen
! 66: - IGMPv3 is now default, use =phyint ifname igmpv2= for old behaviour
! 67: - Default IGMP query interval has changed from 125 sec to 12 sec
! 68:
! 69: In =pimd.conf: igmp-query-interval <SEC>=
! 70:
! 71: - Default IGMP querier timeout has changed from 255 sec to 42 sec
! 72:
! 73: In =pimd.conf: igmp-querier-timeout <SEC>=
! 74:
! 75: - The built-in IGMP /robustness value/ changed from 2 to 3
! 76: - Support for changing the PIM Hello interval, by Markus Veranen
! 77:
! 78: In =pimd.conf: hello-interval <SEC>=
! 79:
! 80: - Support for multiple multicast routing tables, and running multiple
! 81: pimd instances, by Markus Veranen. (Only supported on Linux atm.)
! 82: - Support for advertising, and acting upon changes to, Generation ID
! 83: in PIM Hello messages, by Markus Veranen
! 84: - Support for advertising /DR Priority/ option in PIM Hello messages.
! 85: If all routers on a LAN send this option this value is used in the
! 86: DR election rather than the IP address. The priority is configured
! 87: per =phyint=. This closes the long-standing issue #5.
! 88: - Distribution archive format changed from XZ to Gzip, for the benefit
! 89: of OpenBSD that only ships Gzip in the base system.
! 90:
! 91: ** New pimd.conf syntax!
! 92:
! 93: The =pimd.conf= syntax has been changed in this release. Mainly, the
! 94: configuration file now use dashes =-= instead of underscore =_= as word
! 95: separators. However several settings have also been renamed to be more
! 96: familiar to commands used by major router vendors:
! 97:
! 98: - =bsr-candidate= :: replaces =cand_bootstrap_router=
! 99: - =rp-candidate= :: replaces =cand_rp=
! 100: - =group-prefix= :: replaces =group_prefix=
! 101: - =rp-address= :: replaces =rp_address=
! 102: - =spt-threshold= :: replaces the two deprecated
! 103: =switch_register_threshold= and =switch_data_threshold= settings
! 104: - =hello-interval= :: replaces =hello_period=
! 105: - =default-route-distance= :: replaces =default_source_preference=
! 106: - =default-route-metric= :: replaces =default-source-metric=
! 107:
! 108: Also, for =phyint= the =preference= sub-option has been replaced with
! 109: the less confusing =distance= and =ttl-threshold= replaces =threshold=.
! 110: See the README or the man page for more information on the metric
! 111: preference and admin distance confusion.
! 112:
! 113: /*Note:* The =pimd.conf= parser remains backwards compatible with the
! 114: old syntax!/
! 115:
! 116:
! 117: ** Compile Time Features
! 118:
! 119: The following are new features that must be enabled at compile time,
! 120: using the =configure= script, to take effect. For details, see
! 121: =./configure --help=
! 122:
! 123: - =--prefix=PATH= :: Standard prefix to be used at installation,
! 124: default =/usr/local=
! 125: - =--sysconfdir=PATH= :: Prefix path to be used for =pimd.conf=,
! 126: default =/etc=, unless =--prefix= is given.
! 127: - =--embedded-libc= :: Enable uClib or musl libc build, on Linux.
! 128: - =--disable-exit-on-error= :: Allow pimd to continue running despite
! 129: encountering errors.
! 130: - =--disable-pim-genid= :: Disable advertisement of PIM Hello GenID,
! 131: use for compatibility problems with older versions of pimd.
! 132: - =--with-max-vifs=MAXVIFS= :: Raise max number of VIFs to MAXVIFS.
! 133:
! 134: *Note:* this requires raising MAXVIFS in the kernel as well!
! 135: Most kernels cannot handle >255, if this is a problem, try using
! 136: multiple multicast routing tables instead.
! 137: - =--disable-masklen-check= :: Allow tunctl VIFs with masklen 32.
! 138:
! 139:
! 140: ** Bug Fixes
! 141: - Fix issue #40: FTBS with =./configure --enable-scoped-acls=
! 142: - Properly support cross compiling. It is now possible to actually
! 143: define the =$CROSS= environment variable when calling =make= to
! 144: allow cross compiling pimd. Should work with both GCC and Clang.
! 145: Tested on Ubuntu, Debian and FreeBSD.
! 146:
! 147: #+LATEX: \newpage
! 148: * Version 2.2.1: April 20, 2015
! 149: ** Bug Fixes
! 150: - Fix another problem with issue #22 (reopened), as laid out in
! 151: issue #37. This time the crash is induced when there is a link down
! 152: event. Lot of help debugging the propblem by @mfspeer, who also
! 153: suggested the fix -- to call =pim_proto.c:delete_pim_nbr()= in
! 154: =vif.c:stop_vif()= instead of just calling free.
! 155: - Fix issue with not checking return value of =open()= in daemonizing
! 156: code in =main()=, found by Coverity Scan.
! 157: - Fix issue with scoped =phyint= in =config.c=, found by Coverity Scan.
! 158: The =masklen= may not be zero, config file problem, alert the user.
! 159:
! 160:
! 161: #+LATEX: \newpage
! 162: * Version 2.2.0: December 28, 2014
! 163: ** Changes & New Features
! 164: - Support for IP fragmentation of PIM register messages,
! 165: by Michael Fine, Cumulus Networks
! 166: - Support =/LEN= syntax in =phyint= to complement =masklen LEN=, issue #12
! 167: - Add support for /31 networks, point-to-point, thanks to Apollon Oikonomopoulos
! 168: - Remove old broken SNMP support
! 169: - OpenBSD inspired cleanup (deregister)
! 170: - General code cleanup, shorten local variable names, func decl. etc.
! 171: - Support for router alert IP option in IGMP queries
! 172: - Support for reading IGMPv3 membership reports
! 173: - Update IGMP code to support FreeBSD >= 8.x
! 174: - Retry read of routing tables on FreeBSD
! 175: - Fix join/leve of ALL PIM Routers for FreeBSD and other UNIX kernels
! 176: - Tested on FreeBSD, NetBSD and OpenBSD
! 177: - Add very simple homegrown configure script
! 178: - Update and document support for =rp_address=, =cand_rp=, and
! 179: =cand_bootstrap_router=
! 180: - Add new =spt_threshold= to replace existing =switch_register_threshold=
! 181: and =switch_data_threshold settings=. Cisco-like and easier to understand
! 182:
! 183: ** Bug Fixes
! 184: - Fix to avoid infinite loop during unicast send failure, by Alex Tessmer
! 185: - Fix bug in bootstrap when configured as candidate RP, issue #15
! 186: - Fix segfault in =accept_igmp()=, issue #29
! 187: - Fix default source preference, should be 101 (not 1024!)
! 188: - Fix =ip_len= handling on older BSD's, thanks to Olivier
! 189: Cochard-Labbé, issue #23
! 190: - Fix default prefix len in static RP example in =pimd.conf=, should be /4
! 191: - Fix issue #31: Make IGMP query interval and querier timeout configurable
! 192: - Fix issue #33: pimd does not work in background under FreeBSD
! 193: - Fix issue #35: support for timing out other queriers from mrouted
! 194: - Hopefully fix issue #22: Crash in (S,G) state when neighbor is lost
! 195: - Misc. bug fixes thanks to Coverity Scan, static code analysis tool
! 196: https://scan.coverity.com/projects/3319
! 197:
! 198:
! 199: #+LATEX: \newpage
! 200: * Version 2.1.8: October 22, 2011
! 201: ** Changes & New Features
! 202: - Update docs of static Rendez-Vous Point, =rp_address=, configuration
! 203: in man page and example =pimd.conf=. Thanks to Andriy Senkovych
! 204: <mailto:andriysenkovych@gmail.com> and YAMAMOTO Shigeru <mailto:shigeru@iij.ad.jp>
! 205:
! 206: - Replaced =malloc()= with =calloc()= to mitigate risk of accessing
! 207: junk data and ease debugging. Thanks to YAMAMOTO Shigeru
! 208: <mailto:shigeru@iij.ad.jp>
! 209:
! 210: - Extend .conf file =rp_address= option with =priority= field. Code
! 211: changes and documentation updates by YAMAMOTO Shigeru
! 212: <mailto:shigeru@iij.ad.jp>
! 213:
! 214: ** Bug Fixes
! 215: - A serious bug in =pim_proto.c:receive_pim_register()= was found and
! 216: fixed by Jean-Pascal Billaud. In essence, the RP check was broken
! 217: since the code only looked at =my_cand_rp_address=, which is not set
! 218: when using the =rp_address= config. Everything works fine with
! 219: auto-RP mode though. This issue completely breaks the register path
! 220: since the JOIN(S,G) is never sent back ...
! 221:
! 222: - Fix FTBFS issues reported from Debian. Later GCC versions trigger unused
! 223: variable warnings. Patches and cleanup Antonin Kral <mailto:a.kral@bobek.cz>
! 224:
! 225: * Version 2.1.7: January 9, 2011
! 226: ** Changes & New Features
! 227: - The previous move of runtime dump files to =/var/lib/misc= have been
! 228: changed to =/var/run/pimd= instead. This to accomodate *BSD systems
! 229: that do not have the =/var/lib= tree, and also recommended in the
! 230: Filesystem Hierarchy Standard,
! 231: http://www.pathname.com/fhs/pub/fhs-2.3.html#VARRUNRUNTIMEVARIABLEDATA
! 232:
! 233:
! 234: #+LATEX: \newpage
! 235: * Version 2.1.6: January 8, 2011
! 236: ** Changes & New Features
! 237: - Debian package now conflicts with =smcroute=, in addition to
! 238: =mrouted=. It is only possible to run one multicast routing daemon
! 239: at a time, kernel limitation.
! 240:
! 241: - The location of the dump file(s) have been moved from =/var/tmp= to
! 242: =/var/lib/misc= due to the insecure nature of =/var/tmp=. See more
! 243: below.
! 244:
! 245: ** Bug Fixes
! 246: - =kern.c:k_del_vif()=: Fix build error on GNU/kFreeBSD
! 247:
! 248: - CVE-2011-0007: Insecure file creation in =/var/tmp=. "On USR1, pimd
! 249: will write to =/var/tmp/pimd.dump= a dump of the multicast route
! 250: table. Since =/var/tmp= is writable by any user, a user can create
! 251: a symlink to any file he wants to destroy with the content of the
! 252: multicast routing table."
! 253:
! 254: * Version 2.1.5: November 21, 2010
! 255: ** Changes & New Features
! 256: - Improved error messages in kern.c
! 257: - Renamed CHANGES to ChangeLog
! 258:
! 259: ** Bug Fixes
! 260: - Import mrouted fix: on GNU/Linux systems (only!) the call to
! 261: =kern.c:k_del_vif()= fails with: =setsockopt MRT_DEL_VIF on vif 3:
! 262: Invalid argument=. This is due to differences in the Linux and *BSD
! 263: =MRT_DEL_VIF= API. The Linux kernel expects to receive a =struct
! 264: vifctl= associated with the VIF to be deleted, *BSD systems on the
! 265: other hand expect to receive the index of that VIF.
! 266:
! 267: Bug reported and fixed on mrouted by Dan Kruchinin <mailto:dkruchinin@acm.org>
! 268:
! 269:
! 270: #+LATEX: \newpage
! 271: * Version 2.1.4: September 25, 2010
! 272: ** Changes & New Features
! 273: - Updates for support on Debian GNU/kFreeBSD, FreeBSD kernel with GNU userland.
! 274:
! 275: ** Bug Fixes
! 276: - Lior Dotan <mailto:liodot@gmail.com> reports that pimd 2.1.2 and
! 277: 2.1.3 are severely broken w.r.t. uninformed systematic replace of
! 278: =bcopy()= with =memcpy()= API.
! 279:
! 280: * Version 2.1.3: September 8, 2010
! 281: ** Changes & New Features
! 282: - =debug.c:syslog()=: Removed GNU:ism %m, use =strerror(errno)= instead.
! 283:
! 284: - Cleanup and ansification of a couple of files: rp.c, mrt.c, vif.c, route.c
! 285:
! 286: - Initialize stack variables to silence overzealous GCC on PowerPC and S/390.
! 287: Debian bug 595584, this closes pimd issue #3 on GitHub.
! 288:
! 289: ** Bug Fixes
! 290: - Merge bug fix for static-rp configurations from Kame's pim6sd route.c r1.28
! 291:
! 292: - Close TODO item by merging in relevant changes from Kame's pim6sd =vif.c r1.3=
! 293:
! 294: - Tried fixing =debug.c:logit()= build failure on Sparc due to mixup in headers
! 295: for =tv_usec= type.
! 296:
! 297:
! 298: #+LATEX: \newpage
! 299: * Version 2.1.2: September 4, 2010
! 300: ** Changes & New Features
! 301: - License change on mrouted code from OpenBSD team => pimd fully free
! 302: under the simlified 3-clause BSD license! This was also covered in
! 303: v2.1.0-alpha29.17, but now all files have been updated, including
! 304: LICENSE.mrouted.
! 305:
! 306: - Code cleanup and ansification.
! 307:
! 308: - Simplified Makefile so that it works seamlessly on GNU Make and BSD PMake.
! 309:
! 310: - Replaced all calls to =bzero()= and =bcopy()= with =memset()= and =memcpy()=.
! 311:
! 312: - Use =getopt_long()= for argument parsing.
! 313:
! 314: - Add, and improve, -h,--help output.
! 315:
! 316: - Add -f,--foreground option.
! 317:
! 318: - Add -v,--version option.
! 319:
! 320: - Add -l,--reload-config which sends SIGHUP to a running daemon.
! 321:
! 322: - Add -r,--show-routes which sends SIGUSR1 to a running daemon.
! 323:
! 324: - Add -q,--quit-daemon which sends SIGTERM to a running daemon.
! 325:
! 326: - Make it possible to call pimd as a regular user, for --help and --version.
! 327:
! 328: - Man page cleaned up, a lot, and updated with new options.
! 329:
! 330: ** Bug Fixes
! 331: - Replaced dangerous old string functions with safer =snprintf()= and =strlcpy()=
! 332:
! 333: - Added checks for =malloc()= return values, all over the code base.
! 334:
! 335: - Fixed issues reported by Sparse (CC=cgcc).
! 336:
! 337: - Make sure to retry syscalls =recvfrom()= and =sendto()= on signal (SIGINT).
! 338:
! 339: - Fix build issues on OpenBSD 4.7 and FreeBSD 8.1 thanks to Guillaume Sellier.
! 340:
! 341: - Kernel include issues on Ubuntu 8.04, Linux <= 2.6.25, by Nikola Knežević
! 342:
! 343: - Fix build issues on NetBSD
! 344:
! 345:
! 346: #+LATEX: \newpage
! 347: * Version 2.1.1: January 17, 2010
! 348:
! 349: Merged all patches from http://lintrack.org.
! 350:
! 351: ** Changes & New Features
! 352: - Bumping version again to celebrate the changes and make it easier for
! 353: distributions to handle the upgrade.
! 354: - =002-better-rp_address.diff=: Support multicast group address in static
! 355: Rendez-Vous Point .conf option.
! 356: - =004-disableall.diff=: Add -N option to pimd.
! 357: - =005-vifenable.diff=: Add enable keyword to phyint .conf option.
! 358:
! 359: ** Bug Fixes
! 360: - =001-debian-6.diff=: Already merged, no-op - only documenting in case anyone
! 361: wonders about it.
! 362: - =003-ltfixes.diff=: Various bug fixes and error handling improvements.
! 363: - =006-dot19.diff=: The lost alpha29.18 and alpha29.19 fixes by Pavlin Radoslavov.
! 364:
! 365: * Version 2.1.0, January 16, 2010
! 366: ** Changes & New Features
! 367: - Integrated the latest Debian patches from =pimd_2.1.0-alpha29.17-9.diff.gz=
! 368:
! 369: - Fixed the new file include/linux/netinet/in-my.h (Debian) so that the
! 370: #else fallback uses the system netinet/in.h, which seems to work now.
! 371:
! 372: - Bumped version number, this code has been available for a while now.
! 373:
! 374:
! 375: #+LATEX: \newpage
! 376: * Version 2.1.0-alpha29.19: January 14, 2005
! 377: ** Bug Fixes
! 378: - Don't ignore PIM Null Register messages if the IP version of the
! 379: inner header is not valid.
! 380:
! 381: - Add a missing bracket inside rsrr.c (a bug report and a fix by
! 382: <mailto:seyon@oullim.co.kr>)
! 383:
! 384: * Version 2.1.0-alpha29.18: May 21, 2003
! 385: ** Changes & New Features
! 386: - Compilation fix for Solaris 8. Though, no guarantee pimd still works on that
! 387: platform.
! 388:
! 389: - Define =BYTE_ORDER= if missing.
! 390:
! 391: - Update include/netinet/pim.h file with its lastest version
! 392:
! 393: - Update the copyright message of =include/netinet/pim_var.h=
! 394:
! 395: * Version 2.1.0-alpha29.17: March 20, 2003
! 396: ** Changes & New Features
! 397: - The mrouted license, LICENSE.mrouted, updated with BSD-like license!! Thanks to
! 398: the OpenBSD folks for the 2 years of hard work to make this happen:
! 399:
! 400: http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICENSE
! 401:
! 402: - Moved the pimd contact email address upfront in README. Let me repeat that here:
! 403: If you have any questions, suggestions, bug reports, etc., do NOT send them to
! 404: the PIM IETF Working Group mailing list! Instead, use the contact email address
! 405: specified in README.
! 406:
! 407: * Version 2.1.0-alpha29.16: February 18, 2003
! 408: ** Bug Fixes
! 409: - Compilation bugfix for Linux. Bug report by Serdar Uezuemcue
! 410: <mailto:serdar@eikon.tum.de>
! 411:
! 412: * Version 2.1.0-alpha29.15: February 12, 2003
! 413: ** Bug Fixes
! 414: - Routing socket descriptor leak. Bug report and fix by SUZUKI Shinsuke
! 415: <mailto:suz@crl.hitachi.co.jp>; incorporated back from pim6sd.
! 416:
! 417: - PIM join does not go upstream. Bug report and fix by SUZUKI Shinsuke
! 418: <mailto:suz@crl.hitachi.co.jp>; incorporated back from pim6sd.
! 419: #+BEGIN_EXAMPLE
! 420: [problem]
! 421: PIM join does not go upstream in the following topology, because oif-list
! 422: is NULL after subtracting iif from oif-list.
! 423:
! 424: receiver---rtr1---|
! 425: rtr2---|---rtr3----sender
! 426:
! 427: rtr1's nexthop to sender = rtr2
! 428: rtr2's nexthop to sender = rtr3
! 429:
! 430: [reason]
! 431: Owing to a difference between RFC2362 and the new pim-sm draft.
! 432: [solution]
! 433: Prunes iif from oiflist when installing it into kernel, instead of
! 434: PIM route calculation time.
! 435: #+END_EXAMPLE
! 436:
! 437: * Version 2.1.0-alpha29.14: February 10, 2003
! 438: ** Bug Fixes
! 439: - Bugfix in calculating the netmask for POINTOPOINT interface in config.c.
! 440: Bug report by J.W. (Bill) Atwood <mailto:bill@cs.concordia.ca>
! 441:
! 442: - =rp.c:rp_grp_match()=: SERIOUS bugfix in calculating the RP per group when there
! 443: are a number of group prefixes in the Cand-RP set. Bug report by Eva Pless
! 444: <mailto:eva.pless@imk.fraunhofer.de>
! 445:
! 446: * Version 2.1.0-alpha29.13: November 7, 2002
! 447: ** Bug Fixes
! 448: - Bugfix in rp.c =bootstrap_initial_delay()= in calculating BSR election delay.
! 449: Fix by SAKAI Hiroaki <mailto:sakai.hiroaki@finet.fujitsu.com>
! 450:
! 451: * Version 2.1.0-alpha29.12: September 26, 2002
! 452: ** Bug Fixes
! 453: - Increase size of send buffers in the kernel. Bug report by Andrea Gambirasio
! 454: <mailto:andrea.gambirasio@softsolutions.it>
! 455:
! 456: * Version 2.1.0-alpha29.11: July 8, 2002
! 457: ** Bug Fixes
! 458: Bug reports and fixes by SAKAI Hiroaki <mailto:sakai.hiroaki@finet.fujitsu.com>
! 459:
! 460: - =init_routesock()=: Bugfix: initializing a forgotten variable. The particular
! 461: code related to that variable is commented-out by default, but a bug is a bug.
! 462:
! 463: - =main.c:restart()=: Bugfix: close the =udp_socket= only when it is
! 464: is different from =igmp_socket=.
! 465:
! 466: - =main.c:main()=: if SIGHUP signal is received, reconstruct readers and nfds
! 467:
! 468: - Three serious bug fixes thanks to Jiahao Wang <mailto:jiahaow@yahoo.com.cn> and
! 469: Bo Cheng <mailto:bobobocheng@hotmail.com>:
! 470: - =pim_proto.c:receive_pim_join_prune()=: two bugfixes related to the processing of (*,*,RP)
! 471: - =pim_proto.c:add_jp_entry()=: Bugfix regarding adding prune entries
! 472:
! 473: - Remove the FTP URL from the various README files, and replace it with an HTTP
! 474: URL, because the FTP server on catarina.usc.edu is not operational anymore.
! 475:
! 476: * Version 2.1.0-alpha29.10: April 26, 2002
! 477: ** Bug Fixes
! 478: - Widen the space for "Subnet" addresses printed under "Virtual Interface Table"
! 479:
! 480: - Added (commented-out code) to enable different interfaces
! 481: to belong to overlapping subnets. See around line 200 in config.c
! 482:
! 483: - Bugfix in handling of Join/Prune messages when there is one join and one prune
! 484: for the same group. Thanks to Xiaofeng Liu <mailto:liu_xiao_feng@yahoo.com>.
! 485:
! 486: * Version 2.1.0-alpha29.9: November 13, 2001
! 487: ** Changes & New Features
! 488: First three entries contributed by Hiroyuki Komatsu <mailto:komatsu@taiyaki.org>
! 489:
! 490: - Print line number if there is conf file error.
! 491:
! 492: - If there is an error in the conf file, pimd won't start.
! 493:
! 494: - GRE configuration examples added to README.config.
! 495:
! 496: - New file README.debug (still very short though).
! 497:
! 498: ** Bug Fixes
! 499: - Increase the config line buffer size to 1024. Bug fix by Hiroyuki Komatsu
! 500: <mailto:komatsu@taiyaki.org>
! 501:
! 502: * Version 2.1.0-alpha29.8: September 16, 2001
! 503: ** Changes & New Features
! 504: - Better log messages for point-to-point links in config.c. Thanks to Hitoshi
! 505: Asaeda <mailto:asaeda@yamato.ibm.com>
! 506:
! 507: * Version 2.1.0-alpha29.7: September 10, 2001
! 508: ** Changes & New Features
! 509: - Added "phyint altnet" (see pimd.conf for usage) for allowing some senders look
! 510: like directly connected to a local subnet. Implemented by Marian Stagarescu
! 511: <mailto:marian@bile.cidera.com>
! 512:
! 513: - Added "phyint scoped" (see pimd.conf for usage) for administartively disabling
! 514: the forwarding of multicast groups. Implemented by Marian Stagarescu
! 515: <mailto:marian@bile.cidera.com>
! 516:
! 517: - The License has changed from the original USC to the more familiar BSD-like (the
! 518: KAME+OpenBSD guys brought to my attention that the original working in the USC
! 519: license "...and without fee..." is ambiguous and makes it sound that noone can
! 520: distribute pimd as part of some other software distribution and charge for that
! 521: distribution.
! 522:
! 523: - RSRR disabled by default in Makefile
! 524:
! 525: ** Bug Fixes
! 526: - Memory leaks bugs fixed in rp.c, thanks to Sri V <mailto:vallepal@yahoo.com>
! 527:
! 528: - Compilation problems for RedHat-7.1 fixed. Bug report by Philip Ho
! 529: <mailto:cbho@ie.cuhk.edu.hk>
! 530:
! 531: - PID computation fixed (it should be recomputed after a child =fork()=).
! 532: Thanks to Marian Stagarescu <mailto:marian@bile.cidera.com>
! 533:
! 534: - =find_route()=-related bug fixes (always explicitly check for NULL return). Bug
! 535: report by Marian Stagarescu <mailto:marian@bile.cidera.com>
! 536:
! 537: - Bug fix re. adding a local member with older ciscos (in =add_leaf()=). Bug report
! 538: by Marian Stagarescu <mailto:marian@bile.cidera.com>
! 539:
! 540: - Added explicit check whether =BYTE_ORDER= in pimd.h is defined. Bug report by
! 541: <mailto:mistkhan@indiatimes.com>
! 542:
! 543: * Version 2.1.0-alpha29.6: May 4, 2001
! 544: ** Bug Fixes
! 545: - Bug fixes in processing Join/Prune messages. Thanks to Sri V
! 546: <mailto:vallepal@yahoo.com>
! 547:
! 548: * Version 2.1.0-alpha29.5: February 22, 2001
! 549: ** Changes & New Features
! 550: - =VIFM_FORWARDER()= macro renamed to =VIFM_LASTHOP_ROUTER=.
! 551:
! 552: - Mini-FAQ entries added to README.
! 553:
! 554: ** Bug Fixes
! 555: - When there is a new member, =add_leaf()= is called by IGMP code for any router,
! 556: not only for a DR. The reason is because not only the DR must know about local
! 557: members, but the last-hop router as well (so eventually it will initiate a SPT
! 558: switch). Similar fixes to =add_leaf()= inside route.c as well. Problem
! 559: reported by Hitoshi Asaeda <mailto:asaeda@yamato.ibm.com>. XXX: Note the
! 560: lenghty comment in the beginning of =add_leaf()= about a pimd desing problem
! 561: that may result in SPT switch not initiated immediately by the last-hop router.
! 562:
! 563: - DR entry timer bug fix in timer.c: When (*,G)'s iif and (S,G)'s iif are not
! 564: same, (S,G)'s timer for the DR doesn't increase. Reported indirectly by
! 565: <mailto:toshiaki.nakatsu@fujixerox.co.jp>
! 566:
! 567: * Version 2.1.0-alpha29.4: December 1, 2000
! 568: ** Changes & New Features
! 569: - README cleanup + Mini-FAQ added
! 570:
! 571: - =igmp_proto.c=: printf argument cleanup (courtesy KAME)
! 572:
! 573: - =main.c:restart()=: forgotten printf argument added (courtesy KAME)
! 574:
! 575: ** Bug Fixes
! 576: - =kern.c:k_stop_pim()=: Fix the ordering of =MRT_PIM= and =MRT_DONE=,
! 577: thanks to Hitoshi Asaeda <mailto:asaeda@yamato.ibm.co.jp>.
! 578:
! 579: - =route.c:add_leaf()=: mrtentry creation logic bug fix. If the router is not a
! 580: DR, a mrtentry is never created. Tanks to Hitoshi Asaeda
! 581: <mailto:asaeda@yamato.ibm.co.jp> & (indirectly)
! 582: <mailto:toshiaki.nakatsu@fujixerox.co.jp>
! 583:
! 584: - =pim_proto.c=: Two critical bug fixes. J/P prune suppression related message
! 585: and J/P message with (*,*,RP) entry inside. Thanks to Azzurra Pantella
! 586: <mailto:s198804@studenti.ing.unipi.it> and Nicola Dicosmo from University of
! 587: Pisa
! 588:
! 589: - =pim_proto.c:receive_pim_bootstrap()=: BSR-related fix from Kame's pim6sd.
! 590: Even when the BSR changes, just schedule an immediate advertisemnet of C-RP-ADV,
! 591: instead of sending message, in order to avoid sending the advertisement to the
! 592: old BSR. In response to comment from <mailto:toshiaki.nakatsu@fujixerox.co.jp>
! 593:
! 594: * Version 2.1.0-alpha29.3: October 13, 2000
! 595: ** Bug Fixes
! 596: - =ADVANCE()= bug fix in routesock.c (if your system doesn't have =SA_LEN=)
! 597: thanks to Eric S. Johnson <mailto:esj@cs.fiu.edu>
! 598:
! 599: * Version 2.1.0-alpha29.2: October 13, 2000
! 600: NB: THIS pimd VERSION WON'T WORK WITH OLDER PIM-SM KERNEL PATCHES (kernel
! 601: patches released prior to this version)!
! 602:
! 603: ** Changes & New Features
! 604: - The daemon that the kernel will prepare completely the inner multicast packet for
! 605: PIM register messages that the kernel is supposed to encapsulate and send to the
! 606: RP.
! 607:
! 608: - Now pimd compiles on OpenBSD-2.7. PIM control messages exchange test passed.
! 609: Ddon't have the infrastructure to perform more complete testing.
! 610:
! 611: - =main.c:cleanup()=: Send =PIM_HELLO= with holdtime of '0' if pimd is going away,
! 612: thanks to JINMEI Tatuya <mailto:jinmei@isl.rdc.toshiba.co.jp>
! 613:
! 614: - =include/netinet/pim.h= updated
! 615:
! 616: - pimd code adapted to the new =struct pim= definition.
! 617:
! 618: - Added =PIM_OLD_KERNEL= and =BROKEN_CISCO_CHECKSUM= entries in the Makefile.
! 619:
! 620: - Don't ignore kernel signals if any of src or dst are NULL.
! 621:
! 622: - Don't touch =ip_id= on a PIM register message
! 623:
! 624: - README cleanup: kernel patches location, obsoleted systems clarification, etc.
! 625:
! 626: - =k_stop_pim()= added to =cleanup()= in =main.c= (courtesy Kame)
! 627:
! 628: ** Bug Fixes
! 629: - =RANDOM()=-related bug fix re. =jp_value= calculation in =pim_proto.c=,
! 630: thanks to JINMEI Tatuya <mailto:jinmei@isl.rdc.toshiba.co.jp>
! 631:
! 632: - =realloc()= related memory leak bug in =config_vifs_from_kernel()= in config.c
! 633: courtesy Kame's pim6sd code.
! 634:
! 635: - Solaris-8 fixes thanks to Eric S. Johnson <mailto:esj@cs.fiu.edu>
! 636:
! 637: - =BROKEN_CISCO_CHECKSUM= bug fix thanks to Eric S. Johnson
! 638: <mailto:esj@cs.fiu.edu> and Hitoshi Asaeda.
! 639:
! 640: - =main.c=: 1000000 usec -> 1 sec 0 usec. Fix courtesy of the Kame project
! 641:
! 642: - =main.c:restart()= fixup courtesy of the Kame project
! 643:
! 644: - various min. message length check for the received control messages
! 645: courtesy of the Kame project. XXX: the pimd check is not enough!
! 646:
! 647: - VIF name string comparison fix in =routesock.c:getmsg()= courtesy of the Kame
! 648: project
! 649:
! 650: - missing brackets added inside =age_routes()= (a bug that will show up
! 651: only if =KERNEL_MFC_WC_G= was defined); courtesy of the Kame project
! 652:
! 653: * Version 2.1.0-alpha28: March 15, 2000
! 654:
! 655: ** Changes & New Features
! 656: - added #ifdef =BROKEN_CISCO_CHECKSUM= (disabled by default) to make cisco RPs
! 657: happy (read the comments in pim.c)
! 658:
! 659: - added #ifdef =PIM_TYPEVERS_DECL= in netinet/pim.h as a workaround that ANSI-C
! 660: doesn't guarantee that bit-fields are tightly packed together (although all
! 661: modern C compilers should not create a problem).
! 662:
! 663: ** Bug Fixes
! 664: - Fixes to enable point-to-point interfaces being added correctly, thanks to
! 665: Roger Venning <mailto:Roger.Venning@corpmail.telstra.com.au>
! 666:
! 667: - A number of minor bug fixes
! 668:
! 669: * Version 2.1.0-alpha27: January 21, 2000
! 670: NB: this release may the the last one from 2.1.0. The next release will be 2.2.0 and
! 671: there will be lots of changes inside.
! 672:
! 673: ** Bug Fixes
! 674: - Bug fix in =rp.c:add_grp_mask()= and =rp.c:delete_grp_mask()=: in some cases if
! 675: the RPs are configured with nested multicast prefixes, the add/delete may
! 676: fail. Thanks to Hitoshi Asaeda and the KAME team for pointing out this one.
! 677:
! 678: * Version 2.1.0-alpha26: October 28, 1999
! 679: ** Bug Fixes
! 680: - Bug fix in =receive_pim_register()= in =pim_proto.c:ntohl()= was missing
! 681: inside =IN_MULTICAST()=. Thanks to Fred Griffoul <mailto:griffoul@ccrle.nec.de>
! 682:
! 683: - Bug report and fix by Hitoshi Asaeda <mailto:asaeda@yamato.ibm.co.jp> in
! 684: =pim_proto.c:receive_pim_cand_rp_adv()= (if a router is not a BSR). Another bug
! 685: in =rp.c:delete_grp_mask_entry()=: an entry not in the head of the list was not
! 686: deleted propertly.
! 687:
! 688: - Some =VIFF_TUNNEL= checks added or deleted in various places. Slowly preparing
! 689: pimd to be able to work with GRE tunnels...
! 690:
! 691: * Version 2.1.0-alpha25: August 30, 1999
! 692: Bug reports and fixes by Hitoshi Asaeda <mailto:asaeda@yamato.ibm.co.jp> inside
! 693: =parse_reg_threshold()= and =parse_data_threshold()= in config.c
! 694:
! 695: ** Changes & New Features
! 696: - Successfully added multicast prefixes configured in pimd.conf are displayed at
! 697: startup
! 698:
! 699: - Use =include/freebsd= as FreeBSD-3.x include files and =include/freebsd2= for
! 700: FreeBSD-2.x.
! 701:
! 702: ** Bug Fixes
! 703: - Test is performed whether a =PIM_REGISTER= has invalid source and/or group
! 704: address of the internal packet.
! 705:
! 706: * Version 2.1.0-alpha24: August 9, 1999
! 707: ** Changes & New Features
! 708: - =PIM_DEFAULT_CAND_RP_ADV_PERIOD= definition set to 60, but default 'time' value
! 709: for inter Cand-RP messages is set in pimd.conf to 30 sec.
! 710:
! 711: - =PIM_REGISTER= checksum verification in =receive_pim_register()= relaxed for
! 712: compatibility with some older routers. The checksum has to be computed only over
! 713: the first 8 bytes of the PIM Register (i.e. only over the header), but some older
! 714: routers might compute it over the whole packet. Hence, the checksum verification
! 715: is over the first 8 bytes first, and if if it fails, then over the whole
! 716: packet. Thus, pimd that is RP should still work with older routers that act as
! 717: DR, but if an older router is the RP, then pimd cannot be the DR. Sorry, don't
! 718: know which particular routers and models create the checksum over the whole PIM
! 719: Register (if there are still any left).
! 720:
! 721: * Version 2.1.0-alpha23: May 24, 1999
! 722: ** Changes & New Features
! 723: - Finally pimd works under Linux (probably 2.1.126, 2.2.x and 2.3.x). However, a
! 724: small fix in the kernel =linux/net/ipv4/ipmr.c= is necessary. In function
! 725: =pim_rcv()=, remove the call to =ip_compute_csum()=:
! 726:
! 727: #+BEGIN_SRC c
! 728: --- linux/net/ipv4/ipmr.c.org Thu Mar 25 09:23:34 1999
! 729: +++ linux/net/ipv4/ipmr.c Mon May 24 15:42:45 1999
! 730: @@ -1342,8 +1342,7 @@
! 731: if (len < sizeof(*pim) + sizeof(*encap) ||
! 732: pim->type != ((PIM_VERSION<<4)|(PIM_REGISTER)) ||
! 733: (pim->flags&PIM_NULL_REGISTER) ||
! 734: - reg_dev == NULL ||
! 735: - ip_compute_csum((void *)pim, len)) {
! 736: + reg_dev == NULL) {
! 737: kfree_skb(skb);
! 738: return -EINVAL;
! 739: }
! 740: #+END_SRC
! 741:
! 742: - in pimd.conf "phyint" can be specified not only by IP address, but
! 743: by name too (e.g. "phyint de1 disable")
! 744:
! 745: - in pimd.conf 'preference' and 'metric' can be specified per "phyint"
! 746: Note that these 'preference' and 'metric' are like per iif.
! 747:
! 748: - =MRT_PIM= used (again) instead of =MRT_ASSERT= in kern.c. The problem is that
! 749: Linux has both =MRT_ASSERT= and =MRT_PIM=, while *BSD has only =MRT_ASSERT=.
! 750:
! 751: #+BEGIN_SRC c
! 752: #ifndef MRT_PIM
! 753: #define MRT_PIM MRT_ASSERT
! 754: #endif
! 755: #+END_SRC
! 756:
! 757: - Rely on =__bsdi__=, which is defined by the OS, instead of -DBSDI in Makefile,
! 758: change by Hitoshi Asaeda. Similarly, use =__FreeBSD__= instead of -DFreeBSD
! 759:
! 760: - Linux patches by Fred Griffoul <mailto:griffoul@ccrle.nec.de> including
! 761: a =netlink.c= instead of =routesock.c=
! 762:
! 763: - =vif.c:zero_vif()=: New function
! 764:
! 765: ** Bug Fixes
! 766: All bug reports thanks to Kaifu Wu <mailto:kaifu@3com.com>
! 767:
! 768: - Linux-related bug fixes regarding raw IP packets byte ordering
! 769:
! 770: - Join/Prune message bug fixed if the message contains several groups joined/pruned
! 771:
! 772: * Version 2.1.0-alpha22: November 11, 1998
! 773: Bug reports by Jonathan Day <mailto:jd9812@my-dejanews.com>
! 774:
! 775: ** Bug Fixes
! 776: - Bug fixes to compile under newer Linux kernel (linux-2.1.127) To compile for
! 777: older kernels ( ver < ???), add =-Dold_Linux= to the Makefile
! 778:
! 779: - For convenience, the =include/linux/netinet/{in.h,mroute.h}= files are added,
! 780: with few modifications applied.
! 781:
! 782: * Version 2.1.0-alpha21: November 4, 1998
! 783: ** Bug Fixes
! 784: - =pim_proto.c:join_or_prune()=: Bug fixes in case of (S,G) overlapping with
! 785: (*,G). Bug report by Dirk Ooms <mailto:Dirk.Ooms@alcatel.be>
! 786:
! 787: - =route.c:change_interfaces()=: Join/Prune (*,G), (*,*,RP) fire timer
! 788: optimization/fix.
! 789:
! 790: * Version 2.1.0-alpha20: August 26, 1998
! 791: ** Changes & New Features
! 792: - (Almost) all timers manipulation now use macros
! 793:
! 794: - =pim.h= and =pim_var.h= are in separate common directory
! 795:
! 796: - Added BSDI definition to =pim_var.h=, thanks to Hitoshi Asaeda.
! 797:
! 798: ** Bug Fixes
! 799: - fix TIMEOUT definitions in difs.h (bug report by Nidhi Bhaskar)
! 800: (originally, if timer value less than 5 seconds, it won't become 0)
! 801: It is HIGHLY recommended to apply that fix, so here it is:
! 802: #+BEGIN_SRC c
! 803: -------------BEGIN BUG FIX-------------------
! 804: 1) Add the following lines to defs.h (after #define FALSE):
! 805:
! 806: #ifndef MAX
! 807: #define MAX(a,b) (((a) >= (b))? (a) : (b))
! 808: #define MIN(a,b) (((a) <= (b))? (a) : (b))
! 809: #endif /* MAX & MIN */
! 810:
! 811: 2) Change the listed below TIMEOUT macros to:
! 812:
! 813: #define IF_TIMEOUT(timer) \
! 814: if (!((timer) -= (MIN(timer, TIMER_INTERVAL))))
! 815:
! 816: #define IF_NOT_TIMEOUT(timer) \
! 817: if ((timer) -= (MIN(timer, TIMER_INTERVAL)))
! 818:
! 819: #define TIMEOUT(timer) \
! 820: (!((timer) -= (MIN(timer, TIMER_INTERVAL))))
! 821:
! 822: #define NOT_TIMEOUT(timer) \
! 823: ((timer) -= (MIN(timer, TIMER_INTERVAL)))
! 824: ---------------END BUG FIX-------
! 825: #+END_SRC
! 826:
! 827: * Version 2.1.0-alpha19: July 29, 1998
! 828: Both bug reports by Chirayu Shah <mailto:shahzad@torrentnet.com>-
! 829:
! 830: ** Bug Fixes
! 831: - bug fix in =find_route()= when searching for (*,*,RP)
! 832:
! 833: - bug fix in =move_kernel_cache()=: no need to do =move_kernel_cache()=
! 834: from (*,*,R) to (*,G) first when we call =move_kernel_cache()= for (S,G)
! 835:
! 836: * Version 2.1.0-alpha18: May 29, 1998
! 837: ** Changes & New Features
! 838: - Now compiles under Linux (haven't checked whether the PIMv2 kernel support in
! 839: linux-2.1.103 works)
! 840:
! 841: ** Bug Fixes
! 842: - =parse_default_source*()= bug fix (bug reports by Nidhi Bhaskar)
! 843:
! 844: - allpimrouters deleted from igmp.c (already defined in pim.c)
! 845:
! 846: - igmpmsg defined for IRIX
! 847:
! 848: * Version 2.1.0-alpha17: May 21, 1998
! 849: ** Changes & New Features
! 850: - (*,G) MFC kernel support completed and verified. Compile with =KERNEL_MFC_WC_G=
! 851: defined in Makefile, but then must use it only with a kernel that supports (*,G),
! 852: e.g. =pimkern-PATCH_7=. Currently, kernel patches available for FreeBSD and
! 853: SunOS only.
! 854:
! 855: ** Bug Fixes
! 856: - =MRTF_MFC_CLONE_SG= flag set after =delete_single_kernel_cache()= is called
! 857:
! 858: * Version 2.1.0-alpha16: May 19, 1998
! 859: ** Changes & New Features
! 860: - PIM registers kernel encapsulation support. Build with =PIM_REG_KERNEL_ENCAP=
! 861: defined in Makefile.
! 862:
! 863: - (*,G) MFC support. Build with =KERNEL_MFC_WC_G= defined in Makefile. However,
! 864: =MFC_WC_G= is still not supported with =pimkern-PATCH_6=, must disable it for now.
! 865:
! 866: - =mrt.c:delete_single_kernel_cache_addr()=: New function, uses source, group to
! 867: specify an MFC to be deleted
! 868:
! 869: * Version 2.1.0-alpha15: May 14, 1998
! 870: - Another few bug fixes related to NetBSD definitions thanks to Heiko W.Rupp
! 871: <mailto:hwr@pilhuhn.de>
! 872:
! 873: * Version 2.1.0-alpha14: May 12, 1998
! 874: - A few bug fixes related to NetBSD definitions thanks to Heiko W.Rupp
! 875: <mailto:hwr@pilhuhn.de>
! 876:
! 877: * Version 2.1.0-alpha13: May 11, 1998
! 878: ** Changes & New Features
! 879: - If the RP changes, the necessary actions are taken to pass the new RP address to
! 880: the kernel. To be used for kernel register encap. support. Wnat needs to be done
! 881: is: (a) add =rp_addr= entry to the mfcctl structure, and then just set it in
! 882: =kern.c:k_chf_mfc()=. Obviously, the kernel needs to support the register
! 883: encapsulation (instead of sending WHOLEPKT to the user level). In the near few
! 884: days will make the necessary kernel changes.
! 885:
! 886: - =change_interfaces()=: Added "flags" argument. The only valid flag is
! 887: =MFC_UPDATE_FORCE=, used for forcing kernel call when only the RP changes.
! 888:
! 889: - =k_chg_mfc()= has a new argument: rp_addr. To be used for kernel register
! 890: encapsulation support
! 891:
! 892: - =MRT_PIM= completely replaced by =MRT_ASSERT=
! 893:
! 894: - =move_kernel_cache()=: Argument =MFC_MOVE_FORCE= is a flag instead of TRUE/FALSE
! 895:
! 896: - =process_cache_miss()=: removed unneeded piece of code
! 897:
! 898: * Version 2.1.0-alpha12: May 10, 1998
! 899: ** Changes & New Features
! 900: - Use the cleaned up =netinet/pim.h=
! 901:
! 902: - Remove the no needed anymore pim header definition in =pimd.h=
! 903:
! 904: - Don't use =MRT_PIM= in in kern.c anymore, replaced back with =MRT_ASSERT=.
! 905:
! 906: - =added default_source_metric= and =default_source_preference= (1024) because the
! 907: kernel's unicast routing table is not a good source of info; configurable in
! 908: pimd.conf
! 909:
! 910: - Can now compile under NetBSD-1.3, thanks to Heiko W.Rupp <mailto:hwr@pilhuhn.de>
! 911:
! 912: ** Bug Fixes
! 913: - Incorrect setup of the borderBit and nullRegisterBit (different for big and
! 914: little endian machines) fixed; =*_BORDER_BIT= and =*NULL_REGISTER_BIT= redefined
! 915:
! 916: - don't send =pim_assert= on tunnels or register vifs (if for whatever reason we
! 917: receive on such interface)
! 918:
! 919: - ignore =WRONGVIF= messages for register and tunnel vifs (the cleaned up
! 920: kernel mods dont send such signal, but the older (before May 9 '98) pimd
! 921: mods that signaling was enabled
! 922:
! 923: * Version 2.1.0-alpha11: March 16, 1998
! 924: ** Changes & New Features
! 925: - =vif.c:find_vif_direct_local()=: New function, used in =routesock.c=, =igmp_proto.c=
! 926:
! 927: - Use =MFC_MOVE_FORCE/MFC_MOVE_DONT_FORCE= flag in =mrt.c=, =route.c=,
! 928: =pim_proto.c=, when need to move the kernel cache entries between (*,*,RP),
! 929: (*,G), (S,G)
! 930:
! 931: - new timer related macros: =SET_TIMER()=, =FIRE_TIMER()=, =IF_TIMER_SET()=,
! 932: =IF_TIMER_NOT_SET()=
! 933:
! 934: ** Bug Fixes
! 935: - =timer.c:age_routes()=: bunch of fixes regarding J/P message fragmentation
! 936:
! 937: - =route.c:process_wrong_iif()=: (S,G) SPT switch bug fix: ANDed =MRTF_RP=
! 938: fixed to =MRTF_RP=
! 939:
! 940: - =pim_proto.c= & =timer.c=: (S,G) Prune now is sent toward RP, when iif
! 941: toward S and iif toward RP are different
! 942:
! 943: - =pim_proto.c:join_or_prune()= bug fixes
! 944:
! 945: - =pim_proto.c=: (S,G)Prune entry's timer now set to J/P message holdtime
! 946:
! 947: - =pim_proto.c:receive_pim_join_prune()=: Ensure pruned interfaces are correctly
! 948: reestablished
! 949:
! 950: - =timer.c:age_routes()=: now (S,G) entry with local members (inherited from
! 951: (*,G)) is timeout propertly
! 952:
! 953: - =timer.c:age_routes()=: (S,G) J/P timer restarted propertly
! 954:
! 955: - =timer.c:age_routes()=: check also the (S,G)RPbit entries in the forwarders and
! 956: RP and eventually switch to the shortest path if data rate too high
! 957:
! 958: - =route.c:process_wrong_vif()= fire J/P timer
! 959:
! 960: - =route.c:switch_shortest_path()=: reset the iif toward S if there is already
! 961: (S,G)RPbit entry
! 962:
! 963: * Version 2.1.0-alpha10: March 3, 1998
! 964: Temp. non-public release.
! 965:
! 966: ** Changes & New Features
! 967: - `interval` can be applied for data rate check. The statement in =pimd.conf=
! 968: that only the default value will be used is not true anymore.
! 969:
! 970: - The RP-initiated and the forwarder-initiated (S,G) switch threshold rate
! 971: can be different.
! 972:
! 973: - =pim_proto.c:receive_pim_register()=: check if I am the RP for that group,
! 974: and if "no", send =PIM_REGISTER_STOP= (XXX: not in the spec, but should be!)
! 975:
! 976: - =pim_proto.c:receive_pim_register_stop()=: check if the =PIM_REGISTER_STOP=
! 977: originator is really the RP, before suppressing the sending of the PIM
! 978: registers. (XXX: not in the spec but should be there)
! 979:
! 980: - =rp.c:check_mrtentry_rp()=: new function added to check whether the RP
! 981: address is the corresponding one for the given mrtentry
! 982:
! 983: - =debug.c:dump_mrt()= timer values added
! 984:
! 985: - =route.c=: =add_leaf()=, =process_cache_miss()=, =process_wrong_iif()=
! 986: no routing entries created for the LAN scoped addresses
! 987:
! 988: - =DEBUG_DVMRP_DETAIL= and =DEBUG_PIM_DETAIL= added
! 989:
! 990: ** Bug Fixes
! 991: - =mrt.c:add_kernel_cache()=: no kernel cache duplicates
! 992:
! 993: - =mrt.c:move_kernel_cache()=: if the iif of the (*,*,R) (or (*,G))
! 994: and (S,G) are different, dont move the cache entry "UP"
! 995:
! 996: - =timer.c:age_routes()=: (S,G) =add_jp_entry()= flag fixed, SPT switch related.
! 997:
! 998: - =kern.c:k_get_sg_cnt()=: modified to compensate for the kernel's return code
! 999: bug for getting (S,G) byte count (=SIOCGETSGCNT=)
! 1000:
! 1001: - =pim_proto.c:receive_pim_register()=: if the (S,G) oif is NULL, now
! 1002: checks whether the iif is =register_vif=
! 1003:
! 1004: * Version 2.1.0-alpha9: February 18, 1997
! 1005: ** Changes & New Features
! 1006: - "non-commersial" statement deleted from the copyright message
! 1007:
! 1008: - mrinfo support added
! 1009:
! 1010: - mtrace support added (not completed and not enough tested)
! 1011:
! 1012: - if invalid local address for =cand_rp= or =cand_bootstrap_router= in =pimd.conf=,
! 1013: automatically will use the largest local multicast enabled address
! 1014:
! 1015: - "include" directory for FreeBSD and SunOS added, so now pimd can be compiled
! 1016: without having the necesary "include" files added to your system. Probably a bad
! 1017: idea and may remove it later.
! 1018:
! 1019: - some default values for the IP headers of the IGMP and PIM packets are fixed
! 1020:
! 1021: - =VIFF_PIM_NBR= and =VIFF_DVMRP_NBR= flags added
! 1022:
! 1023: - =VIFF_REGISTER= now included in the RSRR vifs report
! 1024:
! 1025: - =find_route()= debug messages removed
! 1026:
! 1027: - #ifdef for =HAVE_SA_LEN= corrected
! 1028:
! 1029: - =debug.c=: small fixes
! 1030:
! 1031: * Version 2.1.0-alpha8: November 23, 1997
! 1032: ** Bug Fixes
! 1033: - BSDI related bug fix in defs.h
! 1034:
! 1035: - small changes in Makefile
! 1036:
! 1037: * Version 2.1.0-alpha7: November 23, 1997
! 1038: ** Changes & New Features
! 1039: - RSRR support for (*,G) completed
! 1040:
! 1041: - BSDI 3.0/3.1 support by Hitoshi Asaeda <mailto:asaeda@yamato.ibm.co.jp>
! 1042: (the kernel patches will be available soon)
! 1043:
! 1044: - Improved debug messages format (thanks to Hitoshi Asaeda)
! 1045:
! 1046: - A new function =netname()= for network IP address print instead of =inet_fmts()=,
! 1047: thanks to Hitoshi Asaeda.
! 1048:
! 1049: - =pimd.conf=: format changed
! 1050:
! 1051: * Version 2.1.0-alpha6: November 20, 1997
! 1052: ** Bug Fixes
! 1053: - Remove the inherited leaves from (S,G) when a receiver drops membership
! 1054:
! 1055: - some parameters when calling =change_interface()= fixed
! 1056:
! 1057: - use =send_pim_null_register= + take the appropriate action when the register
! 1058: suppression timer expires
! 1059:
! 1060: - bug fix related to choosing the largest local IP address for little endian
! 1061: machines.
! 1062:
! 1063: * Version 2.1.0-alpha5
! 1064: ** Bug Fixes
! 1065: - =main.c:main()=: startup message fix
! 1066:
! 1067: - =timer.c:age_routes()=: bug fix in debug code
! 1068:
! 1069: * Version 2.1.0-alpha4: October 31, 1997
! 1070: ** Changes & New Features
! 1071: - Minor changes, so pimd now compiles for SunOS 4.1.3 (cc, gcc)
! 1072:
! 1073: ** Bug Fixes
! 1074: - =pim_proto.csend_periodic_pim_join_prune()=: bug fix thanks to SunOS cc
! 1075: warning(!), only affects the (*,*,RP) stuff.
! 1076:
! 1077: - =pimd.conf=: two errors, related to the rate limit fixed
! 1078:
! 1079: * Version 2.1.0-alpha3: October 13, 1997
! 1080: ** Changes & New Features
! 1081: - =Makefile=: cleanup
! 1082:
! 1083: - =defs.h=: cleanup
! 1084:
! 1085: - =routesock.c=: cleanup
! 1086:
! 1087: ** Bug Fixes
! 1088: - =igmp_proto.c:accept_group_report()=: bug fixes
! 1089:
! 1090: - =pim_proto.c:receive_pim_hello()=: bug fixes
! 1091:
! 1092: - =route.c:change_interfaces()=: bug fixes
! 1093:
! 1094: - =rp.c=: bug fixes in =init_rp_and_bsr()=, =add_cand_rp()=, and
! 1095: =create_pim_bootstrap_message()=
! 1096:
! 1097: * Version 2.1.0-alpha2: September 23, 1997
! 1098: ** Changes & New Features
! 1099: - =Makefile=: "make diff" code added
! 1100:
! 1101: - =debug.c=: debug output slightly changed
! 1102:
! 1103: ** Bug Fixes
! 1104: - =defs.h:*TIMEOUT()=: definitions fixed
! 1105:
! 1106: - =route.c=: bugs fixed in =change_interface()= and =switch_shortest_path()=
! 1107:
! 1108: - =timer.c:age_routes()=: number of bugs fixed
! 1109:
! 1110: * Version 2.1.0-alpha1: August 26, 1997
! 1111: ** Changes & New Features
! 1112: First alpha version of the "new, up to date" pimd. RSRR support + Solaris
! 1113: support added. Many functions rewritten and/or modified.
! 1114:
! 1115:
! 1116: # Local Variables:
! 1117: # mode: org
! 1118: # End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>