2006-01-30 Alain Ritoux <alain.ritoux@6wind.com>

        * ripd.c: correct bug that allowed route learnt through RIP to take
	  precedence over connectd routes

2006-01-19 Paul Jakma <paul.jakma@sun.com>

        * ripd.c: (main) return from main, not exit, cause it annoys SOS.

2006-01-17 Paul Jakma <paul.jakma@sun.com>

	* ripd.c: (rip_auth_md5) remove pdigest, not needed.
	  Use a local buffer for the auth_str, where it can be properly 
	  nul padded. Do so, hence fixing MD5 authentication.  
	  Key looked up via key ring should be used in preference to 
	  the RIPv1 simple password, not other way around.
	  No need to copy around digests, we can reference them
	  directly.
	  The auth_len received can't be trusted, some implementations
	  lie (e.g. older ripd).
	  (rip_auth_md5_ah_write) rename len local variable to doff
	  to be consistent with other functions.
	  (rip_auth_header_write) add the missing return.
	  (rip_auth_md5_set) use the proper constructs to access stream.
	  
2005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* ripd.c: (rip_response_process) Instead of calling
	  rip_interface.c:if_valid_neighbor(), call the equivalent
	  library function if_lookup_address().
	* rip_interface.c: (if_valid_neighbor) Remove function, since it is
	  essentially equivalent to the if_lookup_address() library function.
	* ripd.h: (if_valid_neighbor) Remove function declaration.

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

	* Makefile.am: Add rip_interface.h, or else it doesn't get
	  included in dists.

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

	* (general) static/extern functions and definitions.
	* rip_interface.h: new file, export the public functions from
	  rip_interface.c
	* ripd.c: Update couple more functions to specify void
	  explicitely.

2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>

	* ripd.c: rip_create_socket() for each packet, it does not bind to the
	  proper interfaces because we forget to use the from address when
	  it is specified.

2005-10-06 Alain Ritoux <alain.ritoux@6wind.com>

	* rip_interface.c: Now the command "no ip rip split-horizon
	  poisoned-reverse" just inhibates the poisoned-reverse effects
	  but keep spli-horizon activ.

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

	* rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded
	  table str[]. Replace str[] with calls to new library function
	  zebra_route_string().
	* ripd.c: Remove local hard-coded table route_info[].
	  (show_ip_rip) Replace uses of str[] with calls to new library
	  functions zebra_route_char and zebra_route_string.

2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>

	* rip_snmp.c: rip2IfConfReceive() sends values in conformance
	  with RFC. Also PeerDomain is now set to a STRING type.
	* ripd.h: rip_redistribute_add() API includes metric and distance
	  added field external_metric in routes.
	* ripd.c: rip_redistribute_add() API i.e. stores metric and distance
      Now allows a RIP-route to overcome a redistributed route coming
	  from a protocol with worse (higher) administrative distance
	  Metrics from redistribution are shown in show ip rip
	* rip_zebra.c: adapt to the rip_redistribute_add() API, i.e.
	  provide distance and metric
	* rip_interface.c: adapt to the rip_redistribute_add() API
	* rip_routemap.c: no RMAP_COMPILE_ERROR on (metric > 16) usage
	  rather a CMD_WARNING, because set metric ius shared with other
	  protocols using larger values (such as OSPF)
	  The match metric action takes first external metric if present
      (from redistribution) then RIP metric.

2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>

	* ripd.c: use new md5 API

2005-08-16 Paul Jakma <paul.jakma@sun.com>

	* ripd.c: (general) Fix previous commit, broke multicast bind and
	  hence setting of source port, which broke communication with
	  non-borken ripd. Fix removes more stuff from rip_interface.c
	  than it adds to ripd.c ;)
	  (rip_create_socket) the to argument really is a from argument,
	  rename it. Set the source port to RIP port unconditionally, it's
	  required.
	  (rip_send_packet) Set from address correctly for multicast.
	  (rip_output_process) trivial: num can be BSS specified, rather
	  than in body.
	* rip_interface.c: (rip_interface_multicast_set) strip out
	  redundant stuff related to bind, which rip_create_socket does.
	  Just make it set the multicast socket option, as per the
	  interface concerned, no more.

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

	* ripd.c: (rip_create_socket) move it up so rip_send_packet
	  can use it too. Make it static. Remove the getservbyname stuff,
	  as RFC2453 3.9.2 says non-RIP port messages should be discarded,
	  quagga doesnt accept them, no need to lookup port.
	  Take a 'to' argument, if socket should be bound to something else.
	  setsockopt_so_recvbuf might need privs, move it to the raised
	  privileges section.
	  dont forget to close the socket if bind fails.
	  (rip_send_packet) use strncpy, just in case (address is under
	  our control anyway, but still).
	  dont duplicate rip_create_socket - just use it.
	  (rip_create) rip_create_socket takes an argument now, modify.
	  
2005-06-01 Paul Jakma <paul.jakma@sun.com>

	* rip_interface.c: Fix authentication, no-auth impossible to specify
	  (rip_interface_new) default to RIP_NO_AUTH
	  (rip_interface_reset) ditto
	  (rip_interface_config_write) write out config for simple
	  
2005-05-29 Paul Jakma <paul@dishone.st>

	* ripd.c: (rip_output_process) fix error which crept in my
	  previous rip auth untanglement commit - it had become impossible
	  to not have authentication (even for v1).
	
2005-05-28 Hasso Tepper <hasso at quagga.net>

	* rip_routemap.c: Fix set_metric_addsub_cmd help, it's not about BGP
	  metric.

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

	* rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
	  address as nexthop in routemap.

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

	* rip_routemap.c: Make "match interface" routemap command match both -
	  in and out interfaces.

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

	* rip_interface.c (rip_interface_add): Need to call
	  rip_passive_interface_apply (was already calling it in
	  rip_interface_up).

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

	* rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
	  rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
	  from zclient->sock to zclient.

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

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

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.
