[vyatta-svn] xorp: Changes to 'refs/tags/RELEASE_1_0_RC'

Tom Grennan tgrennan at suva.vyatta.com
Wed Dec 6 11:00:40 PST 2006


Tag 'RELEASE_1_0_RC' created by pavlin <pavlin> at 1970-01-01 00:00 -0800

Changes since RELEASE_0_1:
atanu (574):
      Add test4 in order to track a problem with the RIB on Linux.
      Fix a typo in the comments.
      The shell function "coord" sends commands to the coordinator process
      Recently the argument "not" was allowed with the "lookup" argument:
      Same bug in reregister code.
      The test harness parser now supports the "med" argument when building
      Add a unit test program for the next hop resolver. Fixed a number of
      Add "test_rib_fea1.sh" and "test_terminate.sh" to the soak tests.
      If a nexthop for which we have an answer from the RIB becomes invalid
      1) If a next hop changed and we re-registered interest with the RIB,
      Re-enabled tests "test4" and "test5". The tests required the aspaths
      The arguments to enable and disable interface were incorrect.
      Add the functions to enable and disable addresses.
      Ignore RTM_DELETE messages when they pop up from the routing socket.
      Rework the destructor for BGPMain. Previously calling the
      Increase the XLOG level for INFO to be high.
      Changed XLOG_WARNING to XLOG_INFO when using stale metrics.
      Add some debugging.
      Route add/delete commands from the RIB to the FEA are bracketed
      Incorrect index to array when calling c_format.
      Set the NEXT_HOP variable unconditionally. Previously it was only
      Start a dummy fea so the RIB has someone to talk to.
      In the active state if the tcp connection has succeeded we are
      Removed bogus comment.
      If an interval isn't specified do something.
      Dynamically add next hop re-write filter.
      The next hop rewrite code now changes the next hop attribute on the
      Incorrect error message. update -> open.
      The coord command will not block if the environment variable NOBLOCK
      Change test15 to make multiple connections. Indent the code to match
      Peering tests that use saved traffic files.
      Add a mrtd format dump from our border router to the repository.
      Add test_peering2.sh to the make check target.
      If constructing a packet causes an exception catch it.
      The length that was passed back from create forgot to add the size of
      Remove redundant cast.
      Allow these scripts to be called from other directories.
      Script to inject a saved feed into our BGP.
      In state active we set the hold duration to 4 minutes.
      Remove test1 as is has started failing on Koala. This test is not
      Add an additional half a second when priming the hold timer. This
      Put back the hold time test. With the additional half second this test
      Only do this if the hold timer is non zero, oops.
      Enable test2. Inject a saved feed and then toggle another peering.
      When we receive an open message unconditionally clear all timers and
      Use a holdtime of 30 seconds for the holdtime test.
      The xrl delete_peer does not require an AS number so remove this
      Hopefully the last draft.
      Put a one second delay between starting a program and firing an xrl at
      When printing out an update packet distinguish between an NLRI or
      If the wait command fails then terminate the test immediately.
      Increase the variable that holds the count of number in XRLs in flight
      Minor clarifications and bumped the release number.
      1) Standard error is no longer re-directed. So all the XLOG messages
      Replace calls to panic with XLOG_FATAL and calls to fprintf to XLOG_WARNING.
      Correct comment
      If we are being asked to release resources and the _handler was null
      Fix typo.
      Error handling in xorp work in progress.
      Process failure table.
      Start of FEA plan.
      Add subsection on XRL failures due to communication problems.
      Hopefully final draft before RFC.
      Fix typo.
      Add figure showing relationship between processes.
      First cut. Multicast related sections TBD.
      Restructure to match the introduction.
      Add a section describing the xorpsh and correct the table entry.
      Add a section on how we detect process failure.
      Add a section on execution errors.
      Text for actions to take when multicast components of the router fail.
      Fix typo.
      Mark all routing entries added by the fea with the "RTF_PROTO1" bit.
      Add a terminate method to the fea.
      ingnore error.ps.
      Removed doofus.
      Add terminate.
      A shutdown XRL has just been added in common. BGP already had a
      In test1, test peer2 creates a session and injects a large number of
      Add some debugging.
      In test2 remove all the calls to sleep and using print_peers wait for
      MacOS X compilation fixes.
      Bump the version number.
      Update BGP section.
      Bumped the date to June.
      Refactor the code in the callback to use a switch statement so all
      fprintf(stderr, -> debug_msg(
      fprintf(stderr, -> debug_msg(
      The handling of XRL errors should now correspond to the error
      Add an id to each route add/delete that can be matched in the
      Add a disconnect command.
      New test that injects a feed then disconnects session.
      Get echo to expand backslash sequences.
      Lose the fancy formatting. Don't check for connection establishment,
      Move test3 into the tests not fixed list.
      Fix comment regarding REPLY_TIMED_OUT.
      New style xrl callback handling.
      Watch for fea and rib, birth and death.
      Add XLOG and make method "ready" const.
      Throw an exception when a NO_FINDER error occurs rather than just exiting.
      Corrected error message.
      An XRL call to "reset" causes the destruction of all current peers. A
      These tests now all start a fea and rib.
      BGP will now check for the existence of a fea and rib processes before
      If a connect call fails, no longer generate an error. Dramatically
      If a process that BGP is dependant on exits and a tidy exit is being
      Each peer now has its own XrlStdRouter. So the call to pending now
      printf -> debug_msg.
      Pending will now return true when a peer is being initialised.
      Its now an error if the callback for an XRL doesn't happen in the
      Wait up to ten seconds for an XRL to complete.
      Add "-w" wait time argument to call_xrl and change test script to use it.
      In test2 poll for the peering to be dropped.
      Can't seem to get test2 to work. Give in add a ten second sleep.
      Count the number of update messages that are submitted to the
      Add a status XRL to the coordinator. This returns the state of a
      Use the new status method to detect when a peering is
      Paragraph regarding the new "status" xrl.
      Update a comment.
      Enable verbose output to try and find the problem with these tests.
      Add a generation id to the peer interactions. This allows us to detect
      Temporarily remove test_peering2.sh from the check target, it is
      Add a trace option ("-t") to the test_peers.
      Generate an XLOG_INFO message if an incoming connection is rejected.
      Go back to using an single XrlStdRouter. When a peer is removed mark
      Increase the delay after a reset from 5 to 10 seconds. A test_peer can
      1) Move test2 to the list of not fixed tests.
      Re-enable test_peering2.sh.
      Fix typo in comment.
      Move the DOUT macro from test_next_hop_resolver.cc to test_main.hh and
      Guard defines.
      Declare next hop resolver test functions in header file.
      Include test_next_hop_resolver.hh.
      The bgp isolation tests are now called in a regular manor.
      Add a debugging macro that uses the verbose level. Modify the test
      The test harness allows a saved data file in mrtd format to be sent to
      Rationalise function name: bgp_peer_updates_received -> bgp_peer_unchanged.
      When we fail to send an XRL because we are out of buffer space, stop
      Don't print a "+" everytime we call eventloop.run(). Too much output.
      Only allow 1 xrl in flight between BGP and the RIB. The previous value
      printf -> debug_msg.
      DEBUG_LOGGING disabled.
      Dump callback args from 12 to 13.
      In the destructor for BGPMain we wait for all the timers to
      Interfaces for IS-IS.
      Increase callback.hh late bound arguments from 12 to 13.
      Support for interface addresses and NLRI v4 and v6.
      sumary -> summary.
      When fetching routing table entries don't use an error to denote the
      Allow the setting of the finder host and port on the command line.
      Its not always possible to tell which test has failed. Has a test
      Add some more warnings. Still trying in vain to find the reason for
      The test_terminate.sh script doesn't actually verify that the bgp
      From my reading of the spec (draft-ietf-idr-bgp4-20.txt) an unknown
      Move the tokenize routine into its own header file.
      Support for sending optional path attributes.
      Out by one in argument checking code.
      Tests to verify that we correctly handle optional path
      Add test_path_attribute1.sh to the list of regression tests.
      1) Remove the UKNOWN type value for path attributes.
      An output filter has been added for unknown path attributes:
      1) Move all the tests to the working set.
      BGP - handling of unknown attributes completed.
      Remove outdated comment.
      Move set_parameter higher up the bgp.xif file then fix the generated errors.
      Add the type values for multiprotocol reachable and unreachable.
      SAFI = 3 - Removed in draft-ietf-idr-rfc2858bis-04.txt.
      Start of multiprotocol extensions.
      Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing.
      Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing.
      Str method now knows about multiprotocol attributes.
      Renaming packet_test -> test_packet to conform with xorp naming
      Rudimentary tests for IPv6 multiprotocol update packets.
      Correct comment.
      Increase the functionality of the process watcher so it can be used to
      Add two methods:
      Call the BGP MIB code when there are state transitions to allow SNMP
      If we are interested in the target "bgp4_mib" actually register
      Create a new static method to print notification error codes and
      Use the new method in the notification class to format error codes to
      Remove some dead code.
      When we generate a notification packet save the error codes. We were
      Undid last change. Last error should only contain state received from
      Add the access methods for the multiprotocol attributes.
      Print the AFI and SAFI values.
      Add the hook for enabling the Multiprotocol capability "MultiProtocolIPv6".
      Enable the sending of the IPv6 capability through the test harness.
      Update the program names.
      Update BGP section.
      Bumped version number.
      Rename  packet_coding_test.cc to  test_packet_coding.cc.
      Rename packet_coding_test.cc to test_packet_coding.cc.
      Refactor tests to use libxorp/test_main.hh.
      Fix a minor casting problem that caused the AFI to incorrectly read.
      Fixed the date and added a known problems section.
      Documented the problem with new session getting withdraws from
      Bumped version number and date.
      1) Removed redundant casts.
      Add a test for the refresh capability.
      Change assert -> XLOG_ASSERT and add some comments regarding why it it
      Occasionally test1 fails, perhaps because 10 seconds is not long
      Code to tease apart an update packet into its IPv4 and IPv6
      Some minor syntax errors (missing underscores), discovered when template code
      Support for generating ipv6 update packets.
      The copy constructor wasn't copying the ipv6 flag.
      Create a session with both sides sending "BGP Multiple Protocol
      The mandatory attributes ORIGIN, ASPATH and NEXT HOP only need to be
      Uncomment all the IPv6 hooks and add some debugging.
      1) Fix systematic bug in encoding and decoding multiprotocol nlri.
      Forgot to call the encode method on the multiprotocol attributes.
      Add some more multiprotocol test cases.
      Add a test that sends an IPv6 only update packet.
      Rather than creating a bogus next hop attribute for IPv6 just save the
      Previously there was a single push method. Split into an ipv4 and an
      Formatting.
      Distinguish between ipv4 and ipv6.
      #include <typeinfo>
      Add a clone method to all path attributes. It is now therefore
      1) Change all the clone methods to be const.
      Don't use typeid() and <typeinfo> to figure out which template
      Create an IPv6 nexthop and place it in path attribute list. Not a
      The multiprotocol reachable attribute no longer requires an embeded
      Actually set the bool that checks for the presence of local pref.
      Clarify comment with regard to IPv4 and IPv6 nexthop mismatches.
      Replace nasty horrible C style casts with cool C++ dynamic casts so we
      Add some more IPv6 tests.
      1) assert -> XLOG_ASSERT
      Minor reformatting.
      Use an AS path that will allow this test to pass.
      Print address family in NULL parent table warning.
      Added or removed the setting of local pref in tests that were not
      Typo in comment.
      Refactoring in preparation for IPv6 support.
      Add a copy constructor.
      Add support for IPv6 in the test harness.
      test_trie.
      In a list iterator used a different .begin() to .end(). Why did the
      Free up the memory allocated for the update packet.
      Free up the memory allocated for the update packet.
      Free up the memory allocated for the update packet.
      Comments and minor reformatting.
      Full support for IPv6.
      Apple size_t casts.
      In methods built from templates its not always easy to detect if we are in an
      For multiprotocol packets:
      Add a test for multiprotocol unreachable packets.
      Missed a few IPv4 dependencies.
      1) IPv6 multiprotocol attributes are now extracted and placed in an
      Fixed some problems in the building of IPv6 multiprotocol packets by
      Zap dead code.
      Missed adding a goto.
      Add an aspath to keep the update packet legal.
      Change the formatting of the multiprotocol output.
      Manipulate the real head and tail pointers as opposed to local copies.
      Rename update_walk to replay_walk.
      Tests for the replay code.
      The replay code no longer generates redundant withdraws.
      Wait for the finder to become ready.
      Add "replay" support.
      Wait one second before exiting, this will allow any callers to the
      No longer use the XrlRouter pending method to test if a command
      When dumping the state from a trie it is now necessary to specify
      o Add a str() method to return the seconds and microseconds.
      We can now generate IPv4 and IPv6 mrtd format route table dumps.
      There are two times with each entry in a route table dump. One seems
      Remove two entries:
      The test harness now has all the functionality it was designed to have
      Reformatting.
      Add all the missing IPv6 functions.
      Small formatting nit when printing BGP Multiple Protocol Capability
      We were printing nlri not withdrawn for withdrawn routes. The joys of
      Implement a clone method for AnyAttribute().
      When adding a path attribute to an update packet don't decode and
      Add some fields to the update_packet so that its easy to find the
      1) The clone methods for multiprotocol path attributes no longer go
      We can now generate update packets containing multiprotocol path
      Copy test1 and test2 to create test1_ipv6 and test2_ipv6.
      Allow testing for idle connections. Very useful for testing that a
      test26
      Add an assertion to verify that the prefix length returned by the rib
      Previous assertion not quite right a prefix length of zero was
      Initialise the real prefix length in the IPv6 case.
      Create the IPv6 ibgp and ebgp tables in the RIB.
      Copy test1 and make an IPv6 version test1_ipv6.
      Bad initialisation. Hopefully tinderbox failures will stop now.
      Refactor some of the ipv4 tests in order to make them easier to clone
      Print an error message when BGP considers that the finder has died and
      Remove dead code.
      Add a comment.
      Remove a lot of dead code and kdocify.
      Remove dead code. Script to convert old style config files.
      Include "callback.hh".
      If the run() method has not been entered for 2 seconds we print a
      Make AFI and SAFI defines consts.
      In the clone method use dynamic casts not static casts. The compiler
      Use the AFI_IPV{4,6} consts in parameter.hh rather than using
      Change assert to XLOG_ASSERT and add a comment about why its safe to
      Make BGPVERSION a const from a define.
      Remove all the annoying carriage returns.
      Fixed:
      Update this test program so the exit status of the program reflects
      1) The wrong test was being called.
      Don't use the default constructor on BGPPeerData as we are about to do
      Rename plumbing_test.{cc,hh} test_plumbing.{cc,hh} as per convention.
      Rename plumbing_test.{cc,hh} test_plumbing.{cc,hh} as per convention.
      Rename plumbing_test.{cc,hh} test_plumbing.{cc,hh} as per convention.
      Rename plumbing_test.{cc,hh} test_plumbing.{cc,hh} as per convention.
      Use a string rather that a const char *, as it causes:
      Open parameters are now stored in ref_ptr's, no longer need to worry
      Now that we are using ref_ptr's to hold pointers to a parameter making
      Reformatting and killing of dead code.
      Multiroute somehow got left out of the parsing process.
      We no longer need to explicity call delete on a parameter pointer. The
      The test test_bgpmib.sh has been consistently failing since we made
      New BGP draft.
      Wait for the process to connect to the finder.
      Be more forgiving about the number of outstanding timers there can be.
      Revert to previous version.
      #include "libxorp/xlog.h".
      #include "libxorp/xlog.h"
      parameter.{cc,hh}
      Test program to test the open negotiation.
      Change the enumns for AFI and SAFI.
      Simplify the extraction of the AFI.
      Add IPv4 and IPv6 RIBs for multicast put another way SAFI = 2.
      The next hop resolver holds a pointer back to the decision table. This
      Renaming:
      Refactor such that we get one instance of a next hop resolver per
      Comment out experimental class that fails on older compilers.
      Configured the BGP process to use the RIB (disabled by
      Add:
      A routing topology where all three peerings are I-BGP.
      Latest BGP draft.
      Add test4 the same as test3 apart from the order of arrival of the
      Add test2 back into the set of working tests as it no longer causes
      Add test_routing2.sh to the list of tests.
      Comment out the warning in stop_peering if the parent table pointer is
      A new MED test that all six permutations are tried.
      This is not really a BGP test its a RIB test repeated adding and
      We have four separate instances of routing tables in BGP:
      New "Capabilities Advertisement with BGP-4" rfc.
      When I added the IPv6 multiprotocol support I had assumed that we
      This library includes a BGP header file that includes another header
      Multiprotocol IPv4 path attribute handling.
      Move tests 4 and 5 to the working list.
      The update packet can now handle all AFIs and SAFIs.
      In skip_entire_queue change a fprintf to a XLOG_INFO.
      After about two days the BGP process on xorp12 is exiting because it
      Make the update packet accessor methods for multiprotocol NLRI const.
      Multiprotocol NLRIs are not transitive oops.
      Distinguish between AFI/SAFI parameters; sent, received and negotiated.
      Checked in file with with wrong ARRAY_SIZE setting.
      Add a method to remove path attributes from the list by pointer.
      Start of checking multiprotocol nlris on input.
      When asked to return SAFI = 2, multicast. We were returning the
      In the IPv6 tests the multiprotocol capability is now announced.
      More stringent update message tests for multiprotocol nlri attributes.
      We no longer hold a pointer to each multiprotocol path attribute. The
      Renamed test27 to test8_ipv6 and forgot to remove test27 from the list
      Add to the list of tests that need to be written.
      Change update packet accessor methods for multiprotocol nlri to use templates.
      assert -> XLOG_ASSERT
      Rationalise the many multiprotocol methods to a single templatised
      class -> typename.
      Both UpdatePacket::add_pathatt() methods were adding directly to the
      Minor style changes and loads of debugging.
      Check the number of PCBs in TIME_WAIT before each test not once per script.
      Print SAFI as a string.
      Print SAFI as well as AFI.
      All multiprotocol AFI/SAFI combinations can now be teased apart and
      Change the parameter name "MultiProtocolIPv6" to
      Remove dead code that used to wait for 1 second so any calls to our
      SAFI == multicast.
      Fix typo in comment.
      Add the "-n" flag to netstat so the netstat doesn't hang forever.
      Used before set problem with the SAFI. Hence we were incorrectly
      assert -> XLOG_ASSERT.
      Increase the verbosity of XLOG_WARNING and XLOG_INFO.
      Remove XLOG_INFO, I thought that we have been going into an infinite
      Add a method that doesn't copy the path attribute that is being passed
      Don't make a copy of the path attribute if there is no need.
      Send in the ipv6 multiprotocol parameter in the open to force our BGP
      Only send multiprotocol NLRIs if the peer actually sent the relevant
      Remove bogus warning and dead code.
      Add some debugging.
      Add Notification error code: Open unsupported capability (7).
      Add set parameter, this will allow us to enable the multiprotocol capability.
      Enable IPv6 Unicast.
      * Bump version to 0.5 and date to 2003-11-06.
      1) Move routes to PIM to DONE.
      Update RIB section.
      * Bump version to 0.5 and date to 2003-11-06.
      Remove:
      Update BGP section: IPV6, SAFI Multicast and memory leak.
      * Bump version to 0.5 and date to 2003-11-06.
      Update comment regarding xorpsh behaviour when the rtrmgr fails.
      Add to the rtrmgr entry - minor code cleanup.
      * Bump version to 0.5 and date to 2003-11-06.
      SNMP - No significant change.
      * Bump version to 0.5 and date to 2003-11-06.
      The test harness can't deal with SAFI multicast.
      BGP deterministic MEDs.
      * Bump version to 0.5 and date to 2003-11-06.
      Update BGP.
      Update the RFCs and Internet Drafts that BGP-4 is conformant with.
      Add an entry for MacOS X.
      Take my laptop name out of the uname output:-).
      MacOS X.
      Take reference to MacOS X out, as its in the BUILD_NOTES.
      Update.
      Add a script to run all the tests programs again, but this time
      If we reject a connection attempt then close the file descriptor.
      Change an assert(false) => XLOG_UNREACHABLE.
      The BGP process often get a NO_FINDER response after sending an XRL to
      Add a busy method to the rip_ipc_handler so that the destructor in BGP
      When BGP is shutting down in the destructor in two places it waits for
      Minor reformatting.
      TCP connects are now asynchronous.
      * Kdoc public interface.
      If we are attempting to make a connection and the peer connects to
      Remove bogus assert.
      Changed close_socket -> local_close_socket - temporary fix to get file
      Unconditionally do FLOW_CONTROL.
      Remove retry clutter.
      Remove eventloop reference.
      Pass all the debugging information we can to the callback when
      Remove unused define.
      Remove sequence ID.
      Send as many XRLs as possible from BGP to the RIB. Use the socket
      Change type of comment from char * to string.
      Only attempt to send a route add or delete if we are not
      Temporary HACK to allow tinderbox to run.
      Add a delay to allow the route change to propagate to the coordinating
      Remove retry and status code.
      1) The BGP process registers interest in a nexthop.
      Remove the hack that allowed one route command to be in flight between
      Add a TODO entry to augment the rib_client interface.
      BGP processes update messages by passing them through a series of
      Once a peering has been established even if the peering subsequently
      Add a delay so if the BGP process core dumps we detect it.
      Make the dump_entire_table a private method.
      Multiple deletion tables can appear on the same peering if it is being
      Temporarily remove test_plumbing from the regression tests.
      Remove over aggressive assert its legal to construct an IPv6 Multicast
      Remove over aggressive assert its legal to construct an IPv6 Multicast
      Slides.
      Move the architecture diagram before the design slides. Suggested by Mark.
      Remove the word "possible".
      Use \begin{slide} \end{slide} rather then \newpage.
      Baseline stretch to fit all points on a single slide.
      Add a slide on extensibility. Split future work onto a research slide.
      There was a missing push for IPv6 update packets.
      Traditionally update packets carried information such as aspath in the
      A different way of enabling multiprotocol.
      Better example for BGP.
      Really fixing the Mac OS X compilation problem:-).
      Pass the safi to the base route table.
      Change the way we print the SAFI.
      Rationalised some of the debugging. We typically have four sets of
      Random formatting nits.
      A change in the formatting of printing of the path attributes caused
      assert -> XLOG_ASSERT
      Some debugging message changes.
      Typo in comment.
      Minor nit. Post and pre increments were reversed.
      Two tests added.
      Add a str() method and some additional debugging.
      Add some debugging.
      Experimenting with modifying a trie while iterating through it. Code
      Add a function to compare the reference output files.
      A reference file to test the RIB-IN dump iterator interaction.
      New test for RIB-IN dump iterator interaction.
      When moving to a new peer we mark the iterator as invalid but its
      When a new peering comes up we iterate through the RIB-INs pulling
      A bunch of debugging.
      Explain the purpose of test2.
      The open packet was not being free'd found by leaktracer.
      Actually free'ing the open packets that we send exposed a problem with
      Update a comment.
      XRL hooks to originate routes.
      Protect all unused variables with the UNUSED macro. These variables
      1) Support for originating (static) routes.
      update_name incorrectly #defined out.
      Looking for memory leak when a new peering is brought up.
      Comment out DEBUG_LOGGING.
      print -> debug_msg.
      print -> debug_msg.
      print -> debug_msg.
      When originating a route don't prepend our AS it will be added later
      Add a method to allow us to test if this peerhandler is originating
      We are using the rib_ipc_handler to originate routes. Place a next hop
      Add a method to allow us to test if this peerhandler is originating
      Add a originate route table filter to prepend our AS number.
      Assert that the iterator is valid.
      Verify that route origination works for both EBGP and IBGP peers.
      Add the network4 and network6 commands to originate routes.
      Typo in comment.
      Formatting nits.
      Explain why we have a state (STOPPED) that is not in the specification.
      Allow a traffic file to be supplied from the environment.
      Profile SubnetRoutes in RefTries.
      g++34 copy constructor fix.
      A helper class and macros to instrument time spent in code.
      The cache tables keep a copy of all routes that have been
      Instrument the packet input code to detect path that take too long to execute.
      TIMESPENT_OVERLIMIT -> 0 not "".
      Constant name from LIMIT to TIMESPENT_LIMIT less likely to collide.
      printf -> XLOG_WARNING.
      Correct XLOG_WARNING message.
      Sprinkle "typename" for gcc 3.4. Remove redundant reference to current.
      The assert for AS types missed the AS_NONE case. Triggered when trying
      It is now fatal if the destructor is called and routes are present.
      Add a flush method to remove routes from the RIB_IN. Will only operate
      Flush static routes.
      Enabling and disabling peerings through the router manager should now work.
      Enabling and disabling peerings through the router manager should now work.
      When debugging is enabled print the whole output packet as opposed to
      When debugging in enabled print the notification packet sent.
      Fix typo.
      Enabling and disabling a peer through the router manager recently stopped
      Fix the originating of IPv6 routes and add a test.
      Support for getting multicast routing tables and slight refactoring.
      gcc 2.95 isn't happy with templatised methods with no arguments gcc
      Callbacks can now deal with 15 arguments.
      Finder host variable no longer on the the stack. Previously it was
      Print IPv6 and multicast routes.
      Enable printing of IPv6 and multicast routes from within the xorpsh.
      Printing ipv6 and multicast routes.
      Remove "no_fea" call on the RIB process. In anticipation of this
      Allow a fixed window of route add/delete XRLs to be in flight from BGP
      No longer generate debugging output by default.
      Disable DEBUG_LOGGING.
      Disable DEBUG_LOGGING.
      Don't generate an error message when the peer drops the session.
      printf -> debug_msg
      Update the date of the 1.0 Release.
      We are incorrectly processing notifications that we receive.
      The BGP process is occassionally failing to return to the main
      Cast to resolve the size_t != int problem on the Mac OS X.
      Fix typo.
      Update the documentation to reflect that withdraws are saved in the
      Enable the sending of notify, open and keepalive packets, not just
      Add the peername to the XLOG_* messages.
      Move the setting of the saved error to one place.
      Don't send a notify in response to a notify.
      Some more debugging.
      Add a test_peer command "bind" only, used to verify that the BGP
      Add host.cmds and rip.cmds.
      Close the template files.
      Update.
      Add "bind" and "reset" to match documentation.
      If an event such as close or connection retry occurs while we are in
      If an event such as close or connection retry occurs while we are in
      Only stop listening for incoming connections if no peerings are enabled.
      "peer-ip" no longer used in BGP should fix the tinderbox failure.
      The xorpsh can run external programs for operational mode commands. An
      Restrict the values that an AS Number can take.
      Have only one sample configuration file "config.boot.sample".
      The router manager invokes the activate method once per peering. The
      When running an operational mode command start displaying output
      reinterpret_cast -> static_cast fixes a compilation problem on the Macs.
      Install all the hooks so that when keyboard interrupts are propogated
      Start the ERRATA process.
      Gather up all stderr output in one place and return it together when
      Add rib.cmds so it gets installed.
      Mac casting nit.
      Updated the release notes for 1.0RC; ALL, BGP and SNMP.
      BGP is slow to populate the kernel routing table.
      Look in Bugzilla not here.
      Update status and known problems.
      For BGP comment out optional statements and add some comments.
      For BGP enabled defaults to true for a peering so comment it out.
      Reorder some BGP peer configuration statements and comment out some
      It is a fatal error to BGP if the RIB fails to delete a route.

