Changelog

We are at 0.9.5

Since 0.9.4

  • New MRIB implementation that scales better and has better performance.
  • Populating the MRIB with RIB entries is now optional (enabled by default).
  • MRIB entries now have Distance and Cost values (Distance takes precedence over Cost).
  • Updated PIM-BSR implementation to conform with latest changes introduced in draft 06.
  • New configuration system that allows specific features to be added/removed to/from the resulting MRD6 binary.
  • Improved the several PIM state machine.
  • Implemented MSNIP and MRDISC (Multicast router discovery) drafts.
  • Added 'show mld groups' command.
  • Improved logging messages (less clutter, log how long (S,G) states were alive, etc).
  • BGP neighbor sessions are now inactive by default and must be 'activate'd for the peering to created.
  • Improved user-space forwarding in Linux.
  • Support BSD ipv6 kernel forwarding (only SSM is working in BSD right now).
  • And lots of other fixed, this is a big update.

Since 0.9.4-beta1

  • Check for configuration files /etc/mrd6.conf, /etc/mrd.conf and mrd6.conf (local dir) before bailing out.
  • bug fixes:
    • fix some issues with missing upstream path if nexthop=:: (i.e. when using directly connected mrib entries)
    • properly time out (S,G) states by activity
    • feed sources from cache when (*,G) state is created
    • properly handle (S,G) state_desired()
    • proper handle of upstream interest when not DR for interface

Since 0.9.2-beta3

User features

  • Initial zebra module
  • added show pim rpf-neighbor <addr> method to display RPF_neighbor information
  • added log no attach <name> method to remove log nodes
  • added mrib no local <addr> method to remove previously added local prefixes
  • added mrib no prefix <addr> [via <addr>] [dev <name>] method to remove remove previously configured prefixes
  • added linux netlink-buffer <size> method to change the netlink buffer size used in linux
  • added console client-timeout <value> method to change the default timeout a telnet client is configured with
  • gave descriptions to most nodes and methods (seen via completion command)
  • implemented console command history
  • improved console tab-complete
  • implemented a mechanism that allows the restriction of source address that the router will accept Register-encapsulated packets from (#26)
  • allow embedded RP configurations to automatically configure register-accept-source-prefix (#27)
  • implemented rp-rejected-source-policy (#28)
  • implemented a mechanism to limit the set of neighbors (#25)
  • improved the BGP filtering mechanisms (BGPFiltering)

Fixes

  • fixed PIM BSR
  • fast-leave mechanism wasn't working in some situations
  • PIM (*,G) upstream joining could fail in some particular situations
  • and some minor issues

Internal changes

  • Moved RIB management code to rib_def
  • Allow modules to install RIB handlers
  • Added 'encoding_buffer', from BGP's one
  • increased MLDv2 compliance in startup-query and last-listener-query behaviours

Developer features

  • added an example module extending MLD functionality (mld_ext in src/extra/)

Since 0.9.2-beta2

  • allow the disable of PIM hellos by setting hello-interval to 0
  • implemented PIM Join/Prune suppression
  • properly handle the LAN Delay's T bit (neighbor tracking) included in PIM Hellos
  • only include LAN Delay hello option in multi-access interfaces (right now only ethernet is considered as such)
  • a couple PIM Assert fixes
  • better handling of PIM Register messages in RP mode
  • better confirmance of BSR behaviour (draft-ietf-pim-sm-bsr-05)
  • fixed two potential problems when MRD6 was used as an upstream router
    • it could miss the creation of (S,G)s as required
    • a potential problem with the removal of a downstream interface (such as after a Prune/Leave)

Since 0.9.2-beta1

  • (finally) implemented PIM Assert state machine. Not very well tested yet, please report any issues
  • better MLDv2 Router RFC compliance
  • removed some redundant MLD and PIM configuration variables
  • some memory savings due to internal state sharing
  • some state's output info was missing since 0.9.1
  • fixed a couple other regressions since 0.9.1
  • and of course, some generic cleanups

Since 0.9.1

  • source discovery interface, which allows distinct methods to specify the known sources for a specific group. The default method is 'data-plane' which learns sources from the packets received by the router (was previously the implicit method). This version also includes a 'static' method which allows the manual configure of sources
  • better configuration of static MRIB entries view a new method 'prefix'
  • general code fixes and lots of performance improvements
-->