[Xorp-users] Announcing XORP Release 0.4
Atanu Ghosh
atanu@ICSI.Berkeley.EDU
Thu, 28 Aug 2003 14:06:48 -0700
On behalf of the entire XORP team, I'm delighted to be able to
announce XORP release 0.4, now available from www.xorp.org.
Main highlight since our last release in June include:
- The SNMP interface to XORP and the BGP4 MIB (including traps) is
complete.
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.4 (2003/08/28)
========================
ALL:
- Rename all process names from "foo" to "xorp_foo":
bgp -> xorp_bgp
fea -> xorp_fea
fea_dummy -> xorp_fea_dummy
finder -> xorp_finder
ospfd -> xorp_ospf
rib -> xorp_rib
rtrmgr -> xorp_rtrmgr
- Added support for "gmake install" that installs the required
XORP pieces under /usr/local/xorp.
Currently, the installed subdirectories and files follow
the organization in the XORP source code tree.
Only the following binaries are installed in subdirectory "bin":
call_xrl, xorp_rtrmgr, xorpsh.
- Removed old directory "mfea", because it is not needed anymore
(all the MFEA code has been merged with the FEA).
- The code does not compile anymore on MacOS X 10.2.x (or earlier),
due to compiler issues. After Apple starts distributing a better
compiler (probably with MacOS X 10.3.x?), then attempt will be
made to keep the code compiling again on MacOS X.
LIBXORP:
- Added pre-order iterators for Trie and RefTrie.
LIBXIPC:
- Addition of virtual methods in XrlRouter to provide processes with
an opportunity to detect finder connection, registristration, and
disconnection events.
XRL:
- Minor changes to clnt-gen that changes the names of some typedefs.
RTRMGR:
- Now all relative paths to templates, xrl files, configuration
files, etc are computed relative to the root of the XORP tree.
The root is computed in the following order:
1. The shell environment XORP_ROOT (if exists).
2. The parent directory the rtrmgr is run from
(only if it contains the etc/templates and the xrl/targets
directories).
3. The XORP_ROOT value as defined in config.h (currently this is
the installation directory, and it defaults to /usr/local/xorp).
XORPSH:
- Now all relative paths to executable commands are computed
relative to the root of the XORP tree. The root is computed
similar to the rtrmgr root (see above), except that in step (2)
we consider the parent directory the xorpsh is run instead.
FEA/MFEA:
- Bug fix: if the multicast protocol to start/stop is PIM, then start/stop
PIM multicast routing in the kernel.
- Bug fix (Linux-specific): if IGMP/MLD is enabled, then the multicast
router will properly receive all IGMP/MLD messages.
- Added support to enable/disable unicast forwarding in the kernel
via the FEA.
Currently, the support is only for FreeBSD, but is not used yet.
Hence, the user must explicitly enable unicast forwarding
before starting XORP.
E.g., in case of FreeBSD run `sysctl net.inet.ip.forwarding=1`
as root. In case of Linux run
`echo 1 > /proc/sys/net/ipv4/ip_forward` as root.
- Fix a compilation problem for NetBSD
(courtesy Hitoshi Asaeda <Hitoshi.Asaeda@sophia.inria.fr>
and Jun-ichiro itojun Hagino <itojun@iijlab.net>).
- Initial support for Linux /proc parsing to return network interface
information (work in progress).
- Bug fixes in setting the broadcast or p2p flags and addresses
in the FEA internal interface tree (IfTree).
- Bug fix in computing the minimum size of a message received
on a routing socket.
- Change the MFEA configuration scripts so now the IPv4/IPv6 setup
is controlled by a single variable IP_VERSION that should be
either IPV4 or IPV6. Note that those configuration scripts
are temporary solution until the MFEA is integrated with
the rtrmgr.
RIB:
- No significant changes.
BGP:
- Update packets with unknown path attributes are now correctly handled.
MLD/IGMP:
- Change the "RX" log messages to include the vif name a message was
received on.
- Initial support for returning the process status via get_status XRL.
- Change the MLD/IGMP configuration scripts so now the IPv4/IPv6 setup
is controlled by a single variable IP_VERSION that should be
either IPV4 or IPV6. Note that those configuration scripts
are temporary solution until the MLD/IGMP is integrated with
the rtrmgr.
PIM-SM:
- Change the "RX" log messages to include the vif name a message was
received on.
- Change the PIM configuration scripts so now the IPv4/IPv6 setup
is controlled by a single variable IP_VERSION that should be
either IPV4 or IPV6. Note that those configuration scripts
are temporary solution until the PIM is integrated with
the rtrmgr.
- Implement Join/Prune items fragmentation across Join/Prune messages
when generating Join/Prune messages.
- Fix some of the XRL names related to static RP configuration
in the configuration shell scripts.
- Fix the generation of Assert messages when data packets are received
on the wrong interface; in addition, the Assert messages triggered
by data packets are rate-limited to one Assert message/s (on
average, per (S,G) or (*,G) routing entry).
- Implement an optimization when generating Assert messages
triggered by the data packets received on the wrong interface:
suppress the second Assert message that is a duplicate.
- Implement bandwidth-prorated SPT switch triggering:
The SPT switch can be triggered at the last-hop router if the
bandwidth from a given source is above a configured threshold.
In addition, the same mechanism is implemented in the RP as well
(not in the spec, where the SPT switch in the RP is always triggered
by the first packet).
- Keep various PIM-related statistics (e.g., number of sent
or received PIM control messages per interface, etc), and add
the appropriate XRL interface to get or reset those statistics.
- Modify slightly the "show pim join" CLI output. E.g., print
"Could assert WC:" for all entries, print "Could assert SG:"
for (S,G,rpt) as well, etc.
- Bug fix: when receiving IPv6 PIM packets, use the IPv6-specific
pseudo-header to compute the checksum.
CLI:
- On exit, restore the original terminal flags in case of stdio-based
CLI access. This should fix a bug when running xorpsh from sh/bash
and pressing Ctrl-D leaves sh/bash in non-echo mode.
- Reverse the key binding of 'j' and 'k' in page mode. Now the
binding is same as in "vi/more/less":
'j' scroll down one line, while 'k' scroll up one line.
SNMP:
- Full implementation of BGP4-MIB module (RFC 1657) including traps.
RIP:
- Implementation functionally operational save communication with the RIB
for injecting routes, the FEA to send and receive packets, FEA
interface monitoring code, and an XRL interface for configuration.