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
