2005-09-10 Paul Jakma <paul.jakma@sun.com>

	* Makefile.am: bgpd shouldn't list libgp's sources as its own.
	  Use LDADD.
	* bgp_aspath.h:	
	  (struct assegment) New struct, abstract representation of a
	  list of AS_PATH segments and the contained ASNs.	  
	  (struct aspath) Remove the raw-data related
	  fields, reference the abstract struct assegment instead. 
	  Remove several other computed fields, it's just a
	  headache to maintain them and they're cheap to compute from
	  struct assegment.
	  (aspath_parse) parse a stream, not a pointer to raw data.
	  (aspath_count_{hops,confeds,size}) helpers to access
	  information formerly directly contained in struct aspath.
	  (aspath_snmp_pathseg) Helper for SNMP, BGP MIB wants
	  to be able to output hex representation of raw data.
	* bgp_aspath.c: (general) partial-rewrite. Store aspath data
	  as an abstract singly-linked list of abstract segments,
          rather than storing the raw data, and parsing it each and
	  every time. Remove several count/size fields which are cheap
	  to compute from the abstract segment structure.
	  (global) Include stream.h, needed for aspath_parse, and
	  others. Couple of helper macros added.
	  (struct assegment_header) Just the header, and only the
	  header.
	  (assegment_data_{new,free}) convenience functions for
	  AS_SEG_DATA allocation, the dynamic, per-segment array of
	  ASNs.
	  (assegment_{new,free,free_all,dup,dup_all}) convenience
	  functions for creating struct assegments. The _all forms will
	  follow the entire chain of segments from the given segment.
	  (assegment_prepend_asns) new function, prepend an ASN N times
	  to segment.
 	  (assegment_append_asns) Append a list (array) of ASNs to
	  segment.
	  (int_cmp) convenience function for the aspath hash.
	  (assegment_normalise) new function. Normalise the given
	  segment chain to meet expectations of Quagga, and to
	  eliminate differing raw representations of the same paths.
	  Merge 'runs' of SEQUENCEs into one segment as our internal
	  segment is not limited by the protocol AS_PATH segment
	  length. Sort ASNs in SETs. 
	  (aspath_new) Take void argument to quell warnings. Use the
	  assegment convenience functions.
	  (assegment_count_{asns,confeds,hops}) new functions to
	  compute at runtime values previously held in struct aspath.
	  (aspath_size) ditto.
	  (aspath_make_str_count) rewritten to stringify new
	  representation, and to be slightly easier to understand
	  hopefully.
	  (aspath_str_update) convenience function, update the aspath
	  str. Should investigate removing maintained string from
	  struct aspath, just run-time compute it, as per other fields.
	  It's just a maintenance headache, would save noticeable
	  amount of RAM with possibly not much extra run-time cost.
	  (aspath_dup) use the assegment dup functions.
	  (aspath_hash_alloc) Take void * argument to satisfy gcc. Use
	  the proper helper functions to dup data.
	  (assegments_parse) new function. parse raw AS_PATH data into
	  struct assegments. Normalise and return the head of the list.
	  (aspath_parse) Parse a stream, not pointer to raw data and
	  use assegments_parse to do it.
	  (assegment_data_put) Write out a single segment data in protocol
	  form to stream.
	  (assegment_header_put) ditto but for segment header.
	  (aspath_put) new function. As per previous but for an entire
	  struct aspath.
	  (aspath_snmp_pathseg) wrapper around aspath_put for
	  bgp_snmp.c. Uses a static buffer sadly.
	  (aspath_aggregate_as_set_add) rewritten to use assegments.
	  (aspath_aggregate) ditto
	  (aspath_{firstas,loop,private_as}_check) ditto
	  (aspath_{merge,prepend,add_one_as}) ditto
	  (aspath_cmp_left{_confed}) ditto
	  (aspath_delete_confed_seq) ditto, plus fixed to properly
	  delete all leading confed segments.
	  (aspath_as_add) Just use assegment_append_asns.
	  (aspath_segment_add) updated to use assegments.
	  (enum as_token) Add values for confeds
	  (aspath_gettoken) Add support for confeds
	  (aspath_str2aspath) ditto
	  (aspath_key_make) updated to use as_segments. Also, add
	  segment type into the hash value as appropriate.
	  (aspath_cmp) updated to use as_segments.
	  (aspath_print) don't segfault on NULL argument.
	* bgp_attr.c: (bgp_attr_aspath) aspath_parse wants the stream
	  now. No need for manual forwarding of stream.
	  (bgp_packet_attribute) empty aspath is now denoted by NULL
	  segment field, length is gone.
	  Use aspath_size() to determine size.
	  (bgp_attr_init) Fix declaration, explicitely specify void
	  arg.
	  (bgp_dump_routes_attr) Use aspath_size() to determine size.
	* bgp_route.c: (bgp_info_cmp) use the aspath_count_* functions.
	  (bgp_rib_withdraw) remove unused variable. Use
	  aspath_count_hops.
	* bgp_snmp.c: (bgp4PathAttrTable) raw data is gone, use 
	  aspath_snmp_pathseg to get the representation.

2005-09-10 Paul Jakma <paul.jakma@sun.com>

	* bgp_vty.c: (bgp_vty_init) gcc 4 compile fix. static
	  function declarations shouldn't be inside functions.
	* bgp_dump.c: (bgp_dump_interval_add) ditto.
	
2005-08-26 Hasso Tepper <hasso at quagga.net>

	* bgp_route.c: Third (?) attempt to fix best selection breakage
	  introduced long time ago with route server patch. Hopefully
	  it's last case to fix - route-server client not in peer group.

2005-08-22 Hugo Santos <hsantos@av.it.pt>

	* bgp_vty.c: (general) Add support for BGP IPv6 Multicast SAFI
	  commands and BGP_IPV6M_NODE.
	  
2005-08-22 Paul Jakma <paul.jakma@sun.com>

	* bgp_route.h: (struct bgp_info) add a new flag, BGP_INFO_REMOVED.
	  BGP_INFO_VALID is already overloaded, don't care to do same thing
	  to STALE or HISTORY.
	* bgpd.h: (BGP_INFO_HOLDDOWN) Add INFO_REMOVED to the macro, as a
	  route which should generally be ignored.
	* bgp_route.c: (bgp_info_delete) Just set the REMOVE flag, rather 
	  than doing actual work, so that bgp_process (called directly,
	  or indirectly via the scanner) can catch withdrawn routes.
	  (bgp_info_reap) Actually remove the route, what bgp_info_delete
	  used to do, only for use by bgp_process.
	  (bgp_best_selection) reap any REMOVED routes, other than the old
	  selected route.
	  (bgp_process_rsclient) reap the old-selected route, if appropriate
	  (bgp_process_main) ditto
	  (bgp_rib_withdraw, bgp_rib_remove) make them more consistent with
	  each other. Don't play games with the VALID flag, bgp_process
	  is async now, so it didn't make a difference anyway.
	  Remove the 'force' argument from bgp_rib_withdraw, withdraw+force
	  is equivalent to bgp_rib_remove. Update all its callers.
	  (bgp_update_rsclient) bgp_rib_withdraw and force set is same as
	  bgp_rib_remove.
	  (route_vty_short_status_out) new helper to print the leading
	  route-status string used in many command outputs. Consolidate.
	  (route_vty_out, route_vty_out_tag, damp_route_vty_out, 
	   flap_route_vty_out) use route_vty_short_status_out rather than
	  duplicate.
	  (route_vty_out_detail) print state of REMOVED flag.
	  (BGP_SHOW_SCODE_HEADER) update for Removed flag. 
	  
2005-08-03 Hasso Tepper <hasso at quagga.net>

	* bgp_routemap.c: Revert part of leaking communities fix commited in
	  2005-05-27. While ecommunity fix seems to be correct, community case
	  isn't.

