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