2005-02-04 Paul Jakma <paul@dishone.st>

	* ripd.c: Untangle the construction of RIP auth data.
	  (rip_auth_prepare_str_send) new helper function, prepare
	  correct key string.
	  (rip_auth_simple_write) new helper, write out the
	  rip simple password auth psuedo-RTE.
	  (rip_auth_md5_ah_write) new helper, write out the
	  MD5 auth-header psuedo-RTE.
	  (rip_auth_header_write) new helper, write out correct
	  auth header data / psuedo-RTE.
	  (rip_auth_md5_set) rip out the memmove and writing of the
	  auth header psuedo-RTE. So that all that is left is to
	  write the trailing auth digest, and update digest offset
	  field in the original header.
	  (rip_write_rte) rip out writing of RIP header, writing of
	  simple auth data psuedo-RTE. Make it do what its name suggests,
	  write out actual RTEs.
	  (rip_output_process) remove the incorrect additional decrements 
	  of rtemax. Prepare the auth_str, which simple or MD5 auth will
	  need. Move write out of RIP header and auth data to inside the
	  loop. Adjust paramaters as required.

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

	* ripd.c: (rip_create_socket) Replace perror with zlog_err.

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

	* ripd.c: (rip_create_socket) Save errno before calling
	  ripd_privs.change.

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

	* ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.

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

	* ripd.c: (rip_read) Improve 2 error messages to show the source of
	  the packet when the lookup fails.

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>

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

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

	* rip_main.c: (sigint) Use zlog_notice for termination message.
	  (main) Add a startup announcement using zlog_notice.

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

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

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

	* ripd.c: Collapse redundant passing of various address structs,
          struct interface and struct connected as arguments to functions
          down to two key arguments, namely struct connected and, possibly,
          address of source/destination. Testing for RIPv1 would be useful.
          (rip_read) lookup struct connected for the received packet, pass
          it on.
        * rip_interface.c: With previous changes, we no longer have to tread
          carefully with struct connected, as it will always be there and
          valid.

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

	* ripd.c: (rip_update_interface) if connected->destination is NULL,
	  get the broadcast address with ipv4_broadcast_addr()
	* rip_interface.c: (rip_interface_multicast_set)
	  connected->destination may be NULL. Improve message if
	  setsockopt_multicast_ipv4 fails. Improve message if bind fails.
	  (rip_request_interface_send) If connected->destination is NULL,
	  get the broadcast address with ipv4_broadcast_addr().
	  (if_valid_neighbor) Handle PtP subnet addressing properly.
	  Speed up code by using prefix_match properly.

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

	* ripd_snmp.c: Remove defaults used to initialize smux connection to
	  snmpd. Connection is initialized only if smux peer is configured.

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

	* *.c: Make more strings const.

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

	* *.c: Fix compiler warnings: make strings const, signed -> unsigned
	  etc.

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

	* ripd.c: Fix compiler warning.

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

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

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

	* ripd.c: set receive buffer to a decent size, some systems have low
	  defaults. Problem noted and fix suggested by Stephan Schweizer
	  in [zebra 20967].

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

	* rip_interface.c: (rip_interface_multicast_set) get rid
	  of extraneous if_pointopoint arg. ifp is accessible via connected.
	  pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
	* ripd.c: (rip_send_packet) update call to
	  rip_interface_multicast_set
	* ripd.h: update rip_interface_multicast_set prototype
	
2004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>

	* ripd.c: (rip_distribute_update_all) distribute list hook
	  function pointer prototype requires struct prefix_list * arg.
	  (rip_distribute_update_all_wrapper) update to pass required arg,
	  NULL.
	 