2005-06-28 Paul Jakma <paul.jakma@sun.com>

	* (global) The great bgpd extern and static'ification.
	* bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code
	  (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison
	  warnings.
	* bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these
	  used by various files which had their own private declarations,
	  in the case of mplsvpn - incorrect.

2005-06-15 Paul Jakma <paul.jakma@sun.com>

	* bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its
	  possible to terminate bgpd before workqueues were setup, causing
	  an abort/crash. Reported by Ashish Mehta of Sun.

2005-06-01 Paul Jakma <paul.jakma@sun.com>

	* (general) refcount struct peer and bgp_info, hence allowing us
	  add work_queues for bgp_process.
	* bgp_route.h: (struct bgp_info) Add 'lock' field for refcount.
	  Add bgp_info_{lock,unlock} helper functions.
	  Add bgp_info_{add,delete} helpers, to remove need for
	  users managing locking/freeing of bgp_info and bgp_node's.
	* bgp_table.h: (struct bgp_node) Add a flags field, and
	  BGP_NODE_PROCESS_SCHEDULED to merge redundant processing of
	  nodes.
	* bgp_fsm.h: Make the ON/OFF/ADD/REMOVE macros lock and unlock
	  peer reference as appropriate.
	* bgp_damp.c: Remove its internal prototypes for
	  bgp_info_delete/free. Just use bgp_info_delete.
	* bgpd.h: (struct bgp_master) Add work_queue pointers.
	  (struct peer) Add reference count 'lock'
	  (peer_lock,peer_unlock) New helpers to take/release reference
	  on struct peer.
	* bgp_advertise.c: (general) Add peer and bgp_info refcounting 
	  and balance how references are taken and released.
	  (bgp_advertise_free) release bgp_info reference, if appropriate
	  (bgp_adj_out_free) unlock peer
	  (bgp_advertise_clean) leave the adv references alone, or else
	  call bgp_advertise_free cant unlock them.
	  (bgp_adj_out_set) lock the peer on new adj's, leave the reference
	  alone otherwise. lock the new bgp_info reference.
	  (bgp_adj_in_set) lock the peer reference
	  (bgp_adj_in_remove) and unlock it here
	  (bgp_sync_delete) make hash_free on peer conditional, just in
	  case.
	* bgp_fsm.c: (general) document that the timers depend on
	  bgp_event to release a peer reference.
	  (bgp_fsm_change_status) moved up the file, unchanged.
	  (bgp_stop) Decrement peer lock as many times as cancel_event
	  canceled - shouldnt be needed but just in case.
	  stream_fifo_clean of obuf made conditional, just in case.
	  (bgp_event) always unlock the peer, regardless of return value
	  of bgp_fsm_change_status.
	* bgp_packet.c: (general) change several bgp_stop's to BGP_EVENT's.
	  (bgp_read) Add a mysterious extra peer_unlock for ACCEPT_PEERs
	  along with a comment on it.
	* bgp_route.c: (general) Add refcounting of bgp_info, cleanup
	  some of the resource management around bgp_info. Refcount peer.
	  Add workqueues for bgp_process and clear_table.
	  (bgp_info_new) make static
	  (bgp_info_free) Ditto, and unlock the peer reference.
	  (bgp_info_lock,bgp_info_unlock) new exported functions
	  (bgp_info_add) Add a bgp_info to a bgp_node in correct fashion,
	  taking care of reference counts.
	  (bgp_info_delete) do the opposite of bgp_info_add.
	  (bgp_process_rsclient) Converted into a work_queue work function.
	  (bgp_process_main) ditto.
	  (bgp_processq_del) process work queue item deconstructor
	  (bgp_process_queue_init) process work queue init
	  (bgp_process) call init function if required, set up queue item
	  and add to queue, rather than calling process functions directly.
	  (bgp_rib_remove) let bgp_info_delete manage bgp_info refcounts
	  (bgp_rib_withdraw) ditto
	  (bgp_update_rsclient) let bgp_info_add manage refcounts
	  (bgp_update_main) ditto
	  (bgp_clear_route_node) clear_node_queue work function, does
	  per-node aspects of what bgp_clear_route_table did previously
	  (bgp_clear_node_queue_del) clear_node_queue item delete function
	  (bgp_clear_node_complete) clear_node_queue completion function,
	  it unplugs the process queues, which have to be blocked while
	  clear_node_queue is being processed to prevent a race.
	  (bgp_clear_node_queue_init) init function for clear_node_queue
	  work queues
	  (bgp_clear_route_table) Sets up items onto a workqueue now, rather
	  than clearing each node directly. Plugs both process queues to
	  avoid potential race.
	  (bgp_static_withdraw_rsclient) let bgp_info_{add,delete} manage
	  bgp_info refcounts.
	  (bgp_static_update_rsclient) ditto
	  (bgp_static_update_main) ditto
	  (bgp_static_update_vpnv4) ditto, remove unneeded cast.
	  (bgp_static_withdraw) see bgp_static_withdraw_rsclient
	  (bgp_static_withdraw_vpnv4) ditto
	  (bgp_aggregate_{route,add,delete}) ditto
	  (bgp_redistribute_{add,delete,withdraw}) ditto
	* bgp_vty.c: (peer_rsclient_set_vty) lock rsclient list peer
	  reference
	  (peer_rsclient_unset_vty) ditto, but unlock same reference
	* bgpd.c: (peer_free) handle frees of info to be kept for lifetime
	  of struct peer.
	  (peer_lock,peer_unlock) peer refcount helpers
	  (peer_new) add initial refcounts
	  (peer_create,peer_create_accept) lock peer as appropriate
	  (peer_delete) unlock as appropriate, move out some free's to
	  peer_free.
	  (peer_group_bind,peer_group_unbind) peer refcounting as
	  appropriate.
	  (bgp_create) check CALLOC return value.
	  (bgp_terminate) free workqueues too.
	 
2005-05-28 Hasso Tepper <hasso at quagga.net>

	* bgp_routemap.c: Sync set_metric_addsub_cmd with ripd.

2005-05-27 Hasso Tepper <hasso at quagga.net>

	* bgp_routemap.c: Stop leaking communities.

2005-05-27 Hasso Tepper <hasso at quagga.net>

	* bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groups
	  deleting fix. Avoid leaking bgp->group, bgp->peer and bgp->rsclient
	  lists.

2005-05-26 Hasso Tepper <hasso at quagga.net>

        * bgpd.c: Don't crash while deleting list of peer-groups.

2005-05-25 Hasso Tepper <hasso at quagga.net>

	* bgpd.c: Fix obvious (routeserver patch) merge error. This makes "no
	  neighbor x.x.x.x routemap [export|import] commands work again.

2005-05-23 Paul Jakma <paul@dishone.st>

	* bgp_routemap.c: add semi-colons to VTY_GET_* to match vty.h change
	* bgp_fsm.h: Add extern qualifier to exported functions
	* bgp_nexthop.c: add static to nexthop specific globals
	* *.h: Add guard defines

2005-05-19 Paul Jakma <paul@dishone.st>

	* bgp_fsm.c: (bgp_stop) use sockunion_free, not XFREE..
	* bgp_network.c: (bgp_getsockname) ditto
	  (bgp_accept) use XSTRDUP
	* bgp_routemap.c: (route_match_peer) ditto, als use a ret value and
	  remove one sockunion_free.
	* bgpd.c: (peer_delete) ditto.
	  XFREE the correct memtype, not free.
	  (peer_create) use XSTRDUP
	* bgp_packet.c: (bgp_stream_dup) deleted, stream_dup should be used
	  (various) update -> s/bgp_stream_dup/stream_dup
	  

2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):
	  The 2nd arg to zebra_redistribute_send is now zclient instead of
	  zclient->sock.

2005-04-09 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_vty.c: Make "exit-address-family" work in IPv4 unicast address
	  family node.

2005-04-08 Martin Ling <martin-quagga@earth.li>

	* bgp_aspath.[ch], bgp_route.c, bgp_vty.c, bgpd.[ch]: Allow to enable
	  the length of confederation path segments to be included during the
	  as-path length check in the best path decision.

2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp->ifindex
	  to IFINDEX_INTERNAL.

2005-03-21 Hasso Tepper <hasso at quagga.net>

	* bgp_route.c: Don't crash while clearing route tables if there is
	  no particular afi/safi configured.

2005-02-23 Hasso Tepper <hasso at quagga.net>

	* bgp_route.c: Make reannouncing prefixes with changed attributes
	  work again.

2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_vty.c: Deprecate "neighbor transparent-as" and "neighbor
	  transparent-nexthop" commands.

2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_routemap.c: New route-map command - "match ip route-source".

2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_clist.[ch], bgp_route.c, bgp_routemap.c, bgp_vty.c:
	  community-list cleanup.

2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
	  -> "disable-connected-check".

2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,
	  bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. "bgp
	  graceful-restart" commands added. Show numbers of individual
	  messages in "show ip bgp neighbor" command. Final pieces of graceful
	  restart.

2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_open.c, bgp_packet.c, bgp_vty.c, bgpd.[ch]: Remove "no neighbor
	  capability route-refresh" commands. Route refresh capability is sent
	  anyway now. Preserve dummy deprecated commands.

2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old
	  draft - ie. "neighbor version 4-" commands. Preserve dummy "neighbor
	  version" command as deprecated.

2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>

	* bgpd.[ch], bgp_vty.c, bgp_route.c: "Restart session after
	  maximum-prefix limit" feature support.

2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_nexthop.c: Improve debug.
	* bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()
	  function.
	* bgp_packet.c: MP AFI_IP update and withdraw parsing.
	* bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()
	  is better place to log about peer status change than bgp_event().
	  Log in bgp_connect_success().
	* bgp_vty.c: Fix typo in comment.
	* bgp_attr.c: Better log about unknown attribute.

2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead
	  of buffer_getstr.
	* bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string
	  returned by buffer_getstr.
	  (bgp_show_community) Must use XFREE instead of free on string
	  returned by buffer_getstr.
	* bgp_routemap.c: (set_community) Must use XFREE instead of free
	  on string returned by buffer_getstr.
	* bgp_vty.c: (neighbor_description) Use argv_concat instead of
	  buffer_getstr.

2005-01-24 Hasso Tepper <hasso at quagga.net>

	* bgp_route.c: Fix showstopper bug. New route must be selected also
	  if old one is flaged as BGP_INFO_ATTR_CHANGED.

2005-01-17 Hasso Tepper <hasso at quagga.net>

	* bgp_route.c: Clear peer's routing table regardless whether it's
	  configured or not. Being not configured is even better reason to
	  do it.

2005-01-05 Paul Jakma <paul@dishone.st>

	* bgp_packet.c: (bgp_write) set socket to nonblock while writing
          this should be generalised. See bugzilla #102. Fix supplied by
	  wawa@yandex-team.ru (Vladimir Ivanov).

2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* *.c: Change level of debug messages to LOG_DEBUG.

2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_main.c: (main) The 2nd argument to openzlog has been removed.

2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_main.c: (sigint) Use zlog_notice for termination message.
	  (main) Use zlog_notice for startup announcement.

2004-11-25 Hasso Tepper <hasso at quagga.net>

	* bgp_main.c: Make group to run as configurable.

2004-11-09 Paul Jakma <paul@dishone.st>

	* bgp_nexthop.c: collapse bgp_connected_ipvX, bgp_nexthop_cache_ipvX
	  and cache{1,2}.. into arrays of tables and hence collapse
          bgp_scan_ipv{4,6} into a single bgp_scan function. Tested, though
          a long time ago (and this change was hand-merged).

2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* bgp_route.c: Remove all code related to VTY_CONTINUE; this feature
	  is deprecated because the output did not represent a single point
	  in time.  All output needs to be generated inline and buffered
	  by the library code.
	  (route_vty_out,route_vty_out_tag,damp_route_vty_out,
	   flap_route_vty_out) Remove code to count number of lines of output,
	   since this was only useful for VTY_CONTINUE behavior.
	  (bgp_show_callback,vty_calc_line) Removed.
	  (bgp_show_table) Remove hooks for VTY_CONTINUE callback support.
	  As a result, there's a new output_arg argument to this function.
	  Make function static.
	  (bgp_show) Make function static and add a new output_arg argument.
	  Change all functions that call bgp_show or bgp_show_table to
	  pass the new output_arg argument (that used to be passed inside
	  vty->output_arg).
	* bgp_mplsvpn.c: Remove declarations of functions defined in
	  bgp_route.c; these declarations belong in bgp_route.h.
	* bgp_route.h: Declare 3 global functions used in both bgp_route.c
	  and in bgp_mplsvpn.c.

2004-10-31 Paul Jakma <paul@dishone.st>

	* {bgpd,bgp_attr}.c: size_t printf format should be ld.

2004-10-25 Paul Jakma <paul@dishone.st>

	* Update with fix in debian bug id 222930.
	* bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces.
	  bgp_network.c: (....) raise/lower privs around call to
          SO_BINDTODEVICE sockopt. 

2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>

	* bgp_nexthop.c: (bgp_connected_add) Connected destination pointer
	  may be NULL.
	  (bgp_connected_delete) ditto.

2004-10-14 Hasso Tepper <hasso at quagga.net>

	* bgp_dump.c: Make dump configuration appear in vtysh.

2004-10-13 Hasso Tepper <hasso at quagga.net>

	* bgp_snmp.c: Remove defaults used to initialize smux connection to
	  snmpd. Connection is initialized only if smux peer is configured.
	* bgp_view.c: It's dead file. Reomved.

2004-10-13 Paul Jakma <paul@dishone.st>

	* (global) more const'ification and fixups of types to clean up code.
	* bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,
          should use something like the VTY_GET_INTEGER macro, but without
          the vty_out bits..
        * bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE
          (no_set_aggregator_as) ditto.
        * bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is 
          returned, add comments about troublesome return value.
	
2004-10-03 James R. Leu <jleu at mindspring.com>

	* bgp_vty.c: Router id from zebra can be manually overriden.
	* bgp_zebra.c: Read router id related messages from zebra daemon.
	  Remove own code related with router id selection.
	* bgpd.c, bgpd.h: Remove own router id selection code. Use the one
	  from zebra daemon if it isn't manually overriden.

2004-09-26 Hasso Tepper <hasso at quagga.net>

	* bgp_aspath.c, bgp_packet.c, bgp_vty.c: Fix compiler warnings.

2004-09-23 Hasso Tepper <hasso at quagga.net>

	* *.[c|h]: list -> struct list *, listnode -> struct listnode *.

2004-07-09 Paul Jakma <paul@dishone.st>

	* Merge of GNU Zebra cvs2svn changesets r799, r800 and r807.
	* bgp_dump.c: (bgp_dump_attr) cleanup. return status code. check
	  attributes present before printing.
	* bgp_dump.c: update bgp_dump_attr prototype.
	* bgp_packet.c: (bgp_update_receive) init attrstr. check status
	  of bgp_dump_attr. Log end-of-rib UPDATEs.

2004-07-09 Sowmini Varadhan <sowmini.varadhan@sun.com>

	* bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket
	  if that is connection we're closing.
	  (bgp_read) invalid marker check applies to KEEPALIVE too.
	* bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.
	
2004-06-04 Paul Jakma <paul@dishone.st>

	* type mismatch fixes
	  
