Commit Graph

11488 Commits

Author SHA1 Message Date
Quentin Young
6ef6e4f053 lib: initialize vty->of
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:12 +00:00
Quentin Young
f428cb8a3a lib: add vector_compact(), use after str splits
* Add function to move all data to the start of a vector by shifting
  over contiguous empty slots
* Use this function to remove empty slots leftover after
  frrstr_filter_vec

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:12 +00:00
Quentin Young
5d806ec6e0 lib: fix static analysis issues, use regfree()
* Fix potential NULL dereference
* Fix use of uninitialized value
* Fix leaking memory by not freeing regex_t
* Fix extra \n when using empty regex filter
* Clean up still-reachable hook memory
* Handle nonexistent pager

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:12 +00:00
Quentin Young
62bece4449 lib: add vector_remove() to vector.[ch]
An optimized version of this has already been implemented within graph.c
that assumes some specialized constraints for that code. It's generally
useful so this change implements a general purpose version of it.

This fixes cmd_make_strvec() that was broken by some code shuffling in
previous commits.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:12 +00:00
Quentin Young
0a334343d1 *: style for | support
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:12 +00:00
Quentin Young
2cddf2fff7 vtysh: add | support
* Rewrite pager implementation
* Replace fprintf() with vty_out()
* Modify vty_out() for better vtysh support
* Remove static global outputfile var
* Remove fp argument from many vtysh functions
* Add some docs for stuff along the way

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:16:10 +00:00
Quentin Young
fe6b47b9e9 lib: add cli preprocessor for | actions
This patch adds a CLI preprocessor function that activates when `|` is
found in the command. This is the start of adding support for some text
processing utilities intended for inline use. The first one implemented
here is `| include`, which provides grep-like filtering of command
output.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:15:34 +00:00
Quentin Young
01e24c4a69 lib: add hook for preprocessing commands
This patch adds a hook point intended to allow subscribers to modify the
raw text of a CLI command before it is passed to the rest of the CLI
pipeline. To give access to the raw text of the command, a new function
for executing CLI has been defined whose only difference from
`cmd_execute_command` is that it accepts the command to execute as a
string rather than as a string vector.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:15:34 +00:00
Quentin Young
fe011935cd lib: add string utilities
I see lots of the same code being copy-pasted and slightly tweaked for
string processing all over the codebase. Time to start aggregating these
pieces into something consistent and correct.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-06 16:15:34 +00:00
Quentin Young
a86dc99646
Merge pull request #2376 from mjstapp/doc_link
doc: fix broken link to 'code formatting' section
2018-06-05 17:30:07 -04:00
Mark Stapp
c964e51136 doc: fix broken link to 'code formatting' section
Mismatch in rst source was producing a dead link in the html output

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-06-05 15:32:07 -04:00
Lou Berger
ba89f1597a
Merge pull request #2367 from qlyoung/docuser
doc: document 'show cli graph'
2018-06-05 12:09:41 -04:00
Lou Berger
480e99c6c1
Merge pull request #2351 from donaldsharp/bgp_deprecation
Bgp deprecation
2018-06-05 12:05:39 -04:00
Lou Berger
6a296ecb8b
Merge pull request #2344 from pguibert6WIND/bgp_vrf_usecase
doc: add BGP VRF use case
2018-06-05 12:02:45 -04:00
Quentin Young
483e5a3aa5
Merge pull request #2304 from ppmathis/enhancement/bgp-pg-overrides
bgpd: Add proper support for overriding peer-group AF-flags/filters
2018-06-05 11:51:57 -04:00
Renato Westphal
f773023475
Merge pull request #2343 from donaldsharp/vtysh_fp
Code Cleanup and SA issues
2018-06-05 12:48:10 -03:00
Renato Westphal
0071b5f1b1
Merge pull request #2365 from donaldsharp/vxlan_mem_leak
zebra: Fix memory leak on host prefix removal
2018-06-05 11:50:35 -03:00
Donald Sharp
1525e99f17 bgpd: Cleanup assumptions in bgp_evpn.c
The bgp data structures:
bgp->vnihash
bgp->vrf_export_rtl
bgp->vrf_import_rtl
bgp->l2vnis

