2007-07-18 James Carlson * isis_network.c: split up into isis_bpf.c, isis_dlpi.c, and isis_pfpacket.c, selected by autoconf, and added DLPI support. * (general) Fixed to allow compilation and use on Solaris. 2006-12-08 Hannes Gredler * isis_adjacency.c: (isis_new_adj) Allow NULL snpa argument. * isis_pdu.c: (various) Update calls to isis_new_adj() to pass NULL and use default. * (general) Add forward declarations where required. Fix up const char *'s. Allow V4-only compilation. 2006-01-17 Paul Jakma * isis_zebra.c: (isis_zebra_route_add_ipv4) fix for new zserv format. 2005-11-20 Paul Jakma * (general) remove includes of very common system headers, these are already picked up by zebra.h. Further, including them before zebra.h messes up all our lovely (sarcasm) autoconf'd detecting of platform specific things. Recent addition of stdint.h to configure.ac and zebra.h appears particularly to throw up this problem. 2005-10-01 Hasso Tepper * isis_adjacency.c: Stop expire timer while deleting adjacency. * isis_events.c: Stop pseudo LSP thread while resigning circuit from level. * isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not in sync with zebra if it's changed. * isis_spf.c: Schedule route validating etc even if tent was empty. It's probably because we just don't have any adjacencies. * isisd.c: Write minimum spf interval into configuration. 2005-09-30 Vincent Jardin * isis_route.c: fix EXTREME_DEBUG compilation 2005-09-28 Hasso Tepper * *.c: Massive cleanup of lists loops. Stop abusing ALL_LIST_ELEMENTS. Replace XMALLOC + memset with XCALLOC. Fix some indentation issues. The only really significant change is simplified isis_delete_adj function in isis_adjacency.c. 2005-09-28 Hasso Tepper * isis_dynh.c, isisd.h: Implement dynamic hostname cache cleanup. * isis_lsp.c: Refresh dynamic hostname in the cache while refreshing topology LSP. 2005-09-28 Hasso Tepper * isis_lsp.c: Make topology generator generate TE TLVs if necessary. Also take care of inserting dynamic hostname of topology TLVs into cache. 2005-09-26 Hasso Tepper * isis_spf.c: Changing cost from uint16_t to uint32_t. Unset ISIS_ROUTE_FLAG_ACTIVE flag before running SPF. * isisd.[ch]: Separate route tables for different levels. SPF is done separately, but in case of L1L2 area they have to be merged. * isis_zebra.c: Set/unset ISIS_ROUTE_FLAG_ZEBRA_SYNC flag correctly in case of adding/removing IPv4 routes. * zebra_route.c: Rework route validating process. Merging L1 and L2 tables in case of L1L2 area. 2005-09-26 Hasso Tepper * isis_spf.[ch]: Added TE TLVs to the SPF process. It seems to work mostly, but needs certainly much more testing, especially transition situation. 2005-09-26 Hasso Tepper * isis_lsp.c: Put correct metric info into TE TLV's. Wide metric is used only if only wide metric style (extended TLV's) is in use. 2005-09-26 Hasso Tepper * isis_tlv.[ch]: New function tlv_add_in_addr() to put just one IPv4 address into TLV. Used for IPv4 address TLV (in case of LSP) and TE router ID TLV. * isis_lsp.c: Use tlv_add_in_addr() and include router ID in LSP. 2005-09-26 Hasso Tepper * isis_lsp.c: Support for originating TE IS and IPv4 TLV's. No any sub TLV handling yet. 2005-09-26 Hasso Tepper * isis_tlv.[ch]: Two new functions - tlv_add_te_is_neighs() and tlv_add_te_ipv4_reachs() to handle TLV's with new metric. None of them handle sub TLVs though for now. 2005-09-26 Hasso Tepper * isis_circuit.[ch]: Some preliminary support for specifying wide circuit metrics. Needs more thinking though, but should do for now. 2005-09-26 Hasso Tepper * isisd.[ch]: Introduce oldmetric flag for area and transition metricstyle command. With metricstyle wide only extended TLVs should be used. 2005-09-25 Hasso Tepper * dict.[ch]: Revert all nonfunctional changes. It's external module imported from kazlib and it's better not to screw it - there is theoretical chance that we might want to merge changes from upstream at some point. Also avoid the loss of info about upstream version (rcsid). 2005-09-21 Hasso Tepper * isis_route.c: Fix output of nexthops in case of extreme debug. 2005-09-19 Hasso Tepper * isis_lsp.c, isis_pdu.c, isis_spf.c: Remove some old unused code. 2005-09-19 Hasso Tepper * isis_lsp.c: Better output of detailed LSP printout and fixed TE IPv4 reachibility metric display. 2005-09-19 Hasso Tepper * isis_tlv.h: Cleanup comment about TLVs we should support, remove info about useless (in sense of IP(v6)) TLVs. 2005-09-19 Hasso Tepper * isis_lsp.h: Added backpointer to the area from LSP. For now it's used only in generated topology LSPs. * isisd.[ch]: Cleanup CLI commands related to topology generation and added command to specify base fo dynamic hostname for topology LSPs. * isis_lsp.c: Rewrite almost all code related to generation topology LSPs (top_lsp_refresh(), generate_topology_lsps() and build_topology_lsp_data() functions). Topology is connected to own LSP now (lsp_build_nonpseudo). Commented out lsppdu_realloc functions, it's not used any more hopefully. 2005-09-18 Hasso Tepper * isis_lsp.c (lsp_update): Fix previous commit - manipulate the right database and only if LSP is really in the database (sanity check). 2005-09-16 Hasso Tepper * isis_lsp.c (lsp_update): Remove LSP from database before updating its data and put it back after. Database entry MUST contain at least correct pointers to the sysid to get correct compare results. * isis_lsp.[ch], isis_pdu.c: Pass level to the lsp_update() function. 2005-09-05 Hasso Tepper * *.c: Try to be less verbose by default (without any debug options on). * isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of touching endp directly. * isis_lsp.c (lsp_build_pseudo): Ditto. 2005-09-03 Hasso Tepper * isis_lsp.c: Yet another regression introduced by stream cleanup. Similar fix to the one commited to lsp_build_nonpseudo() some days ago. 2005-09-01 Hasso Tepper * isis_lsp.c: Less TLV leaking. 2005-09-01 Hasso Tepper * random.c, spgrid.[ch]: Fix warnings with hope that I didn't broke anything. These floats to longs and vice versa casts are starnge indeed. * isis_pdu.c: As we don't use %z for size_t for now because we support older compilers, cast them to unsigned long. 2005-09-01 Hasso Tepper * isis_adjacency.c, isis_lsp.c, isisd.c: Replace XMALLOC && memset with XCALLOC. * isis_lsp.c (lsp_build_pseudo): Fix adding ES neighbour. * isis_tlv.c: More compact free_tlvs() function. * isis_lsp.c (lsp_build_nonpseudo) : Try to fix one more regression introduced by stream cleanup. Seek endp to the right place before starting to fill stream with TLVs. 2005-08-16 Hasso Tepper * isis_misc.[ch]: Fix some warnings, making some strings const. 2005-08-10 Hasso Tepper * topology/spgrid.c: MAXLONG is deprecated, use LONG_MAX instead. values.h, where MAXLONG is defined, is deprecated as well. 2005-05-26 Yossi Boaron * isis_dr.c: Fix copy&paste error in isis_dr_resign(). 2005-05-25 Paul Jakma * isisd.c: (show_isis_generated_topology) change to _RO version of list macro. remove the extra listnode variable. one of the macros had had incorrect number of arguments. 2005-05-03 Paul Jakma * (general) More cleaning up of stream abuse, isisd should be back to previous functionality. Replace various XMALLOC+memset's with XCALLOC * isis_tlv.c: (tlv_add_padding) use stream_put to clear the stream rather than forward endp, as isisd reuses streams. * isis_pdu.c: (process_lsp) cleanup direct reference to stream endp (send_lsp) manual copy of a stream cleaned up to use stream_copy. * isis_network.c: (isis_recv_pdu_bcast) replace direct memcpy with stream_write (isis_recv_pdu_p2p) replace recvfrom directly into stream with stream_recvfrom. Remove dangerous and now unneeded manual update of endp. (isis_recv_pdu_bcast / non-GNU_LINUX) Replace direct memcpy with stream_write. (isis_recv_pdu_p2p) replace read direct into stream with stream_read_try, and hence remove the manual update of endp. * isis_lsp.c: (lsp_update_data) manual stream dup replaced with stream_dup. (lsppdu_realloc) mempcy into stream data replaced with stream_put. (lsp_build_nonpseudo) remove mysterious stream_forward_endp's - which were originally stream_set_putp - shouldn't be needed now that all the manual fiddling of private stream data has been corrected. (build_topology_lsp_data) remove unneeded twiddling of endp, appears to be due to lsppdu_realloc(), but it appears to sort of do the right thing wrt streams. 2005-04-15 Paul Jakma * topology/Makefile.am: random.c is a source of libtopology, so list it. 2005-04-12 Hasso Tepper * isis_adjacency.c: Fix typo introduced with listloop cleanup. 2005-04-11 Andrew J. Schorr * isis_zebra.h (isis_zebra_finish): Remove declaration of unused function. * isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message to send the message to zebra instead of calling writen directly, since zclient_send_message understands non-blocking I/O and will manage the buffer queue appropriately. (isis_zebra_finish): Remove unused function, particularly since the zclient_free function has been removed. 2005-04-10 Paul Jakma * Makefile.am: topology should not be a conditional SUBDIR, otherwise make dist breaks. * topology/Makefile.am: remove EXTRA_DIST of files which dont exist in that directory, broke make dist. * isisd.c: (show_isis_generated_topology_cmd) convert LIST_LOOP * isis_lsp.c: (generate_topology_lsps) ditto (build_topology_lsp_data) ditto 2005-04-02 Andrew J. Schorr * isis_zebra.c: (isis_zebra_if_del) Must use if_lookup_by_name_len. 2005-04-02 Hasso Tepper * Makefile.am: Variables to handle conditonal compiling of topology generator code. * isis_lsp.c: lsppdu_realloc() is used by topology generator. * isisd.c: Rename show_isis_topology_cmd to not conflict the one in the isis_spf.c. * isisd.h: Remove TOPOLOGY_GENERATE define, it will be defined in toplevel config.h if topology generator is enabled. * topology/Makefile.am: Handle the libtoolized Quagga libraries. 2005-04-02 Andrew J. Schorr * isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead of if_delete, since it is generally not safe to remove interface structures. After deleting, set ifp->ifindex to IFINDEX_INTERNAL. (zebra_interface_if_lookup) Tighten up code. 2005-03-07 Michael Sandee * isis_spf.c: host.name might be NULL. 2005-02-23 Andrew J. Schorr * isis_main.c: (reload) Call vty_reset instead of vty_finish (both functions were exactly the same). 2005-01-18 Hasso Tepper * *.c: Changed many functions to static. Some commented out functions and some tiny related fixes. No functional changes. 2005-01-01 Hasso Tepper * 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 * 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 * *.c: zlog_* cleanup. Mostly changed level of debug messages to LOG_DEBUG. 2004-12-07 Andrew J. Schorr * isis_main.c: (main) The 2nd argument to openzlog has been removed. 2004-12-03 Andrew J. Schorr * 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 * isis_main.c: Make group to run as configurable. 2004-11-24 Andrew J. Schorr * dict.c: Include "zassert.h" instead of . 2004-10-13 Hasso Tepper * 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 * isis_routemap.c, isisd.c: Make more strings const. * isisd.h: Make min_bcast_mtu unsigned. 2004-10-07 Hasso Tepper * *.[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 * 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 * isis_pdu.c: Fix accessing NULL found by valgrind. 2004-09-26 Hasso Tepper * isis_circuit.c: Fix previous commit. Don't schedule LSP regeneration and don't crash if circuit->area == NULL. 2004-09-26 Hasso Tepper * *.[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 * isis_lsp.h: Cast-as-lvalue extension is deprecated and is not accpted any more in gcc-4.0. 2004-09-24 Hasso Tepper * 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 * *.[c|h]: list -> struct list *, listnode -> struct listnode *. 2004-09-21 LIU Xin * isis_dr.c: Update dis_record of adjacencies when isisd becomes DIS. 2004-09-21 Hasso Tepper * 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 * 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 * 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 * isis_circuit.c: According to RFC1142 the first DIS election will be started 2 * HelloTimer seconds after the initialization. 2004-09-15 Laurent Rabret * 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 * 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 * isis_pdu.c: Update l1_desig_is only if neighbor really is DIS. 2004-09-10 LIU Xin * 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 * 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 * *.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 * isis_zebra.c: Sync with zclient changes. 2004-02-11 Hasso Tepper * many *.c files: Replace thread_add_xxx() and thread_cancel() with THREAD_XXX_ON and THREAD_XXX_OFF macros. 2004-01-27 Hasso Tepper * isis_circuit.c: Commented out "(no) ip address" commands so it doesn't confuse vtysh. 2003-12-31 Hasso Tepper * isis_dr.c: Fix some threads related bugs. 2003-12-23 Hasso Tepper Some fixes done by me and Cougar . * 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