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

	* ospf6_asbr.c: (ospf6_asbr_redistribute_add) Fix sense of testing
	  of route_map_apply return code, it can return many things other
	  than RMAP_MATCH which do not indicate DENY. Should test explicitly
	  for equality to RMAP_DENYMATCH instead.

2005-06-24 Harald Welte <laforge@gnumonks.org>

	* ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)
	  support and area import and export lists support.

2005-06-24 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* ospf6_message.c: Changed to be insensitive to changes of neighbors'
	  IP source address in the OSPF packets. It was sometimes problematic
	  in actual operation (needed some operational cost: restarting
	  all-neighbor routers when I/F NIC was changed). Due to this change,
	  a previously safe case, attaching multiple interface to the same
	  link will now be dengerous and will not work. Remedy to that should
	  be applied later.

2005-06-24 Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_interface.c: fix the way inactivity_timer is called. Because
	  inactivity_timer() deletes the neighbor from the neighbor_list, it
	  cannot be called by thread_execute() from inner side of the
	  neighbor_list for-loop.

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

	* ospf6d.c: No need for double ';'. Fixes parsing "show ipv6 ospf6
	  database ..." commands for vtysh by extract.pl. Remove duplicate
	  install_element calls.

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

	* ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):
	  Change 2nd arg to zebra_redistribute_send from zclient->sock
	  to zclient.

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

	* (global) Fix up list loops to match changes in lib/linklist,
	  and some basic auditing of usage.
	* ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single
	  scan of the area list, rather than scanning all areas first for
	  INTER_ROUTER and then again for INTER_NETWORK. According to
	  16.2, the scan should be area specific anyway, and further
	  ospf6d does not seem to implement 16.3 anyway.

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

	* ospf6_interface.[ch]: (ospf6_interface_lookup_by_name) Remove unused
	  function.

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

	* ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function
	  was commented out.  But this is not safe: we should at least update
	  the ifindex when the interface is deleted.  So the new version
	  updates the interface status and sets ifp->ifindex to
	  IFINDEX_INTERNAL.
	  (ospf6_zebra_route_update) Use if_indextoname properly.

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

	* ospf6_route.c: (ospf6_route_show, ospf6_route_show_detail) Protect
	  against the possibility that the string returned by if_indextoname
	  may not terminate with '\0'.

2005-03-02 Vincent Jardin <Vincent.Jardin@6wind.com>

	* ospf6_zebra.c: Fix core dump when router-id is provided with
	  an empty ospf6d.conf file (no context router ospf6) because
	  ospf6_create has not been called yet.

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

	* ospf6_asbr.c: Add "hsls" to the zroute_name const char array.

2004-12-24 Hasso Tepper <hasso at quagga.net>

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

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

	* ospf6_main.c: (main) The 2nd argument to openzlog has been removed.
	  Note that stdout logging will no longer be enabled by default when
	  not running as a daemon.

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

	* ospf6_main.c: (sigint,sigterm) Use zlog_notice for termination
	  message.
	  (main) Remove commented-out call to pid_output_lock (which should
	  never be called other than from inside pid_output).  And use
	  zlog_notice to print the startup message, which now includes
	  the vty port.

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

	* ospf6_snmp.c: Fix compile: listnode -> struct listnode *.

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

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

2004-11-05 Phil Spagnolo <phillip.a.spagnolo@boeing.com>
       * ospf6_flood.c:  When adding a thread to retransmit an lsa after 
    rxmt_interval, the ospf6d used thread_add_event().  However, 
    thread_add_event() executes immediately and ignores the delay parameter.  
    This was causing unnecesary unicast LSU sends.  Adding the thread has 
    been changed to use thread_add_timer() which will expire after delay.  
    After the fix results appear consistent with expectation.

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

	* ospf6_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>

	* osp6_top.c, ospf6_top.h: Better handling for router-id. If we use
	  common one, don't output it into configuration - only statically
	  configured one.

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

	* Makefile.am: fix listing of ospf_snmp.c in noinst_HEADERS
	* ospf6_route.c: Add const qualifier to various char arrays of
          constants. signed/unsigned fixes.
          (ospf6_linkstate_table_show) argv is const
        * ospf6_snmp.c: listnode typedef is dead.
          (ospf6_snmp_init) Take struct thread_master arg, needed for
          smux_init.
        * ospf6_snmp.h: update ospf6_snmp_init declaration.
        * ospf6d.c: (ospf6_init) add const qualifier to sargv, pass master
          to ospf_snmp6_init.
	* ospf6_asbr.c: const char update.
	* ospf6_interface.c: ditto, plus signed/unsigned fixes.
	  (ipv6_ospf6_cost) Check whether cost fits in u_int32_t and use
          strtoul.
	* ospf6_intra.c: const char update. Parenthesise expression.
	* ospf6_lsa.c: signed/unsigned and const char updates.
	* ospf6_proto.c: ditto.
	* ospf6_message.c: ditto.
	* ospf6_lsdb.c: signed/unsigned update.
	* ospf6_main.c: const char update.
	* ospf6_neighbor.c: ditto.
	* ospf6_spf.c: ditto.
	* ospf6_top.c: ditto.
	