Must always be valid data structures.  So remove the tests
that ensure that they are.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-05 10:43:43 -04:00
Donald Sharp
20a7c80cc2 ospfd: lp may be null, make sure it isn't
We lookup the lp value and lookup_linkparams_by_instance
can return NULL if something has gone terribly wrong.
Make sure that lp is not NULL.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-05 10:42:05 -04:00
Donald Sharp
752ee70be8 ospfd: Note that we do not care about self origination in this case
When we first get a packet, we need to know if we are self
originated later to make correct decisions.  Go ahead and
note that we do not plan to make any decision points
about our self origination here.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-05 10:42:05 -04:00
Donald Sharp
b260862317 ripd: Intentionally ignore return from rip_send_packet
Coverity SA has noticed that we are not ignoring the return
codes from rip_send_packet in one case.  Since we do not care
let the system know we don't.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-05 10:42:05 -04:00
Donald Sharp
17e28b4cb4 vtysh: fp can never be NULL at this point in code
The fp pointer has already been dereferenced in all paths
leading to the test for non NULL.  Since we never crash
we know it cannot be NULL.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-05 10:42:05 -04:00
Renato Westphal
12d82cd7bf
Merge pull request #2368 from qlyoung/fix-show-bgp-l2vpn-evpn-missing-docstring
bgpd: fix missing docstring
2018-06-05 11:14:09 -03:00
Renato Westphal
0465ec8de9
Merge pull request #2352 from qlyoung/fix-yet-another-vtysh-read-bug
vtysh: fix potential stack buffer overflow
2018-06-05 11:05:48 -03:00
Donald Sharp
0bc39980a9
Merge pull request #2366 from msablic/pim_doc
doc: expanded PIM doc. w/ missing commands
2018-06-05 07:41:31 -04:00
Donald Sharp
d6bc1e1450
Merge pull request #2371 from gromit1811/pim-rp-lookup-messages-fix
pimd: Fix debug messages
2018-06-05 07:40:53 -04:00
Donald Sharp
8fea65d149
Merge pull request #2372 from gromit1811/pim-comment-fix
pimd: Comment spelling fix
2018-06-05 07:37:31 -04:00
Martin Buck
1a81b790a9 pimd: Comment spelling fix
Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2018-06-05 10:58:36 +02:00
Mladen Sablic
14916095ee doc: expanded PIM doc. w/ missing commands
PIM documantation was missing commands relevant to PIM protocol
that were documented in COMMANDS file of pimd directory.

Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
2018-06-05 10:10:50 +02:00
Quentin Young
b482a7fd83 bgpd: fix missing docstring
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-04 21:51:07 +00:00
Quentin Young
8957c78a9e doc: document 'show cli graph'
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-04 20:20:31 +00:00
Donald Sharp
10ac25160c zebra: Fix memory leak on host prefix removal
When we have a host prefix, actually free the alloced memory
associated with it when we free it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-04 13:31:34 -04:00
Donald Sharp
7acf817f46
Merge pull request #1976 from pguibert6WIND/issue_1968
Issue 1968 / ip route <> table X
2018-06-04 09:36:01 -04:00
Donald Sharp
3b7268448f
Merge pull request #2259 from ppmathis/enhancement/peer-enforce-first-as
bgpd: Move 'enforce-first-as' from global to peer
2018-06-04 09:35:00 -04:00
Donald Sharp
dc8daeadaa
Merge pull request #2355 from opensourcerouting/fix-build-freebsd-snmp
build: append -std=gnu99 after SNMP_CFLAGS
2018-06-04 08:36:02 -04:00
Donald Sharp
5b3ef5094c
Merge pull request #2356 from opensourcerouting/doc-ldpd-rfcs
doc: list RFCs supported by ldpd in overview.rst
2018-06-04 08:35:03 -04:00
Martin Buck
5271457d94 pimd: Fix debug messages
Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2018-06-04 14:27:48 +02:00
Donald Sharp
38bbad1bef zebra: Add some vrf information to debug messages
When debugging code in redistribute.c, it is useful to output
the vrf we think the interface is in.  So display it
when we are debugging.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-04 13:17:38 +02:00
Donald Sharp
d12b745c90 bgpd: Actually release peer from bgp_peer hash
When we are determining the state of a peer, we sometimes
detect that we should update the peer->su.  The bgp->peer_hash
keeps a hash of peers based upon the peer->su.  This requires
us to release the stored value before we re-insert it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-04 13:16:29 +02:00
Lou Berger
3ad00234f7 bgpd: open per vrf listen socket for linux type vrfs
Signed-off-by: Lou Berger <lberger@labn.net>
2018-06-04 13:13:15 +02:00
Lou Berger
c9c70dd164 lib: fix setsockopt arg
Signed-off-by: Lou Berger <lberger@labn.net>
2018-06-04 13:13:15 +02:00
Renato Westphal
401c174473 doc: list RFCs supported by ldpd in overview.rst
This is only a minor step in the direction of actually writing
documentation for ldpd...

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-06-02 22:36:10 -03:00
Renato Westphal
7aad159464 build: append -std=gnu99 after SNMP_CFLAGS
Programs that link to libnetsnmp must be compiled using a special set
of flags as specified by the "net-snmp-config --base-cflags" command
(whose output is stored in the SNMP_CFLAGS variable). The problem is
that "net-snmp-config --base-cflags" can output -std=c99 in addition to
other compiler flags in some platforms, and this breaks the build since
FRR souce code makes use of some GNU compiler extensions (e.g. allow
trailing commas in function parameter lists). In order to solve this
problem, append -std=gnu99 after SNMP_CFLAGS in all makefiles where this
variable is used. This way the -std=c99 flag will be overwritten when it's
present. Source files that don't link to libnetsnmp will be compiled using
either -std=gnu99 or -std=gnu11 depending on the compiler availability.