2004-06-06 Paul Jakma <paul.jakma@sun.com>

	* ripd.h: Add define for the RIPv2 Authentication Data family
	  Move the auth type defines up to where other defines live.
	  Add RIP_AUTH_MD5_COMPAT_SIZE, for backwards compatible
	  md5->auth_len size. Add md5_auth_len field to struct
          rip_interface: (rip_interface_new) Init md5_auth_len to compatible 
          size.
          (ip_rip_authentication_mode_cmd) Extended to handle setting
          md5 auth-length. Appropriate aliases added.
          (no_ip_rip_authentication_mode_cmd) Reset md5_auth_len to
          compatible size.
          (rip_interface_config_write) Teach it about md5_auth_len.
          _always_ write out the auth-length, so that everyone will get
          the setting in their config file, and hence allow for a future
          change of default for md5_auth_len to be less painful - every md5
          user will have this setting in their config file.
          ripd.c: (rip_packet_dump) Change nasty hard coded constants to 
          symbolic defines. Change various tests of 'ntoh.(variable) ==
          constant' to test 'variable == ntoh.(constant)'. Clean up
          indentation on some long lines.
          (rip_auth_simple_password) ditto.
          (rip_auth_md5) ditto, also add length argument and sanity check 
          md5 data offset field. Sanity check md5 auth length, accept RFC
          or old-ripd/cisco lengths.
          (rip_auth_md5_set) as per (rip_packet_dump), also write out
          the configured md5 auth length for the interface (old-ripd or rfc)
          (rip_read) as per (rip_packet_dump)
          (rip_write_rte) ditto
          (rip_response_process) ditto
          (rip_write_rte) ditto
          
2004-06-04 JJ Ludman <jacques.ludman@sun.com>

	* ripd.c: Interoperability fix. Correct value for MD5 auth length
	  is 16. Accept packets with this set to >= 16, and set to 16
          ourselves.

2004-05-31 Sowmini Varadhan <sowmini.varadhan@sun.com>

	* ripd.c: Fixup compile warnings
	* rip_routemap.c: Ditto
	
2004-05-08 Paul Jakma <paul@dishone.st>

	* rip_zebra.c: sync with zclient changes.
	* rip_interface.c: ditto.

2004-05-05 Anthony.Golia@morganstanley.com

	* ripd.c: (rip_update_jitter) Bound jitter to a more sensible
	  value, eg 1/4 of update time.
	  
2004-05-03 Paul Jakma <paul@dishone.st>

	* ripd.c: (rip_rte_process) fix typo in merge of previous patch
	  and run function through indent.
	
2004-03-19 Jean-Yves Simon <lethalwp@tiscali.be>

	* ripd.c: (rip_rte_process) make ripd also check on 
	  administrative distance of his own links to update routes.

2004-03-18 sowmini.varadhan@sun.com

	* ripd.c: rip_send_packet can get null connected address when
	  called in response to a unicast rip-request. Handle correctly.

2004-03-03 Krzysztof Oledzki <oleq@ans.pl>

	* ripd.c: fix "show ip rip" and per interface rip version selection.

2004-01-23 sowmini.varadhan@sun.com

	* rip_interface.c: obsolete unbind code in
  	rip_interface_multicast_set, and instead do the more portable
  	(though slower) method of creating a socket for each outgoing packet
  	and binding the source address on the new socket.
        * rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
        source address is determined by the caller of rip_request_send for
        ripv1 packets and non-multicast interfaces (rip_request_send loops
        over all connected address in all other cases).
        * rip_send_packet: don't send packets with source set to
        ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;

2003-06-07 Andrew J. Schorr <aschorr@telemetry-investments.com>

	* Allow ripd to receive RIPv1
	* add default as valid param to passive-interface command

2003-05-25 Vincent Jardin <vjardin@wanadoo.fr>

	* 6Wind patch merge.

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

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

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

	* zebra-0.93 released.

2002-06-30  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>

	* ripd.c (rip_output_process): When outgoing interface is same as
	next hop interface, announce RIPv2 next hop otherwise set next hop
	to 0.  Revert previous change then take 6WIND way.

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

	* ripd.c: RIP enabled interface's route is advertised by default.

