From atanu@ICSI.Berkeley.EDU Fri Apr 15 23:01:50 2005 From: atanu@ICSI.Berkeley.EDU (Atanu Ghosh) Date: Fri, 15 Apr 2005 15:01:50 -0700 Subject: [Xorp-announce] Announcing XORP Release 1.1 Message-ID: <76590.1113602510@tigger.icir.org> On behalf of the entire XORP team, I'm delighted to announce the XORP 1.1 Release, which is now available from . This release is primarily a bug fix release. The Click support that was broken in release 1.0 is again working. Some improvements have been made to the IPv6 support in BGP, such that we are using it at our border for IPv6 connectivity. We now have a "XORP User Manual" and "An Introduction to Writing a XORP Process": . Please note that a XORP Live CD is also available. This is a bootable CD that allows you to experiment with XORP without having to build or install it. We have put significant effort into testing but obviously we have not found all the problems. This is where you can help us to make XORP more stable, by downloading and using it! 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 P.S. Release notes and errata are included below. ------------------------------------------------------------------ XORP RELEASE NOTES Release 1.1 (2005/04/13) ========================= ALL: - Numerous improvements, bug fixes and cleanup. - XORP now builds on amd64+OpenBSD-3.6-current. - The --enable-advanced-mcast-api flag to "./configure" has been replaced with the --disable-advanced-multicast-api flag. - Addition of support for code execution profiling. - Currently "gmake" does not build the regression tests. The command "gmake check" should be used to build and run the regression tests. - Addition of two new documents: * "An Introduction to Writing a XORP Process" * "XORP User Manual" CONFIGURATION: - All "enabled: true/false" XORP configuration flags are now renamed to "disable: false/true". - The syntax for configuring the IPv4/IPv6 forwarding has changed: OLD: fea { enable-unicast-forwarding4: true enable-unicast-forwarding6: true } NEW: fea { unicast-forwarding4 { disable: false } unicast-forwarding6 { disable: false } } - The syntax for configuring the AFI/SAFI combinations in BGP has changed: OLD: bgp { peer { enable-ipv4-multicast enable-ipv6-unicast enable-ipv6-multicast } } NEW: bgp { peer { ipv4-unicast: true ipv4-multicast: true ipv6-unicast: true ipv6-multicast: true } } The new syntax allows IPv4 unicast to be disabled which was not previously possible. - The syntax for configuring the nexthop router address for static routes has changed: OLD: nexthop: NEW: next-hop: LIBXORP: - Bug fix in ordering events scheduled at exactly the same time and expiring at exactly the same time. - Various improvements to the eventloop implementation. - Addition of a mechanism for buffered asynchronous reads and writes. LIBXIPC: - Addition of XRL pipelining support. - The Finder client address can be defined by the following variable in the environment: XORP_FINDER_CLIENT_ADDRESS. This re-enables communicating with remote XORP processes. - Various other improvements (including performance) and bug fixes. LIBFEACLIENT: - Few bug fixes. XRL: - No significant changes. RTRMGR: - Addition of a new rtrmgr template keyword: %deprecated: "Reason". This keyword can be used to deprecate old configuration statements. - Addition of a new rtrmgr keyword: %update. It is similar to %activate, and is called whenever the configuration in the subtree has changed. - Modification to the rtrmgr template semantics: the XRLs per template nodes are sent in the order those nodes are declared in the template files. Previously, the order was alphabetical (by the name of the template nodes). - Various other improvements and bug fixes. XORPSH: - Addition of a mechanism to track the status of the modules, and to provide operational commands for only those modules that are running. - Various other improvements and bug fixes. POLICY: - Initial implementation of a policy manager. It is still being tested, and should not be used. FEA/MFEA: - Implementation of Click FEA support. - Addition of support for discard interfaces and discard routes. - Addition of support for adding interface-specific routes. - Addition of support for ACLs, though currently there is no mechanism to configure them through the XORP configuration file. - Initial support for raw sockets. - Various bug fixes, improvements and cleanup. RIB: - Bug fix in adding point-to-point network interfaces. - Removal of the old mechanism (ExportTable) for propagating the routes to the FEA and all other interested parties. - Removal of hard-wired "static" table. - Various other improvements and bug fixes. RIP: - MD5 authentication now works properly. Previously, it was generating the wrong signature. - Cisco compatibility bug fix. BGP: - Addition of support for creating IPv6 TCP connections. - Few bug fixes in the Multi-protocol support. - Major improvements to the flow control mechanism. - Various improvements and bug fixes. STATIC_ROUTES: - Addition of configuration support for interface-specific static routes. - Improvements in handling stored routes if they are affected by network interface information updates. - Addition of support for tracking the state of the relevant processes, and for graceful registering/deregistering with them. - Addition of support for better checking of the XRL error codes. - Few other improvements and bug fixes. MLD/IGMP: - Bug fix in updating the primary address of an interface. - Addition of support for tracking the state of the relevant processes, and for graceful registering/deregistering with them. - Addition of support for better checking of the XRL error codes. - Addition of support for better queueing of the outgoing XRLs so their ordering is preserved. - Few other improvements and bug fixes. PIM-SM: - Bug fixes in handling the MRIB entries and MRIB-related state. - Bug fix in scheduling the internal PimMre tasks. - Bug fix in updating the primary address of an interface. - Bug fix in the computation of the checksum of PIM Register packages received from a Cisco router that itself is not spec-compliant in the checksum computation. - Addition of support for tracking the state of the relevant processes, and for graceful registering/deregistering with them. - Addition of support for better checking of the XRL error codes. - Addition of support for better queueing of the outgoing XRLs so their ordering is preserved. - Various other bug fixes, improvements and cleanup. FIB2MRIB: - Bug fixes when adding and deleting the Fib2Mrib entries. - Improvements in handling stored routes if they are affected by network interface information updates. - Addition of support for tracking the state of the relevant processes, and for graceful registering/deregistering with them. - Addition of support for better checking of the XRL error codes. - Few other bug fixes and improvements. CLI: - Bug fix in auto-completion for sub-commands. - Few other bug fixes and improvements. SNMP: - No significant changes. ------------------------------------------------------------------ XORP ERRATA XORP ERRATA ALL: - Parallel building (e.g., "gmake -j 4") may fail on multi-CPU machines. The simplest work-around is to rerun gmake or not to use the -j flag. - The following compiler is known to be buggy, and should not be used to compile XORP: gcc34 (GCC) 3.4.0 20040310 (prerelease) [FreeBSD] A newer compiler such as the following should be used instead: gcc34 (GCC) 3.4.2 20040827 (prerelease) [FreeBSD] - If you run BGP, RIB, FIB2MRIB, and PIM-SM at the same time, the propagation latency for the BGP routes to reach the kernel is increased. We are investigating the problem. LIBXORP: - No known issues. LIBXIPC: - No known issues. LIBFEACLIENT: - No known issues. XRL: - No known issues. RTRMGR: - There are several known issues, but none of them is considered critical. The list of known issues is available from http://www.xorp.org/bugzilla/query.cgi - Using the rtrmgr "-r" command-line option to restart processes that have failed does not work if a process fails while being reconfigured via xorpsh. If that happens, the rtrmgr itself may coredump. Therefore, using the "-r" command-line option is not recommended! Also, note that a process that has been killed by SIGTERM or SIGKILL will not be restarted (this is a feature rather than a bug). Ideally, we want to monitor the processes status using the finder rather than the forked children process status, therefore in the future when we have a more robust implementation the "-r" switch will be removed and will be enabled by default. XORPSH: - There are several known issues, but none of them is considered critical. The list of known issues is available from http://www.xorp.org/bugzilla/query.cgi FEA/MFEA: - On Linux with kernel 2.6 (e.g., RedHat FC2 with kernel 2.6.5-1.358), some of the tests may fail (with or without an error message), but no coredump image. Some of those failures can be contributed to a kernel problem. E.g., running "dmesg can show kernel "Oops" messages like: Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: 02235532 *pde = 00000000 Oops: 0000 [#15] CPU: 0 EIP: 0060:[<02235532>] Not tainted EFLAGS: 00010202 (2.6.5-1.358) EIP is at __dev_get_by_index+0x14/0x2b eax: 022db854 ebx: 1ae7aef8 ecx: 00000001 edx: 00000000 esi: 00000000 edi: 00008910 ebp: fee43e9c esp: 1ae7aef0 ds: 007b es: 007b ss: 0068 Process test_finder_eve (pid: 2026, threadinfo=1ae7a000 task=1406d7b0) Stack: 022365c7 00000000 009caffc 009cc780 0969ef28 fee43edc 00000001 009cc780 0969ef28 fee43ed8 00008910 00000000 00008910 fee43e9c 02236e50 fee43e9c 07aa4e00 3530355b 5d303637 00000000 0227a55b 021536b6 022cfa00 00000001 Call Trace: [<022365c7>] dev_ifname+0x30/0x66 [<02236e50>] dev_ioctl+0x83/0x283 [<0227a55b>] unix_create1+0xef/0xf7 [<021536b6>] alloc_inode+0xf9/0x175 [<0227c090>] unix_ioctl+0x72/0x7b [<022301a5>] sock_ioctl+0x268/0x280 [<0223054f>] sys_socket+0x2a/0x3d [<0214ea0e>] sys_ioctl+0x1f2/0x224 Code: 0f 18 02 90 2d 34 01 00 00 39 48 34 74 08 85 d2 89 d0 75 ea This appears to be a kernel bug triggered by ioctl(SIOCGIFNAME) which itself is called by if_indextoname(3). Currently, there is no known solution of the problem except to use a kernel that does not have the problem (at this stage it is not known whether all 2.6 Linux kernels are affected or only specific versions). It seems that a very similar problem has been reported to the Linux kernel developers, but the problem is still unsolved: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=121697 RIB: - In some rare cases, the RIB may fail to delete an existing route (See http://www.xorp.org/bugzilla/show_bug.cgi?id=62). We are aware of the issue and will attempt to fix it in the future. RIP: - No known issues. BGP: - If the RIB bug above (failure to delete an existing route) is triggered by BGP, then the deletion failure error received by BGP from the RIB is considered by BGP as a fatal error. This is not a BGP problem, but a RIB problem that will be fixed in the future. - The BGP configuration mandates that an IPv4 nexthop must be supplied. Unfortunately it is necessary to provide an IPv4 nexthop even for an IPv6 only peering. Even more unfortunately it is not possible to force the IPv6 nexthop. - It is *essential* for an IPv6 peering that an IPv6 nexthop is provided. Unfortunately the configuration does not enforce this requrement. This will be fixed in the future. STATIC_ROUTES: - No known issues. MLD/IGMP: - If MLD/IGMP is started with a relatively large number of interfaces (e.g., on the order of 20), then it may fail with the following error: [ 2004/06/14 12:58:56 ERROR test_pim:16548 MFEA +666 mfea_proto_comm.cc join_multicast_group ] Cannot join group 224.0.0.2 on vif eth8: No buffer space available The solution is to increase the multicast group membership limit. E.g., to increase the value from 20 (the default) to 200, run as a root: echo 200 > /proc/sys/net/ipv4/igmp_max_memberships PIM-SM: - If the kernel does not support PIM-SM, or if PIM-SM is not enabled in the kernel, then running PIM-SM will fail with the following error message: [ 2004/06/12 10:26:41 ERROR xorp_fea:444 MFEA +529 mfea_mrouter.cc start_mrt ] setsockopt(MRT_INIT, 1) failed: Operation not supported - On Linux, if the unicast Reverse Path Forwarding information is different from the multicast Reverse Path Forwarding information, the Reverse Path Filtering should be disabled. E.g., as root: echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter OR echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter ... Otherwise, the router will ignore packets if they don't arrive on the reverse-path interface. For more information about Reverse Path Filtering see http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.kernel.rpf.html FIB2MRIB: - No known issues. CLI: - No known issues. SNMP: - On some versions of Linux, there are some bugs in net-snmp versions 5.0.8 and 5.0.9, which prevent dynamic loading from working. See http://www.xorp.org/snmp.html for links to the net-snmp patches that solve the problems. - Version 5.1 of net-snmp requires a simple modification, otherwise XORP will fail to compile. See http://www.xorp.org/snmp.html for a link to the net-snmp patch that solves the problems. ------------------------------------------------------------------