2004-10-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_snmp.c: add partial support for SNMP
	(i.e. ospfv3AreaLsdbTable).
	* OSPFv3-MIB.txt: Net-SNMP translate Unsigned32 range
	(0..'FFFFFFFF'h) incorrectly to (0..-1). Those parts for
	Unsigned32 range are changed to (0..4294967295).
	Also, doubtful 'not-accessible's are changed to read-only.

2004-10-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_snmp.[ch], OSPFV3-MIB.txt: start supporting SNMP.
	it follows draft-ietf-ospf-ospfv3-mib-08.txt, but change
	OSPFv3 tree to {experimental 102} based on
	http://www.iana.org/assignments/smi-numbers:
	Prefix: iso.org.dod.internet.experimental (1.3.6.1.3.)
	   102   OSPFv3    OSPF for IPv6   [Joyal]

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

	* ospf6_zebra.c: Use router id from zebra daemon if it wasn't set in
	configuration.

2004-09-25  Hasso Tepper  <hasso at estpak.ee>

	* ospf6_asbr.c, ospf6_lsa.c, ospf6_proto.c, ospf6_proto.h: Fix
	compiler warnings.

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

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

2004-09-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_intra.c, ospf6_route.[ch]: try to fix assertion failure
	in brouter's route_remove
	* ospf6d.h: version 0.9.7o

2004-09-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: route_count_assert bug fix
	* ospf6d.h: version 0.9.7n

2004-09-03  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_area.c, ospf6_route.c, ospf6_top.c, ospf6d.c:
	"show intra-route" function and "show SPF result" function is
	changed.
	* ospf6_neighbor.c: Changed to update stub intra-prefix origination
	when it is not DR.
	* ospf6_route.h: resolv conflict between best flag and
	active-summary flag.
	* ospf6d.h: version 0.9.7m

2004-09-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: E-bit check in examining AS-External-LSA
	* ospf6_abr.c: E-bit set in receiving Inter-Area-Router-LSA

2004-09-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.[ch]: Logging LSAs of particular type is added.
	lsa_handler is now using vector in order to adjust
	existing LSA modules.
	* ospf6d.h: version 0.9.7l

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

	* ospf6_main.c: Modify for sigevents.

2004-08-26  Hasso Tepper  <hasso@estpak.ee>

	* ospf6_interface.c, ospf6_top.c, ospf6d.c: for vtysh.

2004-08-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: Bug in ASBR check fixed.
	* ospf6d.h: version 0.9.7k

2004-08-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: Bug in AS-External Origination fixed.
	* ospf6d.h: version 0.9.7j

2004-08-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.c: Area support almost done. (almost ! ;p)
	* ospf6d.h: version 0.9.7i

2004-08-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.c: Bug cause BadLSReq is fixed.
	* ospf6_abr.c: Border Router check.
	* ospf6d.h: version 0.9.7h

2004-08-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_area.[ch], ospf6_abr.[ch]: area range,
	border-routers, Inter-Area-Router-LSA origination
	* ospf6d.h: version 0.9.7g

2004-08-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.[c,h]: LSA refreshing is changed and cleaned up.
	* ospf6d.h: version 0.9.7f

2004-08-01  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_abr.[ch]: add files for abr function.
	* *.c: VTY_NEWLINE -> VNL
	* ospf6d.h: version 0.9.7e
	  show database functions are rewritten.