2001-08-28  NOGUCHI Kay <kay@v6.access.co.jp>

	* rip_snmp.c (rip_ifaddr_delete): Add route_node_lookup() return
	value check.

	* rip_interface.c (rip_multicast_leave): Fix bug of multiple IP
	address on one interface multicast join/leave bug.

2001-08-26  NOGUCHI Kay <kay@v6.access.co.jp>

	* rip_interface.c (no_rip_passive_interface): Add NO_STR.

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

	* zebra-0.92a released.

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

	* zebra-0.92 released.

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

	* rip_routemap.c (route_match_ip_address_prefix_list): Add match
	ip next-hop prefix-list WORD.

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

	* rip_interface.c (rip_passive_interface_clean): Call
	rip_passive_interface_apply_all.

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

	* ripd.c (rip_response_process): Multicast address nexthop check
	is moved from rip_nexthop_check.

2001-02-08  Matthew Grant <grantma@anathoth.gen.nz>

	* rip_interface.c (ipv4_multicast_join): Use
	setsockopt_multicast_ipv4.
	(ipv4_multicast_leave): Likewise.
	(rip_if_ipv4_address_check): Interface which has IPv4 address can
	be enabled.

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

	* rip_interface.c (rip_interface_delete): To support pseudo
	interface do not free interface structure.
	* ripd.c (rip_output_process): If output interface is in simple
	password authentication mode, we need space for authentication
	data.

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

	* ripd.c (rip_nexthop_check): Fix multicast address nexthop check.

	* zebra-0.91 is released.

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

	* ripd.c (show_ip_rip): Show metric infinity route's timeout.
	(rip_rte_process): If current route is metric infinity, route is
	replaced with received rte.
	(rip_redistribute_delete): When redistribute route is deleted,
	perform poisoned reverse.
	(rip_redistribute_withdraw): Likewise.

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

	* ripd.c (rip_response_process): RIPv2 routing table entry with
	non directly reachable nexthop was dropped.  The code is changed
	to treat it as 0.0.0.0 nexthop.
	(rip_destination_check): Check net 0 address destination.
	(rip_nexthop_check): New function for checking nexthop address
	validity.

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

	* ripd.c (rip_request_process): Triggered update only send changed
	route.

	* rip_interface.c: Delete RIP_API part until new implementation
	comes out.

	* rip_snmp.: Likewise.

	* rip_zebra.c: Likewise.

	* ripd.c: Likewise. 

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

	* rip_interface.c (rip_if_init): Remove HAVE_IF_PSEUDO part.

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

	* zebra-0.90 is released.

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

	* ripd.h (RIP_VTYSH_PATH): Change "/tmp/ripd" to "/tmp/.ripd".

2000-12-25  David Lipovkov <davidl@nbase.co.il>

	* ripd.c (rip_rte_process): When a route is in garbage collection
	process (invalid with metric 16) and a router receives the same
	route with valid metric then route was not installed into zebra
	rib, but only into ripd rib. Moreover , it will never get into
	zebra rib, because ripd wrongly assumes it's already there.
	(rip_redistribute_add): When doing redistribute into rip other
	route (e.g. connected) and the same route exists in ripd rib we
	changed it in place - bug. Now we don't forget to remove old route
	from zebra.
	(rip_timeout): When removing routes from zebra I made sure that we
	remove route with the metric we have in zebra and not the new
	one. It doesn't make a difference now,but could be significant
	when multipath support is done.

2000-12-25  David Lipovkov <davidl@nbase.co.il>

	* rip_zebra.c (rip_metric_unset): Fix bug of metric value unset.

2000-11-25  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>

	* ripd.c (rip_request_process): Check passive flag of the
	interface.

2000-11-23  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>

	* rip_interface.c (rip_multicast_join): When IP_ADD_MEMBERSHIP
	failed do not set runnning flag to the interface.

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

	* ripd.c (rip_output_process): Memory leak related classfull
	network generation is fixed.