2004-05-21  Akihiro Mizutani <mizutani@net-chef.net>

	* bgpd.h, bgp_open.[ch], bgp_debug.c, bgp_vty.[ch], bgp_fsm.c:
	  Graceful restart capability display.

2005-05-20 Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_debug.c: Cosmetical fixes and log neighbor changes.

2004-05-20  Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_ecommunity.c: Transit ecommunity support.
	* bgp_ecommunity.c: Fix for unknown community crush.

2005-05-20 Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* *: Maximum prefix threshold support.
	* *: Reset notification fixups.

2004-05-08 Paul Jakma <paul@dishone.st>

	* bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
	  (bgp_interface_address_delete) ditto.
	  (bgp_zebra_announce) ditto.
	  (bgp_zebra_withdraw) ditto.

2004-05-03 Daniel Roesen <dr@cluenet.de>
	
	* bgp_fsm.c: (bgp_stop) Reset uptime only on transition from 
	  Established so that it reflects true downtime (rather time 
	  since last transition, eg Active->Idle)
	  
2004-05-01 rivo nurges <rix@estpak.ee>
 
        * bgp_route.c: fix UNH IOL BGP-4.1.12f
 
2004-05-01 Paul Jakma <paul@dishone.st>

	* Revert the attempted clean-up of the dummy peer hack, reverts
	  patchsets 435 (see 2004-02-17 below) and 456. 

2004-04-16 rivo nurges <rix@estpak.ee>

	* bgpd.h, bgp_debug.c: update cease subcodes to
	  draft-ietf-idr-cease-subcode-05
	* bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a

2004-02-17 Paul Jakma <paul@dishone.st>

	* bgpd.h: (bgp_peer) add fd_local and fd_accept 
	  file descriptor's, fd becomes a pointer to one of these.
	* bgpd.c: (global) adjust for fact that fd is now a pointer.
	  (peer_create_accept) removed.
	* bgp_route.c: (global) adjust for change of peer fd to pointer
	* bgp_packet.c: (bgp_collision_detect) adjust and remove the 
	  "replace with other peer" hack. 
	* bgp_network.c: (bgp_accept) Remove the dummy peer hack. 
	  Update peer->fd_accept instead. 
	  (global) Adjust fd references - now a pointer.
	* bgp_fsm.c: (global) adjust peer fd to pointer.
	  (bgp_connection_stop) new function, to stop connection.
	  (global) adjust everything which closed peer fd to use
	  bgp_connection_stop().
	  
2003-12-23 Krzysztof Oledzki <oleq@ans.pl>

	* bgp_network.c: drop privs on error cases

2003-08-11 kunihiro <kunihiro@zebra.org>

	* bgp_route{,map}.c: Extend 'set ip next-hop' in route-maps with
	  ability to specify 'peer-address' rather than IP. 

2003-06-09 Paul Jakma <paul@dishone.st>

	* bgp_clist.c (community_list_delete): honour deny statements

2003-04-19 Hasso Tepper <hasso@estpak.ee>

	* rip_routemap.c: sync daemon's route-map commands to have same
	syntax

2003-01-09  Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_routemap.c: Add match extcommunity command.

2002-10-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_aspath.c (aspath_init): Extend hash size from default to
	32767.
	(aspath_key_make): Use unsigned shoft for making hash.  Suggested
	by: Marc Evans <Marc@SoftwareHackery.Com>

2002-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_clist.c (community_entry_free): Fix memory leak of standard
	extcommunity-list config string.

2002-08-19  Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_route.c (route_vty_out_detail): Fix bug of router-id display
	when multiple instance is used.

2002-08-18  Akihiro Mizutani <mizutani@net-chef.net>

	* bgpd.c: Make "default-originate" and "maximum-prefix" commands
	available in peer-group configuration.

2002-08-13  Akihiro Mizutani <mizutani@net-chef.net>

	* bgp_packet.c (bgp_open_send): Put Opt Parm Len 0 when last
	capability packet cause error or dont-capability-negotiate option
	is specified.

2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* zebra-0.93 released.

2001-10-28  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_vty_init): Translate update commands are removed.

2001-10-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_static_set): Add workaround for BGP static
	route announcement when there is no zebra running.

2001-10-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (neighbor_remote_as_unicast): Remove "remote-as nlri
	unicast multicast" commands.

2001-09-14  Akihiro Mizutani <mizutani@dml.com>

	* bgp_open.c: When we receive capability route-refresh, we should
	check we send the capability not we receive the capability.

	* bgp_route.c (bgp_network_mask_natural_route_map): network
	statement route-map is added.

2001-08-31  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_advertise.c (bgp_advertise_intern): attr must be interned
	before looking up hash table.

2001-08-30  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.h (struct peer): BGP filter is moved from peer_conf to
	peer.

2001-08-28  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_nexthop.c (bnc_nexthop_free): Fix next pointer bug.
	Suggested by: "Hong-Sung Kim" <hoskim@lanbird.co.kr>.

2001-08-26  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_table.c (bgp_node_create): Clearn memory before use it.

2001-08-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* Change to use bgp_table.[ch].

2001-08-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (bgp_init): Add "transparent-as" and
	"transparent-nexthop" for old version compatibility.

2001-08-23  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.h (struct peer): default-originate route-map is added.

	* bgp_route.c: When self originated route is advertised with
	attrubute-unchanged, nexthop was not properly set.  This bug is
	fixed.

2001-08-22  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (neighbor_attr_unchanged): transparent-as and
	transparent-next-hop commands are restructured.  Instead of
	current transparent-* commands, attribute-unchanged command is
	introduced.

	neighbor A.B.C.D attribute-unchanged [as-path|next-hop|med]

	(neighbor_default_originate): "default-originate" configuration
	announce default route even 0.0.0.0/0 does not exists in BGP RIB.

2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* zebra-0.92a released.

2001-08-19  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: AF specific soft-reconfiguration inbound commands are
	added.

2001-08-17  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_route.c (bgp_show_callback): Do not do community NULL check.

	* bgp_community.c (community_cmp): Add check for commnunity NULL
	check.

	* bgp_routemap.c (route_match_community): Do not check comunity is
	NULL.  It may match to community-list "^$".

	* bgp_community.c (community_match): Add check for community is
	NULL case.

2001-08-17  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: AF specific route-reflector-client and
	route-server-client configuration are added.

2001-08-17  Rick Payne <rickp@ayrnetworks.com>

	* bgp_clist.c (community_match_regexp): Check special ^$ case.

2001-08-17  Akihiro Mizutani <mizutani@dml.com>

	* bgp_clist.c (community_list_match): Fix bug of community list
	permit and deny check.

2001-08-16  Akihiro Mizutani <mizutani@dml.com>

	* bgp_mplsvpn.c (bgp_mplsvpn_init): Add AF specific "nexthop-self"
	command.

2001-08-15  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.h (PEER_FLAG_SEND_COMMUNITY): Per AF based configuration
	flag is introduced.

	* bgp_mplsvpn.c (bgp_mplsvpn_init): VPNv4 filtering is added.

2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* zebra-0.92 released.

2001-08-13  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (bgp_delete): "no router bgp" free static, aggregate, rib
	table properly.

2001-08-12  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_route.c (bgp_node_safi): Return SAFI of current node.
	(bgp_config_write_network_vpnv4): VPNv4 static configuration
	display.

2001-08-11  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (no_bgp_ipv4_multicast_route_map): Add IPv4 multicast
	node filter commands.

2001-08-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (PEER_FLAG_IGNORE_LINK_LOCAL_NEXTHOP): Add
	"ignore-link-local-nexthop" flag for ignore link-local nexthop for
	IPv6.

2001-08-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (address_family_ipv4_multicast): "address-family ipv4
	multicast" is added.
	(address_family_ipv6_unicast): "address-family ipv6 unicast" is
	added.
	
2001-08-07  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_process): Use flag instead of as_selected
	memeber in struct bgp_info.

	* bgp_route.h (struct bgp_info): Remove as_selected memeber from
	struct bgp_info.

2001-07-31  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_route.c (bgp_announce_check): Enclose sending time AS loop
	check code with #ifdef BGP_SEND_ASPATH_CHECK.

2001-07-29  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_packet.c (bgp_withdraw_send): Simplify address family check.

	* bgpd.h (BGP_INFO_HOLDDOWN): Introduce new macro to check BGP
	information is alive or not.

	* bgp_community.c: Use community_val_get() on all OS.

2001-07-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_route.c (bgp_announce_check): Simplify set next-hop self
	check.

2001-07-24  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_announce_check): To route server clients, we
	announce AS path, MED and nexthop transparently.

2001-06-21  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (route_set_atomic_aggregate_free): Do not call
	XFREE.  No memory is allocated in
	route_set_atomic_aggregate_compile().