2004-07-23  Hasso Tepper  <hasso@estpak.ee>

	* ospf6_interface.c, ospf6_zebra.c: use ifp->mtu6 instead of
	  ifp->mtu.

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

	* ospf6_main.c: Delete LOG_PERROR, not portable.
	* ospf6_network.c: (ospf6_set_pktinfo) use setsockopt_ipv6_pktinfo

2004-07-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.c, ospf6_interface.c: add a command to configure
	ospf6 ifmtu on a interface.
	* ospf6d.h: version 0.9.7d

2004-05-18  Hasso Tepper <hasso@estpak.ee>

	* *.*: Merge rewritten ospf6d from Zebra repository.
	* ospf6_network.c, ospf6_main.c: Merged privs stuff back in.
	* ospf6_zebra.c: Sync back to zclient changes.
	* ospf6_asbr.c: Added isis to the routings list.
	* ospf6_main.c: "version.h" -> <lib/version.h>

2004-05-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_flood.[ch], ospf6_lsa.[ch], ospf6_lsdb.h, ospf6_message.c
	ospf6_neighbor.c: Fix crash bug and change the way to count
        how many neighbors include paticular LSA on its retrans-list.
	* ospf6d.h: version 0.9.7c

2004-05-03  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.[ch], ospf6_interface.c: adjust send/recv buffer
	size to interface MTUs.
	* ospf6d.h: version 0.9.7b

2003-08-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.[ch]: rewrite all source code from scratch
	* ospf6d.h: version 0.9.7

2003-08-11  Taisuke Sasaki <sasaki@soft.net.fujitsu.co.jp>

        * ospf6_ism.c: DR Election bug fix.

2003-04-25  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: AS-External LSA refresh was based on the
	prefix of the obsolete LSA. It was wrong so fixed.
	* version: 0.9.6p

2002-11-09  Vincent Jardin  <jardin@6wind.com>

	* ospf6_interface.c: update link-local address on interface creation.

2002-11-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: apply MinLSInterval to AS-External-LSA origination.
	* ospf6_lsa.c: change not to issue flooding caused by expire event
	when the received LSA is (already) MaxAge.
	* ospf6_spf.c: fix a bug which is that ospf6d calculates
	wrong nexthop when failed to find Link-LSA for the neighbor.
	* ospf6_damp.c ospf6_dbex.c ospf6_neighbor.c ospf6_spf.c:
	some clean up
	* version: 0.9.6o

2002-10-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: bug of failing ASE lsa refresh fixed.
	* version: 0.9.6n

2002-10-01  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: AS-External-LSA origination function
	is re-written.
	* ospf6_damp.[ch]: New feature that damps flaps is added.
	* version: 0.9.6m

2002-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c: unwanted assert() in ospf6_spf_nexthop_calculation()
	is deleted.
	* version: 0.9.6l

2002-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c: bug that ospf6d fails to refresh self-originated
	LSA if he have not the LSA before has been fixed.
	* ospf6_asbr.c: bug of failing removing ASE LSA when remove
	message arrived from zebra has been fixed.
	* version: 0.9.6k

2002-07-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_zebra.c: bug reported [zebra 14642] fixed.
	The bug was related to the synchronization between zebra
	and ospf6d. Now synchronization will be correctly done.
	* version: 0.9.6j

2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c: bug fixed in ospf6_lsdb_type_router ().
	* ospf6_dbex.c: because of retrans list structure changed
	due to LSDB change, removal of old instance from retrans-list
	is not necessary anymore. this caused crash but now fixed.
	* version: 0.9.6i

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

	* zebra-0.93 released.

2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c: entirely rewritten. now ospf6d uses
	radix tree by using lib/table.[ch] for LSDB lookup.
	* ospf6_abr.c, ospf6_asbr.c, ospf6_intra.c: hook changed
	due to rewriting of lsdb module.
	* ospf6_neighbor.c: lack of check existence and find correct
	instance of the LSA which is going to be removed from neighbor's
	retransmission was filled.
	* version: 0.9.6h

2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_intra.c: bug fix for Intra-route deletion.
	* ospf6_route.c: bug fix for path comparison.
	* version: 0.9.6g

2002-06-28  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: some logs trying to find the situation
	when assert occur are added. route duration statistics
	added.
	* ospf6_zebra.c: trying to fix the problem reported by
	[zebra 14318] but not yet sure.
	* version: 0.9.6f

