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.[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