2001-06-21  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (bgp_route_map_init): `match nlri` and `set nlri`
	are replaced by `address-family ipv4` and `address-family vpnvr'.

2001-06-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_withdraw): Add check for BGP_PEER_CONFED.
	Reported by Rick Payne <rickp@rossfell.co.uk>.

2001-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (bgp_zebra_announce): When global IPv6 nexthop is
	empty, use socket's remote address for the nexthop.

2001-06-04  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (peer_delete): Fix memory leak.  Reported by Yosi Yarchi
	<Yosi_Yarchi@KereniX.com>

2001-06-01  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgpd.c (bgp_delete): Fix memory leak.  Reported by Yosi Yarchi
	<Yosi_Yarchi@KereniX.com>

2001-05-27  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* bgp_route.c (bgp_route_clear_with_afi_vpnv4): Use next instead
	of ri->next.

	* bgp_packet.c (bgp_withdraw_send): MPLS/VPN withdraw takes effect
	when HAVE_IPV6 is not defined.

2001-03-07  "Akihiro Mizutani" <mizutani@dml.com>

	* bgpd.c (peer_timers_set): Adjust keepalive timer to fit less
	than holdtime / 3.
	(bgp_confederation_peers_unset): Only set peer->local_as when
	confederation is enabled.
	(bgp_timers): Add "timers bgp <0-65535> <0-65535>" command.

	* bgp_route.c (bgp_announce_check): Set med of redistributed route
	when it is announced to EBGP peer.

2001-03-06  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_nexthop.c (bgp_scan_ipv4): bgp_scan() call bgp_process() for
	all prefixes.

2001-03-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_attr_origin): When bgpd send NOTIFICATION with
	erroneous attribute (type, length and value), it does include
	attribute flags field.

2001-02-21  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_announce_check): The route reflector is not
	allowed to modify the attributes of the reflected IBGP routes.

2001-02-20  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): During path seleciton, BGP
	confederation peer is treated as same as IBGP peer.

2001-02-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_redistribute_add): Initialize attr_new with
	attr.  Call aspath_unintern when return from this function.

2001-02-19  "Akihiro Mizutani" <mizutani@dml.com>

	* bgpd.c (bgp_router_id_set): Reset BGP peer when router-id is
	changed.

2001-02-18  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_packet.c (bgp_open_receive): When user configure holdtimer,
	do not refrect the value to current session.

2001-02-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_aggregate_delete): Set BGP_INFO_ATTR_CHANGE to
	suppress route withdraw.

	* bgp_damp.c (bgp_damp_init): Fix bug of flap dampening.

2001-02-16  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_aspath.c (aspath_make_str_count): Use ',' for separator for
	AS_SET and AS_CONFED_SET.

2001-02-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_process): Do not consider suppress route.

	* bgp_aspath.c (aspath_aggregate_as_set_add): Reset asset when
	aspath->data is realloced.

2001-02-15  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_attr.c (bgp_attr_aggregate_intern): Do not set atomic
	aggregate when using as-set.

2001-02-14  "Akihiro Mizutani" <mizutani@dml.com>

	* bgpd.c (bgp_confederation_peers_unset): Set peer's local-as
	correctly.

	* bgp_route.c (bgp_update): Just ignore AS path loop for
	confederation peer.

2001-02-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_aggregate_set): Add as_set argument.
	(bgp_aggregate_unset): Remove summary_only argument.
	(aggregate_address_as_set): New commands.
	"aggregate-address A.B.C.D/M as-set"
	"no aggregate-address A.B.C.D/M as-set"

2001-02-08  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_announce_check): Do not modify nexthop when the
	route is passed by route reflector.

2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c: "no bgp dampening" with argument.
	(bgp_announce_check): Do not modify nexthop when the route is
	passed by route reflector.

2001-02-07  "Akihiro Mizutani" <mizutani@dml.com>

	* bgpd.c (neighbor_passive): Change "neighbor NEIGHBOR remote-as
	ASN passive" to "neighbor NEIGHBOR passive".
	(bgp_announce_check): Check well-known community attribute even
	when "no neighbor send-community" is set.

2001-02-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_establish): Do not send keepalive at established
	time when keepalive timer is configured as zero.

2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_attr_check): When peer is IBGP peer, local
	preference is well-known attribute.

2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* zebra-0.91 is released.

	* bgp_attr.h (struct attr): Comment out DPA value.
	(struct attr): Change refcnt type from int to unsinged long.

	* bgp_attr.c (attrhash_key_make): Likewise.
	(attrhash_cmp): Likewise.
	(bgp_attr_dpa): Likewise.

2001-01-30  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): Make route selection completely same
	as Cisco's.

2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.h (BGP_ATTR_FLAG_OPTIONAL): Rename old ATTR_FLAG_* to
	BGP_ATTR_FLAG_* to clarify meenings.

2001-01-30  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (route_vty_out): Display argument to suppress same
	prefix information display.
	(route_vty_out_route): Don't display mask information for
	classfull network.

2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.h (SET_BITMAP): Simple bitmapping macros.

	* bgp_attr.c (bgp_attr_parse): Use bitmap for attribute type
	check.

2001-01-29  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_mp_reach_parse): Enclose loggin with BGP_DEBUG.
	(bgp_attr_parse): Comment out well-known attribute check.

2001-01-28  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_static_unset): Link-local IPv6 address can't be
	used for network advertisement.
	(nlri_parse): When link-local IPv6 address NLRI comes from
	remote-peer, log the information then simply ignore it.

	* bgp_zebra.c (zebra_read_ipv6): Link-local IPv6 address is not
	redistributed.

	* bgp_route.c (bgp_update): Check IPv6 global nexthop
	reachability.

2001-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Check nexthop points local address or
	not.
	(bgp_static_update_vpnv4): Set valid flag.

	* bgp_attr.c (bgp_attr_parse): Duplicate attribute check.
	(bgp_attr_parse): Well-known attribute check.

	* bgp_open.c (bgp_auth_parse): Authentication is not yet supported.

	* bgp_packet.c (bgp_valid_marker): Check marker is synchronized.

	* bgpd.c (clear_bgp): Send NOTIFICATION Cease when SEND_CEASE is
	defined.

	* bgp_snmp.c (bgp4PathAttrTable): Fix compile error.

2001-01-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_network_import_check): New command for IGP network
	check.

2001-01-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_scan): Run bgp_process when IGP metric is
	changed.  Call bgp_process once for each node.

2001-01-23  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): Add IGP metric comparison.

2001-01-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_info_cmp): Add IGP metric comparison.

	* bgp_nexthop.c (bgp_nexthop_lookup): Set IGP metric for valid
	IBGP route.

2001-01-23  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (show_ip_bgp_prefix_longer): Add new commands.
	"show ip bgp A.B.C.D/M longer-prefixes"
	"show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes"
	"show ipv6 bgp X:X::X:X/M longer-prefixes"
	"show ipv6 mbgp X:X::X:X/M longer-prefixes"
	
2001-01-20  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (show_ip_bgp_cidr_only): Add new commands.
	"show ip bgp cidr-only"
	"show ip bgp ipv4 (unicast|multicast) cidr-only"
	
2001-01-18  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_update): AS path lookup check is done in
	bgp_update() not in attr_parse().

2001-01-18  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Call bgp_aggregate_decrement() just
	before bgp_attr_unintern().

2001-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Now intern is performed very last part
	of the BGP packet update procedure.

2001-01-17  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_update): When implicit withdraw occur, reuse
	existing bgp_info structure.

2001-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_aggregate_decrement): Fix bug of aggregate
	address matching method.
	(bgp_update): 

	* bgp_nexthop.c (bgp_nexthop_onlink): Separate EBGP nexthop onlink
	check and IBGP nexthop route check.

2001-01-16  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.h (BGP_INFO_ATRR_CHANGED): Added for track attribute
	change.

2001-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info): Remove selected flag.  Use
	BGP_INFO_SELECTED for flags instead.
	(struct bgp_info): Remove valid flag.  Use BGP_INFO_VALID for
	flags instead.
	(struct bgp_info): Add igpmetric for IBGP route nexthop IGP
	metric.
	(struct bgp_info_tab): Struct bgp_info_tag is integrated into
	struct bgp_info.
	(BGP_INFO_ATRR_CHANGED): Added for track attribute change.

	* bgp_community.c (community_val_get): gcc-2.95 on
	sparc-sun-solaris cause crush.  This function is for avoid the
	crush.

2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_open_receive): Translated peer's packet_size
	clear bug is fixed.

2001-01-14  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_packet.c (bgp_open_receive): Return notification with
	supported version number.

2001-01-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_show_summary): Display AS path and community
	entries.  Suggested by: "Matt Ranney" <mjr@ranney.com>.

	* bgp_packet.c (bgp_read_packet): Fix bug of unblocking BGP socket
	read.  When BGP packet read is partial, we must get size and type
	from packet again.

2001-01-12  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_route.c (bgp_update): Do not unset BGP_INFO_HISTORY flag.
	(bgp_update): When there is a history entry increment route count.
	(bgp_damp_set): Check BGP_CONFIG_DAMPENING flag.

	* bgp_damp.c (bgp_damp_withdraw): Set status to
	BGP_DAMP_DISCONTINUE.

2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_mp_reach_parse): Fix warning code when second
	IPv6 nexthop is not link-local addresss.

2001-01-11  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_damp.c (bgp_config_write_damp): Smart flap dampening
	configuration display.
	(bgp_damp_info_print): Display elapsed time from flap started.

	* bgp_damp.h (struct bgp_damp_info): Add flap start time.

	* bgpd.c (peer_create): Set last read time.
	(bgp_show_peer): Display last read time.
	(bgp_show_summary): Use BGP_CONFIG_DAMPENING flag to check
	configuration.
	
	* bgpd.h (BGP_CONFIG_DAMPENING): Add new configuration option.
	(struct peer): Add last read time member.
	(BGP_VERSION_MP_4): Remove obsolete definition.

2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c: Remove OLD_RIB codes.

	* bgp_route.c (bgp_process): Likewise.

	* zebra-0.90 is released.

	* bgp_route.h (BGP_INFO_HISTORY): Remove damped member from struct
	bgp_info.  Instead of that use BGP_INFO_DAMPED flag.
	(struct bgp_info): Remove invalid member from struct bgp_info.
	Instead of that use BGP_INFO_HISTORY flag.

2001-01-10  "Akihiro Mizutani" <mizutani@dml.com>

	* bgp_damp.c (bgp_damp_info_print): New function to display
	dampening status.
	(DEFAULT_HARF_LIFE): Define default value.
	(DEFAULT_REUSE): Likewise.
	(DEFAULT_SUPPRESS): Likewise.
	(bgp_config_write_damp): When config value is same as default
	value, simply display "bgp dampening" to configuration.

	* bgp_damp.h (struct bgp_damp_info): Add flap member.

	* bgp_route.h (struct bgp_info): Added for BGP flap dampening
	history status.

2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_connected_add): Point-to-point connected
	address is properly handled.
	(bgp_connected_delete): Likewise.

	* bgp_route.c (bgp_route_init): Turn off BGP Flap dampening code
	until it works fine.

2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_show_summary): Add BGP_VERSION_MP_4 case.

	* bgp_route.c (bgp_update): When this is not damped route, clear
	ri pointer.

2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_main.c: Add "-n" no_kernel option to not install route to
	kernel.  Suggested by: "Matt Ranney" <mjr@ranney.com>

2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_connected_add): Revert point-to-point
	connected route patch.  Reported by ruud@ruud.org (Ruud de Rooij)

	* bgp_damp.c (bgp_config_write_damp): Add configuration display
	function.

	* bgp_route.c (bgp_info_free): Set NULL to BGP dampening
	information when BGP info structure is freed.
	(bgp_info_cmp): Check damped flag.
	(bgp_announce_check): Damped route is not announced.

2001-01-09  "Akihiro Mizutani" <mizutani@dml.com>

	* bgpd.c (neighbor_capability_route_refresh): Change "neighbor
	route-refresh" command to "neighbor capability route-refresh".
	(clear_bgp_soft_in): Change soft-reconfig method.

	clear ip bgp <neighbor> soft in
        --------------------------------------
        Try stored cache first then route-refresh

        clear ip bgp <neighbor> in
        ---------------------------------
        Try route-refresh first then try to use stored cache

2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_connected_add): Check point-to-point
	connected route.  Reported by ruud@ruud.org (Ruud de Rooij)

2001-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_nexthop_lookup): When IBGP nexthop is
	changed, refresh it.

2001-01-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info_tag): Add as_selected to
	bgp_info_tag.

2001-01-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info_tag): Add damped and bgp_damp_info
	member for BGP flap dampening.

	* bgp_damp.c: New file is added.

	* bgp_damp.h: Likewise.

2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (BGP_VTYSH_PATH): Change "/tmp/bgpd" to "/tmp/.bgpd".

2000-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (zlookup_connect): Change to use UNIX domain
	socket for zebra communication.

2000-12-29  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_process): Fix "bgp deterministic-med" process.

2000-12-27  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_process): Add "bgp deterministic-med" process.

2000-12-25  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): Use ntohl comparing router ID.

2000-12-18  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): When over three same prefix exit,
	withdrawing best prefix perform router ID comparison.

2000-12-15  Akihiro Mizutani  <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): Do not compare router ID when the
	routes comes from EBGP peer.  When originator ID is same, take
	shorter cluster-list route.  If cluster-list is same take smaller
	IP address neighbor's route.

	* bgpd.c (bgp_bestpath_aspath_ignore): Add "bgp bestpath as-path
	ignore" command.  When this option is set, do not concider AS path
	length when route selection.
	(bgp_bestpath_compare_router_id): Add "bgp bestpath
	compare-routerid".  When this option is set, compare router ID
	when the routes comes from EBGP peer.
	
2000-12-15  Akihiro Mizutani  <mizutani@dml.com>

	* bgp_route.c (bgp_info_cmp): Compare originator ID when it is
	available.

2000-12-14  Akihiro Mizutani  <mizutani@dml.com>

	* bgp_packet.c (bgp_notify_receive): Disply received Notify data
	information.

2000-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_filter.c (as_filter_free): Use MTYPE_AS_FILTER_STR to make
	it sure the memory is freed.

	* bgp_route.c (route_vty_out_detail): Do not use AF_INET6 outside
	HAVE_IPV6.

2000-12-08  Akihiro Mizutani  <mizutani@dml.com>

	* bgp_packet.c (bgp_notify_send_with_data): Store BGP notification
	data part.

	* bgp_network.c (bgp_accept): When BGP connection comes from
	unconfigured IP address, close socket immediately.

	* bgpd.c: Fix some display format.

2000-11-29  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_keepalive_send): Delete duplicate
	bgp_packet_set_size () call.

2000-11-28  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_read_packet): Remove debug codes.

2000-11-27  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_snmp.c (write_bgpPeerTable): Add SNMP set method routine.

	* bgp_fsm.c (bgp_stop): Use fsm_change_status to change peer's
	status.
	(bgp_establish): Likewise.

2000-11-26  Akihiro Mizutani  <mizutani@dml.com>

	* bgp_open.c: Fix error messages.

2000-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_establish): Call BGP trap when the peer is
	established.
	(bgp_stop): Call BGP trap when the peer is dropped.

2000-11-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_snmp.c (bgp4PathAttrTable): Return BGP path attribute table.

	* bgpd.h (struct peer): Add update_time for track last update
	received time.

	* bgp_packet.c (bgp_notify_receive): Preserv notify code and sub
	code in any case.

	* bgp_snmp.c (bgpPeerTable): Return remote router ID instead of
	peering IP address.
	(bgpPeerTable): Return actual BGP version number.

2000-11-22  Akihiro Mizutani <mizutani@dml.com>

	* bgp_debug.c (bgp_notify_print): Notify data length display bug
	is fixed.

2000-11-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (zlookup_connect): When UNIX domain connection to
	zebra is enabled, use the method.

2000-11-16  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: Revise debug message output.

2000-11-15  Akihiro Mizutani <mizutani@dml.com>

	* bgp_clist.c (ip_community_list): Fix bug of string comparison.

2000-11-14  Akihiro Mizutani <mizutani@dml.com>

	* bgp_community.c (community_match): Fix bug of memcmp return
	value check.

2000-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_clist.c (community_list_match_exact): Add check for
	entry->style is COMMUNITY_LIST.
	(community_match_regexp): Apply new com_nthval macro.

2000-11-07  Rick Payne <rickp@rossfell.co.uk>

	* bgp_routemap.c (route_set_community_delete): "set
	community-delete COMMUNITY-LIST" is added.

	* bgp_community.c (community_del_val): Delete one community.
	(community_delete): Delete all community included in list.
	(community_match): Fix bug of matching community value.

	* bgp_clist.c (community_entry_free): Free community regular
	expression.
	(community_entry_make): Default style is COMMUNITY_LIST.
	(community_entry_lookup): Make it sure style is COMMUNITY_LIST.
	(community_entry_regexp_lookup): New function for community
	regular expression lookup.
	(community_match_regexp): New function.
	(community_delete_regexp): New function.
	(community_list_delete_entries): New function.
	(community_list_match): Add COMMUNITY_REGEXP treatment.
	(community_list_match_exact): Likewise.
	(config_write_community): Write community list according to
	entry->style.

2000-11-07  Rick Payne <rickp@rossfell.co.uk>

	* bgp_attr.c (bgp_attr_aspath): AS path first AS check.

	* bgp_clist.c (struct community_entry): Add style, regexp, reg to
	community_entry.

2000-11-06  Rick Payne <rickp@rossfell.co.uk>

	* bgp_aspath.c (aspath_firstas_check): AS path first AS check.

	* bgpd.c (bgp_enforce_first_as): New command "bgp
	enforce-first-as".

	* bgpd.h (BGP_CONFIG_ENFORCE_FIRST_AS): Add new flag.

2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_community.c (community_compare): Copy byte stream data to
	actual value instead of using type casting hack.
	(community_add_val): Likewise.
	(community_uniq_sort): Likewise.
	(community_print): Likewise.
	(community_print_vty): Likewise.
	(community_include): Use memcmp to compare community value.

	* bgp_community.h (com_lastval): com_lastval and com_nthval macro
	return pointer.

2000-11-06  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.h (struct peer): Add established and dropped member for
	count peering up/down statistics.

	* bgpd.c (bgp_show_peer): Display peering up/down statistics.

	* bgp_fsm.c (bgp_establish): Increment established count.
	(bgp_stop): Increment dropped count.

	* bgp_packet.c (bgp_notify_receive): Increament notify count.

2000-11-1  Akihiro Mizutani <mizutani@dml.com>

	* bgp_fsm.c: Fix bug of holdtimer is not reset when bgp cleared. 

2000-10-31  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h: Static bit flag is set by (1 << DIGIT).

2000-10-24  Akihiro Mizutani <mizutani@dml.com>

	* bgp_ecommunity.c (ecommunity_dup): Extended community display
	format fix.

2000-10-24  Arkadiusz Miskiewicz <misiek@pld.org.pl>

	* bgp_network.c (bgp_serv_sock_addrinfo): Use gai_strerror.
	(bgp_serv_sock_addrinfo): Check address family.

2000-10-23  Jochen Friedrich <jochen@scram.de>

	* bgp_snmp.c: bgp_oid and bgpd_oid are used in smux_open after it
	is registered.  So those variables must be static.

2000-10-23  Akihiro Mizutani <mizutani@dml.com>

	* bgp_routemap.c (route_match_ip_next_hop): Change "match ip
	next-hop" argument from IP address to access-list name.
	Remove zebra-0.88 compatibility commands.
        "match ip prefix-list WORD"
        "match ipv6 prefix-list WORD"
	
2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (route_match_ipv6_next_hop_compile): Fix bug of
	passing the pointer to the pointer of struct in6_addr instead of
	the pointer of struct in6_addr in "match ipv6 next-hop" command.

	* bgp_route.c (bgp_announce_check): Enclose IPv6 part with
	HAVE_IPV6.

2000-10-20  Jasper Wallace <jasper@ivision.co.uk>

	* bgp_snmp.c (bgpPeerTable): ntohs missing bug is fixed.  Change
	to use linklist.c.  Define COUNTER32 as ASN_COUNTER.

2000-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_announce_check): attr->nexthop empty check
	should be done by attr->nexthop.s_addr instead of strcmp.

2000-10-18  Akihiro Mizutani <mizutani@dml.com>

	* bgp_zebra.c (zebra_read_ipv4): Pass nexthop value to
	bgp_redistribute_add().

	* bgp_nexthop.c (bgp_multiaccess_check_v4): New function for
	checking IPv4 multiaccess nexthop.

	* bgp_route.c (bgp_announce_check): In case of the nexthop is
	reachable on multiaccess media, do not change nexthop.
	(bgp_redistribute_add): Set nexthop when the value is passed.

2000-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_timer_set): If peer is passive mode, do not set
	connect timer.
	(bgp_start): If the peer is passive mode, force to move to Active
	mode.

2000-10-17  Horms <horms@vergenet.net>

	* bgp_debug.c (debug_bgp_fsm): Fix typo.

2000-10-17  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c: "show ipv6 bgp" route display improvement.

2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (neighbor_routes): Allocate sockunion for callback
	function.
	(bgp_show_neighbor_route): Remove static declaration for union
	sockunion.

	* bgpd.c (peer_update_source_set): Clean previously allocated
	memory before allocate new one.

2000-10-03  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (neighbor_routes): Add show neighbor's routes
	command.
	"show ip bgp neighbors (A.B.C.D|X:X::X:X) routes"
	"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes"
	"show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes"
	"show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes"

2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* zebra-0.89 is released.

2000-10-02  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: "bgp deterministic-med" command is added.

2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_connected_add): Apply mask for connected
	route addition and deletion.

2000-09-29  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_cmp_left): Skip confederation AS segment
	when comparing leftmost AS number.

2000-09-29  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (peer_route_reflector): Route reflector can be set for
	IBGP peer.
	(bgp_distribute_set): Fix bug of string check for (in|out).
	(bgp_show_summary): Display total neighbor count.

2000-09-28  Akihiro Mizutani <mizutani@dml.com>

	* bgp_attr.c (bgp_packet_attribute): Only add cluster_list and
	originator for clinet to client routes.
	(bgp_packet_attribute): Add new cluster_list to the beginning of
	existing cluster_list.
	(bgp_packet_attribute): Fix bug of originator is rewritten even
	when originator is already set.

2000-09-27  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_client_to_client_reflection): Add new command.
	"no bgp client-to-client reflection"
	"bgp client-to-client reflection"

	* bgpd.h (BGP_CONFIG_NO_CLIENT_TO_CLIENT): Add new definition.

2000-09-26  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_read): Make BGP packet read to non-blocking
	read.
	(bgp_read_packet): Likewise.
	(bgp_read_packet): When errono is EAGAIN, try to read it again.

	* bgp_fsm.c (bgp_stop): Clear packet size and read buffer.

2000-09-26  Akihiro Mizutani <mizutani@dml.com>

	* bgp_routemap.c: Configuration of prefix-list match is shown as
	"match ip address prefix-list <WORD>".  Old configuration "match
	ip prefix-list <WORD>" is left for compatibilitty.

2000-09-25  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.h (BGP_CONFIG_MED_MISSING_AS_WORST): Changed from
	BGP_CONFIG_MISSING_AS_WORST.

	* bgpd.c (bgp_bestpath_med): Change missing-as-worst syntax.
	Old "bgp bestpath missing-as-worst"
	New "bgp bestpath med missing-as-worst"

2000-09-24  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c: Compare MED properly in case of CONFED-IBGP.

2000-09-21  steve@Watt.COM (Steve Watt)

	* bgp_debug.h: Do not declare debug variables conf_bgp_debug_* and
	term_bgp_debug_*.

	* bgp_debug.c: Declare variables here.

2000-09-21  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: MBGP soft-reconfiguration command is added.
	clear ip bgp x.x.x.x ipv4 (unicast|multicast) in
	clear ip bgp x.x.x.x ipv4 (unicast|multicast) out
	clear ip bgp x.x.x.x ipv4 (unicast|multicast) soft
	clear ip bgp <1-65535> ipv4 (unicast|multicast) in
	clear ip bgp <1-65535> ipv4 (unicast|multicast) out
	clear ip bgp <1-65535> ipv4 (unicast|multicast) soft
	clear ip bgp * ipv4 (unicast|multicast) in
	clear ip bgp * ipv4 (unicast|multicast) out
	clear ip bgp * ipv4 (unicast|multicast) soft

	Change "clear ip bgp vpnv4 x.x.x.x soft" command to
	"clear ip bgp x.x.x.x vpnv4 unicast soft".

	"bgp bestpath med confed" command is added.
	
	* bgpd.h (BGP_CONFIG_MED_CONFED): Add New definition.

2000-09-18  Rick Payne <rickp@rossfell.co.uk>

	* bgpd.c (bgp_show_peer): Fix misplaced #endif.

2000-09-12  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (bgp_default_local_preference): Add "bgp default
	local-preference" command.

	* bgp_nexthop.c (no_bgp_scan_time): Add "no bgp scan-time"
	command.

2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (bgp_zebra_announce): BGP confederation peer's routes
	are passed to zebra like IBGP route.

2000-09-10  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (bgp_config_write_peer): Make it consistent passive
	configuration.

	* bgp_route.c: Community match command is added.
	"show ip bgp community <val>"
	"show ip bgp community <val> exact-match"

2000-09-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_nexthop_lookup): ebgp-multihop routes are
	treated as IBGP routes.

2000-09-08  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (bgp_show_route): When local-AS community route is
	selected, display "not advertised outside local AS" to "show ip
	route A.B.C.D" output.
	(show_ip_bgp_ipv4_filter_list): Add below four commands.
	"show ip bgp ipv4 (unicast|multicast) filter-list WORD"
	"show ip bgp ipv4 (unicast|multicast) community"
	"show ip bgp ipv4 (unicast|multicast) community-list WORD"
	"show ip bgp ipv4 (unicast|multicast) community-list WORD exact-match"
	
	* bgp_clist.c (community_list_match_exact): Community exact match
	function.

2000-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Add peer's ttl check.

	* bgpd.h (struct peer): Structure member refresh is renamed to
	refresh_adv.

	* bgpd.c (clear_bgp_soft_in): Check PEER_FLAG_ROUTE_REFRESH flag
	when soft reconfiguration is performed.

	* bgp_zebra.c (bgp_zebra_announce): When the peer is EBGP and
	ebgp-multiphop is set, set ZEBRA_FLAG_INTERNAL for nexthop lookup.

	* bgp_route.h (struct bgp_info_tag): Add valid flag.

2000-08-25  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: Add AS base BGP soft reconfiguration.

	* bgp_route.c: When no-advertise or no-export route is selected,
	"show ip bgp" display "not advertised to EBGP peer" or "not
	advertised to any peer" message.
	
2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* zebra-0.88 is released.

	* bgp_dump.c (dump_bgp_routes): Change "dump bgp routes" to "dump
	bgp route-mrt" to support MRT specific dump format.

	* bgpd.c (bgp_init): "clear ip bgp vpnv4 soft {in,out}" command is
	added.

	* bgp_route.c (bgp_update): Currently nexthop check is only works
	for IPv4.

2000-08-17  Akihiro Mizutani <mizutani@dml.com>

	* bgpd. (clear_ip_bgp_all_soft): Add "clear ip bgp * soft" for
	both inbound and outbound soft reconfiguration.

2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (clear_ip_bgp_peer_soft_out): Add soft-reconfiguration
	outbound.
	(peer_new): Set route-refresh flag.

2000-08-16  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: "no bgp router-id A.B.C.D" alias is added.  "no bgp
	cluster-id A.B.C.D" alias is added.  " bgp cluster-id
	<1-4294967295>" alias is added.  "clear ip bgp * soft in" command
	is added.  "clear ip bgp A.B.C.D in" alias is added.  "clear ip
	bgp * in" alias is added.

2000-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Add soft_reconfig flag.  When the flag
	is set do not install the route into Adj-RIBs-In.
	(bgp_update): Perform implicit withdraw before filtering of the
	route.

	* bgp_packet.c (bgp_read): draft-ietf-idr-bgp-route-refresh-01.txt
	capability code and BGP message can be accepted.

	* bgp_open.c (bgp_capability_parse): Likewise.

	* bgp_route.c (bgp_refresh_table): New function for route refresh.
	(bgp_refresh_rib): Likewise.

	* bgpd.c (bgp_show_peer): Display route refresh status.

	* bgp_route.c (bgp_aggregate_add): Add check for the route
	validness.
	(bgp_aggregate_delete): Likewise.

2000-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_nexthop.c (bgp_scan): Care for aggregate route when the
	route become inaccessible.

2000-08-15  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (show_ip_bgp_prefix): "show ip bgp A.B.C.D/M"
	command is added.

2000-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (bgp_interface_up): Register connected route.
	(bgp_interface_down): Unregister connected route.

2000-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info): Add distance to the structure.

	* bgp_route.c (bgp_aggregate_increment): Aggregate route only
	match to smaller prefixlen route not match same prefixlen route.
	(bgp_aggregate_decrement): Likewise.
	(bgp_aggregate_add): Likewise.
	(bgp_aggregate_delete): Likewise.
	(bgp_network_backdoor): Add backdoor network configuration.

	* bgpd.h (struct bgp ): Add distance_{ebgp,ibgp,local} for store
	configuration distance value.

	* bgp_route.c (bgp_update): Filter EBGP route which has non
	connected nexthop.

	* bgp_attr.c (bgp_attr_aggregate_intern): New function for
	aggregate route.  Set origin to IGP.  Set atomic aggregate flag.
	Set aggregator AS and address.
	(bgp_attr_aggregate_intern): Check BGP_CONFIG_CONFEDERATION when
	filling aggregator_as.

	* bgp_route.c (bgp_process): Delete suppress check for install
	suppressed route into local routing table.
	(bgp_aggregate_increment): Use bgp_attr_aggregate_intern() instead
	of bgp_attr_default_intern ().
	(bgp_aggregate_add): Likewise.

	* bgpd.c (bgp_get): Call bgp_if_update_all() after BGP instance is
	created.  This is for avoid 0.0.0.0 router-id.

2000-08-13  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (route_vty_out_detail): Display "valid" when the
	route is valied.  Display "aggregated" when the route is
	aggregated.  "Advertisements suppressed by an aggregate" is
	displayed when the route is suppressed.
	(bgp_info_cmp): Prefer EBGP than Confed-EBGP.

2000-08-10  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c (route_vty_out_detail): Display format change.

2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_update): Only AFI_IP nexthop check is enabled.

	* bgpd.c (bgp_delete): Delete static route before delete peer
	configuration.

2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c: Include bgpd/bgp_nexthop.h.

2000-07-31  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (bgp_show_summary): "show ip bgp summary" shows own BGP
	identifier.  And status is changed like below.

	State/Pref   -> State/PfxRcd
	Shutdown     -> Idle (Admin)
	PrefixOvflw  -> Idle (PfxCt)

	* bgp_route.c (route_vty_out): Show internal route as "i".

2000-07-13  Jim Bowen <jimb@zereau.net>

	* bgp_snmp.c: Add BGP peer MIB implementation.

2000-07-12  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c (bgp_show_peer): Fix typo.

2000-07-11  Akihiro Mizutani <mizutani@dml.com>

	* bgp_routemap.c: Add commands for deleting set without argument.

2000-07-03  Akihiro Mizutani <mizutani@dml.com>

	* bgp_zebra.c: Fix redistribute help strings.

2000-07-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_show): When bgpd works as vtysh server send all
	output to vty at once.

2000-06-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_mplsvpn.c (no_vpnv4_network): "no network A.B.C.D/M rd WORD
	tag WORD" command is added.

	* bgp_ecommunity.c (ecommunity_vty_out): New function added.

2000-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_show): Fix total number of prefix count bug.

	* bgpd.c (bgp_show_peer): Display VPNv4 unicast configuration and
	negotiation result in "show ip bgp neighbors".

2000-06-12  Akihiro Mizutani <mizutani@dml.com>

	* bgpd.c: Fix help strings.
	
	* bgpd.h: Likewise.
	
2000-06-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_aggregate_unset): Fix bug of checking rn->info
	instead of rn.  Reported by Akihiro Mizutani <mizutani@dml.com>.

	* bgp_mplsvpn.c (vpnv4_network): For testing purpose, "network
	A.B.C.D rd RD" is added to address-family vpnv4 unicast node.

	* bgp_route.c (bgp_static_set): Set safi to p.safi.

2000-06-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_show_prefix_list): Change to use bgp_show().
	(bgp_show_regexp): Change to use bgp_show().
	(show_adj_route): Change to display header.

	* bgpd.c (clear_bgp): Set peer->v_start to default value when peer
	is cleared manually.

	* bgp_route.c (bgp_show_route): New function which display
	specific BGP route.  Divided from bgp_show().
	(bgp_static_delete): Delete all static route.

2000-06-09  NOGUCHI Kay <kay@v6.access.co.jp>

	* bgp_route.c (show_ipv6_bgp): "show ipv6 bgp" is broken with
	invalid privious fix.  Now show_ipv6_bgp and show_ipv6_bgp_route
	take care of "show ipv6 bgp [X:X::X:X]".  Same change for "show ip
	mbgp" and "show ipv6 mbgp".

2000-06-07  Akihiro Mizutani <mizutani@dml.com>

	* bgp_route.c: Fix help strings and command arguments.

2000-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_ecommunity.c: Include prefix.h

2000-06-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info_tag): New structure to hold tag
	value.

	* bgp_route.c (bgp_adj_set): table NULL check is added.
	(bgp_adj_unset): Likewise.
	(bgp_adj_lookup): Likewise.
	(bgp_adj_clear): Likewise.
	(route_vty_out): Add SAFI check for nexthop display.
	(bgp_withdraw): Add SAFI check for withdraw route.

	* Remove all #ifdef MPLS_VPN then include it as default.

	* bgpd.c: Temporary disable peer-group command until the
	implementation is completed.

	* bgp_routemap.c (bgp_route_map_init): Install
	route_metric_match_cmd.
	(route_match_metric_compile): MED value compile using strtoul.

2000-06-05  Akihiro Mizutani <mizutani@dml.com>

	* bgp_filter.c: Fix help strings.  Change REGEXP to LINE.  Change
	NAME to WORD.

	* Change command argument to more comprehensive.

	METRIC         -> <0-4294967295>
	WEIGHT         -> <0-4294967295>
	LOCAL_PREF     -> <0-4294967295>
	IP_ADDR        -> A.B.C.D
	AS             -> <1-65535>
	AS-PATH-NAME   -> WORD
	ACCESS_LIST    -> WORD
	PREFIX_LIST    -> WORD
	COMMUNITY      -> AA:NN
	EXT_COMMUNITY  -> ASN:nn_or_IP-address:nn
	IPv6_ADDR      -> X:X::X:X

	* bgp_clist.c: Fix help strings.

2000-06-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (peer_active): Add new function for check the peer is
	active or not.
	(neighbor_activate): New command "neighbor PEER activate" and "no
	neighbor PEER activate" are added.

	* bgp_packet.c: Include bgpd/bgp_mplsvpn.h.

2000-06-02  Akihiro Mizutani <mizutani@dml.com>

	* bgp_clist.c: Fix commuity-list help strings.

	* bgp_routemap.c: Fix "set community" help strings.  Add #define
	SET_STR.  Use (unicast|multicast) argument for "set nlri" command.
	
2000-06-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (route_set_community_none_cmd): "set community
	none" command is added to route-map.

2000-06-01  Akihiro Mizutani <mizutani@dml.com>

	* bgp_debug.c: Change "show debug" to "show debugging".  Now "show
	debugging" is not used in VIEW_NODE.

2000-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_timer_set): Add check for shutdown flag.  This
	fix unconditional BGP connection.

	* bgpd.c (peer_shutdown): Replace peer_shutdown() with
	peer_change_flag_with_reset().

2000-05-26  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (no_bgp_default_ipv4_unicast): Add "no bgp default
	ipv4-unicast" command.

	* bgpd.h (BGP_CONFIG_NO_DEFAULT_IPV4): Add new definition.

	* bgp_filter.c (as_list_delete): Free all AS filter.

	* bgp_clist.c (community_list_delete): Free all community entry.

	* bgp_filter.c (no_ip_as_path_all): New DEFUN for "no ip as-path
	access-list NAME".

	* bgp_clist.c (no_ip_community_list_all): New DEFUN for "no ip
	community-list NAME".

2000-05-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (ipv6_mbgp_neighbor_routes): Change "show ip bgp PEER
	routes" to "show ip bgp PEER received-routes"

2000-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_ecommunity.c (ecommunity_parse): New file for Extended
	Communities attribute.
	* bgp_ecommunity.h: Likewise.

2000-05-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_mplsvpn.h: New file for MPLS-VPN.
	* bgp_mplsvpn.c: Likewise.

	* bgpd.c (bgp_delete): Fix bug of "no router bgp" crush.

2000-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_bestpath_missing_as_worst): Add "bgp bestpath
	missing-as-worst".

2000-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (match_community): Clarify help of "match
	community".

2000-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_cmp_left): Remove debug code.

2000-04-27  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_info_cmp): Compare MED only both routes comes
	from same neighboring AS.

	* bgp_aspath.c (aspath_cmp_left): Compare leftmost AS value.

	* bgp_route.c (bgp_info_cmp): Fix misused htonl() to ntohl().

2000-04-26  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_output_filter): When distribute-list's
	corresponding access-list does not exist, filter all routes.
	(bgp_input_filter): Likewise.

2000-04-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_packet_attribute): Propagate MED to IBGP peer.

	* bgp_route.c (bgp_info_cmp): Add evaluation of local preference.

2000-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_distribute_update): Add struct access_list *
	argument.

2000-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_clist.c (community_list_dup_check): Add duplicate insertion
	check.

	* bgp_filter.c (as_list_dup_check): Add duplicate insertion check.

	* bgp_route.c (bgp_show): Fix undeclared write variable.

2000-04-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c: Add "match ip address prefix-list".

2000-03-29  Rick Payne <rickp@rossfell.co.uk>

	* bgp_aspath.c (aspath_strip_confed): Fix realloc problem.

2000-03-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_reconnect): Connect retry timer is expired when
	the peer status is Connect.

2000-03-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* Fix bug of rewritten originator-id.

2000-01-27  Rick Payne <rickp@rossfell.co.uk>

	* bgp_aspath.c (aspath_delimiter_char): New function.  Instead of
	directly referencing array, search proper AS path delimiter.
	(aspath_strip_confed): Strip the confederation stuff from the
	front of an AS path.
	(aspath_add_left_confed): New function for adding specified AS to
	the leftmost AS_CONFED_SEQUENCE.

	* bgp_aspath.h: Change AS_CONFED_SEQUENCE and AS_CONFED_SET value
	to Cisco compatible.

	* bgpd.c (bgp_confederation_id_set): Confederation configuration.
	(bgp_confederation_id_unset): Likewise.
	(bgp_confederation_peers_check): Likewise.
	(bgp_confederation_peers_add): Likewise.
	(bgp_confederation_peers_remove): Likewise.
	(bgp_confederation_peers_set): Likewise.
	(bgp_confederation_peers_unset): Likewise.
	(bgp_confederation_peers_print): Likewise.
	
2000-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c: Introduce peer_change_flag_with_reset() fucntion.

2000-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_open.c (bgp_open_option_parse): When there is no common
	capability send Unsupported Capability error to the peer.

2000-01-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_open.c (bgp_capability_mp): Fix bug of mis-negotiation about
	IPv6 unicast.

	* bgpd.c (bgp_init): Add "soft-reconfiguration inbound" command.
	
2000-01-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (neighbor_strict_capability): Add
	"strict-capability-match" command.

	* bgp_zebra.c (bgp_if_update): Ignore NET127 determining
	router-id.

	* bgpd.c (peer_override_capability): Add "override-capability"
	command.

1999-12-16  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_write): Change status to Idle and set timer
	after write failed.

1999-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (bgp_zebra_announce): Add info->selected check.

1999-12-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (nlri_unfeasible): nlri_unfeasible() is merged with
	nlri_parse().

1999-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.h (BGP_EVENT_DELETE): Macro added.

	* bgp_fsm.c (bgp_stop): Clear all event threads of the peer when
	the peer is cleared.

	* bgp_zebra.c (bgp_nexthop_set): Clear interface index of
	link-local address.  This is KAME specific problem.

1999-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_mp_reach_parse): Comment out previous code for a
	while.  We don't completely detect the link is shared or not at
	this moment.

	* bgp_packet.c (bgp_notify_send): Make shortcut call of
	bgp_write() and bgp_stop().

	* bgp_attr.c (bgp_mp_reach_parse): Fix serious bug when getting
	global and link-local address.

1999-12-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (no_neighbor_port): New command added.
	(peer_new): Set send_community.

1999-12-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (show_ip_bgp_summary): Changed to use bgp_show_summary().
	(show_ip_mbgp_summary): Likewise.
	(show_ipv6_bgp_summary): Likewise.
	(show_ipv6_mbgp_summary): Add new command.
	(peer_free): Free peer->host.
	(peer_lookup_by_su): Delete function.
	(ipv6_bgp_neighbor): Changed to use peer_remote_as().
	(sockunion_vty_out): Function deleted.
	(vty_clear_bgp): Use afi instead of family.
	Delete old list bgp_list.  Use struct newlist *bgplist.
	(peer_lookup_by_host): Function deleted.

1999-12-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (struct peer_group): New structure added.
	(struct peer_conf): New structure added.
	(struct	peer): Change all prefix_count to unsigned long.
	
	* bgpd.c: Reconstruct all of VTY commands reflect internal
	structure change.
	Use bgplist instead of bgp_list.
	Use peerlist intstead of peer_list.

	* bgp_attr.c (bgp_mp_reach_parse): If nlri_parse return -1, stop
	parsing then return immediately.

	* bgp_route.c (nlri_parse): When NLRI parse error occured, return
	-1.
	(nlri_process): Use pcount_v4_{unicast,multicast}.
	(nlri_delete): Likewise.

1999-11-25  Robert Olsson <Robert.Olsson@data.slu.se>

	* bgp_routemap.c (route_match_nlri): `match nlri
	unicast|multicast' and `set nlri unicast|multicast' command are
	added.