2002-06-25  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_intra.c: new file for management of intra-prefix LSA.
	* ospf6_abr.c: inter area route calculation code added.
	* version: 0.9.6e

2002-06-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.c: All AS-External route was removed when
	one of the ASBR path was gone, but the route from other ASBR
	path should stay remained. this bug is fixed.
	* version: 0.9.6d

2002-06-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: route table calculation bug fixed. [zebra 14105]
	* ospf6_spf.c, ospf6_route.c, etc.: log message cleaned up.
	* version: 0.9.6c

2002-04-27  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: [zebra 13514] bug fix.
	thanks to Harald Koch.
	* version: 0.9.6b

2002-04-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dump.c: fix bug of log function
	* ospf6_area.c: fix bug of intra route deletion
	* version: 0.9.6a

2002-04-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* merged with "current" version.
	* version: 0.9.6

2001-03-11  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c ospf6_spf.c: log message changed for debug.

2001-02-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* version: 0.9.5i

	* ospf6_asbr.c: Added code that finds alternative
	AS-External route when remove AS-External route.
	This is temporary fix ...

	* ospf6_redistribute.c: remove redistributed routes
	immediately when 'no redistribute ...'

2001-02-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* version: 0.9.5h

	* ospf6_spf.c, ospf6_lsa.c: Change to originate Link-LSA on
	point-to-point links.

	* ospf6_message.c: Bug of log messages of self-originated
	Hello packet fixed.

2001-02-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* version: 0.9.5g
	* ospf6_asbr.c: fix for the bug that AS-External route
	is not get removed.

2001-02-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c: crash bug while receiving wrong LSA scope bit
	has been temporarily fixed

2001-12-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_asbr.[ch]: The byte order bug in encoding/decoding
	the bits/metric field in AS-External-LSA fixed.
	Fixed to update E-bit in Router-LSA of itself.
	Reported by Taisuke Sasaki ([zebra 11548]).

	* README: updated.

	* version: 0.9.5f

2001-11-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_prefix.c: Intra-prefix-LSA bug fixed.
	* ospf6_abr.[ch]: added (only just placeholder yet)

2001-11-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: fix to overwrite a prefix when another
	addition to the prefix is given. freeze function changed
	not to remove routes by default.

	* version: 0.9.5e

2001-11-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* version: 0.9.5d

	* ospf6_lsa.c ospf6_spf.c: SPF Calculations are now
	scheduled by hook.

	* ospf6_route.c: ospf6_route_add bug fix,
	ospf6_route_remove_all corrected.

2001-11-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_hook.[ch]: added.
	* Almost half of the code has been rewritten.
	especially, ospf6_route.[ch]. Hook call has been injected
	much.
	* ospf6_asbr.[ch]: added.

2001-10-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c: ospf6d was wrong to omit reoriginating
	of LSA when the self-originated LSA was received from others.
	fixed.
	* ospf6d.h: version: 0.9.5c

2001-10-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsa.c: 'force-prefix' was not executed. fixed.
	* ospf6d.h: version: 0.9.5b

2001-10-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_interface.c: 'passive-interface' is now moved to
	'ipv6 ospf6 passive' in INTERFACE NODE. 'prefix-list' which
	specifies the filter prefix for connected address prefix also
	moved to INTERFACE NODE as 'ipv6 ospf6 advertise prefix-list WORD'.
	The old obsoleted commands are still acceptable though. New command
	'ipv6 ospf6 advertise force-prefix' added, which which tells ospf6d
	to advertise rather prefix than stub local-address even on loopback
	or pointopoint interfaces.

	* ospf6_dump.c: 'ospf6 debug hello' -> 'ospf6 debug message hello'.
	same for other message type. The older is still acceptable.

	* ospf6_lsa.c: Changed AS-External generation to new one which uses
	LSA hooks. Delete old garbage.

2001-10-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6d.c: turn off and turn on sequence with
	'no interface' 'interface' cmds was not work. fixed.

	* ospf6_lsa.c: generating Intra-Area-Prefix-LSA for stub
	did not care duplicate prefixes. fixed.

