summaryrefslogtreecommitdiffstats
path: root/isisd
diff options
context:
space:
mode:
Diffstat (limited to 'isisd')
-rw-r--r--isisd/.gitignore15
-rw-r--r--isisd/ChangeLog600
-rw-r--r--isisd/Makefile.am4
-rw-r--r--isisd/dict.c5
-rw-r--r--isisd/include-netbsd/.gitignore6
-rw-r--r--isisd/isis_dlpi.c38
-rw-r--r--isisd/isis_lsp.c8
-rw-r--r--isisd/isis_pdu.c5
-rw-r--r--isisd/iso_checksum.c37
-rw-r--r--isisd/iso_checksum.h1
-rw-r--r--isisd/topology/.gitignore12
11 files changed, 96 insertions, 635 deletions
diff --git a/isisd/.gitignore b/isisd/.gitignore
new file mode 100644
index 00000000..5e8028c2
--- /dev/null
+++ b/isisd/.gitignore
@@ -0,0 +1,15 @@
+Makefile
+Makefile.in
+*.o
+isisd
+.deps
+isisd.conf
+.nfs*
+*.lo
+*.la
+*.libs
+.arch-inventory
+.arch-ids
+*~
+*.loT
+*.a
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
deleted file mode 100644
index bb77ffea..00000000
--- a/isisd/ChangeLog
+++ /dev/null
@@ -1,600 +0,0 @@
-2008-01-29 James Carlson <james.d.carlson@sun.com>
-
- * Fix bug #437, assert due to bogus index management
- * isis_flags.c: (flags_initialize) new
- * (flags_get_index) fix off by one, leading to list assert
- on null node data.
- (flags_free_index) ditto.
- * isisd.c: (isis_area_create) use flags_initialize
- (isis_area_destroy) deconfigure circuits when
- taking down area.
-
-2007-07-18 James Carlson <james.d.carlson@sun.com>
-
- * 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 <hannes@gredler.at>
-
- * 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 <paul.jakma@sun.com>
-
- * isis_zebra.c: (isis_zebra_route_add_ipv4) fix for new
- zserv format.
-
-2005-11-20 Paul Jakma <paul.jakma@sun.com>
-
- * (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 <hasso at quagga.net>
-
- * 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 <vincent.jardin@6wind.com>
-
- * isis_route.c: fix EXTREME_DEBUG compilation
-
-2005-09-28 Hasso Tepper <hasso at quagga.net>
-
- * *.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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * isis_lsp.c: Support for originating TE IS and IPv4 TLV's. No any sub
- TLV handling yet.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * isis_route.c: Fix output of nexthops in case of extreme debug.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
- * isis_lsp.c, isis_pdu.c, isis_spf.c: Remove some old unused code.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
- * isis_lsp.c: Better output of detailed LSP printout and fixed TE IPv4
- reachibility metric display.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * *.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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * isis_lsp.c: Less TLV leaking.
-
-2005-09-01 Hasso Tepper <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * 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 <hasso at quagga.net>
-
- * isis_misc.[ch]: Fix some warnings, making some strings const.
-
-2005-08-10 Hasso Tepper <hasso at quagga.net>
-
- * 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 <Yossi.Boaron@veraznetworks.com>
-
- * isis_dr.c: Fix copy&paste error in isis_dr_resign().
-
-2005-05-25 Paul Jakma <paul@dishone.st>
-
- * 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 <paul@dishone.st>
-
- * (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 <paul@dishone.st>
-
- * topology/Makefile.am: random.c is a source of libtopology, so list
- it.
-
-2005-04-12 Hasso Tepper <hasso at quagga.net>
-
- * isis_adjacency.c: Fix typo introduced with listloop cleanup.
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
- * 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 <paul@dishone.st>
-
- * 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 <ajschorr@alumni.princeton.edu>
-
- * isis_zebra.c: (isis_zebra_if_del) Must use if_lookup_by_name_len.
-
-2005-04-02 Hasso Tepper <hasso at quagga.net>
-
- * 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 <ajschorr@alumni.princeton.edu>
-
- * 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 <voidptr@voidptr.sboost.org>
-
- * isis_spf.c: host.name might be NULL.
-
-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
-
-
diff --git a/isisd/Makefile.am b/isisd/Makefile.am
index 859facd6..9c303390 100644
--- a/isisd/Makefile.am
+++ b/isisd/Makefile.am
@@ -5,6 +5,10 @@ INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib \
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA=@INSTALL@ -m 600
LIBS = @LIBS@
+
+AM_CFLAGS = $(PICFLAGS)
+AM_LDFLAGS = $(PILDFLAGS)
+
noinst_LIBRARIES = libisis.a
sbin_PROGRAMS = isisd
SUBDIRS = topology
diff --git a/isisd/dict.c b/isisd/dict.c
index 8a7dc588..b2bb5940 100644
--- a/isisd/dict.c
+++ b/isisd/dict.c
@@ -14,8 +14,13 @@
* into proprietary software; there is no requirement for such software to
* contain a copyright notice related to this source.
*
+<<<<<<< HEAD:isisd/dict.c
* $Id: dict.c,v 1.5 2007/08/07 18:49:18 paul Exp $
* $Name: $
+=======
+ * $Id$
+ * $Name$
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/dict.c
*/
#include <stdlib.h>
diff --git a/isisd/include-netbsd/.gitignore b/isisd/include-netbsd/.gitignore
new file mode 100644
index 00000000..dd5bf7c6
--- /dev/null
+++ b/isisd/include-netbsd/.gitignore
@@ -0,0 +1,6 @@
+.arch-inventory
+.arch-ids
+
+*~
+*.loT
+
diff --git a/isisd/isis_dlpi.c b/isisd/isis_dlpi.c
index db4383be..21512e19 100644
--- a/isisd/isis_dlpi.c
+++ b/isisd/isis_dlpi.c
@@ -42,8 +42,11 @@
#include "isisd/isis_circuit.h"
#include "isisd/isis_flags.h"
#include "isisd/isisd.h"
+<<<<<<< HEAD:isisd/isis_dlpi.c
#include "isisd/isis_constants.h"
#include "isisd/isis_circuit.h"
+=======
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/isis_dlpi.c
#include "isisd/isis_network.h"
#include "privs.h"
@@ -315,12 +318,32 @@ open_dlpi_dev (struct isis_circuit *circuit)
circuit->interface->name);
return ISIS_WARNING;
}
+<<<<<<< HEAD:isisd/isis_dlpi.c
/* Try first as Style 1 */
(void) snprintf(devpath, sizeof (devpath), "/dev/%s",
circuit->interface->name);
unit = -1;
fd = dlpiopen (devpath, &acklen);
+=======
+
+ /* Try the vanity node first, if permitted */
+ if (getenv("DLPI_DEVONLY") == NULL)
+ {
+ (void) snprintf (devpath, sizeof(devpath), "/dev/net/%s",
+ circuit->interface->name);
+ fd = dlpiopen (devpath, &acklen);
+ }
+
+ /* Now try as an ordinary Style 1 node */
+ if (fd == -1)
+ {
+ (void) snprintf (devpath, sizeof (devpath), "/dev/%s",
+ circuit->interface->name);
+ unit = -1;
+ fd = dlpiopen (devpath, &acklen);
+ }
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/isis_dlpi.c
/* If that fails, try again as Style 2 */
if (fd == -1)
@@ -452,11 +475,26 @@ open_dlpi_dev (struct isis_circuit *circuit)
if (ioctl (fd, I_PUSH, "pfmod") == 0)
{
struct packetfilt pfil;
+<<<<<<< HEAD:isisd/isis_dlpi.c
+=======
+ struct strioctl sioc;
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/isis_dlpi.c
pfil.Pf_Priority = 0;
pfil.Pf_FilterLen = sizeof (pf_filter) / sizeof (u_short);
memcpy (pfil.Pf_Filter, pf_filter, sizeof (pf_filter));
+<<<<<<< HEAD:isisd/isis_dlpi.c
ioctl (fd, PFIOCSETF, &pfil);
+=======
+ /* pfmod does not support transparent ioctls */
+ sioc.ic_cmd = PFIOCSETF;
+ sioc.ic_timout = 5;
+ sioc.ic_len = sizeof (struct packetfilt);
+ sioc.ic_dp = (char *)&pfil;
+ if (ioctl (fd, I_STR, &sioc) == -1)
+ zlog_warn("%s: could not perform PF_IOCSETF on %s",
+ __func__, circuit->interface->name);
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/isis_dlpi.c
}
circuit->fd = fd;
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 1a4deb1b..48e3147d 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -33,6 +33,7 @@
#include "command.h"
#include "hash.h"
#include "if.h"
+#include "checksum.h"
#include "isisd/dict.h"
#include "isisd/isis_constants.h"
@@ -45,7 +46,6 @@
#include "isisd/isis_dynhn.h"
#include "isisd/isis_misc.h"
#include "isisd/isis_flags.h"
-#include "isisd/iso_checksum.h"
#include "isisd/isis_csm.h"
#include "isisd/isis_adjacency.h"
#include "isisd/isis_spf.h"
@@ -314,7 +314,7 @@ lsp_inc_seqnum (struct isis_lsp *lsp, u_int32_t seq_num)
newseq = seq_num++;
lsp->lsp_header->seq_num = htonl (newseq);
- iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
+ fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
return;
@@ -1803,7 +1803,7 @@ lsp_build_pseudo (struct isis_lsp *lsp, struct isis_circuit *circuit,
tlv_add_is_neighs (lsp->tlv_data.es_neighs, lsp->pdu);
lsp->lsp_header->pdu_len = htons (stream_get_endp (lsp->pdu));
- iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
+ fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
list_delete (adj_list);
@@ -2071,7 +2071,7 @@ lsp_purge_dr (u_char * id, struct isis_circuit *circuit, int level)
lsp->lsp_header->pdu_len =
htons (ISIS_FIXED_HDR_LEN + ISIS_LSP_HDR_LEN);
lsp->purged = 0;
- iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
+ fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
ISIS_FLAGS_SET_ALL (lsp->SRMflags);
}
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 6fcc5ed5..4311a905 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -32,6 +32,7 @@
#include "hash.c"
#include "prefix.h"
#include "if.h"
+#include "checksum.h"
#include "isisd/dict.h"
#include "isisd/include-netbsd/iso.h"
@@ -1121,7 +1122,7 @@ dontcheckadj:
if (isis->debugs & DEBUG_UPDATE_PACKETS)
zlog_debug ("LSP LEN: %d",
ntohs (lsp->lsp_header->pdu_len));
- iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
+ fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
ISIS_FLAGS_SET_ALL (lsp->SRMflags);
if (isis->debugs & DEBUG_UPDATE_PACKETS)
@@ -1164,7 +1165,7 @@ dontcheckadj:
/* 7.3.16.1 */
lsp->lsp_header->seq_num = htonl (ntohl (hdr->seq_num) + 1);
- iso_csum_create (STREAM_DATA (lsp->pdu) + 12,
+ fletcher_checksum (STREAM_DATA (lsp->pdu) + 12,
ntohs (lsp->lsp_header->pdu_len) - 12, 12);
ISIS_FLAGS_SET_ALL (lsp->SRMflags);
diff --git a/isisd/iso_checksum.c b/isisd/iso_checksum.c
index 16f18e50..abd101b9 100644
--- a/isisd/iso_checksum.c
+++ b/isisd/iso_checksum.c
@@ -23,6 +23,7 @@
#include <zebra.h>
#include "iso_checksum.h"
+#include "checksum.h"
/*
* Calculations of the OSI checksum.
@@ -47,14 +48,10 @@
int
iso_csum_verify (u_char * buffer, int len, uint16_t * csum)
{
- u_int8_t *p;
+ u_int16_t checksum;
u_int32_t c0;
u_int32_t c1;
- u_int16_t checksum;
- int i, partial_len;
- p = buffer;
- checksum = 0;
c0 = *csum & 0xff00;
c1 = *csum & 0x00ff;
@@ -70,33 +67,15 @@ iso_csum_verify (u_char * buffer, int len, uint16_t * csum)
if (c0 == 0 || c1 == 0)
return 1;
- /*
- * Otherwise initialize to zero and calculate...
- */
- c0 = 0;
- c1 = 0;
-
- while (len)
- {
- partial_len = MIN(len, 5803);
-
- for (i = 0; i < partial_len; i++)
- {
- c0 = c0 + *(p++);
- c1 += c0;
- }
+ /* Offset of checksum from the start of the buffer */
+ int offset = (u_char *) csum - buffer;
- c0 = c0 % 255;
- c1 = c1 % 255;
-
- len -= partial_len;
- }
-
- if (c0 == 0 && c1 == 0)
+ checksum = fletcher_checksum(buffer, len, offset);
+ if (checksum == *csum)
return 0;
-
return 1;
}
+<<<<<<< HEAD:isisd/iso_checksum.c
/*
* Creates the checksum. *csum points to the position of the checksum in the
@@ -191,3 +170,5 @@ iso_csum_create (u_char * buffer, int len, u_int16_t n)
/* return the checksum for user usage */
return checksum;
}
+=======
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:isisd/iso_checksum.c
diff --git a/isisd/iso_checksum.h b/isisd/iso_checksum.h
index ba0d1983..5f8d41f9 100644
--- a/isisd/iso_checksum.h
+++ b/isisd/iso_checksum.h
@@ -24,6 +24,5 @@
#define _ZEBRA_ISO_CSUM_H
int iso_csum_verify (u_char * buffer, int len, uint16_t * csum);
-u_int16_t iso_csum_create (u_char * buffer, int len, u_int16_t n);
#endif /* _ZEBRA_ISO_CSUM_H */
diff --git a/isisd/topology/.gitignore b/isisd/topology/.gitignore
new file mode 100644
index 00000000..dd75c27f
--- /dev/null
+++ b/isisd/topology/.gitignore
@@ -0,0 +1,12 @@
+Makefile
+Makefile.in
+*.o
+tags
+TAGS
+.deps
+.nfs*
+.arch-inventory
+.arch-ids
+*~
+*.loT
+