2000-11-16  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>

	* rip_interface.c (if_check_address): Obsolete pointopoint address
	check is removed.

2000-11-02  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>

	* rip_interface.c (if_check_address): Add pointopoint address
	check.
	(rip_interface_up): Add check for passive interface when interface
	goes up.

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

	* rip_snmp.c: rip_oid and ripd_oid are used in smux_open after it
	is registered.  So those variables must be static.

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

	* rip_interface.c: Change to "no ip rip (send|receive)" command
	accept version number argument.

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

	* rip_routemap.c (route_set_ip_nexthop_compile): Change "match ip
	next-hop" from IP address to access-list name.

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

	* rip_peer.c: Change ot use linklist.c instaed of newlist.c.

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

	* rip_offset.c: Change to use linklist.c instead of newlist.c.

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

	* zebra-0.89 is released.

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

	* rip_routemap.c (match_ip_nexthop): Add next-hop format check.

2000-09-18  David Lipovkov <dlipovkov@OpticalAccess.com>

	* rip_interface.c (ripd_api_get_if_rx_version): Corrects rip SNMP
	and rip API functions dealing with rip version.

	* rip_snmp.c (Status_Valid): SNMPv2-TC TEXTUAL-CONVENTION.

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

	* rip_snmp.c (rip2IfLookup): Use rip_ifaddr_lookup_next() instead
	of rip_if_lookup_next().

	* rip_interface.c (rip_enable_network_lookup): Interface enable
	check by interface's address with /32 prefix.

	* ripd.c (rip_read): When RIP is configured with authentication
	and no authentication in incoming packet, drop the packet.

	* rip_interface.c (rip_interface_reset): RIP_AUTH_SIMPLE_PASSWORD
	is default mode of authentication.
	(rip_interface_new): Likewise.
	(no_ip_rip_authentication_mode): Likewise.

	* ripd.c (rip_read): Likewise.

2000-09-10  David Lipovkov <davidl@nbase.co.il>

	* rip_snmp.c: Set ASN_INTEGER v->type where it is needed.

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

	* ripd.c (rip_auth_simple_password): Simple password
	authentication using key-chain.
	(rip_write_rte): Likewise.

	* rip_interface.c (ip_rip_authentication_key_chain): Add check for
	authentication string configuration.

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

	* ripd.c (rip_write_rte): Add check for ri->auth_str.

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

	* ripd_api.h: New file is added.

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

	* ripd.c (rip_rte_process): rip_route_process() is renamed to
	rip_rte_process() to clarify meanings of the function.
	rip_route_process() is newly added to process RIP route selection.

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

	* ripd.c (rip_incoming_filter): Extract incoming filter code to
	function from rip_route_process(). Add check for all interface
	filter.
	(rip_outgoing_filter): Extract incoming filter code to function
	from rip_output_process().  Add check for all interface filter.

	* rip_zebra.c (rip_redistribute_clean): Reset redistribute status
	when "no router rip" is performed.

	* rip_interface.c (rip_interface_clean): Reset interface's RIP
	enable status.

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

	* ripd.c (rip_route_process): When metric infinity is received the
	route is removed from service immediately.
	(rip_timeout): Likewise.
	(rip_garbage_collect): Do not delete route in garbage collection.
	(rip_output_process): Check metric_out exceed metric infinity.

	* zebra-0.88 is released.

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

	* ripd.c (rip_distance_apply): Unlock node when there is matched
	node.

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

	* rip_routemap.c (match_ip_nexthop): Add check for IP address
	validness.
	(no_set_metric): Add new ALIAS.

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

	* ripd.h (struct rip ): Add distance.

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

	* rip_zebra.c (rip_zebra_ipv4_add): Use new Zebra api to register
	routes.  Pass RIP metric value to zebra.

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

	* rip_main.c (main): Make struct thread thread from global
	variable to local variable in main.

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

	* ripd.c (rip_packet_dump): Add MD5 authentication dump function.
	(rip_auth_md5): RIP MD5 authentication packet receive works.