2001-09-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.c: There was a bug that prevent LSDB
	to syncronize. It was a DbDesc packet bug that Slave
	sends two different DbDesc packet on the same sequence
	number. This cause many LSAs are dropped when Exchanging
	LSDB, because the latter DbDesc packet that have the same
	sequence number will be ignored as duplicate packet.
	This seems to be exist at least before 0.9.4 version.
	Now this is the most stable candidate.

	* ospf6d.h: version 0.9.5a

2001-09-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_zebra.c ospf6_spf.c ospf6_lsa.c :
	delete nexthop check to certify the nexthop is Link-local address.
	Suppress Link-LSA origination on links other than Broadcast.
	SPF's nexthop calculation first checks linklocal address
	in Link-LSA, then checks source address of neighbor's packets.

	* ospf6_interface.c ospf6_ism.c ospf6_lsa.c ospf6_nsm.c:
	intra-area-prefix-lsa origination func moved to new one.

	* ospf6_interface.h ospf6d.[ch] ospf6_lsa.c: 
	interface_area_cmd now changed to have 'passive'
	and 'prefix-list' option.

	* ospf6_prefix.c:
	clean up.

2001-09-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c ospf6_interface.c ospf6_ism.c ospf6_lsa.[ch]:
	clean up and new LSA origination functions added.

	* ospf6_route.c ospf6_lsdb.c: make vty function more
	clean/understandable.

	* ospf6d.h: version 0.9.5

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

	* ospf6_lsdb.c: Use IS_LSA_MAXAGE macro instead of
	ospf6_lsa_is_maxage.

	* ospf6_lsa.h (IS_LSA_MAXAGE): Add new macro to check MaxAge.

2001-08-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c: if There's no previous prefix
	ospf6d was wrongly not calculate the prefix.
	this reported by (v6 16029) is fixed.

	* ospf6_neighbor.c: Instance of LSA Summary included
	in DbDesc packet was wrongly freed. The bug cause
	malformed DbDesc, ExChange <-> ExStart flapping,
	and then crash.

	* ospf6d.h: version 0.9.4

2001-08-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.[ch]: Showing format is changed.
	'show ipv6 route ospf6' -> 'show ipv6 ospf6 route'
	'show ipv6 route ospf6 external' ->
	'show ipv6 ospf6 route redistribute'

	* ospf6_lsdb.c ospf6_lsa.c ospf6_neighbor.c ospf6_interface.c:
	memory leak in LS list fixed.

	* all: clean up

	* ospf6d.h: version 0.9.3

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

	* ospf6d.c (ospf6_timeval_sub_equal): Remove function.

	* ospf6_spf.c (ospf6_timeval_cmp): Rewrite ospf6_timeval_cmp().
	(ospf6_timeval_add_equal): Function moved from ospf6d.c
	
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-08-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsdb.c ospf6_neighbor.c:
	LSDB function/structure and LS list function has been rewritten.
	memory leak has been decreased.

	* ospf6_lsa.[ch] ospf6_dbex.c: garbage code has been deleted.

	* ospf6d.h: version 0.9.2

2001-08-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c ospf6_lsdb.c:
	Retransmition list had a critical bug that breaks LSDB
	synchronization. When new LSA be added to retrans-list,
	old must be removed, but it was not. So new LSA dropped,
	and LSA Acknowledgement did not work. The bug was fixed.

	* ospf6d.h: version 0.9.1

2001-06-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c: crash bug fix in temporary treat code for
	Router-LSA whose LS-ID != 0

	* ospf6_dbex.c: RFC2328 13.(4) was wrongly coded.
	    (4) Else if the LSA's LS age is equal to MaxAge, and there is
            currently *NO* instance of the LSA in the router's link state
	    ...

	* ospf6_lsa.c: RFC2328 13.1 checksum tie breaker
	had been neglected, and has just added now.

	* ospf6d.h: version 0.9.0
	ospf6d expected to work with hitachi gr2000 from these fixes.

2001-06-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsa.c: Fix bug in creating Intra-Area-Prefix-LSA.
	DR was mis-include others prefixes advertised by their Link-LSA.

	* ospf6_route.c: Fix bug in calculating intra area routes.
	Not all prefixes in Intra-Area-Prefix-LSA was calculated.

	* ospf6_spf.c:
	Changed to quit when a error occured in calculating SPF tree.
	Very messy hack for the bug reported by [zebra 8807]. This
	is not tested yet.
	Changed to quit SPF calculation when a nexthop calculation
	errors.

	* ospf6_zebra.c:
	Support for interface address deletion.

	* ospf6d.h:
	version: 0.8.y

