[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.