Commit Graph

273 Commits

Author SHA1 Message Date
Daniel Walton
82f97584fb all: removed all DEFUN command stomps
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2016-10-06 19:56:13 +00:00
Quentin Young
12dcf78e0b all: Fix various syntax errors
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2016-10-04 19:21:45 +00:00
Daniel Walton
6de69f8305 all: added some missing <>s within []s
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-30 15:31:48 +00:00
Daniel Walton
8749a04cc2 ospf6d: scrubbed some argc CHECK MEs
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-30 13:39:56 +00:00
Quentin Young
d8bd2affd3 isisd: scrub argc CHECK ME's, refactor general
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2016-09-29 23:24:52 +00:00
Daniel Walton
abddf07563 all: scrubbed some argc CHECK MEs
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-29 19:51:56 +00:00
Daniel Walton
67656e9b65 all: added CHECK ME for DEFUNs that look at argc
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-29 17:48:57 +00:00
Daniel Walton
b44c509a14 isisd: resolve CHECK MEs
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-27 04:26:43 +00:00
Daniel Walton
9ccf14f739 Expand #defines in command strings
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-25 14:10:48 +00:00
Daniel Walton
ba4c5c8307 isisd: add 'int idx_foo' argv index variables
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 19:50:58 +00:00
Daniel Walton
6147e2c694 convert <1-255> to (1-255), ()s to <>s, etc
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 13:47:20 +00:00
Daniel Walton
f412b39a33 ALIAS removal for bgp, ospf, pim, isis, rip, ripng, lib and zebra
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 03:55:26 +00:00
Daniel Walton
b823bd432c isisd: argv update
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2016-09-23 01:07:05 +00:00
Daniel Walton
66c1ec097e Revert "isisd: Make work under new regime"
This reverts commit 38c2499873.
2016-09-22 18:21:30 +00:00
Donald Sharp
38c2499873 isisd: Make work under new regime 2016-09-20 23:46:23 -04:00
David Lamparter
4a1ab8e405 *: split & distribute memtypes and stop (re|ab)using lib/ MTYPEs
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>
2016-09-19 16:31:04 -04:00
David Lamparter
fc7948fafe lib: migrate to new memory-type handling
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>
2016-09-19 18:35:50 +02:00
Donald Sharp
49d41a26c6 isisd, lib, vtysh: Allow extract.pl to fully work
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>
2016-09-17 07:25:35 -04:00
Donald Sharp
3176e70c10 isisd, vtysh: Fix isis routemaps
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>
2016-09-17 07:11:19 -04:00
Donald Sharp
fdc7ce4a2f isisd: Remove duplicate "no debug isis lsp-gen"
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>
2016-09-16 22:21:29 -04:00
Olivier Dugeon
68558b1309 Update isis_te.[c,h] to newly RFC7810
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)
2016-09-13 16:02:37 -04:00
Donald Sharp
7f80b49ae0 isisd: Remove impossible code
te->sub_tlvs can never be NULL as that it is an
array.  Remove dead code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2016-09-04 20:13:43 -04:00
Olivier Dugeon
f8c06e2c52 Add support of Traffic Engineering to IS-IS
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>
2016-09-03 11:05:50 -04:00
Timo Teräs
8ccc7e802b lib, zebra: unify link layer type and hardware address handling
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
#
2016-09-03 11:05:50 -04:00
Donald Sharp
5b30316ea5 bgpd, lib, ospfd, pimd, zebra: Use nexthop_types_t
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>
2016-09-02 10:36:28 -04:00
Donald Sharp
810a8dfc93 Merge remote-tracking branch 'origin/cmaster' into cmaster-next 2016-08-19 12:18:35 -04:00
Paul Jakma
b892f1ddfe *: use an ifindex_t type, defined in lib/if.h, for ifindex values
(cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
2016-08-18 07:35:38 -04:00
Sid Khot
c05795b16b Fix for CM-12450 Ensure quagga logs at startup are sent to syslog (until log configuration is processed)
Ticket: CM-12450
Reviewed By: CCR-5112
Testing Done: Manual
2016-08-17 19:36:54 -07:00
Christian Franke
eb735f6774 isisd: warn if there is an MTU issue on circuits
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>
2016-08-16 16:10:17 +02:00
David Lamparter
ab1f20e607 isisd: fold up isis_circuit_is_type_set()
see previous commit.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-08-16 16:06:48 +02:00
David Lamparter
f6ad4ba172 isisd: fix is_type_set
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>
2016-08-16 16:06:41 +02:00
Christian Franke
b7b5d56222 isisd: fix network-type configuration
Reported-by: Martin Winter <mwinter@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-08-16 16:06:03 +02:00
David Lamparter
19dd696bda isisd: fix isis_circuit_af_set() on fresh circuit
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>
2016-08-16 16:05:59 +02:00
David Lamparter
9af6011992 isisd: fix isis_circuit_create()
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>
2016-08-16 16:05:42 +02:00
David Lamparter
47a928fb85 isisd: drop unused per-type metric values
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>
2016-07-28 11:08:49 -04:00
Christian Franke
9093b23046 isisd: API: area (L1), domain (L2) passwords
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>
2016-07-28 11:08:49 -04:00
Christian Franke
466ed4061d isisd: API: timers (LSP, SPF)
See previous commits...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-07-28 11:08:49 -04:00
Christian Franke
6754fc6650 isisd: API: LSP-MTU & area level
Yet more CLI functions in isis_vty.c using more nice setters.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-07-28 11:08:49 -04:00
David Lamparter
01bb08b6dc isisd: API: timers (IIH, CSNP, PSNP)
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>
2016-07-28 11:08:48 -04:00
Christian Franke
50c7d14a2a isisd: API: circuit password
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>
2016-07-28 11:08:48 -04:00
Christian Franke
a38a72db2c isisd: API: basic area config
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>
2016-07-28 11:08:48 -04:00
David Lamparter
65f9a9a8f5 isisd: API: basic circuit config
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>
2016-07-28 11:08:48 -04:00
David Lamparter
a8fd820281 lib: linklist: clean up insert-before/after dups
- 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>
2016-07-28 07:27:47 -04:00
Don Slice
2caa9b3957 all: add default log file if none are defined
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
2016-07-11 12:57:24 -07:00
David Lamparter
7a2fbbf0ee *: make sure zebra.h is always included first
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)
2016-06-09 10:45:22 -04:00
David Lamparter
7b7a77a601 isisd: fix size_t confusions
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)
2016-06-07 09:13:23 -04:00
David Lamparter
18209e2c25 isisd: assorted fixes (unused variables, static)
This just mops up a few warnings in isisd.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit f50ee93d12f8213a048a04fcf7d73e12662288e5)
2016-06-07 09:05:52 -04:00
David Lamparter
bfac306056 isisd: don't use POSIX reserved y1/yn names
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>
2016-06-07 09:00:37 -04:00
David Lamparter
f2bce9a5b3 *: fix signedness mix-ups
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 21401f3215be26dcb0f787105f5907745498e966)
2016-06-07 08:47:49 -04:00
David Lamparter
6c4f4e6e6a *: use void * for printing pointers
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>
2016-05-29 21:27:26 -04:00