1999-11-22  Robert Olsson <Robert.Olsson@data.slu.se>

	* bgpd.c: Add translate-update support.

	* bgpd.h (TRANSLATE_UPDATE_OFF): Add translate-update definition.

1999-11-19  Robert.Olsson@data.slu.se

	* bgp_route.c (bgp_peer_delete): Add MBGP peer clear codes.

1999-11-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_open.c (bgp_capability_mp): Temporary comment out
	SAFI_UNICAST_MULTICAST handling until we know the meanings.

1999-11-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_btoa.c: New file added.

1999-11-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (struct peer): Add dont_capability flag.
	(struct peer): Add override_capability flag.

	* bgpd.c (neighbor_dont_capability_negotiation): `neighbor PEER
	dont-capability-negotiation' added.

1999-11-12  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>

	* bgp_attr.c (bgp_mp_reach_parse): Ignore link-local addresses
	attribute from non-shared-network peers.

1999-11-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_snmp.c: New file added.

	* BGP4-MIB.txt: Updated to the latest Internet-Draft
	draft-ietf-idr-bgp4-mib-04.txt.

1999-11-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_route_init): Add `show ipv6 bgp prefix-list'.

	* bgp_attr.c (bgp_mp_unreach_parse): Enclose safi setup with
	#ifdef HAVE_MBGPV4.