2001-04-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6d.h
	Due to previous change (DR Election algorithm changed),
	backward compatibility will be lost from this version.
	version: 0.8.x

2001-04-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.c ospf6_ism.c:
	Bug of router_id comparison

2001-04-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c: ospf6_dbex_is_maxage_to_be_dropped() had
	some bug causing Loading state lasts long.
	version: 0.8.v

2001-04-08  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: BUG in AS-External route calculation fixed.
	It was using OLD LSDB...
	Version: 0.8.u-

2001-04-08  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_area.c, ospf6_dbex.c, ospf6_interface.c,
	ospf6_lsa.c, ospf6_lsdb.c, ospf6_lsdb.h, ospf6_message.c,
	ospf6_neighbor.c, ospf6_neighbor.h, ospf6_nsm.c,
	ospf6_redistribute.c, ospf6_route.c, ospf6_spf.c:
	Delete old LSDB function.

	* ospf6d.h:
	Version: 0.8.u

2001-04-05  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_area.c, ospf6_area.h, ospf6_dbex.c, ospf6_interface.c,
	ospf6_interface.h, ospf6_lsa.c, ospf6_lsdb.c, ospf6_lsdb.h,
	ospf6_message.c, ospf6_nsm.c, ospf6_redistribute.c, ospf6_route.c,
	ospf6_spf.c, ospf6_top.c, ospf6_top.h, ospf6d.h:
	Changed to use New LSDB.
	Version: 0.8.t

2001-04-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsa.c:
	Interface stub check in Intra-Area-Prefix-LSA origination 
	was wrong. - fixed.

	* ospf6_area.h, ospf6_dbex.c, ospf6_interface.c,
	ospf6_interface.h, ospf6_lsa.c, ospf6_lsa.h, ospf6_lsdb.c,
	ospf6_message.c, ospf6_neighbor.c, ospf6_nsm.c,
	ospf6_redistribute.c, ospf6_top.c, ospf6_top.h, ospf6d.c:
	New LSDB functions, but not changed to be used.

	* ospf6d.h:
	Version: 0.8.s

2001-03-28  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_area.c ospf6_area.h ospf6_dbex.c ospf6_dump.c
	ospf6_interface.c ospf6_interface.h ospf6_lsa.c
	ospf6_message.c ospf6_redistribute.c ospf6_spf.c ospf6_top.c
	ospf6_top.h ospf6_zebra.c ospf6d.c ospf6d.h: cleaning.

2001-03-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6d.h:
	version: 0.8.r

	* ospf6_neighbor.[ch], ospf6_lsa.[ch]:
	just clean up and log clearify.

	* ospf6_message.[ch]:
	Packet receiving function and dumping OSPFv3 packet has been
	changed simple and clean.

	* ospf6_dbex.[ch], ospf6_interface.[ch], ospf6_lsdb.[ch],
	  ospf6_neighbor.[ch], ospf6_nsm.[ch]:
	LSList(i.e. summary list, request list, retrans list, etc) have
	been rewritten based on new LSDB module. The main LSDB have not
	yet shifted to this new module, but will shift eventually.
	This change expected to resolve the problem that the ospf6d keeps
	on sending redundant LSUpdate/LSAck.

	* ospf6_interface.c: changed default MTU from 1500 to 1280.
	It was possible that the ospf6d could not send packet (e.g.
	LSUpdate in response to LSReq in my case) when the packet
	size accidentally reached near 1500 (I was forget about IP
	header :p). It is a bit illegal to set MTU 1280 constantly,
	but I failed once with I/F MTU from kernel (through zebra),
	and thinks that 1280 is more stable than kernel variable.
	Comments will be appriciated.

2001-03-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c, ospf6_interface.c, ospf6_ism.c, ospf6_lsdb.[ch],
	  ospf6_neighbor.c, ospf6_spf.c, ospf6d.c:
	Fix for crash. ospf6d has ever been crashing when
	'no interface' command executed, and when starting up with
	the configuration which does not include 'router ospf6'.
	these has been fixed.

