[Xorp-users] Announcing XORP Release 0.3

Mark Handley mjh@icir.org
Mon, 09 Jun 2003 15:31:18 -0700


On behalf of the entire XORP team, I'm delighted to be able to
announce XORP release 0.3, now available from www.xorp.org.
Highlights since our last release in March include:

 - Significantly improved inter-process integration and error
   handling.

 - Many improvements to the XRL IPC mechanism, especially related to
   monitoring process start and termination.

 - Started work on an SNMP interface to XORP, with partial support for
   the BGP4 MIB now implemented and working.

 - The multicast FEA (MFEA) has been merged with the FEA, providing a
   more consistent and integrated interface with the forwarding engine.

 - RIB support for providing the full routing table to other processes
   such as PIM-SM.

 - PIM Sparse-Mode and MLD/IGMP are now reasonably complete and fairly
   well tested.

 - Work has started and on our RIP implementation.

Full release notes are included below.

In general, work is progressing very well, although we would not yet
recommend running XORP in production routing environments.  However,
as the architecture is basically complete though, this release of XORP
might be useful as the basis for research.  If you're interested in
the cutting edge, the current snapshot is always available by
anonymous CVS.  This release indicates a stable point where the
documentation matches the code and all the isolation tests are known
to succeed on our supported platforms.

As always we'd welcome your comments - xorp-users@xorp.org is the
right place for general discussion, and private feedback to the XORP
core team can be sent to feedback@xorp.org.

 - The XORP Team

------------------------------------------------------------------

		XORP RELEASE NOTES