1999-11-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c (no_dump_bgp_all): Add [PATH] and [INTERVAL] to no
	dump bgp commands.
	(config_write_bgp_dump): Write interval value to the
	configuration.

1999-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c: Redistribute route-map support is added.

	* bgp_zebra.h: New file added.

1999-11-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c: BGP packet dump routine compatible with MRT.
	* bgp_dump.h: BGP packet dump routine compatible with MRT.

	* bgp_debug.c: Renamed from bgp_dump.c
	* bgp_debug.h: Renamed from bgp_dump.h

1999-10-27  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* BGP4-MIB.txt: New file added.  Edited version of RFC1657.

1999-10-25  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>

	* bgp_route.c (bgp_announce): If we're not on a shared network
	with the peer and we don't have a link-local next hop, but the
	inbound next-hop has a link-local address, don't readvertise it to
	our peer.

1999-10-25  Marc Boucher <marc@mbsi.ca>

	* bgp_zebra.c: Add redistribute kernel command.

1999-10-25  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_reset): New function added.

	* bgpd.conf.sample2: Add IPv6 configuration sample.

1999-10-24  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>

	* bgp_route.c (ipv6_aggregate_address): Function added.

1999-10-21  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_update): Unintern aspath, community, cluster
	list after parsing BGP update packet.

	* bgp_attr.c (bgp_attr_aspath): Intern parsed aspath.
	(bgp_attr_community): Intern parsed community.
	(bgp_attr_cluster_list): Intern parsed cluster list.

	* bgp_routemap.c: Add `set community-additive' command.

1999-10-21  Alexandr D. Kanevskiy <kad@blackcatlinux.com>

	* bgp_routemap.c (route_set_local_pref): Fix bug of setting
	attribute flag.

1999-10-21  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>

	* bgp_route.c (bgp_announce): Add check of IPv6 default route
	announcement.

	* bgp_packet.c (bgp_update_send): Add BGP announcement logging.

1999-10-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* `show ip[v6] bgp PREFIX' show uptime of the route.