2000-08-02  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_if_init): Install interface "pseudo"
	commands.
	(rip_interface_delete): Do not call if_delete() when interface is
	pseudo interface.

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

	* rip_interface.c (ip_rip_authentication_mode): "ip rip
	authentication mode (md5|text)" is added.
	(ip_rip_authentication_key_chain): "ip rip authentication
	key-chain KEY-CHAIN" is added.
	(rip_interface_clean): Clean all interface configuration.
	(rip_interface_reset): Reset all interface configuration.
	(rip_clean_network): Clean rip_enable_network.

	* ripd.h (struct rip_interface): Add key_chain member.

	* ripd.c: Include md5-gnu.h.

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

	* ripd.h (RIP_NO_AUTH): Change RIP_NO_AUTH value from 1 to 0.

	* ripd.c (rip_authentication): Use RIP_AUTH_SIMPLE_PASSWORD
	instead of raw value 2.
	(rip_write_rte): Likewise.
	(rip_write_rte): Check ri->auth_type instead of ri->auth_str.

2000-07-30  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_if_down): Do not delete ZEBRA_ROUTE_KERNEL
	route.

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

	* ripd.c (rip_update_process): Add "passive-interface" command.

	* ripd.h (struct rip_interface): Add passive member to struct
	rip_interface.

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

	* rip_interface.c (rip_if_init): Multiple RIP routes for one
	prefix change.  The codes are enclosed by #ifdef NEW_RIP_TABLE.

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

	* rip_interface.c (rip_if_init): Use install_default() for
	INTERFACE_NODE.

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

	* ripd.c: First update timer will be invoked in two seconds.

2000-07-09  Jochen Friedrich <jochen@scram.de>

	* rip_snmp.c: Local function definitions to static.  Add INTEGER
	ASN_INTEGER and TIMETICKS ASN_TIMETICKS definition.
	(rip2PeerLookup): Peer with domain lookup implemented.
	(rip2PeerTable): Temporary disable RIP2PEERLASTUPDATE value
	support due to unknown SNMP agent startup time.

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

	* ripd.h: Sweep obsolete definitions.

	* rip_interface.c (rip_split_horizon): Add "ip split-horizon"
	command.

	* ripd.c (rip_output_process): Remove split_horizon argument.
	(rip_update_process): Likewise.

	* ripd.h (struct rip_interface): Add split_horizon flag to struct
	rip_interface.

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

	* ripd.c (rip_version): Change VERSION to <1-2>.
	Add "no version" command.

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

	* rip_zebra.c (rip_redistribute_type_metric): "redistribute TYPE
	metric <0-16>" command is added.

	* rip_routemap.c (route_set_metric): Set metric_set when metric is
	modified.

	* ripd.h (struct rip_info): To check route-map set metric or not,
	new member metric_set is added to struct rip_info.

	* ripd.c (rip_route_process): Move metric handling code from
	rip_response_process() to rip_route_process().
	(rip_output_process): Set output offset-list metric.

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

	* rip_offset.c (rip_offset_list): New file for offset-list.

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

	* ripd.h (struct rip ): Add default_metric.

	* ripd.c (rip_default_metric): "default-metric <1-16>" command is
	added.
	(config_write_rip): Change configuration order.
	
	* rip_zebra.c: Fix help strings.

2000-07-02  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_if_init): Add IF_DELETE_HOOK.

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

	* ripd.c (rip_output_process): If specified route-map does not
	exist, it treated as deny all.

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

	* rip_routemap.c (rip_route_map_init): Call rip_route_map_update
	when route-map is deleted.

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

	* rip_routemap.c (set_metric): For consistency with bgpd's set
	metric, value range is set to <0-4294967295>.
	