2001-02-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_lsa.c, ospf6_message.c:
	LSA summary (exchanged while Adjacency bring up) may expire
	(may reach MaxAge). Handling this has been added but
	it's a little bit quick hack.

	* ospf6_message.c:
	Thread chain bug fixed. Read network thread chain has been cut
	when receive packets on not-enabled interface. this was wrong
	and fixed.

2001-02-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_message.c:
	I/F MTU check part on sending packet had some bug, and it's fixed.
	Ospf6d has believed a value from zebra as I/F MTU, but from now
	I/F MTU is set to constant 1500. This is workaround for ATM.

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

	* zebra-0.91 is released.

2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* just code clean up of almost all module.
	* ospf6_dump.c, ospf6_lsa.c: file dependency.
	* ospf6_mesg.[ch]: changed filename to ospf6_message.[ch]

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

	* zebra-0.90 is released.

2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_mesg.c,ospf6_lsa.c: doubly cancel thread bug fixed.
	version 0.8.k CRASHed for this.
	* ospf6_lsa.c: bug of logging fixed.
	version: 0.8.l

2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_neighbor.c: fix typo when trying to delete
	MaxAge AS-External LSA. MaxAge LSA remaining bug is expected
	to be fixed.
	version: 0.8.k

2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_mesg.c: add I/F Mtu check for sending LS Update.

	* ospf6_dbex.c, ospf6_mesg.c, ospf6_neighbor.c, ospf6_neighbor.h,
	ospf6_spf.c: Changed type of hisaddr field in ospf6_neighbor
	structure, from sockaddr_in6 to in6_addr. No protocol/processing
	changed.

2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_mesg.c, ospf6_neighbor.[ch]: Speed up of
	Database Exchange.
	version: 0.8.j

	Because the LS Request list was checked only when attempt
	to send (retransmit) LS Request packet, Loading state lasted
	long (for RxmtInterval) unexpectedly. This was fixed; LS Request
	packet will be send as soon as one received a LS Update packet.

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

	* ospf6d.h (OSPF6_VTYSH_PATH): Change "/tmp/ospf6d" to
	/tmp/.ospf6d".

2000-12-29  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dump.[ch]: simplified.

2000-12-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_route.c: Fix bug of using unavailable route.
	version: 0.8.d

2000-11-30  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c: calculate statistics. version: 0.8.d

2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_mesg.c, ospf6_nsm.c: LSDB sync bug fixed.
	version: 0.8.c

2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_dbex.c: Start debugging and cleaning.

	* ospf6_area.c, ospf6_dbex.c, ospf6_interface.c, ospf6_lsa.c,
	ospf6_proto.c, ospf6_top.c: add some function to clarify codes.

