summaryrefslogtreecommitdiffstats
path: root/isisd/isisd.c
Commit message (Collapse)AuthorAgeFilesLines
* cumulus take-3cumulus-take-3Timo Teräs2016-03-301-2/+3
|
* isisd: add support to import routes from other protocolsChristian Franke2015-12-081-0/+4
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* isisd: add a slight delay to lsp_regenerate_scheduleChristian Franke2015-12-081-0/+37
| | | | | | | | | | | | | | | | | | | | | | | isisd implements a holdoff interval and will refrain from regenerating an lsp if the difference between the current time and its last refresh is less than the holdoff interval. Instead, it will schedule a timer to regenerate the lsp after the holdoff interval has passed. This implementation has one disadvantage in the case where there is a succession of calls to lsp_regenerate_schedule. In such a case, the first call will trigger an immediate regeneration of the lsp, while the other calls will only schedule the regeneration timer. This leads to cases where it takes holdoff interval time for information to propagate, just because the information was only available e.g. at the second call of lsp_regenerate_schedule in such a succession of calls. By not immediately regenerating an lsp if the last generation time is sufficiently long ago, but instead scheduling the regeneration with a very small delay, we allow all information from such a succession of calls to be considered. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: add a debug mode that traces LSP constructionChristian Franke2015-12-081-0/+37
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* isisd: allow to adjust lsp-mtuChristian Franke2015-12-081-3/+81
| | | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: Attached-bit in LSP headerAmritha Nambiar2015-09-031-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | Set/reset attached-bit in LSP header: This patch provides support for set/reset attached_bit in the LSP header. In IS-IS networks, routing inter-area traffic from L1 areas is accomplished by sending the traffic to the nearest L1/L2 router. A L1/L2 router identifies itself by setting an attach-bit (ATT-bit) in its (LSP). The ATT-bit in LSP can be changed using the set-attached-bit or no-set-attached-bit commands (similar to ‘set-overload-bit’ and 'no set-overload-bit’) using telnet terminal in router configuration mode. Steps: enable configure terminal router isis <Routing area> set-attached-bit V2: Removed looping through area list as this well set the bit for all areas in the list. This implementation now looks exactly like the current overload bit implementation. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com>
* *: remove stray extra semicolonsDavid Lamparter2015-04-211-4/+4
| | | | | | Some places had extra semicolons where none belong. Remove them. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: use long long to print time_tDavid Lamparter2015-04-191-2/+2
| | | | | | | | | | | | Since we can't assume time_t to be long, int, or even long long, this consistently uses %lld/long long (or %llu/unsigned long long in a few cases) to print time_t/susecond_t values. This should fix a bunch of warnings, on NetBSD in particular. (Unfortunately, there seems to be no "PRId64" style printing macro for time_t...) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: verify metrics on metric-style transitionChristian Franke2012-12-121-8/+11
| | | | | | | | When switching to metric-style transition, circuit metrics should also be verified to be in the narrow range 0..63. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: fix metrics check for metric-style narrowChristian Franke2012-12-121-2/+2
| | | | | | | | | | When switching to narrow metric style, all configured circuits are verified to have a valid narrow style metric. Check te_metric instead of metric_default as the latter is only 8bit wide and may overflow for wide style metrics. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: save metric-style narrowChristian Franke2012-12-121-0/+5
| | | | | | | | | isisd defaults to wide metric style. So if narrow metric style is configured, a matching setting should be written to the configuration, allowing a narrow metric-style setting to be saved. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: couple of bug fixesSubbaiah Venkata2012-04-071-38/+67
|
* isisd: add Google's changes to IS-ISJosh Bailey2012-04-071-468/+1471
|
* [cleanup] Make command nodes staticStephen Hemminger2009-06-121-1/+1
| | | | | The cmd_nodes used to configure vty, can mostly be static so (basic data hiding 101).
* [isisd] Bug #437: fix ssert caused by bad list managementPaul Jakma2008-01-291-2/+6
| | | | | | | | | | | | | 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.
* [isisd] Fix compiler warnings and allow v4-only compilationPaul Jakma2006-12-081-5/+20
| | | | | | | | | | | 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.
* * isis_adjacency.c: Stop expire timer while deleting adjacency.hasso2005-10-011-0/+25
| | | | | | | | | | * 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.
* * *.c: Massive cleanup of lists loops. Stop abusing ALL_LIST_ELEMENTS.hasso2005-09-281-35/+34
| | | | | | Replace XMALLOC + memset with XCALLOC. Fix some indentation issues. The only really significant change is simplified isis_delete_adj function in isis_adjacency.c.
* * isis_spf.c: Changing cost from uint16_t to uint32_t. Unsethasso2005-09-261-2/+4
| | | | | | | | | | | | | 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. In short - many changes to make SPF work more correctly, add/remove to/from RIB also works now. It's still very far from perfect though.
* * isisd.[ch]: Introduce oldmetric flag for area and transitionhasso2005-09-261-14/+29
| | | | | metricstyle command. With metricstyle wide only extended TLVs should be used.
* * isis_lsp.h: Added backpointer to the area from LSP. For now it's usedhasso2005-09-191-44/+71
| | | | | | | | | | | | | 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. Topology generation feature is actually useful now.
* * *.c: Try to be less verbose by default (without any debug optionshasso2005-09-041-2/+4
| | | | | | | on). * isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of touching endp directly. * isis_lsp.c (lsp_build_pseudo): Ditto.
* * isis_adjacency.c, isis_lsp.c, isisd.c: Replace XMALLOC && memsethasso2005-09-011-4/+2
| | | | | | | | | 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 enp to the right place before starting to fill stream with TLVs.
* 2005-05-25 Paul Jakma <paul@dishone.st>paul2005-05-251-3/+3
| | | | | | * 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-04-10 Paul Jakma <paul@dishone.st>paul2005-04-101-1/+1
| | | | | | | | | | * 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-07 Paul Jakma <paul.jakma@sun.com>quagga_post_listloop_cleanuppaul2005-04-071-34/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * (global): Fix up list loops to match changes in lib/linklist, and some basic auditing of usage. * configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES * HACKING: Add notes about deprecating interfaces and commands. * lib/linklist.h: Add usage comments. Rename getdata macro to listgetdata. Rename nextnode to listnextnode and fix its odd behaviour to be less dangerous. Make listgetdata macro assert node is not null, NULL list entries should be bug condition. ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use with for loop, Suggested by Jim Carlson of Sun. Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the "safety" of previous macro. LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to distinguish from the similarly named functions, and reflect their effect better. Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section with the old defines which were modified above, for backwards compatibility - guarded to prevent Quagga using it.. * lib/linklist.c: fix up for linklist.h changes. * ospf6d/ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single scan of the area list, rather than scanning all areas first for INTER_ROUTER and then again for INTER_NETWORK. According to 16.2, the scan should be area specific anyway, and further ospf6d does not seem to implement 16.3 anyway.
* * configure.ac: Add --enable-isis-topology to enable isisd topologyhasso2005-04-021-5/+5
| | | | | | | | | | | | generator code. * isisd/Makefile.am: Variables to handle conditonal compiling of topology generator code. * isisd/isis_lsp.c: lsppdu_realloc() is used by topology generator. * isisd/isisd.c: Rename show_isis_topology_cmd to not conflict the one in the isis_spf.c. * isisd/isisd.h: Remove TOPOLOGY_GENERATE define, it will be defined in toplevel config.h if topology generator is enabled. * isisd/topology/Makefile.am: Handle the libtoolized Quagga libraries.
* Make authentication of SNPs work correctly - ie. conditionally like it is inhasso2005-01-011-4/+70
| | | | IOS.
* zlog_* cleanup. Level of debug messages to LOG_DEBUG.hasso2004-12-241-3/+3
|
* Sync isisd with changes in lib.hasso2004-10-111-3/+3
|
* Compiler warnings fixes.hasso2004-09-261-7/+7
|
* * isisd.c: thread_master *master is already defined in isis_main.c.hasso2004-09-241-1/+1
| | | | | * isis_misc.[c|h], isis_lsp.[c|h]: Move static variables out of header files.
* Second part of fixes from Laurent Rabret.hasso2004-09-151-0/+13
|
* Indentation only. No any functional changes.hasso2004-09-101-676/+663
|
* Make it compile in NetBSD and OpenBSD.hasso2004-05-191-1/+0
|
* Threads usage cleanup. Still at least one bug to go.hasso2004-02-111-7/+4
|
* Some fixes to isisd done by me and Cougar in the spring of 2003. Seehasso2003-12-231-2/+2
| | | | changelog for details.
* Merge isisd into the Quagga's framework:jardin2003-12-231-0/+98
| | | | | | | | | | - add privs support - use misc quagga's definitions - make it compile"able" - fix segfault cases related to hostname() - add debug isis xxx command This patch has been approved by Paul Jakma.
* Initial revisionjardin2003-12-231-0/+1989