2000-06-28  David Lipovkov <davidl@nbase.co.il>

	* rip_routemap.c (rip_route_map_update): Add check for rip is
	enabled or not for avoid core dump.

	* rip_debug.c (debug_rip_packet_direct): Fix bug of setting
	rip_debug_packet flag.

2000-06-13  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_interface_delete): All work is done in
	rip_if_down().

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

	* ripd.c (rip_redistribute_delete): Fix bug of missing
	route_unlock_node() when redistribute route is not found.

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

	* rip_debug.c (rip_debug_init): Disable show debugging in
	VIEW_NODE like other protocol daemon.

	* rip_routemap.c: Change command argument to more comprehensive.

	METRIC       -> <0-16>
	IFNAME       -> WORD
	IP_ADDR      -> A.B.C.D
	ACCSESS_LIST -> WORD

2000-06-05  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_interface_delete): Delete all routes
	include static and kernel through the interface , because even if
	the interface is added again there is no guarantee that it will
	get the same ifindex as before.

2000-05-31  Akihirof Mizutani <mizutani@dml.com>

	* rip_debug.c: Fix rip debug help string.

2000-04-27  Mirko Karanovic <mkaranov@torsel.alcatel.com>

	* rip_interface.c (rip_interface_down): Remove interface from
	multicast group when interface goes down.

2000-04-03  David Lipovkov <davidl@nbase.co.il>

	* rip_interface.c (rip_interface_down): Implemented rip functions
	for interface up/down events: rip_interface_up() and
	rip_interface_down()

2000-03-16  David Lipovkov <davidl@nbase.co.il>

	* rip_zebra.c (rip_zclient_init): Added rip functions for
	interface up/down events.

2000-02-15  Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>

	* ripd.c (rip_write_rte): "set metic" in route-map has no effect
	for RIPv1 in ripd.  It worked fine for RIPv2.

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

	* ripd.c (show_ip_protocols_rip): Fix bug of "show ip protocls"
	mis-display RIP version.

	* ripd.h (struct rip_peer): Add timeout thread to rip_peer
	structure.

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

	* rip_peer.c: Add new file for supporting RIP peer.

1999-12-26  David Lipovkov <davidl@nbase.co.il>

	* ripd.c (rip_authentication): RIP authantication string is 16
	bytes long.

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

	* ripd.c (rip_read): Add check for minimum packet length.
	Authentication check is moved from rip_process_response() to
	rip_read().  Patch from David Lipovkov <davidl@nbase.co.il> is
	applied then add rte number check by Kunihiro Ishiguro
	<kunihiro@zebra.org>.

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

	* ripd.c (rip_response_process): In case of packet is RIPv2 and
	network is non zero and netmask is zero, apply netmask rule as
	same as RIPv1.

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

	* ripd.c (rip_timers): Fix bug of timers basic argument format.

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

	* rip_snmp.c (rip2IfConfAddress): Forgot to include
	RIP2IFCONFDOMAIN.

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

	* ripd.h (struct rip_peer): New structure added.

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

	* rip_zebra.c (rip_zebra_ipv4_add): Increment
	rip_global_route_changes when route change occur.
	(rip_zebra_ipv4_delete): Likewise.

	* ripd.c (rip_request_process): Increment rip_global_queries when
	reply to the query is sent.

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

	* rip_debug.c (rip_debug_reset): Reset function added.

	* ripd.c (rip_update_process): Logging bug is fixed. 

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

	* ripd.c (config_write_rip): Add config_write_distribute() call.

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

	* ripd.c (rip_distribute_update): Fix bug of access-list
	prefix-list updates.

1999-09-10  VOP <vop@unity.net>

	* rip_zebra.c: Add redistribute route-map feature.

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

	* ripd.c (rip_response_process): Add check for given prefix is
	given mask applied one.

1999-09-03  VOP <vop@unity.net>

	* rip_interface.c (rip_interface_multicast_set): Bug fix about
	setting multicast interface.