Release 0.3 (2003/06/09)
========================

  ALL:
    - Compilation fixes for GCC3.3 on FreeBSD 4.8R.

    - Cross directory build and gmake check support.

    - Purge of abort() calls.  Replacement by XLOG_UNFINISHED,
      XLOG_UNREACHABLE and XLOG_ASSERT as appropriate, or in some
      cases better error handling code.

    - Change to autoconf-2.53 and automake-1.5 as standard autotool versions.
      The older autoconf-2.13 and automake-1.4 should still work.

    - Remove the multicast-specific timer implementation, and
      use instead the default Xorp timers (XorpTimer).

  LIBXORP:
    - Allocation without construction bug fixed in SelectorList code.  Fixes
      potential for junk values and sanity checking when the number of active
      file descriptors is large.

    - Addition of status codes for XORP processes to report operational 
      state (to the rtrmgr).

    - Addition of XLOG_UNFINISHED and XLOG_UNREACHABLE to xlog.h.

    - Explicitly disable copy constructor and assignment operator for
      EventLoop.

    - Replacement of traditional struct timeval with TimeVal class.  TimeVal
      comes with constructors and numerous helper methods.

    - IPvXNet methods renaming:
      get_ipv4Net() -> get_ipv4net()
      get_ipv6Net() -> get_ipv6net()

  LIBXIPC:
    - Removal of 0.1 release Finder code and compatability shims that allowed
      newer and older code to co-exist.  Renaming of "FinderNG" classes
      and files to "Finder".

    - Use of class and instance names and Finder policy for having a
      primary instance in a class (first registered is primary, then second
      in case first exits/fails, and so forth).

    - Support for tunneling XRLs and XRL responses to and from the Finder. 

    - Implementation event notification through the Finder using tunneled 
      XRLs.  XRL Targets can now request to be notified of the birth and
      death of other XRL Targets by the Finder.

    - Reduced number of XrlErrors to hopefully simplify handling errors.  

    - Addition of new enumated type XrlErrorCode and change 
      XrlError::error_code method to return this type.  Allows compiler to
      detect unhandled error types in switch statements (if default case is
      not used).

    - Finder clients no longer reconnect to the Finder should they lose their
      connection per ${XORP}/docs/design_arch/error_handling.tex.

    - Increased Finder timeout for call_xrl.

    - Fix memory corruption following Finder transport error events.

    - Convert all code to use FinderServer class when they need to instantiate
      a Finder.

    - More consistent handling of defaults on send and receive sides of Finder.

    - Fix xrl_parser_input.cc handling of absolute file names.

    - Assorted minor clean-ups.

  XRL:
    - Addition of get_status and shutdown methods to the common interface.

  RTRMGR:
    - Workaround for yacc incompatibilities on newer Redhat releases.

    - Implement a new TaskManager, which handles actually doing the
      work during a commit, starting processes and validating that they
      start, dependency interlocking between processes, and shutting
      down processes that are no longer needed.

    - rtrmgr will now shutdown processes after they are not needed.

    - rtrmgr can now use the common XRL call get_status to monitor
      process state, and the common XRL shutdown to gracefully shutdown a
      process.  Added new modinfo subcommands to specify when to use
      XRLs for these tasks.

    - Use system MD5 for authentication.

    - Better config file string parser.

    - Add tinderbox tests to cover some of the basic functionality.

    - Better error handling (more compliant with XORP Error Handling
      document).

  XORPSH:
    - Ctrl-C now terminates the current command,  Ctrl-D exits xorpsh.

  FEA:
    - MFEA code merged with the unicast FEA, though logically the MFEA
      is still a separate entity.

    - Refactoring of FEA internals regarding reading/writing/observing
      interfaces-related information and forwarding-table related
      information.

    - Support for few more OS-specific methods for reading
      interface-related information or forwarding table related information.

    - Addition of IPv6 support (where missing) for reading/writing information
      regarding network interfaces or the unicast forwarding table.

    - Addition of a command-line option to ``fea'' and ``fea_dummy'' to
      specify the finder hostname and port number.

    - On startup and shutdown remove from the kernel all forwarding entries
      added by the fea.

    - Addition of XRLs to obtain information about all network interfaces
      (i.e., not only those that are configured by the rtrmgr).
      Should be used only for debugging purpose (though temporary they
      are used by the MFEA as well).

    - ``fea_rtsock'' deprecated (replaced with the generic ``fea'').

  RIB: 
    - Export a RIB table to any target that registers interest.

    - Replace fea_fti/0.1 XRL interface with fti/0.2.  The new interface
      introduces metric, admin_distance and protocol_origin when RIB
      information is propagated to the RIB clients.

    - Refactoring of the Vif manager implementation.

    - Support for returning the process status through thet get_status
      XRL and shutting down using the shutdown XRL.

  BGP:
    - More robust to XRL communication failures. In particular support
      for retransmission.

    - Replace calls to abort() with more self-explanatory self-destruction.

    - Terminate interface removed and replaced with common shutdown XRL 
      interface.

    - Use system md5 header files.

    - Peer list sorted by remote IP for snmp.

    - Uninitialised variable bug fix in NextHopRibRequest.

    - Initial support for returning the process status via get_status XRL.

  MFEA:
    - MFEA code merged with the unicast FEA, though logically the MFEA
      is still a separate entity.
      As part of the merging process, the MFEA now obtains the information
      about network interfaces and the unicast forwarding table from the
      FEA instead of the the kernel.

    - Addition of a check for Router Alert IP option.

    - Enable receiving of hop-by-hop options.

    - Replace all MLD6_XXX with MLD_XXX (following KAME's recommendation).

    - Compilation fixes for NetBSD-current (and probably NetBSD-1.6.1)
      (courtesy Hitoshi Asaeda <Hitoshi.Asaeda@sophia.inria.fr>).

    - Initial support for returning the process status via get_status XRL.
 
    - Addition of a command-line option to ``test_mfea'' to specify the
      finder hostname and port number.

    - Misc. bug fixes, internal code refactoring, and cleanup.

  MLD/IGMP:
    - Protocol implementation testing completed.

    - Replace all MLD6_XXX with MLD_XXX (following KAME's recommendation).

    - Unify some of the MLD and IGMP protocol-specific code.

    - Support for configurable setting of the protocol version per vif.

    - Addition of a command-line option to ``test_mld6igmp'' to specify the
      finder hostname and port number.

    - Misc. bug fixes.

  PIM-SM:
    - Configuration-related fixes.

    - Rename RP-related configuration commands and XRLs:
      OLD: add_config_rp{4,6}, delete_config_rp{4,6}, config_rp_done
      NEW: add_config_static_rp{4,6}, delete_config_static_rp{4,6},
           config_static_rp_done

    - Addition of XRL interface to receive MRIB-related updates
      from the RIB; the interface is not used yet.

    - Initial support for returning the process status via get_status XRL.

    - Addition of a mechanism that should hold-off PIM-SM status
      to PROC_NOT_READY until it has received all necessary confirmation
      from both MFEA and MLD/IGMP.

    - Addition of PIM configuration option and XRL interface to configure
      the SPT-switch bandwidth threshold.  Currently, the SPT-switch is
      enabled only for the corner cases: switch on the first packet, or
      never switch.

    - Addition of a command-line option to ``test_pim'' to specify the
      finder hostname and port number.

  CLI:
    - Critical bug fix (could be triggered if a program like
      ${XORP}/pim/test_pim is run in background, and is accessed
      by the built-in CLI).

    - Addition of Ctrl-C handling:
      o If Ctrl-C is hit before <Enter>, then cancel the current line
        and present a new prompt.
      o If Ctrl-C is hit while waiting for command completion, then
        cancel the wait and present a new prompt.

    - Removed the 5 seconds timer that would timeout the waiting for
      command completion (the user can use Ctrl-C to cancel the wait).

    - Enable receiving Ctrl-C if the input is stdio (e.g., in case of xorpsh).

  SNMP:
    - Integrated with Net-SNMP agent.
    - Implemented bgpVersion and bgpPeerTable from BGP4-MIB (RFC 1657).

  RIP:
    - Implementation started.