2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c: Delete old garbage (which was enclosed by #if 0)

	* ospf6_redistribute.c: "redistribute ospf6" was generated in
	"router ospf6" in config file. It is a bug, and fixed.
	wrong warning message was deleted.

	* ospf6_main.c: If daemon mode, ospf6d was silent even if
	the config file was wrong. It is a bug, and fixed.

	* ospf6_route.c, ospf6_zebra.c: Zebra syncronization method
	has been changed. delete garbages. allow nexthop of :: in case
	of connected route.

	* ospf6_dbex.c: Delete annoying log messages.

	* ospf6_lsa.c: Changed string for LSA log.

2000-11-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c: some careless bug fixed.

	* ospf6_route.c: changed not to send garbage route
          whose nexthop is not linklocal address.

2000-11-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

        * ospf6_rtable.c: renamed to ospf6_route.c
        whole functionality has been rewritten as new code.
        new functions not yet installs routes; the old
        functions still remains. cleaning log messages.

	* ospf6_spf.c: whole functionality has been rewritten
	as new code. new command "show ipv6 ospf6 spf node",
	"show ipv6 ospf6 spf tree", "show ipv6 ospf6 spf table"
	has been added. Memory leak was fixed. cleaning log messages.

	* ospf6d version: 0.7.c

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

	* zebra-0.89 is released.

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

	* ospf6_lsdb.c (ospf6_lsdb_remove_maxage_lsa): Fix compile
	warnings.

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

	* zebra-0.88 is released.

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

	* ospf6_rtable.h (struct ospf6_nexthop): Change ifindex type from
	unsigned long to unsigned int.

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

	* ospf6d.h: Include some headers for avoid warning.

	* ospf6_routemap.h: Add newfile.

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

	* ospf6_network.c: Respect IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP
	rather than RFC2133.

1999-10-21  Jun-ichiro itojun Hagino <itojun@itojun.org>

	* ospf6_network.c (ospf6_ipv6_decode_ipv4): Fix bug of conversion
	from IPv4 Mapped Address to IPv4 address.

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

	* ospf6_lsa.c (construct_link_lsa): Enclose KAME specific part by
	#ifdef/#endif.

1999-07-29  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* ospf6_mesg.c: add new message process function.

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

	* ospf6_main.c (sighup): Call of log_rotate() removed.

1999-07-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	ospf6_dbex.{c,h}: variable "acknowledge" has been deleted.

1999-07-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.{c,h}: lsa data structure has been drastically
	changed.

1999-07-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.{c,h}: bug of updating LSA's which is self
	originated has been fixed.

1999-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>

	* *.{c,h} : log clean up.

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

	* ospf6d.c (ospf6_init): Change to use install_default.

1999-07-03  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* ospf6_rtable.c (nexthop_*): added some function that handles
	new nexthop structure.

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

	* ospf6_zebra.c (ospf6_zebra_init): Install standard commands to
	ZEBRA_NODE.

1999-06-09  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* ospf6_rtable.h: added for new routing table of ospf6d

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

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

1999-05-13  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	*ospf6_spf.c (get_prefix_lsa_of_vertex): bug fix about network vertex.

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

	* ospf6_network.c (send_linkstate_ack): Check HAVE_SIN6_SCOPE_ID
	is defined.
	* ospf6_mesg.c (make_hello): Likewise.
	* ospf6_lsa.c (lsa_flood): Likewise.

1999-05-07  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* ospf6_spf.c, etc: Many bug fix.
        intra-area-prefix-LSA treatment changed.
        network byte order of neighbor ifid changed.

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

	* ospf6_zebra.h (struct zebra): Add hitory entry to structure.

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

	* ospf6_main.c (main): Add KAME check for binding vty socket.
	(main): Delete old interface get routine garbage.

	* ospf6d.c: Change all `show ip6' statement to `show ipv6'.
	(show_ipv6_ospf6_requestlist): Add description.

1999-05-04  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* ospf6_lsa.c, etc: Many bug fix, now two routers
	on the same segment can become FULL neighbor state
	each other.

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

	* Makefile.am: Add file dependency.
	(depend): Add target.

1999-05-02  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>

	* Clean up and fix have been almost done. This code
	now testing stage of Intra area routing.

	* Configuration Vty become more similar to Cisco.

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

	* Trim training newline from zlog format arguemnt.
	
	* ospf6_dump.c (ospf6_err): Commented out ospf6_err and
	ospf6_warn.  Same kind of function should be implemented as
	zlog_err or zlog_warn or someting.

	* ospf6d.c: Change OSPF_NODE to OSPF6_NODE.
	Change OSPF_DEFAULT_CONFIG to OSPF6_DEFAULT_CONFIG.
	

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

	* ospf6_mesg.c (make_hello): Add check of SIN6_LEN

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

	* ospf6_neighbor.c: Change list_clear_all to list_delete_all_node.
	Remove list_delete_all fuction and use lib/linklist.c's one.
	
1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>

	* mcast_join(),mcast_leave()'s argument socket length is removed.

1999-04-08    <kunihiro@zebra.org>

	* ospf6_zebra.h (ospf_zebra_read): Fix typo.

	* ospf6_interface.h: Tempolary add struct rt_addrinfo.

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

	* Merge from ospfd-zebra-990303 codes.

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

	* Makefile.in: add new file.

	* Makefile.am: @INCLUDES@ is added for OS/library specific IPv6
	directory search.

	* Import files from Yasuhiro Ohara <yasu@sfc.wide.ad.jp>'s ospfd.
	Impterted files are:
	Makefile.am, ospf_area.h, ospf_dump.c, ospf_interface.c,
	ospf_interface.h, ospf_lsa.c, ospf_lsa.h, ospf_main.c,
	ospf_mesg.c, ospf_mesg.h, ospf_neighbor.c,
	ospf_neighbor.h,ospf_network.c, ospf_network.h, ospf_proto.h,
	ospf_spf.c, ospf_spf.h, ospf_types.h, ospfd.c, ospfd.h