1999-09-02  VOP <vop@unity.net>

	* rip_routemap.c: New file added.

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

	* ripd.c (show_ip_protocols_rip): Show next update time.
	(show_ip_protocols_rip): Show redistribute information.

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

	* RIPv2-MIB.txt: New file added.

	* rip_snmp.c: New file added.

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

	* rip_interface.c (ip_rip_authentication_string): RIPv2
	authentication command is added.

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

	* rip_interface.c (rip_interface_multicast_set): Process of
	setting IP_MULTICAST_IF on specific interface.

	* ripd.c (rip_read): Add packet size check.

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

	* ripd.c (rip_request_process): Fill in RIP_METRIC_INFINITY with
	network byte order using htonl ().
	(rip_response_process): Pass host byte order address to IN_CLASSC
	and IN_CLASSB macro.

1999-08-08  davidm@nbase.co.il (David Mozes)

	* rip_zebra.c (rip_zebra_read_ipv4): Fix split horizon problem.

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

	* ripd.c (rip_timer_set): Function added.

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

	* rip_debug.c: New file added.
	rip_debug.h: New file added.

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

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

1999-06-01  David Luyer <luyer@ucs.uwa.edu.au>

	* ripd.c (rip_process_route): Add support for RIP version 1.

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

	* rip_zebra.c: Change to use lib/zclient.[ch].

1999-05-20  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>

	* ripd.c (rip_add_route): Change the existance route's metric check
          to the condition specified by RFC2453. 
	
1999-05-17  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>

	* ripd.c (rip_process_route): Add the if metric to the route metric.

	* ripd.c (rip_add_route): Deleted add if metric to the route.

1999-05-16  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>

	* rip_interface.c (if_valid_neighbor): New function.

	* ripd.c (rip_process_route): Added check whether the datagram
	is from a valid neighbor.
	
1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* ripd.c (rip_process_route): Set interface pointer to rinfo.

1999-05-15  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>

	* ripd.c (rip_check_address): Unicast and not net 0 or 127 check
	added.

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

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

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

	* ripd.c (rip_add_route): Fix previous route_unlock_node() chenge.

	* rip_main.c (main): Change default zlog output to ZLOG_STDOUT for
	debugging.

1999-05-09  Patrick Koppen <koppen@rhrk.uni-kl.de>

	* rip_interface.c (rip_request): Fix old semantics for fetching
	connected address.

	* ripd.c (rip_add_route): Update timer when the route is updated.

1999-05-09  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>

	* rip_zebra.c (struct zebra): Add ridist_static, ridist_connect,
	redist_rip, redist_ripng.  

	* rip_zebra.c (zebra_create): Updated for current zebra method.

	* ripd.c (rip_add_route): Add missing route_unlock_node().

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

	* ripd.c (rip_add_route): Add metric check.  Reported by Carlos
	Alberto Barcenilla <barce@frlp.utn.edu.ar>.

1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>

	* syslog support added

1998-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* ripd.c (rip_announce_func): Apply new lib functions.

1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* ripd.c (config_write_rip): Delete vector v argument.
	* rip_zebra.c (config_write_zebra): Likewise.
	* rip_interface.c (interface_config_write): Likewise.

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

	* rip_announce.c (rip_rib_close): When ripd terminates delete all
	added route.

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

	* rip_interface.c: return read packet size.

1998-05-18  Yamshita TAKAO  <jargon@lares.dti.ne.jp>

	* ripd.h: Modify for compile on Solaris.

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

	* ripd.c: DEFUN function return CMD_SUCCESS.
		  change xmalloc to XMALLOC macro.
	
1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* rip_main.c: change CONFDIR to SYSCONFDIR.

1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* .cvsignore: added.

1998-02-04  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* rip_interface.c (config_write_interface): correct ADVERTISE spell.

	* rip_main.c (main): add usage() and make cleanup.

1998-01-05  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* ripd.c (rip_version): add rip version command.

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

	* rip_interface.c (zebra_get_interface): added to get
	interface's information.

	* ChangeLog: create.