1999-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_filter_set): Delete PEER_FAMILY_{IPV4,IPV6}. instead
	of that use AF_INET and AF_INET6 directly.
	(vty_clear_bgp): Add new function to support various clear ip bgp
	method.

1999-10-04  Lars Fenneberg <lf@elemental.net>

	* bgpd.c (clear_ip_bgp): Add `clear ip bgp ASN'.

1999-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c: Add `match ip prefix-list' and `match ipv6
	prefix-list'.

1999-09-28  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_collision_detect): Add BGP collision detection
	function.

1999-09-26  Blake Meike <bmeike@adero.com>

	* bgpd.c (neighbor_port): New command `neighbor PEER port PORT' is
	added.

1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (no_neighbor_timers_keepalive): Change MIN to min.  Add
	min() macro.

1999-08-19  Rick Payne <rickp@rossfell.co.uk>

	* bgp_packet.c (bgp_open): BGP holdtimer bug is fixed.  Make BGP
	keepalive timer configurable.

1999-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (bgp_redistribute_set): Fix redistribute bug.

1999-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_peer_display): show ip bgp neighbors PEER only list
	the peer not all of them.

1999-08-11  Rick Payne <rickp@rossfell.co.uk>

	* bgp_route.c (bgp_announce): Remove MED if its an EBGP peer -
	will get overwritten by route-maps.

1999-08-08  Rick Payne <rickp@rossfell.co.uk>

	* bgp_routemap.c: Multi protocol route-map modification.

1999-08-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c: Set network statement route's origin attribute as
	igp.

	* bgp_zebra.c: Set redistribute route's origin attribute as
	incomplete.

	* bgp_route.c (bgp_info_cmp): Add attribute existance check,
	origin attribute check, BGP peer type check.

1999-07-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_peer_delete): Reselect of IPv6 route.

1999-07-29  Rick Payne <rickp@rossfell.co.uk>

	* Changed route-maps to behave in a more cisco-like fashion

1999-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (bgp_stop): Very serious bug of bgp_stop () is fixed.
	When multiple route to the same destination exist, bgpd try to
	announce the information to stopped peer.  Then add orphan write
	thread is added.  This cause many strange behavior of bgpd.
	Reported by Georg Hitsch <georg@atnet.at>.

1999-07-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c: Change peer's A.B.C.D to PEER.

1999-07-22  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_announce): Add hack for link-local nexthop.

	* bgp_zebra.c (bgp_zebra_announce): Fill in nexthop address from
	local address.

1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_open): Holdtime fetch bug is fixed.  Reported
	by Yuji SEKIYA <sekiya@sfc.wide.ad.jp>.

1999-07-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c (fsm_holdtime): Don't close file descriptor in
	fsm_holdtime ().

1999-07-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c: Add `set atomic-aggregate' command.

1999-07-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (route_set_ip_nexthop_cmd): Change "ip nexthop"
	to "ip next-hop".
	