Fixes #1617.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-06-02 22:12:57 -03:00
Russ White
ebb46153b0
Merge pull request #2245 from donaldsharp/type_4
Support EVPN Type 4 Routes
2018-06-01 16:00:14 -04:00
Quentin Young
acf59d7a87 vtysh: fix potential stack buffer overflow
If vtysh was instructed to perform line-by-line processing on the output
of a command executed against a daemon and this output, as received by
vtysh, was not terminated with a newline, vtysh could print contents of
memory to its output device.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-06-01 19:25:03 +00:00
Donald Sharp
ad0b64d18d bgpd: Note deprecation in documentation
Note that these commands:

bgp config-type cisco
no bgp multiple-instance

are now deprecated and will be removed in a future version of FRR.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-01 15:15:30 -04:00
Donald Sharp
1cc406605b bgpd: Deprecate and hide the no bgp multiple-instance command
This command needs to be deprecated.  It partially implements
a refusal to create multiple instances.  If you do not need
multiple instances, just don't create them in the cli instead.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-01 15:15:30 -04:00
Donald Sharp
798467a200 bgpd: Hide and deprecate bgp config-type cisco command
This command needs to be deprecated.  It sets a small variety
of options via the BGP_OPT_CONFIG_CISCO flag.  Set for removal
in 1 year.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-06-01 15:15:30 -04:00
Quentin Young
65757481f0
Merge pull request #2329 from pguibert6WIND/issue_2275_proposal
doc: inform the diff between config from zebra and outside
2018-06-01 12:39:20 -04:00
Olivier Dugeon
4adca4ef16
Merge pull request #2309 from opensourcerouting/master-mpls_te_print_detail-fix
isisd: fix mpls_te_print_detail to not read out-of-bounds
2018-06-01 16:32:15 +02:00