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

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


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

Changes since RELEASE_1_1:
abittau (40):
      Added support for ordering statements when configuring the front end.
      new interface to policy.  Statements are now inserted and deleted line by line.
      * Initial integration of policy manager and rtrmgr.
      get rid of varmap.conf which we don't need anymore
      attempt to fix compilation on:
      supidly forgot i don't do explicit template instantiations....
      fix compilation on some systems [hopefully]
      fixed compilation with:
      * Use 64bit line numbers. TODO: xrl u64 would be cleaner.
      New policy interface.  This actually looks very close to the "ultimate" one.
      * Users can't set as-path directly... rather only through as-path-prepend and
      * Initial support for BGP communities in policy.
      fix a bug in the parsing of xrl arguments.  If the argument contained multiple =
      * Support for sets of different types.
      fix compilation on some systems [gcc 2.95]
      * Change %create to %set in templates.  This allows modifying an existing policy
      Initial support for filters with versions.  Basically its like the other policy
      fix variable name clash, add typeinfo include
      disable debug logging - I always seem to forget this...
      Fix some bugs:
      * some fixes in export policies.
      vague attempt to fix memory leaks in policy.
      quick fix for IBGP.  Basically if you are pushing a non changed route,
      * Add range.hh in makefile
      * get rid of assert in static filter table.
      sort out more memory leaks?
      Attempt to fix a bug when policy route pushing while a peer is deleted.
      * First pass [didn't re-read or anything] of policy chapter in user manual
      quick second pass on policy dox.
      * Hopefully speeded up policy in BGP.  Reads and writes are done via callbacks.
      print a warning if user wants to trace bgp, instead of dying.
      marko is right.  my fault---sorry.
      attempt to fix compilation gcc 2.95
      keep semantics of old interface.
      First optimization pass for policy.
      support for a map protocol<->process.
      these files might aid compilation.
      forgot to change the human readable protocol to xrl target in the RIB map.
      fixed dependency issues.  Policies should now be deletable.
      Consider route re-distribution from A->B.  If A is dead when policy is

atanu (1068):
      Correct the pathname to the script to start snmpd.
      Explicitly add -lstdc++ for libnetsnmpxorp.
      BGP sends route adds and deletes to the RIB via XRLs. Increase the
      A problem in the assignment operator for PreOrderIterator and
      Make the RefTrie destructor virtual, the RefTrie is the base class for
      Use the cooler constructor:
      Sending routes from BGP to the RIB is achieved using XRLs.
      Replace "echo -n" with echo, call_xrl no longer generates an
      Bugzilla URL: http://www.xorp.org/bugzilla/show_bug.cgi?id=121
      Send a hello packet on calling start_hello_timer, rather than waiting
      RouterID.
      Explicitly taking the peering down in the test_peering code exposed a
      Start of the hooks in DebugIO to bind together two opsf instances in
      The peer manager can throw an exception if an input packet is sent to
      The PeerOut and Peer classes can now receive packets.
      The PeerManager can now forward incoming packets to the appropriate
      EmulateSubnet a way of typing together the IO classes in different
      Remove the word "we" from as many comments as possible.
      When transmitting a packet it is required to set the destination and
      Add the destination and source addresses to received packets.
      Fix typo in comment.
      The PeerOut can return the linktype, currently a hello packet will
      The peer now accepts and uses the interfaces own address.
      Use the template variable to decide whether to use an IPv4 or IPv6
      Add a linktype that was missed Point-2-Point.
      Reduce the hello timer and router dead interval in order to get the
      Wait 10 seconds for the tests to generate packets, after that fail the
      Remove a debugging printf that was left in by mistake.
      1) Interface states
      1) Start the hello timer in the wait time event, this is not
      Candidates to be DR and BDR must be twoway or above, add this
      1) Make NeighborInfo a class and use methods to access its state.
      A received packet can now be accepted by the peer manager, previously
      Rename NeigborInfo to Neighbor and make it a class in its own right.
      Pass the source and destination addresses of a packet all the way
      Templatise Neighbor.
      Prepare to process incoming hello packets, also clear the neighbours
      Changed all occurences of neighbor to neighbour for consistency.
      Add a trace struct to store trace variables. By default all input
      Kdoc create peer.
      Return the type of this area.
      Propogate the area type through to the peer. Needed by the hello
      An options class to manipulate the options field in packets.
      Clarify a reference to the OSPFv2 RFC by citing the RFC itself.
      The neighbours are now indexed by source address as this is the most
      Move the processing of the hello packet to a separate method.
      Add a destructor to the Peer class to free the neighbour classes.
      * In the debug output no longer print the pointer to data.
      Make the neighbours data structure a list not a map.
      * Fix a bug in process_hello_packet(), missing break statements when
      Add tracing for interface events and neighbour events. During
      * Interface event scheduling completed.
      A little further in the receiving of hello packets.
      * In OSPFv2 the DR and BDR are the source address, in OSPFv3 its the
      Source address and router ID are now distinct.
      We were using this routers router ID to determine if the DR or BDR
      * get_candidate_id is now static to allow it to be called from other classes.
      Complete neighbour event 1-WayReceived.
      When tracing events print the interface name and current state, not
      Temporary hack in event_2_way_received to get DR and BDR election working.
      * Don't access the hello packet directly, to set the DR and BDR. Added
      Make the initial state of a neighbour Init not Down.
      Add more information in the event trace macros.
      Add the data description packet that will be sent to the current
      The ReceiveCallback typedef had the encompassing class in its name,
      Some notes on the OSPF implementation.
      Fix typo.
      Catch the exception of no decoder exists to pretty print packet.
      Add a decode for data description packets.
      TODO.
      Increase the timeout in two_peers to 15 seconds from two seconds wait
      * New method to compute the value of the option field (send_options).
      More words of wisdom.
      Stubs for processing data description packets.
      * Rename get_source_address -> get_neighbour_address plus associated
      More wisdom.
      Add a TBD for process_data_description_packet.
      Interface MTU can now be set, required for the data description packets.
      In LSAs rename get_lsa_type to get_ls_type for consistency with the
      * MTU is now being set.
      Are external-LSAs allowed in NSSA.
      Pretty print the options field in a packet.
      Move the area manipulation functions from the peer manager to the
      A hook to get a reference to the database manager.
      Fix a comment.
      Checkpoint.
      Clarify comment.
      Add ls_database.{cc,hh} to the makefile and create ls_database.cc.
      Remove suspect comment.
      Add the SPT library.
      Include the SPT header file.
      Add the ls_database to the area router.
      Rename LS_database -> LinkStateDatabase.
      Rename LS_database_manager -> LinkStateDatabaseManager.
      Lose references to LinkStateDatabaseManager.
      Lose references to ls_database_manager.{cc.hh} and
      Neighbour now references the area router directly to find if a lsa is
      * The newer_lsa method is now in here.
      Changed my mind:
      Checkpoint.
      Rename address -> source, better reflects the purpose of the address.
      Initialise the _next_peerid.
      Work to do in the AreaRouter.
      When a peering is toggled this information is now propogated to the
      The connect() method which uses libcomm now returns
      No longer ignore SIGPIPE in a socket library.
      Temporarily don't set errno to 0 we still have code using errno.
      Retrieve a human readable string (in English) for the last error
      Add a number of functions that are agnostic to address family. These
      Although windows supports the function gai_strerror at the moment we
      In comm_set_blocking() clear the O_NONBLOCK bit rather preserving it
      Switch to using libcomm for socket operations. The libcomm library
      Make the connect call non-blocking.
      Call the comm_init() and comm_exit() functions in the Socket
      Move the comm_init and comm_exit functions into the main bgp class,
      The Dijkastra computation visits tentative nodes and recomputes
      Add a valid flag to an LSA. Add a method valid() to check the status
      The area router now tracks router links by peerid and also has
      Checkpoint.
      Remove old irrelevant comment.
      Compilation fix required for Linux.
      Checkpoint.
      Checkpoint.
      1) Update router links, methods to compute the router link part of a
      Checkpoint.
      Add a valid member to the data base handle.
      Put a dataabse handle into the neighbour class and reorder some header
      Create a database description packet.
      In event NegotiationDone if the state is ExStart move to exchange.
      Add some trace point if we are about to generate an sequence number
      Fix typo in trace message.
      According to the spec we don't need to check the more bit.
      1) In event_negotiation_done():
      Set the bogus prefix length to 16 from 1, which was just confusing.
      Print the router link thats added.
      Cosmetic change.
      We have the default hello interval cranked down to 1 second in order
      Remove a debugging printf.
      1) Add a wrapper for the retransmit method in order to annotate the
      Support the database being totally empty, the database open routing
      The database handle is now initialised with the last entry it is
      Add a last() method to the database handle plus add a number of
      When originating a route don't put our own AS in the AS path for IBGP
      Comment out the setting of the options from the top level. The peer
      Add a str() routine to the options helper class and use it in the
      Checkpoint.
      Make LS sequence numbers unsigned.
      Add architectural constants.
      Initialise an LSA from InitialSequenceNumber (0x80000001) not 0.
      The value of the options field in now computed by the peer manager and
      The router ID and area ID are held as IPv4 this is fine but
      Fill in more of the Router-LSA.
      There are a number of 32 bit quanties that are set from variables of
      Fix typo.
      Change localhost to 127.0.0.1, otherwise localhost resolves to an IPv6
      Add a validate method on the LsaDecoder that can be used to check if a
      Addresses were being stored as type string in a struct that was being
      The heap code allows a set of objects to be held as a priority
      Fix typo.
      Start of a delay queue.
      Complete implementation.
      Fix typo.
      Add delay_queue.hh.
      Fix some minor problems discovered by first compilation.
      Use the delay queue to transmit router LSAs.
      Clarify some comments.
      The creation time is now stored with an LSA so that the age can be
      Method to increment the sequence number.
      A LSA can now be marked as self originating. Make the default state false.
      Utiility method to get the sequence number from an LSA.
      Don't allow an LSA to get older the MaxAge.
      Don't allow an LSA to get older the MaxAge.
      1) Mark the router LSA as self originating.
      Spaces.
      Update the sequence number and age for the router LSA that is
      Implement the newer lsa method.
      Add a link state request list to the neghbour.
      Identify point where link state request packets should be sent.
      Formatting nit.
      Each neighbour now has a unique ID a NeighbourID associated with it.
      The _running variable was not initialised. This test_peering test was
      Introduce a NeighbourID of ALLNEIGHBOURS which can never be allocated
      Make sure that a NeighbourID of ALLNEIGHBOURS which can never be allocated
      Only consider an LSA if its valid.
      New method find_lsa bases on newer_lsa, the new method also returns an
      A set of accessor methods for the LSA nack list.
      * The neighbours can now accept LSA for transmission (queue_lsa),
      Remember to add the link cost to the age of the LSA.
      Print the LSA sequence number in hex.
      Make the LSA sequence number an unsigned.
      Install decoders for all the packet and LSA types we currently
      Make the initial sequence number a uint32_t again.
      queue_lsa and push_lsas all the way through from the peer_manager.
      The increment sequence number now explictly goes from
      Print the Link State ID in hex.
      Removed the transmitted variable it is now in the LSA itself.
      * Don't allow the same router link to be added twice.
      When transmitting an LSA set the transmitted bit.
      Don't encode the LSA when creating a link state update packet it
      Previously the code had the potential to fire off more than one Link
      Replace a find with an explicit loop. The find was causing compilation
      In the test code network mask was being treated like a prefix. Change
      Possible problem in data description packets with respect to the
      Add Link State Acknowledgement Packets.
      Put in the tests for Link State Acknowledgement Packets.
      Placeholders for processing request,update and acknowledgement packets.
      Beginnings of the processing of a link state request packet.
      Put a disclaimer in the README can't use for routing.
      Casts for printfs.
      The argument "empty" an be used to an aspath to denote an empty aspath.
      New test, test7; on an I-BGP peering send an update with an empty aspath.
      Two new tests (test31, test32), both send an update message with an
      New test, test11, on two I-BGP peerings introduce the same update
      1) Add some more debugging.
      Add some debugging to start packet; print if this is an "EBGP" or
      More debugging.
      New test (test8) demonstrates that BGP will attempt to delete a route
      Move test8 to the set of working tests, now that BGP deletes routes
      On a peering if a route existed with a unique nexthop and a
      assert -> XLOG_ASSERT
      When making last change, forgot the xlog header file.
      The recent changes in nhlookup mean that the order of registration and
      Need to include the module name now aspath.hh uses XLOG_ functions.
      Fixed the problem of empty aspaths, also enabled the relevant
      When debugging is enabled the name of the caller is printed in
      Checkpoint.
      Make all references to OSPFv2 and OSPFv3 of this form not OSPF V2 or
      An LSA has a creation time and age at creation time associated with
      Fix a typo in a comment.
      Previously for our own router LSA we did not save the creation time as
      Send a link state update packet in response to a link state request packet.
      Add an assert if an attempt is made to get the wire format of an LSA
      Add some debugging to update_router_links.
      The area router provides a database interface to the LSA database. In
      Process a link state update packet in the peer and neightbour and pass
      Change a printf to a XLOG_INFO.
      17) When decoding a link state update packet if an LSA is not
      Checkpoint.
      Temporarily comment out a label which is not used yet.
      Methods to add,delete and update LSAs to the database.
      Add a get_peerid method the Peer class. Needed by the neighbour code
      Checkpoint.
      Checkpoint.
      The gcc 4.0 compiler on a Mac doesn't like a statement after the
      In order to process received LSAs it is necessary to know if the
      The LSA class now has a virtual member external, that is used to
      Checkpoint.
      1) Working on flooding LSAs still. Hooks to flood external LSAs to
      If a database description packet arrives with an AS-external-LSA in a
      The link state request list was previously a list of link state
      The LsaDecoder now has a method external that returns true if a LSA
      When flooding an LSA now include the PeerID as well this allows a
      Rename is_designated_router_or_backup_designated_router -> is_DR_or_BDR.
      Complete the flooding code in here. When sending a link state update
      This section is now completed; "13.3.  Next step in the flooding procedure".
      Include the spt that computes the SPF.
      Start coding a network LSA.
      The minimum length of a Network-LSA excluding the header should be 8
      Don't allow a packet decoder registration to be overwritten. Useful
      The router ID in a Network-LSA is stored as an IPv4 which is stored in
      Register the Network-LSA decoder.
      Network-LSA encoder/decoder tests.
      The defines 'XORP_MODULE_NAME' and 'XORP_MODULE_VERSION' will only be
      Fix a typo.
      Changing the nexthop associated with a route was causing a
      Add typeinfo include.
      If an LSA is received on a broadcast interface and it is flooded back
      Update a comment explaining why LSAs do not need to be removed from
      Add debugging defines (commented out).
      Update.
      Put an assert in the update LSA method to try and catch the case of an
      Working on identifying self-originated LSAs and then processing.
      Discard AS-external-LSA's (LS type = 5, 0x4005) in NSSAs.
      Test an address to see if it belongs to any of the routers
      * Make the LS Sequence Number an uint32_t from a int32_t. Hope I
      Complete the processing of self-originated LSAs.
      Add comment about unknown packet types.
      The implementation of string that comes with the gcc 2.95 doesn't
      Check that the iterator is still valid before attempting to
      The direct and delayed ack lists are now sent in link state
      Move all the implementation code into the header file so this class
      Vertex for use by the SPT calculation.
      Add vertex.hh to the makefiles.
      Add the hooks to start computing the routing table. Also start to use Vertex.
      Checkpoint in the middle of adding routing computation.
      The router and area ID's are 32 bit quantites that are sometimes
      Rename an enum from "type" to "Type".
      The RouteCmd class now supports types other than string. Add a
      Change the output slightly.
      Checkpoint for the routing computation.
      Routing table.
      In the IO class add_route and delete_route now have arguments. Plus
      Hook the routing table in.
      Clarify a comment.
      Reduce the minimum size of a Router-LSA to 24 bytes from 40
      Router-LSAs provide information about all the interfaces that exist in
      1) A new event loading done. Still todo cause a Network-LSA to be
      Should router links be generate in state backup?
      Some of the state variable in a LSA were not initialized in the second
      1) Put in a assert to verify that no LSAs that come over the wire
      Nit.
      Clarify the comment for a border area.
      Add a constant for the AreaID for the backbone area.
      Describe a problem with virtual links.
      In the peer add a method to get the interface prefix length.
      Checkpoint the checking of an incoming packet.
      In the OSPFv2 case the hello packet contains the interface
      Don't zero the stats variables when the session is established. The
      Support propogating interface costs through the system.
      Complete the RFC 2328 Section 8.2 Receiving protocol packets changes
      Scheduled events.
      1) Create an operator== function to compare Lsa_headers. Modify
      In order to support virtual links the link type is now stored in the
      Add the processing for the event KillNbr.
      Add event AdjOK?.
      Removed an outdated TBD warning from 2-Way.
      InfTransDelay can now be configured, it is not used yet.
      All LSAs carried in Link State Update Packets now have InfTransDelay
      Remove the warning TBD for the change below.
      Four predicates from RFC 2328 section 3.3 Classification of routers
      When printing the options field add the pretty printer.
      Does a virtual link endpoint exist in this area?
      Virtual link endpoint and some predicates to describe what kind of
      Previously the options were passed into the constructor, now reach
      Getting ready to generate a Network-LSA.
      Add the kdoc comment for update_age_inftransdelay().
      Add an flag "-f" (forever) this will stop a test terminating. Useful
      test17 has been consistently failing in the tinderbox runs but has
      The class EmulateSubnet that ties together ospf instances would
      Checkpoint.
      Previously when an LSA was deleted from the database (_db[]) it was
      Add a tracing flag to LSAs allowing an individual LSA to be traced as
      Fix an uninitialised variable bug (multicast_on_peer), if an interface
      Compilation nits from Mac OS X.
      Remove reference to legacy header file.
      In a NSSA if a Database Description Packet describes an
      Only compute DR or BDR on Broadcast or NBMA links when running the
      Only compute DR or BDR on Broadcast or NBMA links when running the
      Regenerate the lex files with the version of flex on FreeBSD 4.10 to
      Refactoring in preparation for generating and withdrawing
      Initialise the interface state to be Down rather than setting the state.
      If the peer is the DR it is now notified if any of its neighbours
      List of all the files to ignore.
      Comment out the printing of the address that is being used for  XRL
      If a host is heavily loaded its very possible that multiple requests
      A clique of six routers with a seventh router feeding in a single
      Assert the parent pointer is not NULL before dereferencing. Just saw a
      24) Move is_DR(), is_BDR(), is_DR_or_BDR() and possibly
      If XORP has been built with --enable-callback-debug and a regression
      Add a missing newline to a debugging message.
      Add some more debugging when trying to make a connection.
      The stubs for generating,updating and withdrawing Network-LSAs.
      When a peer goes to and from state DR or an adjacency goes to and from
      An OSPFv2 Network-LSA contains a single network mask and a list of attached
      Pass in the network mask.
      Only lookup the netmask in the OSPFv2 case. There is an assert in the
      The decoding of a link state update packet contaning multiple LSAs was
      A method to update the time and increment the sequence number of self
      In the two_peers increase the number of packets that are expected to
      Assert that the age of an LSA is never set to a value greater than MaxAge.
      Generation and withdrawal of Network-LSAs.
      Print the link state id and the advertising router like an IPv4
      Set the V6 bit in the options field of OSPFv3 packets.
      Updating the age of an LSA that is already set to MaxAge is now
      Don't try and update the age of an LSA if it is already at MaxAge.
      Only update the age of a packet if it hasn't already reached MaxAge.
      The DR election had become broken. In a neighbour get_candidate_id()
      Scheduling a BackSeen event later should work now.
      In the two_peers test both ospf instances have their interfaces
      In the construct below system_gettimeofday() is static so with gcc29
      Implement neighbours_exchange_or_loading() used by the flooding
      25) A neighbour should only be listed in a hello packet if a hello
      The area router can now send a BadLSReq event back to the neighbour.
      Send an LSA directly to a neighbour do not add to the retransmission list.
      Fix typo in warning message.
      Print more information about the links in a Router-LSA.
      Some more issues.
      Previously if the hop count to a destination changed but the next hop
      Checkpoint before refactoring routing table computation.
      A method to find a Network-LSA by link state id only, required by the
      Add the IP protocol number 89 to the list of constants.
      Three new methods added to the io class two to leave and join
      Spell protocol with the silent "o".
      Pass node information by reference not value.
      Checkpoint the incremental routing computation and switch tempararily
      Add a method that was missed in the last commit.
      Individual LSAs can have tracing enabled to track their flow through
      Remove the XLOG_UNFINISHED and enable the debugging messages.
      Add two utility functions to go from area and link types as strings to
      OSPFv2 can now be configured using XRLs and can be started by the
      Missed the header file that provides ProcessStatus in the test programs.
      Allow the setting of the prefix-length to allow the interactive configuration
      Add ospfv2.tp to the makefile so it gets installed.
      Move test5 the connect test to the to be fixed list. This should allow
      Add some help text and change linktype to link-type.
      Pace the recomputation of the routing table.
      When a link state acknowledgement packet comes in check all the fields
      Add two queues to the layer that binds together OSPF instances should
      operator== commented out for the moment.
      Only check for options in the header of an OSPFv2 LSA header.
      Add a method fire to start the timer running without introducing an
      First part of the routing computation. The incremental computation is
      Re-enable test5 now that the BGP connect code is working again.
      Move the DebugIO class into its own header file from test_peering.cc
      Make calls to change parameters such as the hello interval through the
      Make calls to change parameters such as the hello interval through the
      Add debugging entry points to allow test programs to introduce LSAs
      Change the name of an area that is not STUB or NSSA from BORDER to NORMAL.
      Test routing computation.
      Conditionally compile out some more of the incremental update code.
      On point-to-point networks are sent to the multicast address AllSPFRouters.
      Utility routines to convert three bytes between host and network byte
      OSPFv2 Summary-LSA Type 3.
      OSPFv2 Summary-LSA Type 4.
      AS-External-LSA.
      AS-External-LSA.
      When a hello packet hasn't been seen from a neighbour in router dead
      The two_peers test now takes the linktype as an argument allowing
      Three methods that will eventually be tied into the interface client
      Make BACKBONE local to this file by making it static.
      The IP checksum routine has been consistently mis-used so temporarily
      The IP checksum routine has been consistently mis-used so temporarily
      The number of bytes that make up the link information in an OSPFv2
      The sequence number is a signed quantity deal with it as such.
      If this router was the DR or BDR and the priority is set to zero using
      Get the prefix length and MTU from the FEA not from the configuration file.
      OSPF is seeing its own multicast packets until this is fixed in the
      If a self originated LSA arrives which has a higher sequence number
      Its encode() not update().
      The timer to refresh router LSAs was accidentally commented out.
      Only join the multicast group AllDRouters if this router is the DR or
      Only update the age of an LSA if it isn't already MaxAge.
      If the state is Down and a Hello is received go to state Init.
      If a peer is taken down don't allow packets in or out.
      On broadcast networks the DR or BDR send to AllSPFRouters other states
      Move the vertex definition into the common header file.
      Store a reference to the LSA in the vertex.
      A little more of the routing computation.
      Routing table.
      The route add, replace and delete methods in the OSPF class are now
      Routing table.
      The first time through there is no previous routing table so don't try
      The IO subsystem now has to provide three methods, startup, running
      Cover all the error cases if we fail to install the tables in the RIB.
      Startup the IO subsystem.
      OSPF determines if it should be running by calling the running method
      Called startup on the wrong class.
      Add code to queue route andd and route deletes to the RIB. Code lifted
      Add the queue to RIB to the IO subsystem. Also allow a metric to be
      Put a reference to the LSA in the SPT vertex.
      Don't clear the neighbour list on interface shutdown. It stops the
      When an interface is taken down all the neighbours are sent a kill
      Update a comment.
      Put valid options into the test packets.
      Close the database if the state drops from ExStart.
      Leave or add MaxAge LSAs in the database, this stops the possibility
      The comparison functions for LSA incorrectly dealt with the case that
      Initialise all the variables in a Router-LSA.
      Move the function that generates legal options fields into a common file.
      In a Router-LSA for a type 2 link, print the link data field an
      Add debugging defines.
      Tidy up the printing of route adds,replaces and deletes.
      Fix some minor problems introduced by cut-and-paste programming.
      The debug IO subsystem should store routes that it is sent for later
      The route entry now also stores if the route came from an area border
      To simplify the determination of the nexthop if a Vertex is added that
      The routing computation now processes:
      The test program puts some LSAs in a LSA database and forces the
      When computing inter-area routes only consider Summary-LSAs,
      The routing computation now processes:
      Routes are now being sent all the way to the RIB.
      Correct error message.
      The adding of the destination node was inadvertently removed in a
      Don't print the router ID with every LSA that is printed from the link
      Debugging to track this routers Network-LSA generation, updating and
      Start the hello timer on entering the "Waiting" state.
      Byte ordering issue with the interface address. Plus add some extra
      Change the formatting of LSA printing, should make them easier to compare.
      If a route command fails temporarily call XLOG_ERROR not XLOG_FATAL.
      If the node being added to the SPT is adjacent to the origin the
      Compilation fix for the Linux compilers.
      The find_neighbour() now takes a Router ID parameter as opposed to the
      Support for adding and deleting neighbours, required for all linktypes
      Support for adding and deleting neighbours.
      Clarify comment.
      Clarify comment.
      Allow the adding of neighbours using XRLs.
      When bringing up an interface set running to true as the first
      Enable the testing of PointToPoint links.
      Only on BROADCAST interfaces should we just create neighbours.
      Only join multicast groups for BROADCAST interfaces.
      Support for configuring a PointToPoint neighbour.
      Show the OSPFv2 routes.
      Move the list of LSA and packet decoders into separate functions. The
      Allow the received frame to be larger than the length specified in the OSPF
      Enable multicast on BROADCAST and PointToPoint linktypes.
      The specification recommends that IP packets are not fragmented. The
      Subtract the router alert for IPv6 packets.
      Compilation was failing on systems that don't have <netinet/ip6.h>. If
      Put in some static_asserts to verify the size of IP headers.
      Now that the tinderbox seems to be running okay re-enable test17. This
      If a route add/delete command can not be queued for sending to the RIB
      The FEA is no longer sending OSPF its own multicast packets, so
      Deal correctly with connection collisions.
      Read a MRTD routeview / table dump and send it via a test peer. The
      If a peering is taken down administratively it looks as if the peering
      Remove unused valiables, found by the 29 compiler.
      Initialize the timer variables, this was causing a problem in the second FSM
      For OSPFv2 stub networks can be announced with no neighbours.
      The routing table can now hold a route from each participating
      When adding a route to the routing table pass in the originating area.
      Fix a typo in a comment.
      Move the adding, replacing and deleting of routes to the RIB into
      Add a str() method to the RouteEntry.
      Hooks for Summary-LSA generation.
      Remove spurious blank line.
      Add the RouteEntry to the add and replace route methods, required for
      When a route is added or deleted from the RIB send the route to the peer
      The still connected assert was being triggered in the AcceptSession
      XRL support for adding/deleting/changing area ranges, plus requesting LSAs.
      Add the ability to configure of area ranges. Plus fix a typo in a help
      Allow the toggling of the advertise state.
      Some state related to stub areas; should summaries be introduced into
      The RouteEntry now has methods to access it fields allows some sanity
      The original RouteEntry is provided even when withdrawing a summary to
      The summary_candidate method now selects routes that are candidate for
      Fix typo in comment.
      Stubs for accepting summary information into an area.
      Remove the template file for the old OSPF.
      Store the summary route information and only forward to the areas if
      Propagate route information to the area if the router is an area
      An area can now request all routes that are candidates for
      If an area is removed then all it routes need to be withdrawn and all
      If the routing table is empty don't try and access its contents.
      When an area is being shutdown it now notifies the routing table which
      When withdrawing a summary don't bother to check if the router is
      Add support for longest match lookup in the routing table required by
      A method backbone() that returns true if this area is the backbone.
      Build Summary-LSAs.
      The routing table can handle receiving routes from multiple
      Allow a route entry to be marked as a discard route.
      Allow the configuring of area ranges and compute discard routes if appropriate.
      Remove the function summary_address_range() which was a placeholder
      Print a warning when an attempt is made to install a discard route.
      Summary_announce now takes a push flag so that an ordinary announce
      Look up area ranges via the peer manager.
      Summary-LSAs for all path type can now be constructed. Use a common
      Assert that the area field in the RouteEntry and the area that
      Set the originating area in the route entry.
      Announce and withdraw Summary-LSAs.
      Minor refactoring to split Point2Multipoint from Virtual Link and
      Support for printing LSAs.
      Enable database command for OSPFv2.
      Add the Makefile for the OSPF tools directory.
      Add the Makefile for the OSPF tools directory.
      Too high was being set incorrectly as a consquence only the first LSA
      The routes are now stored in a pseudo routing table allowing the
      Verify that the correct routes have been sent to the pseudo routing table.
      All multiple neighbours to be configured on Point-to-MultiPoint
      When a Point-to-MultiPoint interface comes up change the state to
      On Point-to-MultiPoint interface send a hello packet to each
      Build the links that go into a Router-LSA for Point-to-MultiPoint
      Allow a interface to be set to Point-2-Multipoint.
      Refactor the initialisation of links that are included in Router-LSAs.
      When creating a p2p link pass in the value of the link data rather
      The first update to the routing table was working subsequent updates
      When adding an LSA to the database if the empty slot to be used was
      Add a regression test for this bug.
      When returning a LSA that has been requested via an XRL update the age
      Only update the age of the LSA when if it isn't already set to MaxAge.
      Every LSA now provides its own name.
      Provide a brief view for LSAs.
      Provide brief and detailed outputs.
      Pass back a flag signifying if an LSA is self originated.
      Dereference self.
      When requested to update the age and sequence number fields nothing
      The code to delete a peer has never been fully implemented. Deleting a
      Accept policy XRLs.
      Move the defines MAX_AGE_IN_DATABASE and PARANOIA into ospf.hh from
      No longer define MAX_AGE_IN_DATABASE.
      Support for AS-External-LSAs from other areas or as part of
      Typo.
      Don't accept AS-External-LSAs into stub and nssa areas.
      Entry points for generating and propogating AS-External-LSAs.
      On startup request that any AS-External-LSAs that have arrived from
      Send all AS-External-LSAs that are received from the wire upto the
      Class for handling AS-External-LSAs.
      Class for handling AS-External-LSAs.
      AS-External-LSAs are now stored in a separate database for
      Include an instance of a policy filter.
      Hook up the XRLs to the policy filters.
      Redistributed routes will now make it all the way to the peer manager.
      Pass the policy tags all the way through to the external class that
      Generate AS-External-LSAs for redistributing.
      Previously the router could never be an AS boundary router as it could
      Only set a LSA to MaxAge if its not already at MaxAge.
      When removing a summary LSA the LSA that was constructed for the
      The debugging message no longer prints unset (output) parameters.
      Policy variable manipulation.
      A method to access the policy filter.
      Read some of the variables from an AS-External-LSA.
      A method to filter AS-External-LSAs inserted into the outbound path.
      Add a comment about the memory management of an
      Add debugging for redistributed routes.
      Hooks for import and exporting policy, only exporting is currently
      Don't consider it to be a fatal error for a send to fail.
      When flooding LSAs if the LSA originally came from the DR or BDR on
      If a potential route has the nexthop falling inside the network being
      The name returned by an AS-External-LSA has been changed from
      Send the OSPFv2 targetname "ospfv2" to the policy manager not the
      Second attempt.
      The area router class should not attempt to age AS-External-LSAs they will
      The method "refresh_router_lsa" is now externally visable allowing
      A new method "refresh_router_lsas" that causes a new Router-LSA to be
      1) When the first route is redistributed cause the generation of a new
      When an LSA arrives on an interface and it matches an older LSA in the
      When the router becomes or stops being an area border router force the
      Initialise all the member variables of ASExternalLSA.
      Previously the policy variable took a LSA it now takes component
      Support for writing policy variables.
      Add a filtered flag to the routing table entry.
      Entry point for import filters.
      Tell the policy manager about all the policy variables.
      Set the external routing tag and bit E so any modification made by
      Put in the hooks to get the list of configured areas.
      Allow the retrieval of the list of areas by XRL.
      1) If an area is not supplied then fetch the list of areas and print
      Add more database commands specifically support for filtering on LSA
      Return the name of an LSA given a type ID.
      Move the XRL target name into the header file so it can be shared by
      Support for printing a summary and OSPFv3 support.
      Summary commands for LSA databases.
      Add allow-range statement for priority, hello-interval,
      The SPT library was unconditionally printing out warning messages if a
      If a notify is received in response to an open then it highly likely
      Allow the BGP ID or the routers AS number to be changed.
      The XRL hooks for changing peer variables.
      The XRL hooks for changing peer variables.
      Allow peer variables to be set/changed.
      Comment out setting of MD5 variables as the backing code doesn't
      Removing a setting that makes no sense.
      Refactor to make it simpler to add printers.
      Delete all the dead code.
      Helper class to read and write TLV records.
      Update the documentation strings.
      Add tlv.hh.
      TLV defines to use to save LSAs to a file.
      Initial support for saving the LSA database to a file.
      A Router-LSA for the router itself always exists unconditionally in
      Put the operating system name in the database file.
      fclose() returns 0 on success, the code was expecting anything but 0
      LSAs can now be saved in a file.
      Put the version of OSPF into the saved database file.
      Read a saved LSA database and feed it into the routing computation.
      Add a method all() that allows all the trace variables to set to the
      New method to verify that the Router-LSA that is referenced in the
      When the router was the designated router and a neighbouring router on
      An InternalRouteEntry can store a route for each area typically it
      An InternalRouteEntry can store a route for each area typically it
      Add the mapping to the policy manager of the OSPFv2 name "ospf4" to
      Add the XRLs to toggle all the trace variables. Allow the trace
      Comment out the installing of the ospf protocol to targetname
      Pass policy tags all the way through the systems for an
      Pass the policy tags into the do_filtering() method.
      Add a method to detach a peer that doesn't free the memory for the
      Move the initialising of all the stats counters from the constructor
      When a request is made to delete a peer it cannot be deleted
      With this compiler:
      If a notify message is received during session setup previously the
      If an open message is received with bad parameters such as an
      The recommended default value for the holdtime is 90 not 120 seconds.
      Don't allow the local port or peer port to be changed the protocol
      Allow the peer specific data in a peering to be changed with new
      Add some extra debugging to print out the peers BGP ID.
      Allow peer specific state to be modified.
      test12 was incorrectly waiting for both peerings to be established at
      Each BGP peer now has a unique internal ID that can be used for sorting by
      Enable test10, test11 and test12.
      A regression test, test12 that demonstrates the bug #296
      Comment out DEBUG_LOGGING and DEBUG_PRINT_FUNCTION_NAME to allow;
      Add trace points for input and export policies.
      The list of neighbours and individual neighbour info is now available
      Put guards around the defines DEBUG_LOGGING and
      Move the routine that returns the XRL target name into the common
      Slight refactoring of the method that returns the neighbour
      Operational command to print OSPF neighbour information.
      Catch any exceptions thrown by malformed address strings.
      Add the neighbour command.
      Slight formatting nit.
      Propogate back any errors returned from the peer when extracting the
      Store the creation time as well as full adjacency time for the
      When replacing a route pass in the area that the original route came
      Initialise the variables that the optimiser is complaining about.
      Remove an unused variable.
      Make the sending to router alerts in packets conditional and change
      No longer save the router alert state in the main class, store it in
      Allow the setting of the router alert option via
      Set the default for the router alert option to false both in the
      Replace route is current implemented by calling delete then add
      When in state ExStart, the slave was ignoring LSA headers in Data
      Set the n-bit in the options field of packets in NSSA areas.
      Verify that the N-bit recieved from neighbours matches the peers own
      Defines for the P-bit which is the same option bit as the N-bit but is
      Add the NSSA translation bit to the Router-LSA.
      Type-7 LSA inherit from an AS-External-LSA.
      Allow the area types to be set.
      The incorrect value was being set for the Nt bit.
      Track how many of each type of area exists. Required for deciding if
      Translator role type for NSSAs, defaults to candidate.
      Fix typo in comment.
      Slight refactoring an AS-External-LSA in no longer created before the
      Add a virtual method donew() to the ASExternalLSA class that the
      Reordering to reduce the chance of leaking memory in the future.
      Support the generation of Type-7-LSAs are required for NSSAs. Use the
      In the base Lsa class external() is no longer pure virtual, it returns
      If a Type-7-LSA has the propogate bit set and the router is a border
      When refreshing a Type-7-LSA update the sequence number and age
      Only accept:
      Simple test to verify that the internal routing table entry when faced
      Add test_routing_table.cc.
      The internal routing table entry was not correctly handing the same
      In order to support NSSAs the original LSA that contributed to a route
      Consider Type-7-LSAs when updating the routing table.
      Deal with summaries from other areas into a nssa area the same way
      Reconfiguring areas.
      Store the raw data associated with packet for possible later use for
      Start of authentication routines.
      Add a new method to ASExternalLsa that allows the forwarding address
      Don't translate Type-7-LSAs to AS-External-LSAs if the forwarding
      The MD5 authentication method adds a 16 byte trailer to the
      If when redistributing from another protocol into a NSSA the
      Add constants in the Packet class that provide the offsets and sizes
      Fix to allow this file to compile with the optimiser.
      The type OspfTypes::RouterID was originally IPv4 it was later changed
      Don't allow authentication to be set in OSPFv3.
      Allow authentication to be configured via XRLs.
      Save the authentication method and password. When a new neighbour is
      Simple password authentication.
      Allow authentication to be configured.
      Add consts for the various kinds of authentication.
      Add consts for the checksum offset.
      If cryptographic authentication is being used then the checksum is not
      Add MD5 support.
      If there is simple password mismatch print the passwords.
      When a hello packet arrived from a new neighbour new authentication
      Documentation update for authentication.
      If the state transition to ExStart is normal then send a data
      1) When adding the LSA headers to a data description packet there is
      Slight refactoring of the database exchange. The packet holding all
      Initial virtual link support.
      Store the virtual link endpoint information in the area structure for
      Allow a virtual link to be configured.
      Allow a peer to be created of type virtual link.
      Create a peering if the routing computation finds the virtual link
      Make the policy tags a reference so that changes to the policy tags
      Temporarily back out last change.
      The SPT calculation returns the nexthop to each node that can be
      Helper method to form an IPNet<IPv4> from the components in an LSA.
      Search for virtual link endpoints during the routing computation make
      A modified policy tag in the import code should now be propagated
      If a packet arrives on an interface and its area for area 0.0.0.0 but
      A route is a candidate for summarisation into other areas if it is of
      A route is a candidate for summarisation into other areas if it is of
      Some debugging statements and a correction to the return value from
      Define the interface name of a virtual link.
      When an interface is a virtual link return fake prefix length and mtu.
      Provide the mapping from virtual links to physical interfaces. Also
      Virtual link support.
      Packets transmitted by the peers are now re-directed through here so
      Add a trace variable for virtual links.
      When a peer is deleted notify the peer first then the area
      When deleting an interface the template variables were being sent. Adding
      Methods the return the stored PeerIDs.
      When the configuration for a virtual link is removed notify the area
      If a virtual link is added or removed force a routing recomputation.
      Invalidate the PeerID even though we are about to delete it. It is
      On a virtual link the hello packet is supposed to have its mask field
      A virtual link is configured in area 0.0.0.0 but refers to a transit
      Use the peer's router ID for the vif name. Should make it easier to
      Accept packets on peers that have been configured as virtual links.
      Feed packets that are virtual link candidates into the virtual links.
      Missing newline in a debug_msg.
      Add route_table_aggregation.cc may have been causing compilation
      When sending a data description packet on a virtual link set the MTU
      Stop the sending of AS-External-LSAs on virtual links.
      Remove the unconditional enabling of debugging.
      Add some additional debugging.
      NOOP.
      If a virtual link endpoint goes away record this fact so the peer
      Move the code around so that all the configuration methods are
      Move the code around so that all the configuration methods are
      Backout accidental commit.
      When putting a Router-LSA into the routing table extract its interface
      OSFP requires host routes in its internal routing table but it should
      Given a destination Router-LSA and a source Router-LSA or Network-LSA
      When deleting a route that was previously filtered don't return an error.
      Correction when printing a type 2 router link the link ID field is
      Add a new trace variable _find_interface_address.
      When looking for the interface address consider two Router-LSAs that
      The list of neighbours carried in a Network-LSA is a list of Router
      The bidirectional test for router link to Network-LSA was
      Additional debugging.
      OSPF no longer sends host routes through to the RIB, therefore host
      Remove extra newlines from debugging messages.
      The OSPF routing table contains routers, routes to these routers
      Enable test r2 (routing2) also correct the contents of the Network-LSA
      When storing a routing table entry store it indexed by advertising
      printf -> debug_msg.
      When storing the routes indexed by advertising router only consider
      Store the LSA along with the route.
      No longer consider multiple Router-LSAs originated by the same router
      New trace point for routes being sent to the RIB.
      When generating a Network-LSA introduce the routers own router ID, not
      Add comment to routes trace variable.
      When exporting routes from other protocols make the metric in the
      The show commands now support type-7-LSAs (NSSA).
      Test function submitted by Hasso Tepper to demonstrate that routes
      Don't print a warning message if the XRL subsystem doesn't accept an
      Add a copy constructor and an assignment operator to the internal
      When a new route becomes the winning route but it has the same cost
      Tests added while looking for the missing copy constructor in the
      Minor refactoring.
      Method to set the source/interface address of the peer, required for
      Method to get the source and destination addresses back.
      The peer structure for virtual links always exists now making it
      Allow hello-interval, router-dead-interval, transit-delay (renamed
      Have input error tracing enabled by default.
      Allow route reflectors and confederations to be configured. It was
      Correct a typo in a comment.
      Add methods to extract the originator ID and the cluster ID.
      Store the route reflection status and the CLUSTER_ID.
      For a peer to be considered a route reflector client the router must
      Add a contains() method to the CLUSTER_LIST attribute.
      An input and output filter for route reflection processing.
      Plumb in the route reflection filters if route reflection is enabled.
      Set the CLUSTER_ID and route reflection status.
      Allow the setting of the CLUSTER_ID and route reflection status.
      Add newlines to the debugging messages.
      Comment out teh assert the checks for update packets going from IBGP
      Don't pass the bool argument as a reference as the caller is negating
      Store the ORIGINATOR_ID and CLUSTER_LIST attributes as IPv4 not
      Add the ORIGINATOR_ID and CLUSTER_LIST attributes to the update packet
      Store the CLUSTER_LIST in the order that it arrived on the wire, not
      The path attributes ORIGINATOR_ID and CLUSTER_LIST can now be set in
      Testing route reflection.
      Add route reflection test.
      Route reflector commands.
      In route reflection and confederations make the disable variable false
      Implement Optional Session Attributes: AllowAutomaticStart,
      Add a delay to allow the IDLE holdtime transition.
      When transitioning to the idle state the default is now automatic
      Allow the delay open time to be configured.
      Support for delayed open. Rename hook_idle_hold_timer ->
      Allow the delay open time to be configured.
      Set the holdtime to zero to suppress the sending of keepalives.
      Add a delay between making a connection attempt and testing the state
      Route Flap Damping.
      Route Flap Damping.
      Route Flap Damping.
      Add a way to send corrupt packets for the regression tests.
      Cast for the second argument to pow() to satisfy gcc33.
      When the length field of a keepalive message is incorrect the subcode
      Check that the 16 byte authentication marker at the beginning of every
      Tests with keepalive messages to force the generation of message
      Send a message with a zero message type (test37) and verify that a
      Adding test37 "Illicit a Message Header Error Bad Message Type." to
      When decoding an aspath don't call assert if there is an inconsistent
      Add casts to print the length fields.
      Comment out the asserts in add route and delete route that check that
      When sending a notification message log an info message.
      When printing a notification packet print the numeric value of the
      It is no longer a fatal error to receive a notification message when
      If a TCP connection comes on while the FSM is in state connect then
      If the length field of a message has an illegal value then as well as
      Apply jitter to the connect retry and keepalive timers. Can be enabled
      In the second state machine return the bad meesage length if it is
      Typo in format string update -> open.
      If an open packet is too short return the bad length data in the
      Provide a default argument for the error subcode of a notification
      Clarify the jitter comment.
      If check_open_packet found an error that required sending data back in
      If check_open_packet() is presented with an unsupported version number
      Check that the BGP identifier field is a valid unicast IP host
      If in an update message the total attribute length is to large the the
      If the origin path attribute has the wrong flags send the TLV back in
      A keepalive message should not be sent more frequently than once a
      If the length of an update packet is less than its minimum packet
      Slightly change the error message when an update message has a short
      Previously BGP never returned a notification message in response to
      An receipt of a message with a bad type as well as returning bad
      Modify test10, this test was introduced because a peering from a router
      Cast a size_t to an unsigned int for printing.
      Move of the notification message error codes and subcodes into a
      Remove all the local definitions of the notification error codes and
      Second attempt to fix test10.
      Fix a typo in a comment.
      When catching an exception pass a reference.
      Add all the subcodes for update message errors.
      The harness records all update messages that it sends in an outgoing
      If there is any data associated with a notification packet print it.
      New method in the base class that returns the total length of the path
      Add brackets so the computation of the total length of the path
      All previous tests by chance had path attributes of length four,
      Check the path attribute flags for path attributes of type code 1-7
      If the length field of a path attribute is incorrect set the error
      If the length field of a path attribute is incorrect set the error
      When a message parsing routine discovers an error it throws an
      If the length of a path attribute is incorrect return the bad data in
      If the origin type in a path attribute is illegal as well as returning
      If the nexthop is not a valid unicast address return the bad data.
      If a NLRI is syntactically incorrect set the error code to update
      Tidy up the printing of an Unrecognized Well-known Attribute.
      If an unknown path attribute is marked at well known set the error
      Add a trace point for the introduction of new policies.
      Update the list of RFCs for BGP-4 and OSPFv2.
      At the point that a policy filter is reset add a trace point.
      Trace messages being sent by BGP.
      Add a peerdata() method in the second FSM so the config data can be
      Add the ability to trace FSM changes.
      Add a trace point for FSM changes.
      If BGP isn't configured to accept a connection attempt from a peer
      Set the verbose level of info and warning messages to low but allow
      Allow the configuration of traceoptions.
      If a connection attempt is rejected because the IDLE holdtimer is
      The peer variable local-ip which is a mandatory variable of type txt
      If the TCP connection fails restart the connect retry timer don't make
      Print community path attributes in hex not decimal.
      Initialize member variables to keep gcc 4.0.2 with optimiser happy.
      Previously BGP would never advertise the capability AFI/SAFI
      Remove AS_CONFED_SEQUENCE and AS_CONFED_SET from AS_PATH when sending
      When acting as a route reflector if there is no ORIGINATOR_ID use the
      Return an Update error, Malformed AS_PATH if an AS_PATH with
      Reject MP_REACH_NLRI and MP_UNREACH_NLRI with AFI IPv4 and SAFI
      Take a copy of the variable arguments so they can be used multiple
      Backout the previous change as va_copy is not available in gcc 2.95.
      Use va_copy conditionally.
      An AS_PATH is made up of segments either AS_SEQUENCE or AS_SET.
      Don't allow a holdtime of 1 or 2 second to be set.
      Fix a typo in a comment.
      Remove the reference to test_buffered_asyncio.
      The router manager after starting a process will send it configuration
      Replace the class Subsystem with ServiceBase.
      If DEBUG_LOGGING is defined decode the packet that is about to be
      The master in the database exchange no longer transmits a Database
      No functional change, the order of declaration of the timers matches
      setting RxmtInterval.
      The retransmit-interval (RxmtInterval) can now be configured.
      When a route is added to the internal routing table it becomes a
      Directly connected routing table entries are now explicitly marked as
      Send directly connected routes and routes where the nexthop is in the
      If the forwarding address of an AS-External-LSA is non zero search the
      Test code to demonstrate problem with non zero forwarding addresses in
      When processing AS-External-LSAs one forwarding address has been
      When searching for the common interface when comparing two Router-LSAs
      Don't accept directly connected routes as candidates for
      Test routing7 that demonstrates a problem with non-locally generated
      If the neighbour state machine transitions to Down typically due to an
      The default RxmtInterval was accidentally set to 1 not 5 seconds.
      If the Router ID is changed flush out all Network-LSAs.
      The retransmit function can deschedule itself by returning false, when
      When the router ID is being changed and an interface is the DR
      If a NeighborChange event is received when the interface is not
      If the Network-LSA is not found in the database only print a warning.
      It might be appropriate to leave MaxAge LSAs on the retransmission
      If the router receives a self-originated LSA that is newer than its
      Place the disable toggle last so all the interface/vif/address state will be
      When building the list of router links if in state Backup or DR_other
      Make the argument to print bool a const.
      Add a debug_msg that prints all the variables that are used to
      On receipt of an LSA it is necessary to know if the LSA came from the
      The method premature_aging now sets the LSA to MaxAge previously the
      All the machinery to handle the sequence number in a self-originated
      When flooding a self-originated LSA that has reached MaxSequenceNumber
      When flooding a self-originated LSA that has reached MaxSequenceNumber
      When flooding a self-originated LSA that has reached MaxSequenceNumber
      The methods that are handling MaxSequenceNumber processing don't need
      All incrementing of sequence numbers is managed by routines that take
      Allow an interface to be configured as loopback with the passive keyword.
      Don't summarize AS-External-LSAs over virtual adjacencies.
      A data description packet sent on a virtual link is supposed to have
      Allow the retransmit-interval to be configured on a virtual link.
      Remove spurious ';'.
      The string "vlink" is used internally as an interface name for virtual
      Set the V bit in the Router-LSA if Virtual link (type 4) router links
      Backout previous bogus change.
      The V bit in a Router-LSA should only be set if a virtual link in the
      The V bit in a Router-LSA should be set if any virtual link in the
      A much more stringent test for identifying a neighbour as a virtual
      There was an assumption that Peer<A>::virtual_link_endpoint() would
      When selecting candidates for summarisation don't reject directly
      When considering Summary-LSAs as candidates for introduction into
      When printing the metric field of an AS-External-LSA print the value
      Set the metric in the AS-External-LSA test packet to LSInfinity.
      The routines to manipulate 24 bit quantities in packets were
      Fix a typo in a comment.
      The str() method for a routing entry now prints all the fields.
      When computing inter area routes add the contributing LSA to the
      When computing inter-area routers mark Type 4 Summary LSAs as AS
      When computing inter-area routers for Type 4 Summary LSAs store the
      Fix typo in comment.
      Allow a Type 4 LSA to be indexed by advertising router.
      Clarify the comments for components of a routing table entry.
      Clarify the comments for components of a routing table entry.
      Routing table entries to routers are stored indexed by the router ID of
      Transit areas must not have summaries from the backbone area.
      Get the correct area ID for the backbone.
      When sending out a new Router-LSA due to a router link or a
      When a route is deleted the associated Summary-LSAs that are sent to
      If a route is a discard route print this information.
      When making a summarisation routing entry add the area and originating
      When making a summarisation routing entry if the route is directly
      When a route falls within an area range advertise the summary not the
      The warning message was printing the wrong value.
      Add some debugging and put in an assert to detect a nexthop of zero.
      A directly connected route is a candidate for summarisation.
      Comment out warning when searching for virtual link endpoints, all
      Incomplete test when testing for a Type 4 Summary-LSA.
      When responding to a self originated LSA if the LSA is in the database
      Route entries with a nexthop of zero are only accepted if the
      Backout previous change send data description packets immediately on
      Add tracing when retransmitting.
      MaxAge LSAs are not stored in the database they are only stored on the
      When adding an LSA to the retranmission queue a check is made to see
      In the trace message that is printed when retransmitting an LSA, print
      MaxAge LSAs are not stored in the database, when a newer version of a
      If when generating summaries, the summary is already in the database
      show ospf4 is now equivalent to show ospf4 neighbour.
      Revert the last bogus change.
      If the router generates a new Router-LSA or Network-LSA then the
      Replace printf's with fprintf(stderr to get get around the buffered
      Add a hook to track interface/vif/address changes.
      Don't consider it a fatal error if leaving a multicast group fails,
      In order for an OSPF interface to be brought up the
      Do not attempt to leave a multicast group if the address that is being
      Routes provided by the policy framework (typically redistribution) or
      When a process starts up it can signal to the router manager that it
      When originating a route the nexthop that accompanies the route is no
      Fix a typo in a comment.
      AS-External-LSAs with the same base network now use the RFC2328
      Remove appendixe() which was a placeholder for setting the host bits
      Clarify a comment.
      Clarify the documentation string for unique_find_lsa and make it clear
      Summary-LSAs with the same base network now have the host bits of
      When searching for Summary-LSAs with the same base networks the wrong
      When creating a vertex from a stub router link set the host bits in
      When an area is removed invalidate all the LSAs that belong to the
      A summary-LSA with a default route was not making it to the routing
      When processing Router-LSAs and Network-LSAs check that a route is not
      If when creating a peer the interface can't be found destroy the peer
      If a command of the form:
      When generating the string that describes an LSA if it is not valid add
      The AS-External-LSAs are stored in set with a specialised comparator
      Enable the interface manager, allows BGP to get interface information.
      Argument to set_hello_interval larger than 2^16.
      Reset a string with foo = "" instead of foo.clear(), because gcc-2.9x
      Mark the completed entries as done.
      BGP requires that update messages sent to I-BGP peers should have the
      When sending an update message to a confederation peer remove the
      The ability to modify the next-hop value through policy had been
      Track the state of the interface addresses in BGP if the state of an
      Backout the previous change, it is legal to send a local pref to a
      If an update message contains a NEXT_HOP that belongs to this router
      Replace class Subsystem with class ServiceBase.
      When the link state database changes schedule a computation in 1
      Allow the type of an area to be changed.
      The previous change although correct was committed by accident so
      If a delete arrives at the nexthop lookup table and an add or replace
      The very first time that entries are added to the routing table if an

bms (135):
      Add additional checks for the ac*.m4 files in the config sub-
      Fix a really, really lame bug whereby the return value of strcmp()
      Bring in the new configure.in from the Windows branch.
      Regen
      Bring in the libcomm updates from the windows branch.
      Regen.
      Style (comments)
      Introduce a new libcomm API function, comm_sock_is_connected(),
      Add explicit include file sentinel for <sys/cdefs.h> to
      Diff minimization with XORP/Win32.
      Diff reduction with Windows branch:
      Eliminate dependency on strsep(), which does not exist in the Microsoft
      Use include guards. Put config.h at top.
      Diff reduction: Bring in the fixes for the Auto-makefiles which allow
      Regen.
      Diff reduction: Use kill -0 in lieu of ps -p as it's a more portable idiom,
      Diff reduction with XORP/Win32: bring in include file guards.
      Diff reduction:
      Diff reduction: Add include file guards.
      Include <sys/time.h> where needed to fix build.
      Remove a reference to <libxorp/xorpfd.hh> which crept in during the merge.
      Remove references to xorpfd.hh which crept in during the merge.
      Hack the meaning of HAVE_GETOPT_H to mean 'need getopt.h', and add
      Add the missing test_run_command.sh wrapper.
      Diff reduction: Add new files to libxorp from XORP/Win32, but do not connect
      Fix a typo in the include file sentinel name.
      Diff reduction: Add header file guards.
      Diff reduction: Merge more header file guards from XORP/Win32.
      Windows doesn't have alarm(), so don't use it there.
      LIBXIPC: Diff reduction with XORP/Win32; header file guards.
      LIBXIPC: Diff reduction with XORP/Win32.
      LIBXIPC: Diff reduction with XORP/Win32.
      LIBXIPC: Diff reduction with XORP/Win32.
      Diff reduction: source was exported from earlier perforce
      LIBFEACLIENT: Diff reduction with XORP/Win32.
      RIP: Diff reduction with XORP/Win32.
      STATIC_ROUTES: Diff reduction with XORP/Win32.
      Import runit from XORP/Win32.
      LIBXORP: Diff reduction with XORP/Win32.
      Only test_xrl_sockets4_udp.sh should actually be invoked
      Limited regen.
      Resolve runit sleep(1) path issue.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32. Windows specific changes only.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32.
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Diff reduction with XORP/Win32:
      Resolve policy regression test coredump; explicitly
      Workaround the unused variable warning for interval with a void cast
      On Linux, hardcode the HAVE_IPV4_MULTICAST_ROUTING define to 1, as
      Regen the configure script after the acipv4.m4 update.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge back to mainline.
      XORP/Win32 merge to mainline.
      XORP/Win32 merge to mainline.
      XORP/Win32 merge to mainline.
      XORP/Win32 merge to mainline.
      XORP/Win32 merge to mainline.
      XORP/Win32 merge to mainline.
      Resolve issue where IP-based XRL client transports would bind to
      Only disable xorpsh authentication if NO_XORPSH_AUTHENTICATION
      In comm_sock_is_connected(), use read(s,0,0) to check if a socket is
      In SocketClient::connect(), use comm_sock_is_connected() immediately
      On FreeBSD 4.x, we can't check for immediate loopback connection, as
      bgp/socket.cc:
      Put back a const_cast to fix compilation under Win32
      Fix compilation under Windows.
      Use memset() instead of importable bzero()
      Fix compilation on Win32; use definition of struct ip shipped
      Guerrilla fixes for Win32 compilation.
      Set default behaviour under Win32 to use the 'known good', but
      Fix botched merge from patch(1)
      Explicitly handle IOT_DISCONNECT events on Win32; required for
      Use a native Win32 path to MSYS /bin/sh.
      Add information to BUILD_NOTES about building and using
      TimerList::system_sleep() accepts a TimeVal containing the
      This is the third rewrite of the Win32 native I/O dispatcher.
      Fix compilation under Win32: conditional #include <getopt.h>
      Remove -lpdcurses -ltermcap from the Win32 link line as they
      Allow the base directory for the MinGW/MSYS installation to be set
      Header file fixes for new Win32 toolchain.
      Fix a grievous bug whereby we would potentially block forever in
      Pass correct arguments to GetComputerNameExA().
      Since we stopped using 'sh -c' to execute all external commands,
      Teach comm_sock_pair() to support AF_INET6 on Windows systems.
      Add a regression test for non-blocking connect(), but do not
      Add missing #include <map>.
      Windows support mega-patch.
      Windows path needs to see win_strerror() definition from
      Windows path does not currently use restart_module().
      Add detailed instructions for individuals wishing to build
      Add the toolchain patches required for building XORP
      Fix a typo. Verified with 'gmake check'.
      Fix a typo in the interface code which is used for retrieving routes
      Impose an XRL input buffer size limit of 64KiB on what is
      Deprecate the network4/network6 {} directive for
      Force routes redistributed into BGP via the XRL
      Update the IPv6 version of test28 to expect IGP in ORIGIN
      Check in the XORP Installer for Windows.
      Fix a typo in the code which exports BGP internal routing
      Delete the documentation sections regarding the
      Remove reference to network4{}/network6{}
      Reject non-hex characters in ether_ntoa() (apart from the ':'

jcardona (3):
      Bugzilla URL:	135
      libstc++ no longer needs to be explicitely linked.
      Modified test script to find libraries under libtool .libs directory.

kohler (1):
      cleaning up my directories, i found this

mjh (47):
      Fix bad link to CSS stylesheet
      As discussed in the meeting on Monday, add XORP_FINDER_CLIENT_PORT
      Add template file command to support ordering of config nodes of the
      Fix bad idraw postscript (was crashing ghostscript 7)
      Fix broken postscript
      Update rtrmgr documentation to include %order command.
      Fix bug number 136, and add improved error reporting when the user
      Improve error checking in initialization of IPNet.  Previously
      Fix bug in RibOut/PeerHandler code, where we assumed all routes being
      First stage of support for operators other than ":" in config files.
      remove debugging
      Add support for retrieving the config operator from a node via a
      Change to parser to allow node numbers to be expressed.  Node numbers
      Add most of the framework for node numbering.  Rtrmgr and xorpsh can
      replace atoll with strtoll
      Fix longstanding bug in parser that freed memory twice.
      Better solution: don't use C strings.
      Partially revert previous changes, and fix the real problem.  Also fix
      Add template file support for extracting the node number of a
      g++ 3.3 doesn't like "static inline"
      Change rtrmgr<->xorpsh interface to support rtrmgr allocating a client ID.
      Properly allocate node IDs.  Communicate clientid from rtrmgr to
      Add files to hold functions for converting from and to config operators.
      Regenerate
      Add config_operators to test targets.
      Fix buggy template xrl cleaning code.  As far as I can tell, the
      Connect up the %allow-operator command.  If the allow operator command
      Regenerate yacc output on a FreeBSD 4.x system.
      Transplant much better string scanner from boot.ll to template.ll
      Regenerate
      Don't ask for operators on tags when comparing nodes.  This fixes the
      Allow all config operators on all types of terminal node.  The choice
      Complete re-write of the code to expand variables in Xrls.  Previously
      Explicitly xrl encode the xrl args before creating an XrlAtom.  For
      Possible fix to bgp crash23.
      Tighten up the checks on BGP open messages.
      Add the capability to the static filter to maintain old versions of
      Reload the static filter banks every time a peering comes up.  This will allow us to change settings on a peering.
      A start at the code needed to support 4-byte AS numbers.  Not tested
      Remove support for the BGP Authentication Information parameter.  We never really supported it (just aborted if we received it), and it's deprecated in the latest spec.  We couldn't support it if we wanted to, as it's not properly specified in the original RFC.
      Add static filters for well known communities: NO_EXPORT, NO_ADVERTISE.
      Jumbo commit to integrate Tim Griffin's changes for BGP Confederations
      Add test for NO_EXPORT community
      Add test of static filter versioning.  This revealed that the previous
      Remove versioning in outgoing static filter table - this isn't needed
      Test to illustrate critical BGP bug.  Will cause tinderbox failure with a Seg fault in bgp/isolation_tests.
      correct reference output

pavlin (901):
      Regenerate.
      Redefine the bin installation directory.
      Fix the handling of the --with-snmp configure flag.
      Append "mibs" to the installation prefix, because we are using
      Reverse-back the previous commit that changes the pathname
      Redefine the lib and pkglib installation directories
      Add a note that OpenBSD-3.6 and earlier don't have PIM kernel support
      * Add a new task 0350 to send email to xorp-mirrors to tell all mirror
      * Add task 2725 to verify all the links on the XORP web site by
      * Add an URL to the NetBSD's URL for requesting changes to the net/xorp
      Use file "libxorp/callback_nodebug.hh" instead of "libxorp/callback.hh"
      KeepAliveTimer(S,G) -> KeepaliveTimer(S,G)
      * Add PIM spec related TODO items.
      Gen ID -> GenID
      SPT bit -> SPTbit
      JoinPending -> Join-Pending
      Remove an explicit referencing to a section number in the PIM-SM I-D,
      * Fix the return type of PimMre::rp_addr_string()
      Bug fixes:
      Bug fix: if there is an XRL error, don't attempt to access
      Add a placeholder for the release notes for the next 1.2 release.
      Update the inherited_olist(S,G) implementation according to the
      Update the pim_exclude(S,G) implementation according to the
      Add a TODO entry.
      Fix some of the comments when it comes to calculating
      Add a TODO entry.
      "Keepalive timer" -> "Keepalive Timer" to reflect the terminology
      "keepalive timer" -> "Keepalive Timer" to reflect the terminology
      * Add a spec-related TODO entry
      Update the implementation of the following procedure
      Update the implementation for Update_SPTbit(S,G,iif) according to
      Remove a TODO entry that has been completed in the past.
      * Add a spec-related TODO entry
      "state-machine" -> "state machine" (for consistency with the language
      * Add a mechanism to conditionally place all removed Mrib entries
      Bug fix:
      Update the state dependency graph to include the new
      Add a note about the new PimMrt::add_task_delete_mrib_entries()
      * Rename methods, variables and corresponding XRLs
      "DR priority option" -> "DR_Priority option" to reflect the
      Reverse the previous commit, because it was done by accident.
      Add a release note for PIM-SM
      * Rename PimVif::vif_propagation_delay() and vif_override_interval()
      "Register-Stop timer" -> "Register-Stop Timer" to reflect the
      Add few notes.
      * Add a TODO entry
      * Update the comments with the sample pseudo code taken from the PIM
      Update the handling of PIM Register packets according to the
      Add a TODO entry.
      Add a note about suppression of PruneEcho messages.
      Add a TODO entry.
      "Expiry timer" -> "Expiry Timer"
      Add two new TODO items.
      Minor grammatical nits in comments.
      Rename (for consistency with the newest -11 I-D terminology):
      Fix the implementation of
      Rename (for consistency with the newest -11 I-D terminology):
      Modify the "-N" help string: add a note that -N doesn't start the
      Remove the following TODO entry, because it should be a guideline
      Rename (for consistency with the newest -11 I-D terminology):
      Update the implementation of the (S,G) Assert state machine
      Update the implementation of the (*,G) Assert state machine
      * Simplify some of the comments that describe when the (*,G) assert
      Update the implementation according to the lastest -11 I-D spec:
      Add several TODO entries.
      Update the PMBR spec sections references to point to
      * Update the sanity check for conflicting Join/Prune entries to match
      Cleanup some of the error messages.
      Rename (for consistency with the newest -11 I-D terminology):
      Cleanup one of the XRL error messages.
      Rename (for consistency with the newest -11 I-D terminology):
      Fix the comment with the t_override specification according to
      Update the mechanism for setting the KAT(S,G) according to the
      Add TODO entries.
      Add the lastest PIM-SM spec: version -11 of the Internet Draft.
      Remove old copies of the PIM-SM Bidir spec, because currently we
      Remove an old copy of the PIM-DM spec, because currently we
      Remove the old "State Refresh in PIM-DM" I-D, because
      The PIM-SM spec entry updated to the lastest -11 I-D document.
      * Updated the reference to the PIM-SM core spec to the -11 I-D
      Updated the reference to the PIM-SM core spec to the -11 I-D
      Add a TODO entry.
      Add a release note for PIM-SM: the implementation is updated
      Nits: "sizeof(IPvX)" -> "sizeof(my_addr)"
      Get rid of a gcc-ism for declaring arrays using a variable for the size.
      * Remove a duplicated TODO entry re. the processing of J/P messages
      Remove TODO entries that are already done.
      Add the vif name as an argument to the send_test_jp_entry XRL
      Rename PimNode::pim_nbr_find(const IPvX& nbr_addr) to
      * Remove TODO entries that are already done
      Fix the constructor definition as a template:
      Add virtual destrictors for the following abstract base classes:
      Explicitly cast NULL to "const char *" as the last argument
      Add missing "template <>" in front of template methods
      Fix the constructor definition of a template:
      Move UNUSED(foo) statements before the last "return" statement
      Modify a kdoc comment.
      Add virtual destrictors for the following abstract base classes:
      Fix compilation errors for gcc-4.1 on FreeBSD-4.10 :
      Fix a comment to match the lastest -11 I-D spec.
      Remove TODO entries that are either obsolete or duplicate.
      Temporary comment-out the ~FinderMessengerManager() virtual destructor
      Move "== 0" added by the previous commit to the right place.
      Remove extra empty lines.
      Add a new script.
      Add several files/scripts to the EXTRA_DIST list.
      Execute utils/rcsid2ident.sh for each auto-generated yacc file.
      Re-generate the yacc autogenerated files. Now the new files
      * Remove TODO entries that are already done:
      Rename XRL argument in the add_test_jp_entry[4,6] XRLs:
      Rename variables:
      Rename:
      Rename:
      Rename:
      * Remove a TODO entry that is done.
      Add an errata entry for PIM-SM and point-to-point links.
      Minor rewording in the PIM-SM p2p entry.
      Reclasify two TODO entries that are already implemented and
      Remove TODO entries that are already done.
      Remove a TODO entry for optimizing the behavior when a large number
      * Reword a spec-related TODO entry
      Remove TODO entries that are already done.
      * Add a new method PimMre::my_assert_metric_wc() to compute
      Remove TODO entries that don't apply anymore.
      Remove a TODO entry that is already done, and add a related new
      Remove TODO entries that are already done.
      Fix an AssertCancel-related issue that is in the PIM-SM spec:
      Add comments about extra cleanup that is not in the spec.
      Bug fix:
      Add spec-related TODO entries.
      Move all "_comm_set_serrno()" calls to the beginning of the code
      Add-back the bug fix that was applied in rev. 1.12 but was lost later.
      * Fix the return value of comm_sock_open from int to xsock_t
      Add XLOG_TRACE() messages when we add/delete MFC or bandwidth
      Add missing XORP_UINT_CAST() and XORP_INT_CAST().
      Add missing XORP_UINT_CAST() and XORP_INT_CAST().
      Add missing XORP_INT_CAST()
      Remove a note that is not valid anymore.
      * Add XLOG_TRACE() messages when we add or delete dataflow monitors
      * Use the new PimMfc::update_mfc() method to update the PimMfc entry
      * Modify PimMre::is_monitoring_switch_to_spt_desired_sg()
      Update the PimMrt::receive_data() implementation:
      * Add a new "int *in_progress" argument to the following "high-level"
      Remove obsolete comments.
      * Modify PimMfc::update_mfc() to calculate the set of outgoing
      Add a "-P <name>" command line option to print debug state by name.
      Bug fix:
      Bug fix:
      Remove experimental code that sets the Bootstrap Timer to a randomized
      Add a TODO entry.
      Bug fix: if we attempt to add the same RP to the RP-Set, but
      Fix a bug when we check whether the socket is non-blocking
      * Combine the following XRLs
      * Add sample "cand-bsr-by-vif-addr" and "cand-rp-by-vif-addr"
      * Add description for the new cand-bsr-by-vif-name and cand-rp-by-vif-name
      Add a release note for the new "cand-bsr-by-vif-addr: <IPv4 | IPv6>"
      Reorder the actions when the network interface status changes:
      Reorder the actions when the network interface status changes:
      If a vif is configured as a Cand-BSR or a Cand-RP (by only specifying
      Add explicit check for PIM Register vif when we are sending or receiving
      Add explicit check for PIM Register vif, and don't send any
      Add new configuration statement hello-period that can be used to
      Add the new "hello-period" statement to the sample config file.
      Document the new "hello-period" statement in the PIM-SM configuration.
      Add the new "hello-period" configuration statement to the release notes.
      Add new "hello-triggered-delay" PIM configuration option and
      Refactor the implementation of method PimNode::send_test_jp_entry()
      Modify an OpenBSD-related note.
      * Remove the mibs/libtool-c++-linker.patch because it patches the
      Bug fix: don't update the PimMfc entry if the data packet
      If a PIM configured interface is gracefully shutdown, then don't call
      * When (re)computing the incoming interface and the outgoing interfaces
      Replace the single _test_jp_header (that is used for sending Join/Prune
      * Add a new input event state to the event tracking machinery:
      Add few more release notes for PIM-SM
      Remove "static TimerNode _dummy_timer_node", because it is not needed
      Add "version" statement per vif that can be used to configure
      Document the new "version" IGMP/MLD configuration statement.
      * Add new XRLs to get/set/reset the "IP Router Alert option check" flag
      * Add RFC2113 to the list of references.
      Document the new "enable-ip-router-alert-option-check" configuration
      Remove a TODO entry that is done.
      Edit the text that describes the "enable-ip-router-alert-option-check"
      * Add new XRLs to get/set/reset MLD/IGMP related parameters (per vif):
      Document the following new MLD/IGMP configuration options:
      Formatting nits.
      * Update the local copy of the random(3) implementation by using the
      Use the domain-wide address on an interface as the primary address
      Add the following info to the configuration documentation:
      Set the querier's address using the appropriate method instead
      * Refactor the implementation of Mld6igmpVif::update_primary_address()
      Update the mechanism for updating the interfaces info so now it
      Refactor the implementation of PimVif::update_primary_and_domain_wide_address()
      Update the mechanism for updating the interface addresses, so now
      * Add support to set the finder server address from the
      Conditionally add the user-specified flags that must be after
      Regenerate.
      Add a release note for the new "CFLAGS_END" and "CXXFLAGS_END"
      Add compilation notes for the following environmental variables:
      Consider the environmental variables XORP_FINDER_SERVER_ADDRESS and
      * Don't "#include <sys/cdefs.h>", because it is not needed
      Add extra brackets inside the body of macro LONG_ROUNDUP_SIZEOF()
      Fix the implementation of SET_OFFSET() and RESET_OFFSET() macros
      Fix the implementation of PORT_TIMER_GET_HANDLER() and
      Fix the implementation of a number of ADD_FOO() macros by wrapping
      Update config.guess and config.sub to the lastest versions from
      Add MFEA-related TODO entry.
      Add implementation-related TODO entry.
      Add a new method strip_empty_spaces() that strips the heading
      * Fix a bug in ConfigTreeNode::set_variable() so now it searches
      Refactor the implementation of strip_quotes_and_empty_space()
      * Modify the child_handler() SIGCHLD signal handler so it
      Implement a second mechanism for running a command inside the
      * Rename function find_exec_path_name() to
      Remove the OpCommandList::find_executable_filename() method,
      When executing a "program" command, expand the program name to
      * Add new section 2.3 Template Tree Command Actions and describe inside
      Add XLOG_UNREACHABLE() at the end of do_c_format() function to pacify
      Compilation bug fix: the last argument to getpeername()
      Replace:
      Compilation fix: replace ~0 with ~0U when initializing uint32_t values.
      Compilation fix: replace ~0 with ~0U when initializing uint32_t value.
      Compilation fix: replace ~0 with ~0U when initializing uint32_t values.
      Compilation fix: replace ~0 with ~0U when initializing uint32_t values.
      Compilation fix: replace ~0 with ~0U when initializing uint32_t values.
      Compilation fix. Replace:
      Add XLOG_UNREACHABLE() at the end of a method that contains the following
      Compilation fix: replace ~0 with ~0U when initializing values.
      Compilation fix: cast the last NULL argument of execlp() to "char *".
      Introduce a new constant RIP_MAX_COST (equal to 0xffff) and use it
      Nit: replace multiple empty spaces with tabs.
      Replace XLOG_INFO(string(foo).c_str()) with
      Modify an XLOG_ERROR() message to print the size of the packet
      Fix ConfigTreeNode::expand_expression() and
      Increase the lock configuration period from 30 to 60 seconds,
      Print the size of a WHOLEPKT upcall packet received from the kernel.
      Fix the MfeaNode::add_pim_register_vif() implementation, so now all
      Modify the RunCommand semantics so now if the executed command has
      Add support to the boot and template parsers so now they can
      Fix a bug that was introduced with the previous commit.
      Apply fixes to  ConfigTreeNode::find_varname_node()
      Propagate the node type when parsing the configuration,
      Modify TemplateTree::find_node_by_type() to relax a bit the
      Move the "import" and "export" nodes out of the block with the
      Select a better temporary file name by considering the TMPDIR
      Regenerate the autogenerated files on FreeBSD-4.10, because the
      Move the temporary definitions of xsock_t, XORP_BAD_SOCKET and
      The maximum storage for a path name should be MAXPATHLEN instead of
      * Add new utility function "xorp_make_temporary_file()" that can
      Add test_utils to the list of files to ignore.
      Use the xorp_make_temporary_file() function to create a
      Add missing set_operator(OP_ASSIGN) for new leaf nodes that were
      Editorial nits.
      If XrlAction::check_xrl_is_valid() fails, then print the module
      Fix TemplateTreeNode::find_parent_varname_node() so it searches
      * Add new methods XrlAction::related_module() and
      Bug fix when adding a segment to a configuration node whose
      Temporary comment-out some of the XRLs (until the new policy.tp
      * Add support to the rtrmgr to run external programs when loading or
      Replace printf() with debug_msg()
      * Change the return type for xorp_make_temporary_file() to return
      Add PIM-SM spec related TODO entry.
      Refactor the mechanism for removing the temporary configuration file
      Set inside MasterConfigTree::delete_entire_config() the _commit_cb
      Get rid of the _tmp_fp FILE* pointer inside ClickConfigGenerator,
      Fix the alphabetical ordering of some of the *.hh and *.cc files.
      Re-generate to remove a bogus TODO file
      Remove old TODO leftover comment.
      Replace C-style comment with C++ style comment.
      * Cleanup: replace "if(" with "if (", etc.
      Improve the declaration of "operator=" by returning "Foo&"
      Add new class RunCommand::ExecId that can be used to set the
      * Add support for setting the execution ID (user ID and group ID)
      Comment-out the debug_msg() controls, because they shouldn't be
      Improve the declaration of "operator=" by returning "Foo&"
      Nits.
      Fix the ~DummyFinder() destructor so now it deletes properly
      Minor edits.
      * Add support for post-processing the template tree after all
      Update a parse error message inside AllowOperatorsCommand::add_action()
      printf() -> debug_msg()
      Update ProgramAction::check_program_is_valid() to use mode_stack
      Add new method MasterTemplateTree::load_template_tree()
      * Fix the lex rule for parsing C-style quoted newlines.
      Include <typeinfo> header file to fix a compilation problem
      Update the sample code from the "static_routes_module.h" file.
      * Fix some of the names in the #ifndef ... #define ... #endif
      * Fix the logic inside XrlAction::expand_vars() for expanding variables
      Modify the ordering for sending various info by the rtrmgr to
      Add mechnanism to test the OpCommandList instance whether it is
      Fix the xorpsh so now it can be run in non-interactive mode.
      Move the XrlXorpshInterface field member inside the XorpShell class
      Replace XLOG_WARNING messages inside is_pseudo_error() with debug_msg().
      * Add a flag to enable XLOG_TRACE() output
      * Replace method CliClient::is_tty() with is_input_tty() and
      Remove the definition and usage of PIM_HELLO_ADDRESS_LIST_PRIVATE_OPTION
      Use XORP_UINT_CAST() to fix a compilation error on MacOS X 10.4
      * Modify the return error message inside valid_addr_port() to
      If the command failed, then exit with exit code of 1.
      Fix the ProgramFoo destructors to cleanup the RunCommand instance
      Update the OpInstance implementation so now it uses the
      Fix the comment for the traceroute command.
      Fix the mechanism for tracking the number of existing OpCommand
      Add new class CliCommandMatch and use it to pass information around
      Added a section that describes running xorpsh in non-interactive mode.
      Added release notes for xorpsh and CLI.
      Added a new method CliClient::done() that returns true when the
      Added a new method RouterCLI::done() and use it during shutdown
      If we are deleting a subtree, then mark the whole subtree so
      Add description of the new semantics of the %delete command.
      Added new method TemplateTreeNode::is_module_root_node()
      Modify some of the logic that considers whether a module is active.
      * Changed the operational mode "show" command so now it doesn't show
      Added release notes for xorpsh.
      * Update the documentation to reflect the fact that now the "show"
      Bug fix:
      * Remove "set-parameter" node because it is not needed anymore
      Replace %set with %create inside nodes "accept" and "reject",
      * Fix some of the names of the leaf nodes, because there was a mismatch
      * Fix some of the names of the leaf nodes, because there was a mismatch
      Replace %set command with %create command inside the
      Remove empty %set commands inside the multi-value "load @" and
      Add extra explanation for the %set template command.
      * Add new method TemplateTreeNode::is_leaf()
      Add explicit check for the %set command.
      Fix a NULL pointer problem in some of the default_str() methods.
      Split the XorpShell into two classes: abstract base class
      Modify the configuration parser to accept literals that are strings
      Added an example that describes the %delete method's new semantics.
      Change the invalid prefix length messages to use IPv4::addr_bitlen()
      * Fix TemplateTreeNode::check_variable_name() so now it checks
      Modify an error message to print a slightly better info.
      * Add an extra "include_leaf_value_nodes" argument to method
      Remove old code that has been "#if 0" for long time.
      Modify the "show" command output: in configuration mode
      Add a release note for xorpsh re. the modified configurational mode
      Document modification to the configuration mode "show" command output:
      * Reorder some of the methods (e.g., all the operators for IPNet operand
      * Use string::size_type instead of "int" as the type of the index
      Remove INTRANGE_TYPE, because it looks like an leftover that is not
      Regenerate.
      Reverse-back the previous modification of some of the comparison
      Add new methods:
      If we try to re-create a node that was previously deleted
      Print an error if we attempt inside xorpsh to create a node
      Add a new argument "bool show_top" to ConfigTree::show_subtree()
      Refactor the mechanism for processing the input data.
      Add flag "ignore_current_character" that is passed as a reference
      Rebuild the whole command tree after we load new configuration.
      If we set the value of an existing node by using the "create" command,
      Add missing dummy implementations of
      If we "exit discard" the xorpsh configurational mode, then
      Fix some of the logic inside ConfigTreeNode::check_config_tree()
      If we use a command "show foo" in configurational mode, but
      Add a comment inside method RouterCLI::show_func()
      * Add new method RouterCLI::makepath() that takes a vector of
      Add initial support for wildcard commands.
      Add support for setting the wildcard flag for commands like
      Remove commented-out code.
      Fix some of the logic for assembling the command_global_name
      * Reset the _cli_client_ptr inside method RouterCLI::logout_func()
      Added a new function has_empty_space() to test whether a C++
      * Move the existing code for quoting a text value to
      Fix a kdoc comment.
      * Add an extra "is_multilevel_command" argument/flag to the various
      * Remove "--with-path-to-net-snmpd-src=DIR" argument to mibs/configure.in
      * Add "--with-path-to-snmpd" argument
      * Add some missing command-line arguments (copied from the
      Add ospf/Makefile to the list of generated files.
      Re-generate
      Added "ospf" to the list of built directories.
      Regenerate.
      Set NETSNMPCFLAGS to the value of `${DIR}/net-snmp-config --cflags`
      Modify a comment.
      Regenerate.
      Remove duplicated listing of test_xrl_sockets4_udp.sh
      * Change methods set_cli_process_callback() and set_cli_interrupt_callback()
      * Modify method OpCommandList::top_level_commands() to return a map
      If the configuration has been changed by some other user, then
      * Reduce a line of replicated code
      * Remove duplicated #include "config.h"
      Add few comments.
      Add include file guard for "config.h"
      Minor edits.
      * Use the new XorpFd class to deal with file descriptors
      * Use the new XorpFd class to deal with file descriptors
      Add -DNETSNMP_NO_INLINE to the list of the compiler flags to disable
      Fix tab completion after specifying the value of a multi-value node.
      Compilation fix for MacOS X.
      Fix constructor usage in a template.
      Bug fix in calculating the deleted part of the configuration tree
      * Add new rtrmgr XRL set_config_directory that can be used to set
      Fix a typo ("emplate" -> "template") in commented-out code.
      Added a new method TemplateTreeNode::encoded_typestr() that
      Modify TemplateTree::find_node() so it allows to search a template
      Refactor the mechanism for matching the multi-values configurational
      The prefix-length address attribute is now mandatory.
      Recompute internally the broadcast address if it was omitted from
      Fix a spelling in comment.
      Add extra checks that the "path" argument to "is_absolute_path()"
      Use the new is_absolute_path() function as appropriate to test whether
      Editorial nitlets: spacing and comments.
      * Back-sync the last modifications that were done by hand in
      * Back-sync the last modifications that were done by hand in
      * Back-sync the last modifications that were done by hand in
      * Generalize the semantic of the %mandatory keyword so not it lists
      Update the documentation to reflect the fact that now %mandatory
      Add a note that %mandatory cannot be used to refer a multi-value node.
      Add a release node for the rtrmgr (the generalized syntax of %mandatory).
      Replace "(void)foo" with "UNUSED(foo)" as a guard for potentially
      Use PATH_DELIMITER_STRING instead of a hard-coded "/".
      Add missing #include "libxorp/utils.hh"
      * Fix the test whether the system supports IPv4 multicast routing so
      Replace "(void)v" with "UNUSED(v)"
      Reorder the files alphabetically.
      Add Linux-specific hacks because of Linux's broken header files.
      Remove local (fixed) copies of <linux/mroute.h> and friends, because
      Modified the definition of class XorpShell to publically derive from
      Add a new class CommitStatus for storing information regarding
      Add-back (for consistency) an empty comment line that was removed
      * Reverse-back the previous commit to config/acipv6.m4, because it
      Guard the whole file with #ifdef HOST_OS_WINDOWS ... #endif
      * Replace "(void)foo" with "UNUSED(foo)" as a guard against
      * Initialize uninitialized variable
      Editorial mods: "i/o" -> "I/O", etc.
      Change-back the verbose level to XLOG_VERBOSE_LOW to match the
      Editorial nits: add extra spaces, etc.
      Remove a TODO entry because it is not valid anymore since the
      Update vif index type where it has been left unchanged since the type
      Replace "%p" with "%s" inside debug_msg() when it comes to print
      * Replace the type of a variable used to point into a string:
      If the socket cannot be set as non-blocking inside the
      If there is an error, then include comm_get_last_error_str()
      * Replace XORP_INT_CAST() with XORP_UINT_CAST() casting for
      Reset a string with foo = "" instead of foo.clear(), because gcc-2.9x
      Replace XORP_INT_CAST() with XORP_UINT_CAST(), and use "%u" instead
      * Change the return type of PimVif::pim_nbrs_number() to be size_t
      * Replace XORP_INT_CAST() with XORP_UINT_CAST()
      Fix a typo:
      * Replace XORP_INT_CAST() with XORP_UINT_CAST()
      Change format for printing (S,G) entries:
      Remove duplicated declarations of variable "string error_msg".
      Add methods IfMgrIfTree::is_directly_connected() to test whether
      Add an extra comment to the is_directly_connected() methods that
      Remove method Fib2mribNode::is_directly_connected() and use
      Remove method StaticRoutesNode::is_directly_connected() and use
      Bug fix that has been introduced with the previous commit:
      Place all UNUSED() before the return(), because gcc-4.x doesn't like
      Fix a potential compilation problem in case of Windows if it
      Pass the IfMgrIfTree argument to the PortManagerBase constructor
      * Add "const IfMgrIfTree& iftree" as a second argument to
      Restore a comment that has been deleted by the previous commit.
      * Replace XORP_INT_CAST() with XORP_UINT_CAST()
      * Add an XLOG_TRACE()
      Remove #define DEBUG_LOGGING
      Update a comment.
      * Fix some of the flag checkings (e.g., checking for end_of_file,
      * Use "%s" instead of "%p" as the conversion specifiers to print
      Reverse-back the previous "fix" to ProtoComm::close_proto_socket(),
      Regenerate.
      Increase the max. template nesting depth from 22 to 25 because of
      * Move return() statement after all UNUSED() statements to pacify
      Bug fix: the return value of comm_sock_bind() should be int
      Fix a typo: "io" -> "I/O"
      Use "%s" instead of "%p" as the conversion specifiers to print
      Test the return value of comm_sock_bind() against XORP_ERROR
      Update the .cvsignore list to use the template list of files
      Pass by reference the iftree argument to the SpoofPortManager constructor.
      Declare a static IfMgrIfTree ift_dummy instance and use it
      Add missing empty space.
      Remove an extra empty space.
      * Add SEL_NONE = 0x0 to the list of possible values for SelectorMask.
      Use an intermediate (void *) cast when casting (sockaddr *) to
      Add a missing return statement.
      Refactor the implementation of the FEA raw socket support:
      Conditionally define IPv6 Router Alert related constants that
      Add UNUSED() guards.
      Regenerate
      Plug-in the raw socket FEA interface to OSPF so now OSPF
      Link OSPF with the libfeaclient libraries.
      Plug-in the libfeaclient support, so now XrlIO class contains a local
      * Add "operator==" for class JoinedMulticastGroup.
      Add test_common.hh to the list of source files used by some of the
      Bug fix when adding an address.
      When setting the MAC address, if the interface is UP, then
      Enable ConfigTreeNode::set_variable() to work for NODE_VALUE nodes
      * Refactor the mechanism for updating the configuration: now the
      * Apply the patch from Bugzilla entry #178 :
      * Add a mechanism for registering a callback for tracking the
      Add missing usec second argument to the TimeVal constructor.
      Add a private "TimeVal(int i)" constructor that is not implemented.
      Change a number of find_foo() methods from private to public, so they
      * Add "enable_multicast_loopback" boolean flag to the register_receiver
      Set the new enable_multicast_loopback XRL flag to false to disable
      Add a comment why we need to enable the multicast loopback.
      Correct the documentation that now the "stdout" and "stderr"
      Add-back the raw sockets Windows support that was removed when
      * Implement a new class ConfigNodeId that can be used for manipulation
      Fix identation.
      Add extra new line before printing the configuration when
      Comment-out text after #endif
      * Add a new OpCommandList() constructor that doesn't read immediately
      * Refactor the implementation of class ConfigNodeId:
      * Include "libxorp/xlog.h" header file by each of the *.yy files.
      Add constant ConfigNodeId::ZERO() and the corresponding test for it.
      Refactor the mechanism for assigning and using the node ID
      Include file "policy_module.h" and regenerate.
      * Update the policy code so now it uses the new format of the
      Replace XLOG_FOO(my_string.c_str()) with
      Use a slightly better error message if there is an interface/vif/address
      If the commit transaction fails for interface configuration changes,
      Bug fix: if we interrupt (Ctrl-C) the output of a command, then
      Fix a spelling: occurence -> occurrence
      Add new sections to Chapter 1 Command Structure:
      * A second attempt to fix the "operator<" for
      Fix a bug when deleting some unresolved RIB routes could take too
      Add support for adding policy terms or nodes that are received
      * Change the rules for parsing a string by taking the implementation
      Print a better error message if there is an error.
      Reset errno before a system call or explicitly check that the system
      Add --disable-compiler-pipe as a ./configure option so the compiler's
      * Add support for read-only configuration/template nodes.
      * Add a subsection that describes the new %read-only command.
      Add a release note for the new %read-only rtrmgr template command.
      Add a top-level %help string for ospf4
      * Change the semantic for %read-only so it applies only for leaf
      Comment-out code that was uncommented by accident by the previous
      * Change the description for the %read-only template command to
      Mention the new %permanent template command in the release nodes.
      Add extra info for permanent nodes.
      Change the static routes' metric range from 0--65535 to 1--65535
      Redirect the ping's stderr to stdout, in case some implementations
      * Move the implementation of split() and xorp_basename() from
      * Modify the popen2() implementation so now it executes directly the
      * Remove a test command that was committed by accident by the previous
      If the binary for an operational command specified in an *.cmds
      Add ping6 and traceroute6 operational commands.
      Add .cvsignore that lists the files ignored by CVS.
      Add ospfv2.cmds to the Makefile
      Remove leftover test state.
      Bug fix in the intialization of RunShellCommand.
      * Refactor the implementation of TestRunCommand to include support
      Add a new flag "preserve_node_id" to ConfigNodeId::merge_deltas()
      Add missing %help strings.
      Add new method ConfigTreeNode::is_multi_value_node()
      * Add "%option never-interactive" to all *.l and *.ll files so we
      Fix the mechanism for calculating the deltas between configurations.
      Introduce a new flag "is_verification" and propagate it around
      Add new class IfTree::prepare_replacement_state() that can be used
      Restore the original config on shutdown (disabled by default).
      Add the missing "is_verification" flag-argument to start_module()
      Add configuration support to enable the flag to restore
      Replace fprintf(stderr, ...) leftover with debug_msg()
      Replace restore_original_config_on_shutdown with
      * Add restore-original-config-on-shutdown to the sample configuration
      Add documentation description for restore-original-config-on-shutdown
      Move the position of flag restore-original-config-on-shutdown.
      * If we try to remove an entity and it is not in the tree anymore, then
      If an interface is marked as disabled or deleted, then mark all
      * Bug fix in the ordering of the second and third argument of fwrite()
      Fix the error check after strtoul().
      Add missing virtual destructor to base class NoHorizonValidator
      * Don't use a NULL pointer as a second argument for fstat().
      Add Linux Fedora Core4 to the list of platforms that XORP can be
      * Fix the format of the printed message when there are other
      Add Mac OS X 10.4.2 to the list of systems that can be used to run XORP.
      * Add gcc-4.0.1 to the list of compilers that are OK with Fedora Core4
      Improve a bit the text of an error message.
      Remove commented-out include file.
      Bug fix in expanding the "$0" positional argument (i.e., all arguments)
      Add the following files to the list of files that ospfv2_base.{hh,cc}
      Fix the mechanism for restoring the previous interface configuration
      Add checks for header files <linux/sockios.h> and <net/if_media.h>
      Add initial support for reading the interface link status
      Remove bogus "static" keyword.
      Add test_routing to .cvsignore
      Check for the existence of the following headers:
      * Add inside class IfConfig a pointer to the current configuration
      Add new method +IfTree::track_live_config_state() that can
      If the live config state as read from the kernel is modified
      Add an ERRATA entry for the FEA that the link status monitoring
      Minor text editing.
      Clarify the Windows status for tracking the network link media.
      Bug fix in the ordering of some of the arguments of fwrite().
      * Don't explicitly disable the vif inside the iftree with the
      Add missing initializations inside the IfMgrIfAtom and IfMgrVIfAtom
      * Change slightly the semantics of IfTree::align_with().
      Bug fix: print interface-related information even if there are no vifs
      * Fix a bug with resetting the local interface tree in case
      Add a note about FreeBSD-5.4, that XORP compiles on it and the
      Set stdout and stderr of the child process to unbuffered.
      Refactor the implementation of RunCommandBase::append_data()
      Fix the formatting of the printed error message if the execution of
      Add new function is_quotable_string() and use it instead of
      Move the implementation of strip_empty_spaces() and has_empty_space()
      If we try to print the help for an unrecognized command, then
      Refactor the mechanism for generating the error messages if there is
      Print a better formatted error message if an operation command fails.
      Bug fix in SelectorList::Node::is_empty()
      * Add new method ConfigTreeNode::expand_variable_to_full_varname()
      Add a comment about the min and max MTU.
      Add %allow-range for the interface mtu (as defined in RFC 791
      Check the value of a variable whether it is valid when it is set
      Add a new file that will contain a list of routing references.
      Add two more books by Jeff Doyle.
      Apply pointers-casting fixes for Sparc64.
      Replace C-style pointer casting "(struct foo *)" with the C++ style:
      Don't show the default values for new configuration nodes that are
      * Explicitly check that there is no more than one value per leaf node.
      Add missing nodes with the appropriate help messages for the "show route"
      * Add "-b" flag to the "show_routes" command to print the routes
      * Check for the existence of header file <sys/utsname.h>
      * Add protocol_origin field to the following XRLs:
      Add a check for uname(3) library function.
      Add "brief" version for all "show route table" commands.
      Move the marking of a route as unresolved to RtmUtils::rtm_get_to_fte_cfg()
      Refactor some #ifdef code because gcc-2.95.x doesn't like it.
      Regenerate after changes to some of the XRLs.
      Fix some of the methods to consider the case when the address family
      * Reorder the assignment of some of the fields related to the status
      Fix a bug in the mechanism for sending FIB updates from the top
      Fix a comment.
      Fix the test for IPv6 multicast routing to conditionally include
      Conditionally include <linux/mroute6.h> in the test for
      Fix a typo in the path to the Click config generator: "/user" -> "/usr"
      Add an explicit check that the multi-value nodes are excluded
      * Add support for terse output of the routes (shown by the -t command
      Add entries for "detail" and "terse" versions of each command.
      Fix a bug with the formatting of the listed command completions
      Add a mechanism to start/stop each pipe command, to verify that each
      Changed the default routes output format from "detail" to "brief"
      Add a new XRL rib/0.1/get_registered_protocols
      Add a release note about RIB.
      Fix the check whether the system supports IPv6 multicast routing
      Remove KAME-related mld_hdr/mld6_hdr related definition, because
      * Add check whether file <linux/mroute6.h> exists
      * Conditionally include header file <linux/mroute6.h>
      Cleanup the MLD-related definitions, and define some of the constant
      Use MLD_MINLEN instead of sizeof(struct mld_hdr) when checking whether
      Add missing size_t casting to MLD_MINSIZE when comparing it against
      * Bug fix when deleting an interface address: delete the address
      Modify the IfMgrIfTree:is_directly_connected() methods to return
      Fix the mechanism for updating the routes when the address of an
      Refactor the mechanism for updating the interface information:
      Remove debug statement that was added by accident in the previous
      Refactor the mechanism for updating the interface information:
      Fix/refactor the mechanism for updating the network interface status:
      Fix a typo inside a debug_msg()
      When setting the MTU of an interface, if the interface is up,
      * Add new method ConfigTreeNode::set_value_without_verification()
      Refactor the mechanism for sending the commands to the remote
      * Cleanup the mechanism for updating the interface information
      Refactor the mechanism for updating the interface information:
      Consider the "no-carrier" link state flag when deciding if an
      Change the default XORP prompt in configurational mode from
      Fix the %delete method specification for the "traceoptions flag all"
      * Modify the default value for the "traceoptions flag all disable" flag
      Use better formatting for the terse output of the routes.
      Automatically assign the vif flags when a new vif is added
      * Rename "response" and "errmsg" to "error_msg" (for consistency
      If we change the running configuration via xorpsh and If the binary
      * Fix a compilation error
      Add missing "enable_interface" configuration statements.
      Bug fix when adding an IGP route: check whether there is an EGP
      Enable each new vif by default.
      When adding a route and matching it against vifs for directly
      Add print_neighbours to the list of CVS ignored files.
      Bug fix: move the check of the message type after we discover the
      Rename AWK_UNIX_PATH to AWK_VIA_SHELL_PATH and use it for both
      Fix a typo.
      Replace abort() with XLOG_FATAL()
      Regenerate after configure.in change:
      Add support to the lex/yacc parser for boolean policy terms.
      Add policy-based support to remove MEDs from the routes advertised by
      * Add new methods AllowOperatorsCommand::allowed_operators() and
      Cleanup the formatting of some of the error messages.
      * Add support for specifying the operator for a leaf node with value
      Change the libcli default config prompt from "XORP> " to "XORP# "
      Refactor the setting of the startup CLI prompt so now it can
      * Change the default operational and configuration mode prompts
      Add test_routing_table to the list of ignored files by CVS.
      Add release notes for the xorpsh prompt modifications.
      * Update the documentation to reflect the fact that now the
      Fix the protocol name to match the remaped name "static" instead
      Bug fix in setting the _e_bit value.
      * Change the protocol policy name from the targetname to ospf4.
      Don't set a default value for med-remove, because it is BGP-specific
      * Add a policy name mapping between "rib" and "connected".
      Fix the logic inside method Term::del_block()
      Fix the policy-related template for OSPF.
      If we try to use <TAB> to complete the creation of a
      Ignore deleted config nodes when searching for a node whose value
      Rename XORP_OPERATIONAL_MODE_PROMPT and XORP_CONFIGURATION_MODE_PROMPT
      Bug fix in resetting the prompt after an error.
      Reverse-back the previous commit, because it is the wrong fix
      Reverse-back the previous commit that attempted to fix bugzilla #211,
      Fix a comment.
      On NetBSD and OpenBSD the definition of 'struct igmpmsg'
      Ignore config nodes from the new tree that are marked as deleted
      Comment-out stuff after "#endif"
      Check for error when sending XRLs when registering/deregistering
      Minor refactoring of class XorpShell (now XorpShell inherits from
      Always test inside xorpsh whether the sending of an XRL succeeds,
      Extend the template grammar to allow more than one "%foo" command
      * Modify the "%allow" syntax so now we can provide help string for
      * Modify the "%allow-range" syntax so now we can provide help string for
      Remove a note about the publication date of a book, because it
      Get rid of deprecated C++ feature:
      Initialize the metric and tag policy variables as ElemU32 instead
      Add missing operator== for ElemBool.
      Add missing == operation to the set of possible operations
      Const-ify the commit_status() method.
      Misc. cleanup
      * Redeclare methods expand_actions() and check_referred_variables()
      * Fix the %allow and %allow-range mechanism:
      Change the semantics for the cross-node %allow-range so when
      Bug fix in creating the error message when a value fails the check
      Replace "\usepackage{psfig}" with "\usepackage{epsfig}", because
      Remove the old 0.21 listing behavior.
      Add new methods allowed_values() and allowed_ranges() to obtain
      Const-ify some of the methods.
      * Add command-line completion and help for "%allow" listed
      Add a flag to each template tree node to indicate whether
      Remove extra #include file.
      Decleare the type of the fifth argument ("len") of inet6_opt_next()
      Use ostringstream instead of the c_format() facility
      Print pid_t as a casted unsigned integer instead of a casted pointer.
      Use size_t arithmetics instead of uint32_t to calculate the hash value.
      Use the setsockopt(IP_PKTINFO) mechanism for obtaining the network
      Fix a compilation error that hasn't been revealed so far because
      Impmement the %allow-range mechanism internally to use int64_t type
      Compilation fixes for gcc-4.0.2 on Fedora Core 4.
      Compilation fix for gcc-4.0.2 on Fedora Core 4.
      * Don't use a reference to a pointer as the second argument to
      Fix the substring assignment.
      Add release notes for rtrmgr and xorpsh.
      Reverse-back the previous commit.
      Fix the callback factory functions targetted at a const member function
      * Add new functions to translate between lines of tokens to
      Pass the command global name around as an array of strings (with
      Propagate the command path, name and arguments as a vector of strings.
      * Introduce a new helper function append_list_to_vector()
      Fix the mechanism for getting a DEFAULT value from a template.
      Bug fix: replace `~$(DEFAULT)` with `~$(@.disable.DEFAULT)`
      Remove the mechanism for specifying the hook for saving a config
      Add a release note for the rtrmgr.
      Initialize uninitialized variables.
      Add notes about the rp-priority and bsr-priority as defined in the
      * Add a flag "is_command_argument" to CliCommand to indicate whether
      Send immediately a Request message whenever a subnet is (re)enabled.
      Minor nits.
      Replace atoi(str) with strtoll(str, (char **)NULL, 10)
      * Add a note describing the logic if there is more than one
      Fix some space formatting.
      "const uint32_t" -> "uint32_t" as the type of the argument for a method,
      Use XLOG_WARNING() instead of XLOG_INFO() if bind() fails.
      Port-back Windows specific modifications from rawsock.cc
      Remove test_connect_CFLAGS, because they shouldn't be needed.
      Reverse-back part of the previous commit that comments-out
      "__LIBXORPWIN_IO_H__" -> "__LIBXORP_WIN_IO_H__"
      * Editorial nits
      Have two distinctive "class XorpFd" implementations: one for
      Editorial nits.
      Add missing instantiations of "template class XrlQueue<IPv4>"
      Move all UNUSED(foo) to the beginning of the method rather than
      Initialize local variables.
      Add a check whether the build environment has va_copy() support.
      Use #ifdef HAVE_VA_COPY instead of #ifdef va_copy
      Bug fix inside TaskManager class constructor declaration:
      Refactor part of the implementation that checks the link status
      Reverse-back the last change because the original configuration is correct.
      Add a check whether header file <linux/ethtool.h> exists.
      Implement ioctl(SIOCETHTOOL)-based mechanism to check the
      Cleanup the XRL returned error messages.
      Remove an extra space when printing the list of users in configuration
      * Save the name of the user in exclusive configuration mode and
      Fix a typo.
      Allow a string value to