1999-07-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (show_ipv6_bgp_regexp): `show ipv6 bgp regexp'
	added.

1999-07-01  Rick Payne <rickp@rossfell.co.uk>

	* bgp_zebra.c (zebra_init): Install standard commands to
	ZEBRA_NODE.

1999-06-28  Rick Payne <rickp@rossfell.co.uk>

	* bgpd.c (bgp_delete): bgp peer deletion bug is fixed.

1999-06-25  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c: Add neighbor update-source command as ALIAS to
	neighbor_interface.

1999-06-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_packet_attribute): Send community attribute when
	send_community flag is set.

	* bgpd.h (struct peer): Add send_community flag.

1999-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (router_bgp): router bgp's argument changed from AS_NO to
	<1-65535>.

1999-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.h (struct bgp_info): Add subtype for BGP route type.

1999-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_community.c (community_merge): Function added.

1999-06-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_clist.c: New file.
	* bgp_clist.h: New file.

	* bgp_community.h (COMMUNITY_LOCAL_AS): Added for Cisco
	compatibility.
	(COMMUNITY_NO_ADVERTISE): Fix typo.

1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c: Add `set weight WEIGHT' command.

	* bgpd.c: Remove all_digit_check function.  Instead of that use
	all_digit function in lib/prefix.c.

	* bgp_routemap.c (bgp_route_map_init): Install
	no_set_ipv6_nexthop_global_cmd and no_set_ipv6_nexthop_local_cmd
	element to the RMAP_NODE.

1999-05-28  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_make_str): Declare aspath_delimiter_char
	inside aspath_make_str function.
	(aspath_prepend): New function is added for AS path prepend.
	(aspath_make_str_count): Renamed from aspath_make_str.  AS path
	count is set to the structure.
	(aspath_merge): New function.

1999-05-22  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (redistribute_bgp): Add new DEFUN.
	(no_redistribute_bgp): Likewise.
	(router_zebra): Semantics changed.  Now 'router zebra' is default
	behavior of bgpd.

1999-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c: Add some commands to bgp route-map.
	match ip next-hop: New command.
	match metric: New command.
	set metric: Doc fix.
	set local-preference: Add DEFUN.

1999-05-14  Stephen R. van den Berg <srb@cuci.nl>

	* bgp_main.c (signal_init): SIGTERM call sigint.
	(sigint): Loggging more better message.

1999-05-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_packet_attribute): AS path attribute extended
	length bit check is added.

1999-05-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (bgp_route_map_init): Call route_map_install_set
	function with route_set_local_pref_cmd argument.
	(no_match_aspath): Function added.
	(route_set_metric): Set attribute flag bit.

	* bgp_attr.c (bgp_packet_attribute): MULTI_EXIT_DISC is now in BGP
	packet.

1999-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (no_neighbor_timers_holdtime): `no neighbor PEER timers
	holdtime' command is added.

	* bgpd.h (BGP_DEFAULT_HOLDTIME_BIG): Delete define.

	* bgpd.c (bgp_prefix_list_set): New function added.
	(bgp_prefix_list_unset): Likewise.
	(bgp_prefix_list_update): Likewise.
	(show_ip_bgp_neighbors): prefix-list information display.

1999-05-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_delete): Function added for `no router bgp'.

1999-05-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c (bgp_dump_attr): Add originator_id display.

	* bgpd.c (bgp_router_id): Even when address is malformed set the
	value to configuration bug fixed.
	(no_bgp_router_id): New function.
	(no_bgp_cluster_id): New function.

1999-05-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (BGP_ATTR_ORIGINATOR_ID): Changed from BGP_ATTR_ORIGINATOR.

1999-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (bgp_announce): Add route reflector check.

1999-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_cluster_id): Add function for route reflector.
	(neighbor_route_reflector_client): Likewise.
	(no_neighbor_route_reflector_client): Likewise.

	* bgpd.h (struct bgp ): Add cluster for route reflector.

	* bgp_route.c (show_ip_bgp_prefix_list): New command is added.

1999-04-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* Makefile.am (noinst_HEADERS): Add bgp_filter.h

	* bgp_aspath.c (aspath_undup): Function deleted.  aspath_free ()
	has same functionality.

	* bgp_filter.h: New file.

	* bgp_aspath.c (aspath_unintern): Rename aspath_free () to
	aspath_unintern ()
	(aspath_free): New function.

1999-04-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_aggregate): Function added.

	* bgp_aspath.h (aspath_aggregate): Prototype added.

	* bgp_aspath.c (aspath_empty_aspath): New argument
	gated_dont_eat_flag is added.

1999-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c: Add bgp_aggregate_ipv4 and bgp_aggregate_ipv6.

1999-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c (aggregate_address): Function added.

	* bgp_zebra.c (zebra_read): Change log to zlog.

1999-04-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* Makefile.am (noninst_HEADERS): Added for make dist.

1999-04-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* aspath_regex.c: Removed from distribution.

1999-04-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c (bgp_packet_attribute): Old draft-00 packet treatment
	bug fixed.

1999-04-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_add_left): Fix empty aspath bug.  Reported
	by kad@gibson.skif.net.

	* bgp_regex.[ch]: New file added.

	
1999-04-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_filter.c: New file added.

1999-04-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_empty_aspath): Change for peering with
	gated.

1999-03-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_main.c (main): Default loggin method changed from syslog to
	stdout.

1999-03-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c: Delete obsolete default attribute DEFUN.

1999-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.c: Make attribute structure put into attribute hash.

1999-03-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_view.c : Delete file.

1999-02-25  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_routemap.c (bgp_apply_route_map): Add prefix argument. 

	* bgp_route.h (struct bgp_info): Add bgp_info structre.  I'll
	replace bgp_route with this.

	* bgp_routemap.c (route_match_ip_address): Fix bug of passing non
	prefix value to access_list_apply(). 

	* bgpd.conf.sample: Add route-map sample.
	Delete obsolete default-attr statements.

	* bgp_packet.c: Use stream_fifo for packet queueing.

1999-02-24  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_add_left): add non empty aspath treatment.

	* bgp_main.c: include unistd.h for daemon().

	* bgp_route.c (nlri_process): add IPv6 table lookup.

	* bgp_attr.c (route_parse_ipv6): call nlri_process().
	(attr_make): Obsolete function attr_make deleted.

1999-02-22  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_add_left): change function name from
	aspath_add_leftmost_as().

1999-02-21  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c: add aspath_add_leftmost_as ().

1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>

	* syslog support added

1999-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c: DEFUN (neighbor_nexthop): deleted.
	DEFUN (neighbor_distribute_list): added.

1999-01-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h (struct peer ): header_buf and read_buf is removed.

	* bgp_peer.[ch]: Deleted.  Peer related functions are merged to
	bgpd.c

	* bgp_network.c: New file.
	* bgp_network.h: New file.

	* bgp_packet.h: New file.
	
1999-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c (bgp_keepalive_send): Now BGP keepalive packet is
	buffered.

1999-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_packet.c: New file.

1998-12-22  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_zebra.c (zebra_client): Use zebra_connect() in lib/client.c. 

	* `show ip bgp' bug fixed.
	* aspath_log (): Remove argument logfp.

1998-12-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.h: New file.

1998-12-15  Magnus Ahltorp <map@stacken.kth.se>

	* bgp_attr.c, bgp_community.h, bgp_dump.c, bgp_fsm.c, bgp_open.c
	bgp_peer.c, bgp_peer.h, bgp_route.c, bgp_route.h, bgp_view.c
	bgpd.c, bgpd.h, bgp_attr.c, bgp_community.h, bgp_dump.c,
	bgp_fsm.c, bgp_open.c, bgp_peer.c, bgp_peer.h: Prototype fixes.

1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (bgp_config_write): Delete vector v argument.

1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h: Delete annoying ld_[124]byte and st_[124]byte macros.

1998-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_radix.[ch]: removed.

1998-09-15  HEO SeonMeyong  <seirios@matrix.iri.co.jp>

	* bgp_main.c: ifdef HYDRANGEA -> ifdef KAME

1998-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c: delete nroute().

1998-05-19  Yamshita TAKAO  <jargon@lares.dti.ne.jp>

	* bgp_aspath.c: HAVE_CONFIG_H typo :-)
	* bgpd.h: Modify for compile on Solaris.
	* bgp_aspath.h: likewize
	* bgp_community.h: likewize
	* bgp_routemap.c: likewize

1998-05-18  Yamshita TAKAO  <jargon@lares.dti.ne.jp>

	* bgpd.h: Modify for compile on Solaris.
	* bgp_aspath.h: likewize

1998-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* routemap.[ch]: move to ../lib directory.

1998-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* routemap.c (route_map_apply): add function.

1998-05-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* routemap.h: add file.

	* bgp_peer.h (enum ): change PEER_{IBGP,EBGP} to BGP_PEER_{IBGP,EBGP}

1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* Makefile.am: sysconfdir_DATA added.

1998-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c: add `debug bgp fsm'
		      add `no debug bgp fsm'
		      add `show debug bgp'
	* bgp_open.c: File added.

1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* .cvsignore: File added.

1998-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_community.[ch]: File added.

1998-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd now use lib/thread.[ch].

1998-01-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.c (show_ip_bgp_neighbors): add 'show ip bgp neighbors' command.

	* bgpd.h (BGP_DEFAULT_START_TIMER): change from 1 to 30.

1997-12-30  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_vty.c: bgp_vty.c deleted.

	* bgpd.c (config_write_neighbor): add ebgp-multihop command.

1997-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_fsm.c: [-p bgp_port] and [-P vty_port] works

1997-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_vty.c: new file.

	* bgp_attr.c: add new logging system.

1997-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* Change all inet_addr call into inet_aton.

1997-11-10  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_radix.c: change radix_peer_delete

1997-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c: move AS_TOKEN_??? definition from header to c source.

1997-09-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_dump.c (bgp_log_route): add dump_attr function

1997-09-06  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (aspath_test): change AS_SET brace from '[' to '{'
	* bgp_dump.c (bgp_log_route): change logfile format.

1997-08-19  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_open.c (bgp_open): move bgp_open function from bgpd.c
	* bgp_attr.c (community_str2com): add community value generation
	* bgp_attr.h: add SAFI definition for BGP-4+

1997-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgpd.h: add BGP_OPEN_OPT_CAP for Capabilities Optional Parameter
	* Makefile.in: add bgp_open.o, delete bgp_loop.o
	* bgp_open.c: newfile which manages BGP Open message
	* bgp_loop.c: this file is merged with bgp_fsm.c
	* bgp_radix.c (radix_add): radix_add() now return route_t instead
	of int
	(bgp_sim): now we can read update & withdraw from file
	* bgp_route.c: add route_free() call into route_parse etc.

1997-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_radix.c: Radix code is completely rewritten. It has better
	memory treatment than old one.

1997-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_route.c: route_alloc for route struct allocation statistics.
	* bgpd.c (bgp_make_update): now we cann announce MED attribute.
	* bgp_aspath.c (aspath_print_all): change aspath_print_all output
	format.

1997-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_term.c (term_parse): add command : show asstat, show ashash
	* bgp_aspath.c: aspath_cmp bug fix
	(aspath_print_all): add aspath_print_all ();
	* bgp_peer.h: delete rlist element from struct peer.

1997-08-12  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c: completely rewritten.
	* bgp_aspath.h: completely rewritten.
	add AsPath, AsSegment structure
	add AS_SET treatment
	change Hash codes

1997-08-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_attr.h: add Attribute flags defines
	* bgp_route.c: delete rlist related functions
	* bgp_aspath.c (as_origin): add as_origin function
	(aspath_print): move from bgp_dump.c and add support of AS_SET
	change Hash related function names.

1997-08-08  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.h: add next entry, delete rlist entry from struct aspath

1997-08-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* bgp_aspath.c (as_sort): add function as_sort
	* bgp_aspath.h: add IBGP, EBGP