fred (5):
      New C++ class for Linux /proc parsing
      New files/declarations for Linux /proc parsing for fea
      New code to return interface information for Linux
      Check for Linux /proc filesystem
      Completed C++ class for Linux interfaces using /proc filesystem

greenhal (2):
      gcc 3.2 fix
      tiny compiler fix of an unused variable problem

hodson (812):
      Initial import.
      Update directory path for anonymous cvs (replicating change already on
      Fix naming inconsistencies with libxipc files and propagate changes to
      o Rename xrlcmdmap.{hh,cc} as xrl_cmd_map.{hh,c}
      o Remove declarations, definitions, and use of deprecated API calls.
      o Add commands to remove opening brace from function name definition
      De-bogon.
      o constify fd() and running() methods.
      Comment nit.
      o Make XrlArgs(const char*) constructor explicit and propagate change.
      Add modifier and accessor methods to xif interfaces for enabled
      Add modifier and accessor methods to xrl interfaces for enabled
      o Add new base class XrlSender for classes that are capable for sending Xrls.
      Minor interface tidy up.
      A first step fix to better handle SelectorList callbacks that
      Configuration related changes to enable compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable libxorp compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable libxipc compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable rib compilation on gcc 3.2.1 and gcc 2.9x.
      Minor output tidying up.
      o Add framework for Xrl based Finder and FinderClient.  This does not
      Remove empty TESTS variable as it generates bad shell code with
      o Ignore new test binaries.
      Add note about xrl based finder.
      o Mark sockets non-blocking after accepting them since Linux does not
      o Compilation fix - do not duplicate default values of arguments in
      Add methods to permit list of nets and hosts.
      Add network interface argument to FinderTcpListenerBase and propagate.
      Minor renaming.
      Add skeleton xrl finder. At least it wasn't called finder_xp :-)
      Fix naming bug in Xrl target generation.  The variable _router is an
      Continuing support for Xrl based finder.
      Add version() method to xrl target base classes and generator script.
      Interpret finder client errors into XrlError's rather than punting to
      Change selector callback order from fixed order round-robin to
      Add missing cast.  Weird, did I edit the code before commit?  I must
      Simplify number of methods for initial version of xrl finder.
      No longer include libxipc/xrl_router.hh in interface client files.
      Only write values into fdtable if maximum number of fd's has increased.
      Remove extraneous include and a blank line.
      Add cref_ptr - compact reference pointer class.  A slower, but more
      Add operator != rather than relying on stl relops.
      Remove extraneous #include.
      Move static members out of XrlError.  Too painful to print classes
      Uncomment part of parsing code for XrlAtomSpells as without it the
      Add cookie as argument and return value to finder registration call.
      Remove an unused temporary.
      Use a more verbose error message for compiler incompatibility.
      Update to reflect current FEA - test is fairly simple.
      o Handle the addition of added disabled addresses.  They cause no state
      Add toggle for address disable.
      Add Xrl based finder code.  This is not yet hooked into XrlRouter.
      Remove DEBUG_LOGGING define.
      Compilation fixes for when DEBUG_LOGGING is defined with gcc 3.2.x as
      Move XIPC access lists for hosts and nets into permits.hh and
      Base XrlPFConstructorError on XorpReasonedException.
      Move clean of finder info to point when new connection with finder is
      Move the dispatching of Xrl's out of per protocol family methods into
      Add methods to clear permission lists.
      Method rename.
      Export permitted host and net lists from finder.
      Remove extraneous include.
      Remove extraneous include.
      Link against libcomm where libxipc is used since libxipc will shortly
      Remove remnant of ref counted file selector.
      Invalidate descriptor in AsyncFileOperator destructor.
      xlog an error when an invalid file descriptor is added.
      Xrl based finder mega-commit.
      Add Xrls to finder to query registered targets and xrls associated
      Add xrl forwarding via XrlRouter to Finder.
      Add finalize() method to XrlCmdMap so end of command additions can be
      Add get_command_names() to export command names to a list.
      Add finder introspection hooks.
      Add support to enable and disable Xrls associated with a target.  When
      Update tests to send enable_xrls to finder.
      Add missing return value to finder xrl.  The joys of cross directory
      - Use a XorpTimer to trigger resends.
      Remove fprintf's.
      Formatting bogons.
      Switch messenger_event_stopped to use debug_msg rather than XLOG_INFO
      Delete request state in XrlPFSUDP destructor rather than waiting for
      Clean up declaration ordering.
      Map Finder related Xrl errors to XrlError:RESOLVE_FAILED.
      Increment retry counter.
      Distinguish between a command failure on resolve (ie not resolve) and
      Fix memory bug resulting from use of c_str() on a temporary string, ie
      Fix similiar problem that was not picked up with memory checking.
      o Add ability to unhook FinderMessenger event targets from their
      Remove another double event notification.
      Prevent copy and assignment operators being invoked (not currently a
      For the time being do not bother trying to catch signals.  The timing
      EventLoop and router need to be in inner scope of xlog since if
      Fail Xrl sends before local xrls are finished registering, otherwise
      Fix leak in XrlPFSender tracking.
      Avoid holding iterator across callback in XrlPFSUDP::recv.  The
      Change dispatch state implementation.
      More permissive xrl resolution.
      Move XrlBgpTarget into BGPMain and ensure ordering is such that
      Fix an error mapping.
      Enable queuing within FinderTcpMessenger.
      Add commands to set and get enabled state of FeaClient.
      Add -F flag for "no FEA" or shut the **** up.
      Start rib with -F flag.
      Compilation fix for GCC3.2.2 (reported by Adam).
      Update copyright.
      Update copyright.
      Updates for release.
      Remove RIP from build.
      Apply htons on ports specified for libcomm.
      Add support for "modinfo ready xrl" in template files.  This is a hook
      Dereference pointers to bools rather than use the pointers as boolean
      Add sanity check for flags that endpoint and broadcast are not set
      Add xrls to indicate ready status.
      Add RIPv2 and RIPng related RFCs.
      Import RIP MD5 authentication RFC.
      Compilation fixes - apply UNUSED for unused arguments when HAVE_IPV6
      Fix inconsistencies in error reporting by xrls in recent rib additions
      Add modinfo ready xrl to cause rtrmgr to wait until ospf is ready to
      Remove methods marked as deprecated from Timer, Selector, and
      Add relative timeval scheduling methods.
      Add timeval relative flag set methods.
      Remove -all-static from linker flags.
      Use a more conservative pool growth strategy.
      Add has_payload() to iterator.
      Fix bug in decrement of cref_ptr counter.
      Add test for ref_ptr classes.
      Remove dump statement in TrieNode::next (v. expensive).
      Back out last (unintentional) commit.
      Fix SelectorList::select that broke the eventloop entirely.  Recent
      kdoc nit.
      Add external TimeVal generator methods:
      TimeVal::set -> TimeVal::operator=
      TimeVal::set -> TimeVal::operator=
      o Add explicit assignment operator (just for clarity).
      Add rudimentary test of TimeVal class.
      Remove initial Finder code and conditional code paths that allowed
      Remove references to TestFinderServer.
      Add back IPNet::contains() check to TrieNode::next.  Former commit
      s/TestFinderServer/FinderNGServer/
      Put verify in pop_obj into DBG section so it's not called in normal
      Don't do any string operations unless debugging - majority cost in
      Add conversion operator from ref_ptr<X*> to ref_ptr<const X*>.
      Skeletal RIP.
      Add rip to list of kdoc'ed directories.
      Add rip to list of directories in build process.
      Remove some crufty debugging.
      Add index.
      Add portions of IPv4 packet handling.  Definitions of packet types,
      Use system md5 header files and libraries and remove local copies of
      Check for md5global.h where Linux puts typedef's for md5.h.
      Run libtoolize now we've libtooled the project.  Otherwise, running
      Add a note on current state of XRL security and a proposed change.
      Change to use OpenSSL MD5 implementation.
      Remove references to md5global.h.
      OpenSSL probing refinements.
      Remove echo command that was unintentionally included in earlier commit.
      Add authentication code.
      Fix a wideboy comment.
      Include file re-ordering.
      Rename test_timers_update.cc -> test_timers.cc.
      Avoid hard coding buffer size.
      Include docs/mk/Makefile.doc.am on the list of files tested whose
      Remove unused files and references to them.
      Add anonymizer for fig2dev generated postscript.
      Change generation method for eps files to strip creation and author
      Repo-Copy error_handling.tex to devnotes/deprecated.
      Document existing and proposed errors.
      Quick note on reference and pointer presentation.
      s/event_loop/eventloop/g
      As discussed at this weeks meeting, replace internal xrl errors
      o Change authentication interface to support 0 route entries in packets.
      Add method to render an MD5 digest as a string.
      Fill in instance name.
      Purge NG designation from Finder class, method, and file names now
      Renaming.
      Purge NG designation from Finder class, method, and file names now
      Explicitly disable copy constructor and assignment operator as there
      Minor formatting tweaks.
      Add XrlCmdError::error_code.
      Set variables before appending to them (later versions of automake
      msg-xrl
      msg-libxipc
      Add finder_event_notifier and finder_event_observer interfaces.  The
      o Support for class-based and instance-based Xrl resolution within
      Simplify life by on supporting class registrations.
      Change symlinks to use absolute path, can cause issues when building
      Strip path components in core places to make rebuilding files from an
      Path fix for regeneration of .hh and .cc files from outside of Xorp
      Regeneration following edits to generator files.
      Implement common/0.1/get_status
      Marginally better cross directory building.  Cruft in previous version
      Partial cross directory build fix for file generation.
      Cross directory file generation fix (yuk!).
      Fix a compilation warning on gcc3.3 (uninline XrlAtom::discard_dymanic()).
      Inline IPNet<IPvX> constructors to prevent multiple symbol defs with gcc3.3.
      Relocate inline function implementations for IfTree iterator accessors
      GCC3.3 fix: include "xorp.h" rather than "config.h" to suck in "assert.h".
      GCC3.3 nit: EventLoop::timers_pending returns a bool.
      GCC3.3 nit: a uint8_t is always going to be less than 0xffff :-)
      GCC3.3 nit: remove dubious assertiont (max value of uint8_t is
      GCC3.3 fix: inline specialized methods to avoid multiple symbol
      GCC3.3: compilation fix (force symbol generation for plumbing templates).
      GCC3.3 fix: inline specialized methods to avoid multiple symbol
      GCC3.3 fix: disable an assertion that's always true.
      Fix opening of absolute path input files.
      Add top-level exception handler.
      Generate test_xrl_parser.sh shell script from configure.  Allows gmake
      Add test target for Finder events.
      Add xlog_process_name to extract process name set when xlog_init is
      Do not quote paths in defines or includes (#!@$$).
      Regenerate following changes to tgt-gen.
      Add a note about finder command line arguments.
      Do not use vector::capacity for vector bounds checking for types with
      Zap trailing whitespaces.
      Add an additional paranoia test.
      Add constructor for pre-resolved finder host address.
      Add constructors for pre-resolved finder host address.
      Store Finder bound and port and add accessors to retrieve values.
      Change XrlRouter instances to use address and port associated with
      Specify Finder address and ports in XrlRouter constructor arguments.
      Specify finder host and port in XrlRouter constructor.
      Enable cross directory make check for rib.
      Add localhost as known finder address.
      Use FinderServer port() and addr() as arguments to Xrl constructor in
      Add Finder event registration and notification code.
      Force creation of $(OBJDIR) before attempting to copy files into it.
      Add constructor taking arguments for Finder address and port.
      o Add utils/pathconf.sh.in that generates shell script with source and
      Sprout kdoc comments.
      Cross-directory gmake check adaptation: use ${srcdir} as base for
      Revert from generated unit test scripts to scripts that utilize
      Check for presence of srcdir and set default paths accordingly.
      Add common_0_1_shutdown method placeholders.
      Coerce SNMP make check target to work with cross-directory build.
      Add gen-pathconf.sh.in which can be processed and sourced by configure
      Don't complain if directory already exists when making objdir.
      Remove extraneous UDP listener.  Code uses XrlStdRouter and so does
      RequestHandler destruction clean-up.
      Back out unintended commit.
      Remove long deprecate XrlPFListener::Reply structure.
      o Remove preferred interface and associated magic from finder receive
      Use FinderServer class to instantiate Finder.
      Sync Finder related code with libxipc.
      Don't print Xrl error string and associated note.  The text of the
      Support an external finder.
      Add test script to check finder runs and handles process deaths okay.
      Do not call close when an error occurrs.  Should be triggered by error
      Bump timeout waiting for Finder.
      Disable auto-reconnect behaviour once a connection is established for
      Remove references to deprecated XrlErrors - FAILED_UNKNOWN and
      o Sync errors with error handling document.
      Sync errors with Xrl error handling document and closer to
      Remove deprecated document.  Finder now uses Xrls.
      Output tidy up.
      Version number bump.
      Version number bump.
      initial libxorp, libxipc, xrl, rip comments.  more to follow.
      More 0.3 additions.
      Bump revision number.
      0.3 updates.
      Fix memory leak.
      Add a note to include leak testing in final testing before release.
      Fix bug in timeout callback dispatch.  Erase state before invoking
      Delete finder at end of test.
      Constrain default number of sockets to be significantly less than the
      Add leak check test which runs test binaries through LeakTracer.
      Remove Xrl argument from dispatch callbacks - these have not been
      Clean up state on exit.
      Replace deprecated inet_aton with inet_addr.
      Define __BEGIN_DECLS and __END_DECLS if not defined in sys/cdefs.h or
      Don't set MALLOC_OPTIONS here - tinderbox should have this set as an
      Include netdb.h for MAXHOSTNAMELEN.
      Check for hstrerror in libresolv.
      Don't rely on 'which' to find LeakTrace binary - not portable.
      Minor include file re-ordering.
      Include sys/sockio.h if it exists.
      Exit without failure if programs are not dynamically linked against
      Use HAVE_SYS_SOCKIO_H that configure nicely determines need for.
      Dump extraneous include of sys/sockio.h.
      Specify hidden dependencies for generated files used in libxipc.
      Renaming:
      Crank up inter-operation wait.  This test needs to be re-written to be
      Add virtual methods to XrlRouter for Finder related events.
      A file containing list of C++ books and materials that we've found
      Simplify callback invocation.
      Change XrlCallback dispatch arguments to just contain XrlArgs rather
      Change Peer class to use own XrlRouter rather than Coord instances
      Sync with Xrl library.
      Add FinderClientObserver class to observer FinderClient events
      Trade xorp.h for config.h.
      Change names of methods and members called "callback".  Since for
      Fix cross directory build of callback.hh.
      Add debugging information to callbacks (source file and line).  This
      Add missing character.
      Add design talk slides.
      Add a slide on IPv6 link-local addresses.
      Add FinderClientObserver to the base classes of XrlRouter.  Class
      Add UpdateQueue<A>::ffwd(ReadIterator& r) const.
      Move UpdateQueue<A>::Reader to UpdateQueueReader<A> since ref_ptr
      Implement UpdateQueue accessors.
      WS bogon.
      o Add route redistribution class (to be initially used for static routes).
      Add a missing typename.
      Enforce limits on minimum route deletion seconds and maximum
      Add Trie::unbind_root(iterator) which returns an iterator pointing to
      Sanitize RtPtrComparitor::operator().
      o Exchange trie for map in RouteDB.  This code does not need trie
      Add more count checks.
      Check map iterator != end before attempting to access data.
      WS bogon.
      Implement update queue as a list of update blocks.
      Add rewind method for update queue read iterator.
      Speed up route generation.
      Switch to intrusive reference count on routes.  This makes life easier
      Sanitize route resurrection code.
      WS bogons.
      o Add RIPv2 route parsing.
      Remove declaration never to be implemented.
      Add original RIP rfc.
      WS bogons.
      WS Bogons.
      Move RipPacket and RipPacketQueue into own files.
      Add DEFAULT_INTERQUERY_GAP_MS - the minimum gap between queries RIP
      Add find_route to find a specific route.
      Add constants for RIP packet version and address family for route
      Add specific route request packet handling.
      kdoc NetCmp.
      o Change interface to PacketQueue and head drop should amount of data
      kdoc nits.
      Add address family specific constants for RIP multicast groups.
      o Add destination ip and port no's to output constructors and use them.
      Remember to set packet size when finishing off IPv4 packets.
      Add empty() method.
      Correct horizon policy code.
      Add missing newline.
      Iterator advance glitch - didn't happen if packet was full so last
      Change vector sizing policy.
      Add output process tester.  This test needs cleaning up and wants a
      o Add test and validator class for poison reverse output policy.
      Iterator advance glitch - didn't happen if packet was full so last
      Add test cases for table output processing.
      o Don't allocate a pool entry for null pointers in pointer
      Build utils immediately after libraries.  Facilitates top-level gmake
      Build all for 'check' target.  Facilitates top-level gmake check
      Use OpenSSL implementation of md5.  Removes need for contrib dir file
      Use default route entries for constructed packets.
      o Use a sensible default number of route entries in packet.
      o Name callback types and marshalling functions according to request name.
      o Regenerate following naming changes in clnt-gen.
      Sync Xrl interface callback types with xrl files.
      Remove xrl interface order dependent type declaration.
      Address minor naming consistency nit:
      Remove empty fea.xif and references to it.
      Address minor naming consistency nit:
      Correct description of endpoint().
      Group get_all methods at end of interface to make reading the
      Avoid allocating and deallocating memory around user callback
      Catch XrlAtomFound exception in XrlArgs constructor taking string
      Add new interface for replicating fea ifmgr state.
      Add new Fea IfMgr configuration tree and classes to help with it's
      Add libfeaclient to build process.
      Add IPv6 address test.
      Remove parent pointer from IfMgr*Atom structures and propagate change.
      Remove flags related method(s).
      Add IfMgr mirror target.
      Addition of IfMgrMirrorTarget related code.
      Add libfeaclient to list of kdoc targets.
      Exchange std::string::clear() for std::string::erase().
      Add back clear() method that got cleared before last commit.
      Rename xrl/interfaces/fea_ifmgr_client2.xif to fea_ifmgr_mirror.xif.
      Bump version number and date.
      Switch from string.ascii_letters (python2.2) to string.letters (more
      Add replicator class.
      o Move command base class into separate file.
      o Initialize static class object TimerList::_dummy_timer_node in
      size_t casting in format strings.
      Ignore #pragma directives that a pre-processor may emit.
      Tweaklet to make stepping with gcc easier.
      Call attach and detach on FinderClient instance associated with router.
      Code for remote replication of IfMgr configuration state.
      Minor clean-up.
      Add hint methods.
      Add XrlPFSenderFactory startup and shutdown methods.  Have XrlRouter
      Add non-static XrlPFSender::protocol().
      Minor tidy up.
      Add non-static XrlPFSender::protocol().
      Enable cross-directory gmake check.
      Fix core dump when config file is not found.
      Fix getopt argument for -x <xrl_dir>.
      Remove quick hack to auto connector class.  Now retries to connect to
      Debogon.
      Fail XrlRouter::send when no finder is present and dispatch callback
      Wait for finder to become ready before attempting to send xrls.
      Add item to fix restart.
      Wait for XrlRouter to be ready before using it.
      Wait for XrlRouter to be ready before using it.
      Handle end-of-file in sender.
      Add code to wait for Finder to become ready.
      Test timed_out flag while waiting for XrlRouter to become ready.
      Unbreak build.
      Reap dead tcp senders (if they ever occur).
      Rearrange check on whether out going queue is empty and what action to
      Switch default protocol family from udp to tcp.
      Remove delay of 1 seconds waiting for Xrl responses to clear.
      Add abstract XrlPFListener::response_pending and implement in derived
      Swap main.cc for bgp.cc.
      Enable Xrl dispatch tracing through XRLDISPATCHTRACE environment variable.
      Check all flags that can be set whilst waiting for an Xrl result.
      Fix over ambitious assertion.
      Make test more demanding.
      Spring cleaning.
      Cache senders in XrlRouter rather than sender factory singleton.
      Wait before retrying to send an Xrl when resolution fails.
      Use default wait interval when calling call_xrl.
      Fix compilation on gcc-2.95.4 20020320 [FreeBSD].
      Additional kdoc descriptions.
      Add functions that wrapper kdocification of each target, ie
      o Add overview text to libfeaclient_module.h.
      For libfeaclient glob *h rather than *.hh to get overview comments out
      Allow script to be run from other locations, ie cd into script
      Remove unused file.
      Move split.{hh,cc} to util.{hh,cc}.
      Use string::empty() to determine whether string is empty rather than
      Add XORP_SRC_ROOT and XORP_BUILD_ROOT defines.  This is part of making
      Add an entry for the rtrmgr.
      Place path finding code in one place (util.cc).
      Change an erroneous 'echo' for 'exit'.
      Run-time location independence.
      A lazy fix.
      Wait for XrlRouter::ready() before trying to dispatch Xrls.
      Call XrlRouter::finalize() before attempting to use router.
      Switch root directory argument for XorpShell constructor to be binary
      o Move XrlPF methods into xrl_pf.cc.
      Add unimplemented private copy constructor and assignment operator
      Add declaration for unimplmented copy constructor and assignment operator.
      Uncache Xrls when sender for them cannot be instantiated.
      Fix ordering of ops in die() to be safe if call chain deletes sender
      Remove EINTR handling around select call.  We'll see EINTR after a
      When a signal is received announce it and exit cleanly.
      Remove broken test4.
      Fix build.
      Change ParseError exception to be derived from XorpReasonedException
      Install unexpected exception handler.
      Minor style tweaks.
      Fix an out-by-one error in an input path.
      Remove dummy file.  Real version implemented in tools.
      R.I.P. October 1, 2003.
      Change list<string> argument in XrlAction::check_xrl_is_valid() to a const
      Add suggestion about using temporary references with containers
      WS cleanup.
      Consistency nits.
      Eliminate an unused variable.
      Add a todo item.
      Change IPNet<A>::_prefix_len type from size_t to uint32_t.
      Add instance id to XrlPFSender and maintain a table of valid instance
      Fix path variables to allow cross-directory gmake check to work.
      Substitute an instance of <class A> with <typename A>.
      Add IfConfigUpdateReplicator - a class to forward ifconfig updates to
      Add service base class and observer.
      Ignore test_service.
      typo.
      Correct a kdoc typo.
      Add kdoc overview text.
      Add initial attempt at bridging code with libfeaclient.
      s/IfMgrIfTree::interfaces()/IfMgrIfTree::ifs()/ to be consistent with
      Move flower_malloc into separate directory.  Makes selectively
      Re-generate following configure.in changes.
      Cast size_t values to uint32_t in format strings.
      Add code to compare state of interface trees in FEA and libfeaclient.
      Flick trailing whitespaces out of files.
      Shift inlines to end of file.
      Derive exceptions from those in libxorp/exceptions.hh.
      Fix some holes in binary serialization and deserialization.
      Add binary serialization and deserialization methods.
      Add binary serialization and deserialization tests.
      Add interface pif_index to replicated fea interface configuration
      Add pif index to values converted to commands in IfMgrIfAtomToCommands.
      Remove resolved question in comment.
      Initialize all fields in constructors.
      Change IfMgrXrlMirror to support ServiceBase interface rather than
      Fix kdoc warnings - using @param to refer to method arguments in other
      Includes tweak.
      Add base class for RIB notifier.
      Add some RIP Xrl components.
      Fix kdoc param and xrl argument name mismatch so kdocification
      Remove C++ specific pre-amble from Xrl file kdoc comments.
      Change ip_version_str() to return const reference to a string and
      Simplify ip_version related format strings.
      Change XORP_SRC_ROOT directory determination to always give absolute
      Updates.
      Add service.hh documentation.
      Spelling correction.
      Update to heap description.
      Fix a signed unsigned comparison that only seems to show up on OS 10.3 / Darwin 7.0.
      Update.
      Bump revision and date stamps.
      Created.
      Update.
      Intro edit.
      Add check that "net-snmp-config --cflags" gives sane flags.
      Add IPv4 socket interfaces.  These are for sockets that bound to FEA
      Add note for OS X 10.3.
      Add entries for socket xifs.
      Add methods to watch birth and death events of single Xrl Target
      Make XrlCmdMap argument in target constructors optional and add
      Removing trailing whitespace in Xif.util.file_{write,append}_string.
      Re-generate.
      Fix typo in example.
      Fix buffer overflow.
      Add ttl argument to multicast socket creation method.
      Remove unused field from error_event (last_send_data_id).
      Move Xrl registration from XrlRouter::add_handler() to XrlRouter::finalize().
      Change target set_command_map() method so that a call with a null
      Regenerate with tgt-gen revision 1.13.
      Re-generate.
      Add socket4_locator/0.1 to interfaces supported by fea.
      Add socket_server.tgt that provides the FEA remote UDP/TCP socket
      Add first cut at socket server code.
      Pass finder port consistently to processes.
      Pass finder host and port to TestSocket4UDP constructor.
      Fix Linux compilation - send()/sendto() flag variations.
      Add BaseAndDerived class to provide a basic test if two types are
      Add safe_callback_back_obj.{hh,cc} which provide basis for safe
      Add an example that uses a safe callback object.
      Add IfMgrIfAtom::find_vif and IfMgrVifAtom::find_addr methods.
      Remove a couple of incorrect uses 'inline'.
      Change indented preprocessor directives to stop kdoc complaints.
      Add xrl interfaces and xrl targets.  They have kdoc comments if the
      If set use KDOC_CMD as the kdoc command to execute.  Useful for debugging.
      Change PortIO<A>::send to take a vector for data rather than pointer
      Add RIP_TTL.
      Add non-const ports() accessor.
      Sync with PortIOUser<A>.
      Add socket4_user/0.1 to interfaces supported by RIP.
      First pass at Xrl based packet send code.
      Assorted steps towards functional RIPv2.
      Add name argument to ServiceBase to constructor and service_name accessor.
      Add service name argument to ServiceBase constructors.
      Add "Technical Report on C++ performance".
      Change default service name from empty string to "Unknown".
      Refer to process states by enumeration value for the benefit of skim
      Set service name in constructor.
      Set service name in ServiceBase constructor.
      Additional debug messages.
      Add code to watch status of assorted RIP entities and update the info
      Hook up libfeaclient support to FEA's xrl interface.
      Update library dependencies of test programs that link against libfea.
      Change contructor argument order of IfMgrXrlMirror.
      Use "fea" as source for IfMgrXrlMirror instance.
      const'ify IfTree refs.
      Correct argument ordering to comm_bind_join_udp4().
      Plumb in udp/tcp socket server.
      Update test_mld6igmp_LDADD.
      Update test_pim_LDADD.
      s/[   ]+$//
      Treat VARIABLE and LITERAL in exactly the same way.
      Add default table request period.
      Add table request timer to send periodic table request messages when
      Additional debug messages.
      IPv4 Port changed to have default NullAuthHandler.  No longer
      Plumb in XrlPortManager.
      Add a missing typename qualification for gcc33.
      Sync version constants with comment.
      o Turn off loopback on multicast sockets.
      Build version 2 request packet.
      o Remove filter on packets received that from one of our interfaces
      Remove stray '<' on first line.
      Move rt_tab_debug.{hh,cc} to rt_tab_expect.{hh,cc} and rename
      ExpectTable.
      Place redistribution tables in top-level data structure.
      Extra assertion.
      Add validity check for read iterators.
      Bring up to do.
      Move Port timer and counter structures into their own file - port_vars.hh.
      Add start() and stop() methods to output processes.  Previously output
      Break out port timer and counter structures.
      Add xrls for add and removing static routes to RIP.
      Set enabled state to "disabled" when shutting down.  This informs
      Flush update_queue when flushing routes.  This releases any references
      Add ADDR_BITLEN constant.
      Add an additional check.
      Fix a scoping bug.
      Hook in solicited update output process.  This answer route table
      Enable XRL path packet reception.
      Check IPv6 table registered variable rather than IPv4 before
      Add a test case that causes abstract method to be called and process
      Change safe callback object to not invoke virtual methods in
      Nitlet for gcc3.3.1 on fbsd.
      Add RIPv2 xrls for setting horizon, cost, and timer values.
      Add templates for RIP.
      Remove paste operation for PORT_TIMER_GET_HANDLER as it isn't needed
      Add %allow values for horizon.
      Consistency: rename rip4 -> rip and rip6 -> ripng.
      Add address to pif_index resolution.
      Sync with AddressTableBase.
      Add IPv6 UDP and TCP xrl interfaces and fea support.
      Sync linkage with fea.
      Sync linkage with fea.
      Fix compilation for HAVE_IPV6 and don't HAVE_IPV6.
      Sync ripng with current rip.xif and rip.tgt.
      Move common Xrl Target handling code for RIP and RIPng into
      Correct destructor name.
      Correct a cut and paste bogey.
      Move code from xorp_rip.cc to xorp_rip_common.hh and templatize.
      Comment out text trailing #endif.  Spotted by gcc33.  Not spotted by
      Make range_random static so it doesn't appear in both librip and
      Tweaks to test_outputs.cc to allow IPv6 test to run.  It currently fails.
      Fix compilation on OS X.
      Instantiate and run IPv6 tests.
      Move EventLoop constructor to eventloop.cc and implement destructor.
      Re-jig to run tests for IPv6 in addition to IPv4.
      Move some common code in test_utils.hh.
      Further rationalization of common pieces between tests.
      Use BGP instance's eventloop rather than instantiating another a
      Instantiate one eventloop only.
      Fix ResponsePacketAssembler<IPv6>::packet_full().
      Back out unintentional commit.
      Add ResponseReader class that handles differences between IPv4 and
      Instantiate IPv6 version of the update queue test.
      Trim trailing whitespaces.
      Add some code to throw a wobbly if a timer expires more than N seconds
      Add PACKET_VERSION to specialized constants.
      Initial IPv6 data reception handling.
      Add templatized lookup to yield correct XrlTarget name for given IP
      Sync with RIP.
      Add some additional debug_msg calls.
      Add IPv{4,6,X}::is_loopback().
      Check RIPng routes are not for loopback and change RIP to use
      Configure RIPng multicast packets to be sent with a hop-count value of
      Fix small lIPv6 nexthop packing bug.
      Add missing ripng.tgt to list of tgt files.
      Add static methods to authentication classes to get algorithm name.
      o Add "enabled" accessor and modifier to port.  Add method to mark
      Add passive option to RIP and RIPng templates and XRLs.
      Expand and sort into pre-1.0 and post-1.0 release items.
      Export RIP policy options via XRLs and update templates.
      Add const_ports accessor.
      Add Xrl accessors to get all known peers and peers associated with a
      Ensure all port counters are incremented - there were a couple of omissions.
      Minor expansion.
      Break "bad packets" counters into "authentication failures" and "bad packets"
      Export RIP port counters.
      Fix compiler about uninitialized variables on unknown version of gcc.
      Extend number of counters in Peer.  Sync increments of port and peer
      Add entry that keeps coming and going from my mind :-)
      Add get_peer_counters.
      De-crinkle.
      Add secs() and usecs() methods as synonyms for sec() and usec().
      Change initialization point for finder port.  Fixes build problem with
      Fix uninitialized variable warnings that are emitted when optimization
      Add xlog_is_running().
      Add configure flag --enable-callback-debug which when enabled puts
      Regenerate following changes to configure.in.
      Generate separate callback files for debug and non-debug case.
      No longer use flag to instruct callback-gen.py to build a debug or
      Rule nit (broken cross directory build).
      Add #error if callback_nodebug.hh or callback_debug.hh are included
      Add a missing counter initialization.
      Strip path from name of generator script placed in generated file header.
      Add port independent constructors.
      Build rip_xif.{hh,cc}, ripng_xif.{hh,cc}.
      Add rip_xif.{hh,cc}, ripng_xif.{hh,cc}.
      Make peer_last_active timestamp distinct field in get_peer_counters method.
      Add awol socket6_user.xif to ripng interfaces.
      User RIP_AF_CONSTANTS<A>::IP_PORT rather than RIP_PORT in templatized
      Add typedefs to IP classes for sockaddr_inX and in_addrX.  These are
      Switch to templatized SockAddrType for argument to recvfrom.
      Compilation fix for gcc-3.3.
      o Add operational commands for show RIP/RIPng interface stats and show
      Add rip/tools/Makefile to build.
      Add tools directory.
      Bring up to date.
      YATI.
      Fix cross directory build.
      #ifdef out IPv6 libcomm calls if HAVE_IPV6 not defined.
      Add comm_sock_leave{4,6}.
      Remove unused trie.hh.
      Remove unused rip_module.h.
      Add option to set inter-packet gap.
      Set last_active field of peer counters when instantiating peer.
      Add a post 1.0 release item for review.
      Include "routes active" in peer's counters.
      o Add methods to socket4 and socket6 interfaces and implement in the
      Change initialization procedure.
      When iterator reaches last route in a block, create a new empty block
      Flush routes database before destructing RIP objects.  Fixes
      Call stop_output_processing() in ~Port<A>.
      o Unconditionally present ipv6 method prototypes in comm_api.h.
      Do not return socket server for IPv6 address if IPv6 support is not available.
      Clean-up IPv6 socket code.
      Change RouteTable base class variables to private (_next_table and
      Replace do { ... } while(0) skirting around one of the debug_msg
      Fix code that worked through side-effect of string::c_str() begin
      Explicitly check string::iterator against end.  This code has
      Add parent().
      Missing <A>.
      Add const route_container() method to expose routes associated with
      For callback debug case store active callback data in a stack rather
      Deadwood.
      Add route redistribution interfaces.
      Steps on the road to route redistribution.
      Compilation fixes for OS X / ppc.
      Fix compilation with --enable-debug-fnames.
      Comment out definitions of DEBUG_PRINT_FUNCTION_NAME since it breaks
      Trim headers.
      Minor interface tweaks.
      Minor interface updates.
      Forced commit.
      Fix build with gcc3.4 and --enable-callback-debug.
      Fix build with DEBUG_LOGGING.
      Explicitly turn off parallel build.
      Disable Redist.
      Reworking of RedistTable.
      Fix tinderbox breakage on koala.
      o Add redist policy.  This allows route updates to be redistributed
      Shift location of policy checks so they work during initial route dump
      Compilation fix for systems with signed size_t.
      Move static initialization of IPv6 prefixes -- have code on darwin/ppc
      Avoid de-referencing when things go wrong.  Exposed by currently broken and
      Remove unused commands for plumbing in MergedTable's and ExtIntTables.
      o Add a design note to kdoc comment.
      Templatize some repetitive code.
      Remove deprecated methods from RIB :- new_merged_table(), new_extint_table().
      Add methods to access and modify XRL target names of rib and fea
      Whitespace nits.
      Use methods in xrl_config.hh xrl_config.cc for XRL target names.
      Move redist container code into xrl_redist_manager.{hh,cc}.
      o Update files to use global XRL target names in xrl_config.{hh,cc}.
      Remove IP version string from redist4 and redist6 interface methods.
      o Remove methods for adding static routes (should now go through route
      Add redist{4,6}.xif as dependency of appropriate targets.
      Regenerate.
      Re-arrange top-level code.
      Regenerate.
      o Remove unused RouteEntry::global_metric from route.hh.
      Expand information included in redist interface add_route method to
      Add output for Redistributor objects to send updates via redist4 and
      Knock redist off to do list.
      Require same cookie as provided on redist_enable for redist_disable.
      Sync with rib redist_disable XRLs.
      Remove redist related commands.  They don't make much sense in the
      Add methods for add and deleting route redistributions.
      Remove add and delete redistribution methods from rib class - now
      Sync interface with RIB xrls.
      Add xrl/interfaces/libredist{4,6}xif.a to linkage elements.
      Update linkage for test_pim (it depends on pieces of the rib that have
      Add "import" configuration statement for setting up route
      Move xrl interface includes from headers to implementation files.
      o Fix misplacement of new route redistributors.
      Regenerate.
      Don't fail redist table add if redist table already exists.
      Hard-wire "static" origin table into each RIB.  Temporary measure to
      Replace \fbox with \framebox[\textwidth][l] to give consistent width
      Change 'cost' tags to 'metric' for consistency.
      Add help strings.
      Additional messages for starting and ending initial route dump that
      Fix destructor so it is safe to invoke if startup() has not been
      Fix compilation on gcc-3.3.
      Probe for GNU make under well known names and fix the info message at the end
      Compilation fix for gcc-33.  No really...
      Remove duplicated constant.
      o Add XrlRouter::failed() method.
      Minor re-arrangment of generated code to reduce duplicate string
      Add auto shutoff to FinderTcpAutoConnector so if it has not
      Use TCP autoconnector to decide XrlRouter::failed().  Using an
      Fix unsigned format error for a size_T on Mac.
      Add unquote methods.  Methods that can be used to remove quotes from
      Use unquote() where appropriate.
      Add support for "%allow-range" for range of integer values.
      Add obvious allow-range restrictions.
      Only fast forward triggered update output if running.
      Fix reset of consecutive error counter.
      o Move oft cut-and-paste route wait_until_xrl_router_is_ready() into
      Remove deprecated scripts.
      Fix warnings from clnt-gen.
      Regenerate.
      o Add XRL method to get active RIP addresses.
      Add basic RIP commands.
      Remove some completed items.
      Expand PATH when looking for executables.  There some host commands
      Add small selection of host commands.
      Replace splitpath with library routine split().
      Add subsection for %allow-range.
      Use positional arguments for rip commands.
      Address race conditions in startup and shutdown.  Suppress update
      Add CallbackSafeObject as base of IfMgrManagedXrlReplicator -- this
      To be safe shift placement of CallbackSafeObject higher up class chain.
      When a replication command does not execute correctly, log the command
      Add support to show status of a rip address to the show_stats
      Add rip status command (same as rip statistics but with -b flag).
      Remove extraneous output during shutdown.
      Catch IPvX::InvalidCast when deleting vif addresses.
      Use | rather short-circuit || to add and delete rib vifs.  A failure
      o Check array bounds before accessing entries in split_up_varnames.
      Additional string bounds checking.
      Enable or disable I/O handler based on enabled state of address in FEA.
      o Add Xrls corresponding to start of route dump and end of route dump to
      o Add show_routes command that reads routes from redist tables in RIB.
      Remove inline from find_protocol declaration.  (Compilation fix for gcc-3.4)
      Move ospfd to contrib.
      Fix a path to reflect new location under contrib.
      Update copyright date.
      o Remove a redundant copy.
      Set interface name attribute of new vifs.
      Remove a cerr output.
      Make error output more useful.
      Add show route table xxx commands.
      Fix typos (including show incoming syntax that was not supposed to be there).
      Tweak.
      Add a header with the XORP CVS tag.
      Remove RIP per address configuration options from the example - the
      Update.

jcardona (154):
      Incremented version number and corrected minor spelling errors and typos
      Incremented version number and corrected a few typos
      Added router management bibliography
      Created snmp documentation Makefile.am
      Created SNMP overivew document
      Created figure for SNMP Overview document
      Modified to build Makefile for snmp documentation
      Created figure for SNMP overview
      Added snmp directory
      Builds SNMP documentation Makefile
      Created
      Fixed figure reference
      Added SNMP tasks
      Added fd set access functions needed to monitor XORP file descriptors from
      Added fd_set access functions needed to monitor XORP file descriptors from
      Added function to retrieve the absolute time at which the next timer will
      Implemented TimerList::get_next_expire().
      Fixed incorrect use of selected_mask
      Helper classes to allow Xorp method calls from within Net-SNMP MIB modules
      Use new typedef'd AlarmMap
      Applied changes suggested in yesterday's codewalk.
      Applied changes suggested during yesterday's codewalk.
      Created
      Added conditional compilation of the mibs directory
      Added check for net-snmp and enabled use of libtool
      Corrected deleted directory mrt
      Removed unused macro file include
      Added conditional compilation of mibs directory
      Created
      Added check for Net-SNMP and conditional compilation of mibs directory
      Added libtool and Net-SNMP checks
      Removed unused variables
      Fixed so gmake check invokes test_xorpevents
      Minor typos
      Created
      Modified not to use libtool.
      Convenience scripts to exercise Net-SNMP.
      Unlibtoolized.
      Used better Automake primaries (as suggested by Pavlin)
      Modified BGPPeerList to sort peers by remote IP
      Fixed previous commit
      Implemented bgpPeerTable
      Convenience scripts to examine the mib tree
      Formatting and commenting
      Created configuration files to be able to run snmpd as non-root
      Changed config to use SNMPv2c, since root access is required to create SNMPv3
      Bourneshellized and added comments
      Fixed trashing of row data context
      Created BGP4 MIB target
      Implemented Xrl target functionality for the BGP-4 MIB.  At this time only the
      Defined LD_LIBRARY_PATH in the test environment
      Implemented common and xorp_if_mib XRL interfaces
      A private Net-SNMP header file.  See file heading for details.
      Xrl target implementation class
      Use absolute paths detected at runtime for MIB directories
      Test script for bgpPeerTable
      Improved checking of Net-SNMP version
      XRL interfaces for SNMP
      Fixed logfile path
      Corrected traffic file path
      Added configure tests to detect snmpd
      Corrected test for UpdateTime
      Improved snmpd detection
      Fixed incorrect snmpd termination
      Added additional tests for Net-SNMP configuration
      Orion convinced me that failing to launch snmpd wasn't serious enough to exit
      Not complete yet
      kill output redirected
      Added new section on how to use mib2c
      Added SNMP bibliography
      Added SNMP documentation to the Web page
      Modified libnetsnmpxorp.so link rules to include all the symbols from XORP
      - Modified startsnmp so it can be used by rtrmgr to launch snmpd
      Changed test_bgpmib.sh.in to not use snmpenv.sh script.
      Created template for snmpd
      Added commented out configuration for snmp.
      Added MIBDIRS environment variable
      Using default absolute path to snmpd
      Have configure generate 'startsnmp' so it is accessible to the rtrmgr in the
      MIBDIRS environment variable modified to append to current list of mib
      Added section on snmpd launch by rtrmgr
      Hopefully clarified instructions on how to configure Net-SNMP
      Updated SNMP status
      Updated SNMP section
      Created
      Added known problems section
      Exported events inside get_next_data_point to ensure that XORP events are
      Wrote observer classes for TimerList and Selector list
      Per Orion's suggestions:
      Modified xorpevents to use the new observer classes and updated kdocumentation
      Fix SnmpEventLoop destruction (patch provided by Orion)
      Fixed potential double frees when reference counter underflows
      Linux did not appreciate static storage of SnmpEventLoop. Reverted to heap.
      Deleted redundant kill
      Added flag to prevent conflicts with existing snmpd configuration files
      Fixed incorrect handling of expired timers.  When the "timer scheduled"
      Per Orion's request:
      No more need for explicit destructors
      Implemented shutdown XRL.
      Added Copyright notices
      Imported changes done to test_peering2.sh:
      No more need to call shutdown XRL since runit will now call it.
      Added retry count to call_xrl
      Modified shutdown xrl so it returns OKAY before killing snmpd
      Increased the wait time when checking for snmpd.
      Wrote preorder iterators for Trie and RefTrie, and added tests for them in
      Capture process terminated message
      &> is bash, as Pavlin wisely noted...
      Implemented the Path Attributes Table.
      Only nodes under the root are pushed to the stack, so there is no need for the
      Minor changes on the files generated by the tests
      Added comment about MIBS environment variable
      Checking in yesterday's talk
      Makefile.am
      This is the log message for my previous commit (I was trying to do a partial
      This is a net-snmp header file that does not compile in C++ (someone decided to
      Added check for bug in one of Net-SNMP header files (container.h)
      Enabled periodic update of local bgp4PathAttrTable
      Improved bgp4PathAttrTable update algorithm
      Fixed memory leak
      Changed PreOrder iterator so it doesn't require internal state.  This is the
      Added operator to convert between preoder and postorder iterators.
      Fixed incorrect 'valid' parameter usage
      Implemented bgpEstablishedTrap
      Created new interface to send BGP4-MIB traps
      Replaced trie.hh with ref_trie.hh
      Implemented bgpIdentifier
      Corrected SUBDIR
      Undid last commit
      Fixed row comparison
      Added mpatrol option, useful only for debugging
      Added temporary fix to the problem that cause getbulk requests to fail with
      Modified bgpPeerTable test to use GETBULK requests, which used to fail.
      Reduced the number of debug tokens to keep the log file small
      Modified mpatrol options
      Fixed leak caused by uncalled destructors
      Adding flower_malloc debug library and a test for it
      Fxied tpyo
      Fixed printf args
      Removed line from reference report
      Skipped flower_malloc tests in non-FreeBSD systems
      Per Atanu's request, added some debug scripts to start the snmp agent and
      Setting LD_LIBRARY_PATH
      Fixed usage
      Updated kdoc comments
      Fixed snmptrap OID value
      Documented scripts and updated README files for 0.4 release
      Updated documentation for 0.4 release
      Trimmed long lines in comments
      Convenience script that shows the list of currently loaded mib modules
      Added SNMP section
      Adding new test to verify that bgp sends SNMP traps
      Changed bgpVersion to match MIB format
      Resolving conflicts between net-snmp and xorp 'config.h' files.

kohler (5):
      typos
      error document: merge my suggested text and Orion's changes; makes XRL error handling more explicit
      working towards convergence
      use Times
      add samp04_iprouter

mjh (307):
      Add work plan to take us to a 1.0 release and beyond.
      Fix initialization error that was causing some tests to fail on koala.
      Fix bug in next_hop_resolver - when a route doesn't resolve, the
      Re-enable test_rib_fea1.sh, as all the tests now seem to work.
      Fix mismatched new and delete.
      Fix some unimportant memory leaks to keep LeakCheck quiet.
      Fix minor memory leak in DeletionTable.
      Fix serious space leak in FanoutTable's queue handling.
      Fix memory leak in NhLookupTable's queue handling.
      Fix memory leak in RiboutTable's output queue.
      Fix uninitialized BGP peering type in test_ribout.
      Fix unimportant memory leaks in tests.
      Add support for adding and removing MED attributes.  This turns out to
      Modify tests so that the temporary file they use contains the user's
      Re-think how we store IGP metrics for MED insertion.
      Add (untested) support for transiting unknown optional transitive
      Rename BGP RouteTables, dropping the BGP prefix, so the tables names
      Add counters and timers needed for the BGP MIB.
      Add XRL interface to supply the data required by the Peer table part
      Fix bug in CacheTable route_dump, where the version of the route
      update copyright
      Change method name (to less self-explanatory name!) to satisfy g++ 3.2.1
      Fixes to BGP peer monitoring XRLs that I seem to have forgotten to
      Make BGP PathAttribute encode methods non-const.  Previously they made
      Rename DumpTable::dump_next_route() to do_next_route_dump() to keep
      Remove unused methods from DummyPeerHandler
      More compilation fixes on g++ 3.2.1.
      A start at some debugging/diagnostic tools for BGP.  Doesn't do
      the real missing file :-)
      add bgp/tools to build directories
      Update Makefile.in in bgp
      Fixes to allow rtrmgr to build on g++ 3.2.1
      tools/print_peers can now print the list of BGP peers
      print_peers now prints verbose stats on each peer if given the -v flag
      Fix corner case where a peering is removed while we're listing the peerings.
      Don't display values when they're not meaningful.
      The commands to retrieve the state in the peer part of the BGP MIB
      First pass at reference-counted Trie.  This is a Trie in which
      Fix initialization error that caused crash on Linux and FreeBSD with gcc 3.2.1
      Move minitraits to a separate file to avoid compilation problems in
      Change BGP to use RefTrie
      Modifications to force an iterator to point to a valid (undeleted)
      A start at code to read back the routing tables.  Not yet linked in
      Route table reader extensions.
      Make RefTrieIterator::key() a const method.
      re-commit minor change after power glitch
      Link the route table reader for compilation.  Add hooks to plumbing to
      Routing table reader is now more or less complete.  Not yet tested though.
      XRL extensions for BGP routing table reader
      Fix spurious warning.
      Fix subtle little bug in NhLookupTable
      Unfinished policy filter code.  Not yet linked in for compilation.
      Fix bug where the keepalive timer would expire while we were in state
      Fix bugs in DumpTable:
      Fix very hard to find little bug in PathAttribute::operator< which had
      Fix bug in reporting MIB data - several timer values were stored in
      Add print_routes test tool which prints out all the routes a XORP BGP
      Enable building of print_routes
      Pipeline get_next requests for routing table routes.  Uses a fixed
      Changes to RibIpcHandler's Xrl queue so that we can retransmit if we
      Changes to SubnetRoute to include a parent route pointer.  We use this
      Add reference counting to SubnetRoute parent_route pointer, and
      Minor tidying: RouteQueueEntry now takes a route reference rather than
      Fix two space leaks I introduced yesterday.
      Add SubnetRouteRef class, which simply maintains a pointer to a
      Move the message queue in NhLookupTable to use SubnetRouteConstRef
      Use SubnetRoute references to avoid the need to make temporary copies
      Minor fixes for route table reporting.
      Improvements to route table display -  now indicates which routes won.
      Integrate most of the BGP isolation tests into a single binary.  A
      Add missing file, remove old test binaries from .cvsignore
      Return correct exit status.
      don't reinitialized XLOG multiple times
      Fix initialization bug (shouldn't affect anything)
      Don't close debug output file multiple times.
      Integrate test_next_hop_resolver into single isolation_tests binary.
      Make more of this compile.  Doesn't do anything useful yet.
      Fix remaining compilation errors in policy, and link for compilation.
      Really compile policy dir
      Don't define an empty TESTS variable in Makefile.am, or automake on
      Add test suite to ensure that rtrmgr template files in CVS parse
      Fix BGP template file and config.boot for aardvark.
      Better failure diagnosis.
      Fix BGP rtrmgr template to match the change Atanu made in BGP XIF
      Add peer enable/disable switch to BGP template.
      Ensure that modules such as the RIB that don't need any explicit
      Remove some unused code, and make the mechanism for starting modules
      Turn off all non-critical debugging.
      The sense of the BGP peer disable command in the rtrmgr was reversed.
      Add no-op set commands to BGP peer nodes, so that xorpsh will allow us
      Add the operational-mode rtrmgr command to print BGP peers.
      Dummy show_interfaces command to keep xorpsh happy
      Operation-mode rtrmgr config file for BGP.
      Fix bug in reading operational-mode command responses - if stderr is closed before stdout, this isn't an error unless there was actually data on stderr.
      Fix bug in rtrmgr process dependency tracking.
      Add router manager command to display BGP route table.
      Some code cleanup - remove unused default route constructors, and
      Enable retrieval if VIF flags, and printing of results.
      Use rtrmgr/tools/show_interfaces from xorpsh to query interface state.
      BGP seems to be getting SEND_FAILED occasionally when trying to send
      Update BGP design document to match current BGP status.
      Update RIB design document to match current state of RIB code.
      Update version number and date - no other changes are needed to
      Minor changes to bring FEA design doc up to date.
      Update Design Architecture document to match current XORP status.
      Add information about RefTrie.  Fix date.
      Fix typos and some layout improvements.
      Minor grammar fixes and typos.  Note: this doc still needs updating
      Fix minor typos and undefined reference.
      Update status.html - I updated everything except multicast, but feel
      Update release notes.
      abort on SEND_FAILED.  This is temporary, to give the tinderbox the chance to show up any remaining problems.
      Move the disabling of RIB->FEA communication to an XRL (as opposed to
      Fix typos
      Make rtrmgr use new finder (or it can't talk to anything else!)
      Workaround for yacc incompatibilities on newer RedHat systems.  If you
      Add work items for RIB and RTRMGR
      Add some longer term tasks.
      Simple change to retransmit "register interest" messages from
      Move NextHopResolver retransmit timer to be a list of XorpTimers.
      second pass on XRL error handling
      Commit XRL error handling text to the correct document :-)
      update XRL errors text
      wordsmithing on the intro
      Rephrasing to improve readability.
      Add section on handling route add failures that are caused by resource
      Update BGP->RIB route add/delete interface to match error handling
      Some restructuring and renaming of the NextHop lookup request queue
      Substantial re-write of NextHopResolver's handling of XRL requests and
      Add FEA rib client for IPv6
      Replace last remaining uses of sprintf with c_format.  This doesn't
      Add convenience method to access the XrlRouter's eventloop
      Rationalize how we pass the eventloop around, what the accessor
      More rationalization of eventloop naming/passing/storage-of-references
      General code cleanup: prefer passing/storing references to pointers.
      Spring cleaning.
      More stylistic cleanup
      Minor cleanup.
      Add a tinderbox test that just ensures the config file parsing still works.
      Some refactoring aimed at making module management less closely
      More refactoring to better separate ModuleManager functionality from
      Clean up module states to match Tuesday's discussion.
      Inform the ModuleManager of module status changes.
      Fix initialization/state-machine bug that resulted in killing
      Properly handle waiting for processes to shutdown without calling sleep().
      Add new task class.  Add callback to module termination code.
      Add new TaskManager class.
      Start the task manager.  Some cleanup internally in Task class.
      Move some functionality over to TaskManager from XorpClient
      Refactoring to use the TaskManager.  Tinderbox tests succeed, but
      Remove now-obsolete batch code from XorpClient and associated APIs.
      Making progress towards getting the restructured code to work properly again.
      Add a simple DelayValidation class to use when starting or stopping
      Add get_status call to common interface; all processes currently
      Status codes definintion
      Changes to RIB to return NOT_READY state while it's getting VIF info
      get_status XRL on BGP can now report PROC_FAILED when BGP has seen a
      BGP now returns PROC_FAILED if the NextHopResolver suffered a fatal
      Remove PROC_MAX - it makes ennumeration in switch statements less readable.
      FEA should now return a status code of PROC_NOT_READY if any interface
      Add mechanism to rtrmgr to use Xrl get_status to determine process
      Fix templates to match rtrmgr changes
      Fix bug in code calling get_status XRL.  rtrmgr can now start
      Fix bug in Finder::messenger_death_event which might cause the wrong
      Fix a number of bugs in xorpsh's CLI related to text-entry mode.
      Remove gratuitous debugging messages.
      remove comment about MD5 - already done by Orion
      Fix dumb cut-and-paste error
      XLOG_UNFINISHED shouldn't take any parameters
      Fixes to prevent compiler warnings when XLOG_UNREACHABLE() is used at
      Replace calls to abort() with more self-explanatory self-destruction.
      Fix RIB bug caused by a misunderstanding as to what
      Fix corner case, where RIB would never enter ready state if the FEA
      Replace old FinderServer code with new code cribbed from new finder,
      config file for xorp0 BGP testing
      First pass at more robust error handling code in the rtrmgr
      Remove error handling from ModuleCommand - we now handle errors in the
      oops
      Errors during startup now are properly reported, and all processes
      Add command line flag that causes the rtrmgr to exit cleanly after a
      changes to run on xorp8.  config.boot should no longer be modified for
      Add comment explaining status codes
      Add shutdown XRL to common interface.  In many processes this is
      Somehow I missed adding shutdown to this one.
      Two more missing shutdown methods.  Something strange must have
      Add missing shutdown method
      Return correct status when shutting down.
      First step towards rtrmgr using the shutdown Xrl interface.
      Fix typo that caused the wrong file to be sourced, causing the
      Re-organizaton of how the relevant information about a module gets
      Add validation that process re-configuration is now complete.
      rtrmgr will now attempt to stop processes when the router config no
      Correctly unschedule XRLs for processes that are about to be shut down
      Add code to actually call shutdown XRLs.  Fix bug in task ordering.
      Return correct status when shutting down.
      return the correct status code while shutting down.
      The RIB's shutdown XRL wasn't actually shutting down the RIB.
      Update
      Allow . in quoted strings.  This parser really needs some work to be
      New much more capable string parser.
      The fea template should specify the real fea, not the dummy one (or
      A start at a xorpsh user guide.
      Add remainder of document.
      Fix bug in bootfile parser that I introduced fixing the bug Javier
      Typos
      Update rtrmgr and xorpsh status.  Minor tweaks elsewhere.
      Rename xorpsh_userguide.
      0.2 -> 0.3, change date, no other changes needed.
      Add text and modify figure to reflect the addition of the RibClient
      Fix space-leaks in shutdown code (not important leaks - just help
      Clean up on shutdown.
      Bug fix that allows a router to be started with no configuration information.
      Add DeletionTable to RIB.  This performs background deletion of all
      Routing protocols now register their XRL class and instance names when
      compilation fix for gcc 2.95
      Simple test suite for RIB Deletion Table.
      Pretty much a complete re-write of the BGP decision process to fix the
      Fix reversed BGP MED test.
      Fix NULL pointer de-reference in RegisterTable - this fixes
      Re-write of DecisionTable<A>::add_route to solve further MED problems.
      Re-write of DecisionTable::delete_route to handle deterministic MED
      Re-implement DecisionTable::replace_route to give deterministic MED
      Changes primarily to FanoutTable, so that it now passes changes to the
      Back out minor broken change.
      Different peers should have different BGP IDs.
      Switch FanoutTable to index the next tables using a multimap indexed
      Add missing destructor for NextTableMap.  Only called at BGP shutdown
      Fix space leak in DecisionTable::replace_route.  Mea culpa.  This one
      Added toplevel BUGS file, with a few bugs (mostly in xorpsh) I found
      Nove these bugs into Bugzilla
      quit from operational mode now causes xorpsh to deregister and exit cleanly.
      xorpsh no longer crashes when we type "delete protocols".
      The list maintaining the order for modules to be shutdown was not
      Slightly more useful welcome message.  Ideally should probably also
      Add %help command to the template file for specifying help information
      A start at making the help command in xorpsh do something useful.
      Some of the basic help provided using the "help" command now works.
      Add long help text for most of the configuration-mode static commands.
      Fix compilation error on later compilers
      Add help for set command.
      Add long help string for show command.
      Move main loop of rtrmgr into its own class.
      Allow rtrmgr to return "not ready" when xorpsh requests the running
      Fix input validation error that could cause xorpsh to crash
      A complete re-write of the xorpsh interface for direct text entry of
      Fix for issue Pavlin identified when adding/deleting the default route.
      Add long BGP help string
      Specify that BGP as and next-hop are mandatory parameters of a peer.
      Fix infinite-loop bug in error handler for config change notifier.
      Add additional isolation test for cascaded filters.  Unfortunately didn't find
      Ugly temporary fix for compilation errors introduced by switching from
      Fix BGP space leak.
      Minor cleanups.
      Fix broken parameter to accept.  Why didn't previous versions of gcc spot this?
      Compilation fixes for gcc 3.4 (prerelease).
      Fix to work around compiler brokenness
      trivial workaround for gcc 3.4 bug
      Fix compilation errors for gcc 3.4/ISO compliance.
      Reverse erroneous commit of modified test file.  Mea culpa.
      Compilation fixes for gcc 3.4.
      According to g++ 3.4, -Wmissing-prototypes is only relevant for C, not for C++.
      Consistency
      Fix relative paths
      Reference docs page
      Add kdoc comments
      Add test that demonstrates broken DumpTable behaviour found by Atanu.
      Add top level kdoc comment for DeletionTable
      Add top level kdoc comment for InternalMessage
      Enable new DumpTable test, and update reference file.
      compilation fix for gcc34
      Add another test case.
      Fix specification of which config parameters are mandatory
      Add a very specific test case for one of the race conditions fixed
      Add seven more unit tests, each testing a different possible race
      Add framework for a save hook, to be executed when the router config
      rtrmgr config file save hook now works.
      Avoid linear scan through list of peers with each route dumped.
      Fix route dump bug, and add unit test.
      re-implement BgpTrie as a subclass of RefTrie.  Use delete_self()
      Add delayed deletion method delete_self() to avoid invalidating
      re-write final completion and self-deletion behaviour of dump table.
      changes so that FanoutTable can explicitly track the genid of all the
      Keep much better track of the genid associated with routes:
      Initialize the DumpTable with the genids of the peers to dump, rather
      add missing typenames for gcc3.4
      Complete re-write of DumpIterators.  Should work better, and be more
      Fix bug in new DumpIterator code.
      Fix dump bug (bad assumption on my part about order of execution
      Removed unused methods relating to igp metric.
      Record in the SubnetRoute itself whether or not the nexthop resolved.
      Add a sanity check - routes whose nexthop didn't resolve should NEVER
      Fix two bugs:
      Fix bad assertion.  We don't *always* keep track of the GenID of
      Don't generate spurious warnings if XORP build directory no longer exists.
      Disable debugging output
      Fix parser error that prevented mandatory attributes being interpreted
      Add additional sanity check
      Call peering_came_in(), even when the peering is coming up for the
      Fix illegal template commands
      improved diagnostic for illegal template commands
      reverse unintended commit of bgp.tp
      Re-order the startup sequence in add_peering() to be much closer to
      Fix to route_used() in DeletionTable.  Should not pass on upstream if
      Fix gcc 2.95 compilation failure
      XORP config files are supposed to start with "/*XORP" so we can
      Add kdoc comments.
      More kdoc comments.

pavlin (2057):
      * Add new file WORKPLAN that contains the workplan for various tasks
      * Change the header from "Documentation" to "XORP Documentation"
      * Bug fix: If (S,G,rpt) Join message is received, and there was no
      Schedule an (S,G,rpt) routing entry as a candidate for
      Redesign and reimplement the mechanism for handling the downstream
      Modification to PimJpHeader::mrt_commit() to improve
      Add section "4.4 Receiving (S,G,rpt) Join/Prune Messages"
      * Add configuration for xorp6
      Makefile.in regenerated
      Add two more TODO entries
      * Renamed *tracking_support_present to *tracking_support_disabled
      * Add new PIM-related configuration XRLs and the appropriate support
      * Bugfix the processing of the following events, so now the
      Minor comment rewording (to make the comments more consistent
      Bugfix: conditionally set the T-bit in the LAN Prune Delay
      * Add Section 4.5 "Sending (*,*,RP) Join/Prune Messages"
      Add a TODO entry to fix the ordering (in IMPL, SPEC and TESTSUITE)
      * Add Section 4.6 Sending (*,G) Join/Prune Messages.
      Add three more TODO entries.
      Minor comment change (for consistency with the text in the spec).
      Bugfix: if processing (S,G) or (S,G,rpt) Join/Prune message,
      * Add Section 4.7 Sending (S,G) Join/Prune Messages
      Clean-up the arguments of PimVif::pim_assert_send().
      Re-generate Makefile.in
      Reorder route_metric and metric_preference arguments in
      * Configure xorp3/dc0 as the RP
      Add XRL interface to generate PIM Assert messages (for testing purpose)
      Stylistic cleanup:
      Add two TODO entries about bugs in the implementation of the
      Bugfix in PimMre::entry_can_remove() : ignore assert state when
      * Disable PimMre::compute_mrib_next_hop_s() for (S,G,rpt) entries,
      Add a TODO entry.
      Add initial entry for things to include with the next release.
      Changes to enable utils compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable libproto compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable cli compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable mrt compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable mfea compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable mld6igmp compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable pim compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to bgp compilation on gcc 3.2.1 and gcc 2.9x.
      Changes to enable fea compilation on gcc 3.2.1 and gcc 2.9x.
      Add a forgotten change to enable fea compilation on gcc 3.2.1 and gcc 2.9x.
      - Changes to enable rib compilation on gcc 3.2.1 and gcc 2.9x.
      Fix the creation/deletion of (S,G,rpt) routing entries.
      Add a TODO entry about handing of (S,G,rpt) routing entries.
      Expand __PATH_TO_FILE_HH__ in the header file #ifndef wrapper
      * Fix the code for restarting the Join Timer for (*,*,RP), (*,G)
      Fix the restarting of the (S,G,rpt) Override Timer, such that
      Fix the code such that when a router sees (S,G) Prune or
      Don't delete (S,G,rpt) routing entry if it is in NotPruned state,
      Add .cvsignore
      Fix the computation of RPF'(S,G,rpt) :
      Add test_ref_trie to .cvsignore
      Regenerate Makefile.in with the default automake-1.4
      Update config.guess and config.sub with the lastest version
      * Add a new method PimMre::recompute_is_prune_desired_sg_rpt_sg()
      * Add a new method PimMre::recompute_rpfp_nbr_sg_rpt_sg_changed()
      Don't delete PimMre routing entry if any of its interfaces
      If the PimMre interface state is set to NoInfo, try to remove
      Argument renaming: ipvxnet -> subnet_addr
      Minor comments formatting.
      * Add XRLs to add/delete subnet address to the set of subnets
      Comment-out the enabling of CLI access inside mfea/test_mfea.cc
      Change the type of the last argument to accept(2) from size_t
      Add (uint32_t) and (uint32_t&) casting of size_t argument
      * Cast size_t argument to (uint32_t) in the Python scripts
      Changes to how PimMre and PimMfc entries are deleted:
      * Separate the PimMre entries pending deletion into different lists:
      Fix the mechanism for deletion of PimMre entries:
      * Remove some old TODO items
      Use ranlib over the generated libtecla library
      Remove extra whitespaces after file names.
      Add autoconf configuration to define HOST_OS_MACOSX for MacOS X
      Code changes to make it (almost) compile on MacOS X version 10.2.3
      Comment-out text after #endif
      Bugfix inside PimMre::recompute_rpfp_nbr_sg_rpt_sg_changed() :
      Add a comment to explain why const_cast is used in ether_ntoa()
      In PimMre:::set_i_am_assert_loser_state(), always set the
      Add Section 4.8 "(S,G,rpt) Periodic Messages"
      Add an extra sentence in describing the results in Section 4.8,
      Add a TODO entry whether to delete PimMfc if the iif changes.
      Fix PimMre::is_prune_desired_sg_rpt() such that it computes
      Add two implementation-related TODO entries.
      Add new method XrlCliNode::my_xrl_target_name()
      Add newline at end of files (spotted by a warning generated
      Change uint8_t msg[MAX_BUFFER_BYTES];
      printf("%d", size_t) -> printf("%u", (uint32_t)size_t)
      Better comparison for $enable_ipv6 value.
      * Add --disable-debug flag to ./configure to explicitly disable
      Various PIM Assert related changes and bug fixes:
      Add missing delete_assert_winner_metric*()
      Merge all set_foo() and reset_foo() to
      * Rename PimMre::recompute_rp_register_sg_changed()
      Add a TODO entry.
      * Fix the following methods to appropriately assign the new state
      Add two more TODO entries.
      Bugfix in PimVif::pim_assert_process() :
      Cast (size_t) to (uint32_t) when printing.
       Cast (size_t) to (uint32_t) when printing.
      Cast (size_t) to (uint32_t) when printing.
      Cast (size_t) to (uint32_t) when printing.
      Apply Orion's patch to the MacOS X compilation problem.
      Add a TODO entry
      Bugfix in PimMfc::recompute_iif_olist_mfc() in comparing whether
      Add XLOG_TRACE() log message to PimMfc::delete_mfc_from_kernel()
      * Fix PimMre::rpfp_nbr_wc() to return properly MRIB.next_hop(RP(G))
      Bugfix in assignment to a local static variable in method
      Fix pim_mre_override_timer_timeout()
      Compilation bugfix that was introduced with the previous commit.
      * Fix the computation of PimMre::rpt_assert_metric() such
      Add Section 4.9 "State Machine for (S,G,rpt) Triggered Messages"
      Add a TODO entry about pending test scenario from Section 4.9
      Remove a TODO comment that is not valid anymore.
      Add a TODO entry.
      Add print_routes to .cvsignore
      When reading the whole forwarding table at once from the kernel,
      Add a TODO entry.
      Update with wish-list for next release.
      Add a TODO entry.
      Add a TODO entry.
      * Modify PimMre::set_assert_winner_metric() to delete the old
      Modify PimMfc::recompute_iif_olist_mfc() :
      Compilation bugfix introduced with the previous commit.
      Remove half of the most recent TODO entry, because it was done by
      Add a number of methods to MfeaDfe to access various dataflow-related
      Add new CLI command "show mfea dataflow" that prints information
      Remove some TODO stuff that is done.
      If a dataflow upcall is received, and if there is no matching PimMre
      If we delete PimMfc entry inside method PimMfc::recompute_iif_olist_mfc(),
      Add a TODO entry about
      Fix the processing of assert messages when in I Am Assert Loser
      Add dependency tracking for the CouldRegister(S,G) recomputation
      Regenerate the dependency tracking info files.
      Ignore the Assert state for (S,G,rpt) entries when attepmting to
      Add a TODO entry.
      * Bugfix in PimMrt::receive_data() :
      * Add comments to clarify most of the PimMre methods which type
      Implement the processing of assert-related
      * Fix the dependency tracking mechanism for
      Add a TODO entry.
      * Fixes to PimMre::entry_can_remove()
      Bugfix: reset the root of the MRIB lookup table to NULL if the last
      * Make the MRIB default metric and metric preferences configurable.
      Add configuration to setup MRIB default metric and metric preference
      Compilation bugfix for Linux.
      Add an extra space.
      Reorganize the dependency tracking mechanism to add support
      Use XLOG_ASSERT() for some output actions to verify that
      Add Section 5.1 "(S,G) Assert Message State Machine".
      * Remove redundant couple of XLOG_ASSERT() from
      * Check the inner source and group address of an Assert message:
      Fix the content of the AssertCancel(S,G) and AssertCancel(*,G)
      Initialize PimMfc::_flags to zero in PimMfc constructor.
      Add new binaries to .cvsignore and prune old ones.
      Remove repetition of "isolation_tests"
      Change the mechanism to recompute
      Add Section 5.2 (*,G) Assert Message State Machine
      Modify the dependency tracking mechanism such that
      Add extra text to describe the test scenario when (*,*,RP) Join
      Prune and/or update some obsolete TODO stuff.
      MacOS X printf() compilation fix.
      Change return type of ProtoNode::maxvifs() from size_t to uint16_t,
      * Change vif index type from size_t to uint16_t
      Change vif index type from size_t to uint16_t
      Add BUFFER_COMPARE() macro.
      Bugfix in PimScopeZone::set_scoped_vif() :
      Replace "operator bool()" with method "bool is_valid()".
      Add test_finder_ng to .cvsignore
      * Reimplement the PIM Bootstrap mechanism
      Add a new RELEASE_NOTES file. This file is suppose to contain
      Compilation fix for gcc32 (on FreeBSD).
      Add "explicit" to some of the class constructors in libxorp that
      Add explicit casting due to the "explicit" constructor modification.
      Change the definition of PIM_BOOTSTRAP_SCOPE_ZONE_TIMEOUT_DEFAULT
      Bugfix in computing the "Randomized Override Interval":
      * Add flags to BsrZone to distinguish between
      Cast (size_t) argument to (uint32_t) inside printf().
      Cast (size_t) argument to (uint32_t) inside XLOG_ERROR()
      Implement generation of PIM Bootstrap and Cand-RP-Adv messages
      If attempt to send PIM Cand-RP-Adv message(s),
      * On second thought, reverse-back my previous change to
      On startup, set the BS Timer for a candidate BSR to BS Timeout
      Show info for "Expiring zones" and "Expiring RPs"
      Add a TODO entry re. the Bootstrap spec.
      * Add Section 6.1 "Candidate BSR State Machine".
      * Remove incorrect XLOG_ASSERT() statements
      Modify PimNode::add_config_cand_rp_by_addr()
      Send the periodic or the cancelling (on shutdown)
      * Add Section 6.2 "Non-Candidate BSR State Machine".
      Add forgotten auto-generated EPS file.
      Print type of XRL arguments when printing the usage string.
      Add XRLs to configure PIM scope zones by adding/deleting
      Add new methods to return the list of scoped zones, and to
      Add new CLI command "show pim scope" to show the configured PIM
      Add new method PimScopeZoneTable::is_zone_border_router()
      * When sending Cand-RP-Adv message, set the Zone bit
      * Add Section 6.3 "Sending Candidate-RP-Advertisements"
      Remove an obsolete sentence from "Possible problems" in Section 6.3.
      * Fix PimBsr::add_expire_bsr_zone(), so only the prefixes
      If we are sending a cancelling Bootstrap message, then set the
      Fix PimBsr::stop() so the BSR sends properly the cancelling
      Add Section 6.4 "Creating the RP-Set at the BSR".
      Move the check whether we are sending a Bootstrap message
      * Remove the old PIM-SM BSR specs (bsr-01 and bsr-02).
      Update the PIM-SM BSR spec reference from bsr-02 to bsr-03
      Update the bib entry for the PIM-SM BSR spec from bsr-02 to bsr-03
      * Update the PIM-SM architecture document to reflect the
      Add the argument type when printing usage for CLI-related XRL shell
      A typo
      Remove finder_ng from .cvsignore
      Remove add_permitted_host() for "0.0.0.0", because it is
      * Use typedef to switch to the new finder
      * Bump-up the version to 0.2
      Compilation fix for Linux RedHat 8.0 :
      Add a second optional argument ("scoped") to CLI commands
      Nasty bugfix. What I meant originally was:
      * Bugfix regarding keeping and removing RPs for group-prefixes
      Add Section 6.7 "Segmantic Fragmentation of BSMs"
      * Change the date to March 7, 2003
      Spell check.
      * Update the status for multicast
      Add the subdir name __POLICY in the beginning of the following
      kdoc nit: "@throw" -> "@throws"
      kdoc nit: "@requester" -> "@param requester"
      * Add a TODO entry to kdoc-ify ref_trie.hh and trie.hh in libxorp
      * Move libcomm before libxipc, so the libcomm documentation
      Fix two Latex compilation problems.
      Updated to match XORP version 0.2 release code; cleanup.
      Minor edits.
      Updated to match XORP version 0.2 release code; cleanup.
      Cleanip.
      Minor cleanup.
      Cleanup.
      Replace some of "messages" with "packets"
      Bump-up the date to March 10, 2003
      Sync the file with the XORP coding style.
      Cleanup. Bump-up the date to March 10, 2003
      it's -> its
      * Minor cleanup; bump-up the date to March 10, 2003
      * Bump-up the date to March 10, 2003
      * Bump-up the version to 0.2, and the date to March 10, 2003
      Add Javier Cardona to the list of core team members.
      * Add gcc/g++ 3.2.1 to the list of supported platforms.
      Moved SNMP from the list of long-term future plans to the
      Add a reference to xorp/RELEASE_NOTES.
      * Set the release date for Release 0.2
      Update the copyright year in the top-level LICENSE file.
      Update the date of each document to March 10, 2003
      Add release notes for LIBXORP, FEA, MFEA, MLD/IGMP
      remove test_next_hop_resolver from .cvsignore
      Update the documentation index Web page for Release 0.2
      Remove two TODO entries that were already DONE.
      Bump-up the version to 0.2 in xorp/VERSION and xorp/configure.in,
      Update README for CLI.
      Update the date in the status section of BGP README.
      Update the date.
      Minor fix.
      Update README for pim.
      Add a newline at end of file.
      Add a TODO entry.
      Fix gl_change_terminal() so it does the right thing if
      Call gl_change_terminal() with default value of ther terminal
      Set the terminal as appropriate: if is_stdio() is true, then
       * Add a template with empty bullets for release notes for the
      Minor edit.
      * Update the priority of "Finish PIM testing" task from High to Done
      const-ify arguments that are pointers and that the memory they point
      Add a TODO entry.
      Sync with the current testbed configuration.
      Shuffle few things around.
      * Add XRLs and supporting code to get/set/reset the IGMP/MLD
      Conditionally set the target name (default to "IGMP")
      Conditionally set the target name (default to "MFEA_4").
      Conditionally set the target name (default to "PIMSM_4")
      Misc. IPv6-related bug fixes:
      Set the CLI and MFEA target names (to "CLI" and "MFEA_4" resp.)
      Use "#define DO_IPV4 1" to conditionally compile the test program
      Bugfix in inet_cksum_add() in computing the result IP checksum
      Use "#define DO_IPV4 1" to conditionally compile the test program
      Set the CLI, MFEA, and MLD6IGMP target names
      * Bugfix in computing the MLD checksum: the checksum must
      Add CLI commands for MLD (same as IGMP).
      Add config entry for xorp6, and change the set of enabled interfaces
      Add config entry for xorp6, and change the set of enabled interfaces
      Add a bullet about MFEA-related changes
      Add a file with info about the steps involved with the
      Simplify the code for computing the checksum for the
      Conditionally set the target name (default to "CLI")
      Update the "last reported host" address whenever a membership
      If IGMPv1 Membership Report is received, don't perform
      Bugfix in Mld6igmpVif::igmp_membership_query_recv()
      Start the v1 host timer even if I am not querier.
      Remove a TODO entry about starting igmpv1_host_present_timer()
      Bugfix: reset the VIF_QUERIER flag on an interface if
      * Implement check for Router Alert IP option
      Remove TODO item re. checking incoming packets for Router Alert
      Add a TODO entry re. configuration to enable Router Alert
      Add bullets about MLD/IGMP status.
      Update the status of the "Testing of IGMPv1,2" task
      Few minor fixes.
      Change the year of the TODO document from 04 back to 02
      * Rename rib/urib_module.h to rib/rib_module.h, and change
      it's -> its
      kdoc nit: @returns -> @return
      * Const-ify and use references for the arguments of the methods
      Arguments const-ification, and minor stylization nitlets.
      Nitlets.
      Change the order of building of some of the directories.
      Stylistic nits here and there.
      * Add "BOOL METHODS" section:
      Add the XORP CVS ID
      * Replace old Copyright headers with the most recent version
      * #ifndef ... #define ... #endif wrapper nitlets
      Remove extra empty lines.
      * XRL router related variable and arguments renaming
      Xrl router-related argument/variable renaming
      XRL router-related variable/argument renaming
      * Change the RibManager constructor such that the EventLoop
      * Link against the RIB library (though, the RIB is not used yet).
      Nitlets.
      * Rename
      * Rename x_module_id with xorp_module_id
      Add configuration entry for hostname "pie"
      Initialize _server_msgs_sent to zero.
      Tweak code that is not used and that is going to be deleted
      Fix the alphabetical order of the list of Makefiles to generate
      Nitlets:
      Add entries for XORP_MODULE_RIB and XORP_MODULE_RTRMGR
      * Pass the (FEA) target name of the XRL target to send
      Move the state-related stuff from ProtoUnit to a separate new
      Rename FeaClient to RibClient.
      * Add four lists of RibClient objects to RibManager: one list
      Replace the configured interface for "possum" from fxp0 to rl0
      * Add start() and stop() methods to RibManager and VifManager,
      Add following XRL interface to RIB:
      Reorder the FTI-related XRL implementation such that the implementation
      * Add the fti (fea_fti.xif) XRL interface to XrlPimNode
      Refactoring of the recently added XRL interface to the RIB:
      Add a shell script with handy wrapper functions for the RIB.
      Modify call_xrl() shell function such that if we must repeat
      Make the return value of the 'command_pim' and 'rcommand_pim'
      Refactoring some of the return strings when there is an error.
      Misc. fixes and cleanup
      Remove the expectancy to receive fail:bool = false
      Replace the "fail & reason" XRL error return mechanism
      Replace the "fail & reason" XRL error return mechanism
      Add a TODO entry.
      Add a figure with error dependency between XORP components.
      Add the error_handling.tex document to Makefile.am
      Add a mini-template for the things to include with the next
      Add the strawman MFEA-to-FEA merge plan.
      Add PIM configuration option and XRL interface to configure
      Add a clarificication about the vif_index
      * Add-back a "return;" statement, and a call to kernel_call_process()
      Nit
      Move the "mfea" directory to the list of libraries, so it should
      * Add a new class TimeVal that should be used instead of
      * Fix the TimeVal(const double& d) constructor, such that
      Fix include files.
      * Move the definition of all longish TimeVal methods to outside
      * Change the argument type from "struct timeval" to TimeVal for
      Nitlet.
      * Edited the comment for XorpTimer::scheduled() :
      Changes related to the FTI XRL interface as discusses on Tuesday
      Change the value of "metric" in the FTI and rib_client XRL interface
      Replace majority of "struct timeval" with TimeVal
      Replace the multicast-specific Timer with XorpTimer.
      * Replace the multicast-specific Timer with XorpTimer.
      Fix a comment.
      "friend Foo" -> "friend class Foo"
      Add forgotten #ifdef HAVE_IPV6 #endif around IPv6-specific code
      Nitlet.
      Add (commented-out) configuration for interface ed1 for oreo.icir.org
      Add a TODO entry.
      Add a new method TimeVal::set_max() that sets the time value
      * Replace all remaining multicast-specific Timer instances
      Variables renaming: "foo_timeval" -> "foo_tv"
      Update the work plan for release-0.3
      Nitlets.
      * Add various copy_in() and copy_out() methods to IPv4 and IPv6
      * Replace "struct timeval" with TimeVal (in the Xorp timer and
      Remove the deprecated TimeVal::randomize_uniform()
      Use EventLoop::current_time() to get current time instead of
      * Replace "timeval" with "TimeVal"
      Replace TimerList::system_gettimeofday()
      Nit.
      MacOSX compilation fix.
      MacOSX compilation fix
      Nits.
      Fix typos.
      Add a TODO entry re. the PIM BSR spec.
      * Add more text for the MFEA
      MacOS X compilation fix
      Rename #define-d flags checked by configure:
      Add check for if_indextoname(3)
      Rename XRLs ifmgr/0.1/get_vif_flags4 and ifmgr/0.1/get_vif_flags6
      Update .cvsignore
      Add .cvsignore file with the list of files CVS should ignore.
      Add check for net/if_types.h header file.
      Remove the following files from .cvsignore, because it seems
      Replace
      * Replace #elif HAVE_SYS_ETHERNET_H with
      Replace the #ifdef ... #elif ... conditional inclusion of
      * Cleanup acconfig.h :
      Remove #include "libxorp/ether_compat.h" because it is not needed
      Update ltconfig and ltmain.sh with the slightly newer version
      Comment-out the --force flag to libtoolize, because with it
      Add compilation fixes for NetBSD-current (and probably NetBSD-1.6.1).
      Add few TODO items for the next release.
      Fix a typo.
      Add test_xorpevents to .cvsignore
      (Carefully) replace the ltmain.sh from FreeBSD (libtool version 1.3.4)
      Add a check whether netinet/icmp6.h contains "struct mld_hdr"
      * Add MLD-related backward-compatibility definitions:
      Remove a TODO entry that is already DONE.
      Conditionally define mld_hdr to mld6_hdr for older IPv6 KAME stacks.
      Replace the obsolete "struct mld6_hdr" with "struct mld_hdr"
      * Removed the check for broken <new> header (as discussed during
      Replace the non-standard bzero() and bcopy() with
      Remove half of a TODO entry.
      Fix the conditional definition of MLDV2_LISTENER_REPORT
      Add conditional definitions of MLD_XXX from MLD6_XXX
      * Replace all obsolete MLD6_XXX with MLD_XXX
      Add few IGMPv3 and MLDv2 related definitions
      * IPvXNet methods renaming:
      * Remove bogus dnl comment from config/acipv6.m4 that is at the
      * Apply few fixes to configure.in
      Add comments regarding how "bootstrap" should be modified if
      * Copy aclocal.m4 from config/aclocal.m4 to the local directory.
      Add aclocal.m4 to the list of files ignored by CVS.
      Add forgotten "run" in front of "cp -p config/aclocal.m4 ."
      * Remove --output=config/aclocal.m4 option when running aclocal
      Update config.guess and config.sub with the lastest version
      * Update following utility files with more recent version (the one
      Replace VERSION[] defined inside coord.cc and test_peer.cc
      Apply various fixes to Makefile.am files:
      Change all
      Fix alignment after the renaming of event_loop to eventloop.
      Update the locally kept version of some header files.
      Update some of code that is related to the kernel ad