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

	* isis_main.c: (reload) Call vty_reset instead of vty_finish (both
	  functions were exactly the same).

2005-01-18 Hasso Tepper <hasso at quagga.net>

	* *.c: Changed many functions to static. Some commented out
	  functions and some tiny related fixes. No functional changes.

2005-01-01 Hasso Tepper <hasso at quagga.net>

	* isis_common.h, isisd.c, isis_pdu.c: Implement authentication in
	  SNPs correctly - ie. make it conditional like it is in IOS.

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

	* isis_circuit.c, isis_csm.c, isis_zebra.c: Don't crash during
	  interface up/down events. I'm not sure whether logic is correct
	  though. Needs rethink anyway, seems. Replace if_is_up() with
	  if_is_operative() and add some more.

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

	* *.c: zlog_* cleanup. Mostly changed level of debug messages to
	  LOG_DEBUG.

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

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

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

	* isis_main.c: (sigint,sigterm) Use zlog_notice for termination message.
	  (terminate) This function should be static, not global.
	  (main) Use zlog_notice for startup announcement, and remove
	  ifdef ZEBRA_VERSION.

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

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

2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* dict.c: Include "zassert.h" instead of <assert.h>.

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

	* isis_main.c: Initialize access list. Although we haven't route
	  filtering yet, it's needed to limit access to vty.

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

	* isis_routemap.c, isisd.c: Make more strings const.
	* isisd.h: Make min_bcast_mtu unsigned.

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

	* *.[c|h]: Fix warnings: make strings const, signed -> unsigned,
	  remove or comment out unused variables etc.
	* isis_lsp.c: Clean lsp_print_detail() a bit, add TE TLV's and
	  removed old code.
	* isis_circuit.c: Remove old ip/ipv6 address commands code.

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

	* isis_zebra.c: Read router id related messages from zebra daemon.
	* isis_lsp.c: Use router id in IP address TLV in LSP's. It's how Junos
	  routers behave as well.
	* isis_tlv.h: Export add_tlv() function.

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

	* isis_pdu.c: Fix accessing NULL found by valgrind.

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

	* isis_circuit.c: Fix previous commit. Don't schedule LSP regeneration
	  and don't crash if circuit->area == NULL.

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

	* *.[c|h]: Fix a lot of compiler warnings.
	* isis_events.c: Remove isis_event_int_reach_change() function, as it
	  doesn't make sense for now. Call lsp_regenerate_schedule() directly
	  where needed.

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

	* isis_lsp.h: Cast-as-lvalue extension is deprecated and is not
	  accpted any more in gcc-4.0.

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

	* isisd.c: thread_master *master is already defined in isis_main.c.
	* isis_misc.[c|h], isis_lsp.[c|h]: Move static variables out of
	  header files.

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

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

2004-09-21 LIU Xin <lx at ns.6test.edu.cn>

	* isis_dr.c: Update dis_record of adjacencies when isisd becomes DIS.

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

	* isis_lsp.c: Put IPv4 prefixes into reachability TLVs, not
	  addresses. Make IPv6 work with other prefix lengths than % 8 == 0.

2004-09-20 LIU Xin <lx at ns.6test.edu.cn>

	* isis_dr.c, isis_events.c: Remove hello multiplier usage while
	  scheduling DIS election.
	* isis_pdu.c: Don't call isis_event_dis_status_change() whenever
	  l[1|2]_desig_is is different from hdr.lan_id.

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

	* isis_spf.h: Renamed t_spf_periodic to t_spf as it's not used to
	  store pointer to periodic SPF thread only.
	* isis_spf.c: Cleaned up SPF threads schedule code. IPv4 and IPv6
	  threads are independant now. Used macros wherever possible.
	* isis_lsp.c: Fixed bug in scheduling LSP regeneration.

2004-09-17 LIU Xin <lx at ns.6test.edu.cn>
	
	* isis_circuit.c: According to RFC1142 the first DIS election will be
	started 2 * HelloTimer seconds after the initialization.

2004-09-15 Laurent Rabret <laurent.rabret at francetelecom.com>

	* isis_pdu.c: Fix error in same subnet comparison. The previous
	  algorithm only worked when netmask % 8 == 0.
	* isisd.c: Show domain and area passwords in configuration.
	* iso_checksum.c: Fixed error in the checksum calculation. The previous
	  algorithm could produce a bad checksum if the 2 complement's vs 1
	  complement's adaptation was required.
	* isis_pdu.c: Authentication in LSPs does not mean authentication in
	  SNPs.
	* isis_tlv.c: Fix errors in password checking.

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

	* isis_circuit.c: Mostly cosmetical changes in isis_circuit_add_addr()
	  and add calls to isis_event_int_reach_change(). Implement
	  isis_circuit_del_addr(). Cancel t_run_dr threads is circuit goes
	  down.
	* isis_events.c: Implement isis_event_int_reach_change(). I'm not sure
	  yet how this stuff should work, but it allows be to start debug
	  threads which act very weird at the moment.
	* isis_tlv.c: Much less verbose by default.
	* isis_zebra.c: Added extreme debugging output. Call connected_free()
	  after isis_circuit_del_addr, not before.
	* isisd.conf.sample: Update it a little bit. 10000 seconds hello time
	  was certainly too much IMHO.

