summaryrefslogtreecommitdiffstats
path: root/isisd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Expand #defines in command stringsDaniel Walton2016-09-251-2/+2
| | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
* isisd: add 'int idx_foo' argv index variablesDaniel Walton2016-09-235-90/+169
| | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
* convert <1-255> to (1-255), ()s to <>s, etcDaniel Walton2016-09-235-52/+52
| | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
* ALIAS removal for bgp, ospf, pim, isis, rip, ripng, lib and zebraDaniel Walton2016-09-233-343/+377
| | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
* isisd: argv updateDaniel Walton2016-09-235-98/+94
| | | | Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
* Revert "isisd: Make work under new regime"Daniel Walton2016-09-225-99/+99
| | | | This reverts commit 38c249987301aac93bebc0cb7b51784d5827c066.
* isisd: Make work under new regimeDonald Sharp2016-09-215-99/+99
|
* *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEsDavid Lamparter2016-09-196-6/+108
| | | | | | | | | | | | | | | | | | | This is a rather large mechanical commit that splits up the memory types defined in lib/memtypes.c and distributes them into *_memory.[ch] files in the individual daemons. The zebra change is slightly annoying because there is no nice place to put the #include "zebra_memory.h" statement. bgpd, ospf6d, isisd and some tests were reusing MTYPEs defined in the library for its own use. This is bad practice and would break when the memtype are made static. Acked-by: Vincent JARDIN <vincent.jardin@6wind.com> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com> [CF: rebased for cmaster-next] Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* lib: migrate to new memory-type handlingDavid Lamparter2016-09-192-1/+1
| | | | | | | | | Move over to the new allocation counting added in the previous commit. (This commit is mostly mechanical.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
* isisd, lib, vtysh: Allow extract.pl to fully workDonald Sharp2016-09-174-87/+100
| | | | | | | | | The regular expression for finding DEFUN/ALIAS in extract.pl looks for "DEFUN (" or "ALIAS (" if the *.c file does not have this then it will just silently ignore the cli. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd, vtysh: Fix isis routemapsDonald Sharp2016-09-171-86/+81
| | | | | | | | Apparently extract.pl requires in it's regular expression a space after the DEFUN or ALIAS before the opening ( or it completely skips the command. Brilliant? Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* isisd: Remove duplicate "no debug isis lsp-gen"Donald Sharp2016-09-171-13/+0
| | | | | | | The code for 'no debug isis lsp-gen' is in isisd.c twice. No need for this. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Update isis_te.[c,h] to newly RFC7810Olivier Dugeon2016-09-132-4/+4
| | | | | | | draft-ietf-isis-te-metric-extensions-11 has been published as RFC 7810 Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com> (cherry picked from commit b2d48d2838ef4813f4c7c7d0ce1d55dc25e3acf1)
* isisd: Remove impossible codeDonald Sharp2016-09-051-3/+0
| | | | | | | te->sub_tlvs can never be NULL as that it is an array. Remove dead code. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Add support of Traffic Engineering to IS-ISOlivier Dugeon2016-09-0315-18/+1896
| | | | | | | | | | | | | | | | | | | | | | These patches is an implementation of RFC5305 that enable the support of Traffic Engineering in IS-IS * isisd/Makefile.am: Add new files isis_te.c and isis_te.h * isisd/isis_circuit.[c,h]: Add new mpls_te_circuit structure to isis_circuit structure to handle new Traffic Engineering TLVs * isisd/isis_lsp.c: Update LSP handler to mux/demux Traffic Engineering TLVs * isisd/isis_main.c: Add initialisation of ISIS TE * isisd/isis_pdu.c: Update function process_p2p_hello() to retrieve remote IP address to populate Traffic Engineering TLV. * isisd/isis_te.[c,]: Implementation of RFC5305 * isisd/isis_tlv.[c,h]: Update TLV definition and function to handle Traffic Engineering ones * isisd/isis_zebra.c: Add new function isis_zebra_link_params() to retrieve the link parameters of interfaces from ZBus to populate the Traffic Engineering TLVs * isisd/isisd.[c,h]: Add Traffic Engineering support with new debug command Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* lib, zebra: unify link layer type and hardware address handlingTimo Teräs2016-09-031-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the BSD specific usage of struct sockaddr_dl hardware address. This unifies to use explict hw_addr member for the address, and zebra specific enumeration for the link layer type. Additionally the zapi is updated to never send platform specific structures over the wire, but the ll_type along with hw_addr_len and hw_addr are now sent for all platforms. Based on initial work by Paul Jakma. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Author: Timo Teräs <timo.teras@iki.fi> # # rebase in progress; onto 9c2f85d # You are currently editing a commit while rebasing branch 'renato' on '9c2f85d'. # # Changes to be committed: # modified: isisd/isis_circuit.c # modified: lib/if.c # modified: lib/if.h # modified: lib/zclient.c # modified: zebra/interface.c # modified: zebra/interface.h # modified: zebra/kernel_socket.c # modified: zebra/rt_netlink.c # modified: zebra/rtadv.c # modified: zebra/zserv.c # # Untracked files: # "\033\033OA\033OB\033" # 0001-bgpd-fix-build-on-Solaris.patch # ldpd/ # redhat/ldpd.init # redhat/ldpd.service # tags #
* bgpd, lib, ospfd, pimd, zebra: Use nexthop_types_tDonald Sharp2016-09-021-2/+2
| | | | | | | | | Use the 'enum nexthop_types_t' instead of the zebra.h #defines. And remove code from zebra.h that does not belong there. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
* Merge remote-tracking branch 'origin/cmaster' into cmaster-nextDonald Sharp2016-08-191-1/+3
|\
| * Fix for CM-12450 Ensure quagga logs at startup are sent to syslog (until log ↵Sid Khot2016-08-181-1/+3
| | | | | | | | | | | | | | | | configuration is processed) Ticket: CM-12450 Reviewed By: CCR-5112 Testing Done: Manual
* | *: use an ifindex_t type, defined in lib/if.h, for ifindex valuesPaul Jakma2016-08-183-11/+11
| | | | | | | | (cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
* | isisd: warn if there is an MTU issue on circuitsChristian Franke2016-08-162-2/+10
| | | | | | | | | | | | | | Instead of later tripping over an assert, add a proper warning for interfaces whose MTU is too low. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fold up isis_circuit_is_type_set()David Lamparter2016-08-163-9/+2
| | | | | | | | | | | | see previous commit. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fix is_type_setDavid Lamparter2016-08-161-3/+3
| | | | | | | | | | | | | | | | | | Code's "is_type" is "circuit-type" in CLI, "circuit_type" is "network" (type) in CLI, and the function to change is_type is isis_event_circuit_type_change()... *headdesk* Reported-by: Martin Winter <mwinter@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fix network-type configurationChristian Franke2016-08-162-3/+2
| | | | | | | | | | Reported-by: Martin Winter <mwinter@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fix isis_circuit_af_set() on fresh circuitDavid Lamparter2016-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | A newly-created circuit will be in enabled state but have neither IPv4 nor IPv6 configured. The logic in isis_circuit_af_set assumed that "enabled" is equivalent to "ip || ipv6". This is the only place where this distinction is currently relevant, as the CLI won't allow enabling an interface without enabling either IPv4 or IPv6; and it will also disable a circuit when both are deconfigured. Reported-by: Martin Winter <mwinter@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | isisd: fix isis_circuit_create()David Lamparter2016-08-162-12/+10
|/ | | | | | | | | | | | | Between the awkwardly managed CSM and the tacked-on IPv6 support, the simplified logic to setup a circuit wasn't quite right. Note that the API essentially allows creating a circuit without enabling either IPv4 or IPv6. This wasn't possible before and probably breaks isisd in 'interesting' ways. The CLI won't do this, so it's only an issue when adding on other configuration mechanisms. Reported-by: Martin Winter <mwinter@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: drop unused per-type metric valuesDavid Lamparter2016-07-283-14/+20
| | | | | | | | | Expense, Error and Delay metrics never quite made it into the real world. Either way isisd does nothing useful with them, so let's drop them from the code. If someone wants to implement them, this patch can still be reverted. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: area (L1), domain (L2) passwordsChristian Franke2016-07-283-266/+158
| | | | | | | | | | Last isisd CLI cleanup for now. This also folds L1 & L2 configs into common functions, reducing CLI function bloat by a bit. (This patch contains changes authored by both Christian Franke and David Lamparter.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: timers (LSP, SPF)Christian Franke2016-07-284-651/+585
| | | | | | See previous commits... Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: LSP-MTU & area levelChristian Franke2016-07-285-238/+227
| | | | | | Yet more CLI functions in isis_vty.c using more nice setters. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: timers (IIH, CSNP, PSNP)David Lamparter2016-07-282-705/+704
| | | | | | | No setters needed since change of fields doesn't require any specific action to make it apply. Just move the CLI defs to isis_vty.c. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: circuit passwordChristian Franke2016-07-283-58/+84
| | | | | | | | This cleans up circuit password configuration a little bit. (Restructured several times by both Christian Franke and David Lamparter.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: basic area configChristian Franke2016-07-283-201/+207
| | | | | | | | | Move out basic area configuration (metric type, overload and attachment bits, dynamic hostname extension enable) into isis_vty.c. [v2: moved stuff back here that accidentally was in the previous patch] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* isisd: API: basic circuit configDavid Lamparter2016-07-286-808/+771
| | | | | | | | | | | Create isis_vty.c and start moving off CLI functions into that. These then call newly-added "nice" API wrappers. Patch contains significant work authored by Christian Franke. [v2: removed stuff that crept in from the next patch] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* lib: linklist: clean up insert-before/after dupsDavid Lamparter2016-07-281-2/+2
| | | | | | | | - list_add_node_next was in fact unused - list_add_node_prev performs a subset of listnode_add_before and its only use in isisd replaced with that. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* all: add default log file if none are definedDon Slice2016-07-111-1/+2
| | | | | | | | | | | | Added a default log file named /var/log/quagga/Quagga.log to every daemon to capture log entries if no log file is defined. This also allows the capture of logged information prior to reading each daemon's config file. If a log file is defined manually, it will override this default file name. Ticket: CM-10987 Signed-off-by: Don Slice Reviewed By: Donald Sharp Testing Done: Manual testing
* *: make sure zebra.h is always included firstDavid Lamparter2016-06-094-2/+6
| | | | | | | | | zebra.h pulls in config.h, which results in fiddling with things like __FILE_OFFSET_BITS. It must always be included first, in order to set flags that influence the compiler via <features.h>. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 821df2cf18e5978cc7ab532a8695444380d08270)
* isisd: fix size_t confusionsDavid Lamparter2016-06-071-5/+3
| | | | | | | | isisd had a few places that mixed up size_t vs. unsigned long, and %zd vs. %ld. Clean out. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 01da6176b88fe59b3c6ceaf3630df88046c83159)
* isisd: assorted fixes (unused variables, static)David Lamparter2016-06-071-2/+2
| | | | | | | This just mops up a few warnings in isisd. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit f50ee93d12f8213a048a04fcf7d73e12662288e5)
* isisd: don't use POSIX reserved y1/yn namesDavid Lamparter2016-06-071-12/+12
| | | | | | | y1 and yn are POSIX standard names for Bessel functions. For consistency, just rename all of these variables from "y" to "yy". Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: fix signedness mix-upsDavid Lamparter2016-06-074-10/+11
| | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 21401f3215be26dcb0f787105f5907745498e966)
* *: use void * for printing pointersDavid Lamparter2016-05-301-2/+2
| | | | | | | | | On higher warning levels, compilers expect %p printf arguments to be void *. Since format string / argument warnings can be useful otherwise, let's get rid of this noise by sprinkling casts to void * over printf calls. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: use long long to print time_tDavid Lamparter2016-05-303-4/+6
| | | | | | | | | | | | | 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> (cherry picked from commit ef008d2f8dc8f7160d8a3d24a15f2fad79ef3242)
* Quagga: Fix code to use srandom/randomDonald Sharp2016-05-302-2/+2
| | | | | | | | Quagga was using a mix of srand/rand and srandom/random. Consolidate to use srandom/random which are the POSIX versions of random number generators Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* build: get rid of INCLUDES, use AM_CPPFLAGSDavid Lamparter2016-06-032-5/+2
| | | | | | | | | | | | | INCLUDES in configure.ac was not used at all, and INCLUDES in Makefile.am is supposed to be AM_CPPFLAGS these days. Reduces warnings spewed during bootstrap/autoreconf. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Acked-by: Greg Troxel <gdt@ir.bbn.com> Acked-by: Feng Lu <lu.feng@6wind.com> Acked-by: Paul Jakma <paul@jakma.org> (cherry picked from commit 237aac56960575f6ad2451ba2796d94bd5ae4b33)
* isisd/isis_dlpi: Fix warningDavid Lamparter2016-05-261-1/+1
| | | | | | | 'fd' may be used uninitialized. Init to -1 Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit f90ce64d68cf0ad56ff0370338ec58c883a3448d)
* isisd/solaris: fix size_t confusionsDavid Lamparter2016-05-261-11/+12
| | | | | Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit ba6cd587b4114528c8d6af439c4f49c7bb95a92b)
* isisd: Add new adjacency to LSP neighbor listAmritha Nambiar2016-05-261-1/+7
| | | | | | | | | | | | | | | | | | | isis_pdu.c : New adjacency did not always get added to LSP neighbor list. The adjacencies that were created once minimum time allowed before LSP retransmission had surpassed, instantly got their LSP regenerated, but the adjacency circuit type was not set to IIH PDU circuit type before the LSP was regenerated , hence didn't pass the check for adjacency circuit type in lsp_build(), and the adjacency was not added to neighbor list. When a new adjacency is up, to build LSP with neighbor entry corresponding to the adjacency, set adjacency circuit type to circuit type from hello PDU header before new LSP is regenerated/built. This will result in the new adjacency entry getting added to the LSP neighbor list TLV. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com> (cherry picked from commit 06cc655c0345d610eb946bd41968caa03dc118ed)
* isisd: fix crash on processing own p2p helloAmritha Nambiar2016-05-261-0/+11
| | | | | | | | | | | | | | | isis_pdu.c : isisd crashes if router's own p2p hello packets get processed thereby creating an adjacecncy with itself. Asserts at isis_find_vertex. So discard own p2p IIH PDU and avoid creating adjacency with self. This would also fix duplicate systemID on an interface. These checks already exists for IS-IS LAN Level 1/2 Hello PDU in process_lan_hello, but not for point-to-point IIH PDUs. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 491417ac6383e2ea557951b24eb7bd3fffb69394)
* zebra, isisd: cast to unsigned char for ctypesDavid Lamparter2016-05-261-1/+1
| | | | | | | | | ctype.h macros take int as arguments, but expect arguments to be in unsigned char's range. Even though it probably works, this isn't correct on systems that have a signed char type. Cast explicitly. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 52f02b47685bc823c4c75560175a27aab0bd6709)