2004-09-14 LIU Xin <lx at ns.6test.edu.cn>

	* isis_pdu.c: Update l1_desig_is only if neighbor really is DIS.

2004-09-10 LIU Xin <lx at ns.6test.edu.cn>
	
	* isis_pdu.c: Goto out only if no adjacency exist.
	* isis_circuit.c: Don't crash while executing "isis circuit-type"
	  command if circuit exists, but circuit->area is still NULL.
	* isis_lsp.c: Set pointers to thread to NULL before initiating new
	  thread in lsp_l1_refresh_pseudo(), lsp_l2_refresh_pseudo() and
	  lsp_tick() functions.

2004-05-19 Laurent Rabret <laurent.rabret at francetelecom.com>

	* isis_constants.h: change the ISIS Hello interval from 1 to 10 (cisco's
	  default value).
	* isis_main.c: suppress a bad "#if 0 #endif" block for isis to be
	  activated on startup.
	* isis_tlv.[c|h]: LSP recognition of the ISIS Graceful Restart LSP (not
	  implemented yet).

2004-05-19 Rivo Nurges <rix at estpak.ee>

	* *.c: Removing many useless net/ethernet.h includes and some tiny
	  fixes to make it compile on NetBSD and OpenBSD.

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

	* isis_zebra.c: Sync with zclient changes.

2004-02-11 Hasso Tepper <hasso@estpak.ee>
  * many *.c files: Replace thread_add_xxx() and thread_cancel() with
    THREAD_XXX_ON and THREAD_XXX_OFF macros.

2004-01-27 Hasso Tepper <hasso@estpak.ee>
  * isis_circuit.c: Commented out "(no) ip address" commands so it doesn't
    confuse vtysh.

2003-12-31 Hasso Tepper <hasso@estpak.ee>
  * isis_dr.c: Fix some threads related bugs.

2003-12-23 Hasso Tepper <hasso@estpak.ee>
  Some fixes done by me and Cougar <cougar@random.ee>.
  * isis_adjacency.c: Two bugfixes by Cougar:
    After down state neigbour was deleted but not removed from neighbours list.
    Don't show random expire time during neighbour initialisation.
  * isis_circuit.c: Don't show interface addresses in config by Cougar.
  * isis_constants.h, isis_misc.c: Show other well-known NLPID names as well
    by Cougar.
  * isisd.c: Two tiny CLI fixes by me.
  * isis_lsp.c: Bugfix in lsp_print_detail() by Cougar.
    Show IPv4 external and IPv6 TLV's in "show isis database detail" by me.
  * isis_misc.c: Net address format fix by Cougar.
  * isis_spf.c: Dead loop fix in isis_spf_preload_tent() by Cougar
  * isis_zebra.c: Ignore distance when adding route to zebra for now by me.
  * isis_tlv.c: Parse external IPv4 TLV's correctly by me.

Version 0.0.7 to 0.0.8
======================

o A bug in handling of other ISs fragments fixed
o hello interval now specified in *seconds*
o replaced the adj->ipv[46]_addr tables with linked lists

Version 0.0.6 to 0.0.7 (Oct 29 2002)
======================

o changed to zebra-0.93b
o fixed a seg in SPF
o handling/generation of LSP fragments
o domain/area/circuit password

Version 0.0.5 to 0.0.6 (Jul 4 2002)
======================

o lots of changes to SPF
 - runs the SPF for IPv4 and IPv6 separately
 - a number of bugs fixed
 - simplified the implementation 
 - "7.2.7 Removal of excess paths" implemented
o ported to freebsd  (tested in 4.5-STABLE and 4.6-STABLE) 
o moved to zebra-0.93-pre2
o "show isis topology" command added 
o "show (ip|ipv6) route isis commands added to zebra
o a number of fixes and additions (e.g. checksum calculation and DIS state
change event) by BeomSeok Gwak added

Version 0.0.4 to 0.0.5 (Apr 26 2002)
======================

o changed to zebra-0.93-pre1
o number of memory leaks + small bugs fixed
o a bug related to processing of neigbors when installing routes fixed

Version 0.0.3 to 0.0.4 (Feb 27 2002)
======================

o initial version of SPT algorithm
o installing routes though zebrad
o isis debug commands
o work on IS-IS events (e.g. circuit state change)

Version 0.0.2 to 0.0.3 (Jan 17 2002)
======================

o LSP handling improved
o generation of pseudonode LSPs
o DR election enhanced
o support for p2p interfaces
o support for topology simulation 
o more detailed output for show commands

Version 0.0.1 to 0.0.2 (Dec 13 2001)
======================

o circuit state machine (isis_csm.[ch]) added
o lot of work on LSP generation 
o ISO checksum 
o uses DGRAM sockets instead of RAW
o gets IP(v6) addresses from zebra
o debug can be controlled with "debug isis" command
o read support for TE tlvs
o work started on p2p interfaces
o work started on isis events 


