Commit Graph

9176 Commits

Author SHA1 Message Date
Quentin Young
f9aa3e5549
bgpd: fix uninitialized value in show cmd
When unsupported EVPN route types are are received / displayed with a
show command we print an uninitialized stack buffer.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-15 12:24:51 -04:00
Philippe Guibert
64ed2a6108 Merge pull request #1184 from donaldsharp/bgp_evpn_booey
bgpd: Do not put on outgoing stream type 5 route 2 times
2017-09-15 16:55:54 +02:00
Donald Sharp
8b45348e8e bgpd: Do not put on outgoing stream type 5 route 2 times
With the change to allow bgp_evpn.c to support 2,3 and 5 evpn routes
the output of the route type is being done by bgp_evpn_encode_prefix
instead of the individual route encoder functions.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
2017-09-15 09:49:26 -04:00
Donald Sharp
2026b8afac ospf6d: Fix the cli parsing
We were not properly positioning get_argv command.

Fixes: #1182
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-14 16:03:37 -04:00
Donald Sharp
ab0f1135b5 ospf6d: Note when we calculated spf
Fixes: #1181
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-14 16:03:26 -04:00
Daniel Walton
bb92922eaa zebra: cleanup reject vs blackhole vs null0 vs Null0
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-09-14 18:11:29 +00:00
Daniel Walton
d114b977e9 *: support keywords that begin with uppercase letter
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

VARIABLE tokens must be all uppercase, this allows us to support WORD
tokens that begin with an uppercase letter.  The "Null0" keyword is an
example of where this is needed.

The only VARIABLE we had that wasn't already all uppercase was
ASN:nn_or_IP-address:nn
2017-09-14 18:07:30 +00:00
Jafar Al-Gharaibeh
461b76e4ed Merge pull request #1178 from donaldsharp/pim_obfuscation
Pim debugging and ferr start usage
2017-09-14 11:37:29 -05:00
Jafar Al-Gharaibeh
5b98937e2a Merge pull request #1175 from donaldsharp/pim_sg_rpt_bullshit
pimd: More S,G RPT prune state missinformation
2017-09-14 11:34:47 -05:00
Donald Sharp
37664928bd pimd: Allow igmp join messages to return more detailed errors
Start the conversion of pim configuration commands to use
the ferr side channel to allow more detailed information
to be returned to cli commands.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-14 11:17:32 -04:00
Donald Sharp
3d225d48f0 pimd: Add new 'debug pim nht rp' command
All the rp debugs were a mish-mash of TRACE or ZEBRA,
but the reality they were all focused on handling NHT
issues associated with the RP's.  So let's create
a new debug 'debug pim nht rp' if you are having
issues with RP's.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-14 11:17:28 -04:00
Donald Sharp
37736d0870 pimd: More S,G RPT prune state missinformation
If you read the extra fine print of the PIM RFC
it asks you to stop the PP Timer and the
Expiry Timer when you are certain S,G RPT states.

This commit puts this into practice and it also
deletes the S,G ifchannel if necessary.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
2017-09-13 19:43:39 -04:00
Russ White
c56fdaa5db Merge pull request #1162 from opensourcerouting/clean_exit
*: make all daemons call frr_fini() on exit
2017-09-13 16:27:47 -04:00
Russ White
42b6df56da Merge pull request #1110 from qlyoung/mtsafe-log
lib: mt-safe log.c
2017-09-13 16:21:56 -04:00
Russ White
dcc4574ae6 Merge pull request #1163 from donaldsharp/deduplicate_nexthops
zebra: deduplicate nexthops
2017-09-13 16:18:41 -04:00
Russ White
7577536c5c Merge pull request #1170 from donaldsharp/ospf6d_crashasplat
ospf6d: Fix crash in prefix-list handling
2017-09-13 16:11:08 -04:00
Russ White
2fcd98bd13 Merge pull request #1171 from qlyoung/max-cli-tokens
lib, doc: increase maximum cli tokens
2017-09-13 16:09:36 -04:00
Lou Berger
323a4653ce Merge pull request #1169 from donaldsharp/eas_crud
bgpd: Fix warning introduced by PR #1133
2017-09-13 13:19:23 -04:00
Lou Berger
469874c45a Merge pull request #1173 from qlyoung/dedup-struct-ecomm
bgpd: deduplicate struct definition
2017-09-13 13:16:41 -04:00
Donald Sharp
8ce42777bc Merge pull request #1158 from opensourcerouting/ldpd-label-allocation
ldpd label allocation
2017-09-13 12:24:14 -04:00
Quentin Young
5a0ccebf91
bgpd: deduplicate struct definition
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-13 11:47:35 -04:00
Quentin Young
bb74e5acbc
lib, doc: increase maximum cli tokens
When matching user input against a CLI graph, we keep a stack of tokens
matched. Stack size was limited to 64, making the effective number of
tokens that could be entered on a line 64. This is too limiting in some
circumstances, so bump it to 256 (and document it).

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-13 10:39:22 -04:00
Renato Westphal
fea0584841 Merge pull request #1161 from dslicenc/bgp-vrf-nexthop
bgpd: fix show ip bgp vrf <vrf> nexthop
2017-09-13 10:46:34 -03:00
Donald Sharp
e017797b3b ospf6d: Fix crash in prefix-list handling
Commit 427f8e61bb introduced prefix list callbacks
to handle when a prefix list is changed.  Unfortunately
if you have ospf6 running but not configured it crashes.

Modify ospf6d to not crash when we are not properly configured
yet for prefix-lists handling.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-13 09:46:28 -04:00
Donald Sharp
88a837f6ce bgpd: Fix warning introduced by PR #1133
I am merely fixing the compiler warning.  I do not
understand what the as value should be for output
to the end user or where it should be retrieved
from.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-13 09:14:46 -04:00
Daniel Walton
e775854d9c Merge pull request #1133 from opensourcerouting/shift-sign
*: fix be32 reading / 24-bit left shift
2017-09-12 17:48:03 -04:00
Donald Sharp
14a481d916 zebra: Allow 'show ip route...' to display uptime for all routes
Display uptime for all route types instead of just for RIP,
OSPFv2, ISIS, NHRP, TABLE? and BGP routes.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 14:58:10 -04:00
Donald Sharp
eaf5150f58 zebra: Modify 'show ip route ...' to show duplicated nexthops
Add the ability for person issuing 'show ip route...' commands
to see if we've suppressed adding a nexthop to the kernel.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 14:52:20 -04:00
Quentin Young
c22fbb9b45
lib: smallify loglock
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-12 14:49:58 -04:00
Quentin Young
dd73dca94a
lib: mt-safe log.c
Tentative thread-safety support for zlog. Functions designed to be
called from signal handlers are not mt-safe.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-12 14:28:58 -04:00
Renato Westphal
016bded5d5 Merge pull request #1165 from dwalton76/bgpd-vrf-redistribute-static
zebra: api.vrf_id should be re->vrf_id
2017-09-12 15:07:20 -03:00
Daniel Walton
3d536c7c9c zebra: api.vrf_id should be re->vrf_id
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>

This fixes route redistribution for VRFs
2017-09-12 11:03:07 -07:00
Renato Westphal
cc2e32a333 Merge pull request #1156 from donaldsharp/cleaner
Some minor cleanups around zebra code
2017-09-12 12:42:55 -03:00
Renato Westphal
8879bd2267 *: make all daemons call frr_fini() on exit
This allow us to find real leaks more easily with tools like valgrind.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 11:25:16 -03:00
Don Slice
b7ada6280d bgpd: fix show ip bgp vrf <vrf> nexthop
Problem with not finding the correct bgp instance when doing the command
"show ip bgp vrf <vrf> nexthop" resolved by setting up the arg values
correctly.  Manual testing fine.  bgp-smoke had no new failures.

Ticket: CM-17454
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: CCR-6664
2017-09-12 14:16:44 +00:00
Renato Westphal
08e4b24451 ldpd: guard the label allocation debug messages
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 11:10:15 -03:00
David Lamparter
25b9cb0cc8 zebra: deduplicate nexthops
There exists situations where it is possible to have duplicate
nexthops passed from a higher level protocol into zebra.

This code notices this duplication of nexthops and marks
the duplicates as DUPLICATE so we don't attempt to install
it into the kernel.

This is important on *BSD as I understand it because passing
duplicate nexthops will cause the route to be rejected.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 10:05:07 -04:00
Renato Westphal
0492eea08e zebra: fix administrative distance issues
* Reuse route_distance() on rib_add_multipath() and on rib_add();
* Set the admin distance of LDP and BGP MPLS LSPs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 11:02:25 -03:00
Donald Sharp
c710b277cf zebra: Fix up default admin distance for some route types
Set the default admin distance for some route types
more appropriately.  The route_distance function
would return 0 for array items not configured, which
is not the right thing to do.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 10:59:07 -03:00
Renato Westphal
2a178cdd7c ldpd: fix broken label allocation
Once ldpd allocated label 48 for a given FEC, all subsequent requests
for a new label would return the same value (48). The problem is that
we were left shifting an uint32_t value up to 64 times, losing important
information.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 09:52:54 -03:00
Donald Sharp
e22ac3eec4 bgpd: Fix bgp display of blackhole nexthops
Allow BGP to tell the user that a particular nexthop
is a blackhole nexthop.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 08:33:37 -04:00
Donald Sharp
59693377a9 zebra: Allow recursive nexthop resolution to consider blackholes
When we get a route install for a route that needs to be recursively
resolved allow the blackhole to be considered and used if it is
available.

This allows bgp to install a route that will be blackholed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 08:33:37 -04:00
Donald Sharp
1f1d24a8f1 zebra: Allow recursively resolved blackhole routes to be installed
So the current code for a blackhole route assumed that you
would never want a recursively resolved blackhole to work.
Suppose you have this setup:

1) ip route 192.0.2.1/32 Null0
2) BGP installed with a route-map that rewrites the
   nexthop to 192.0.2.1.

Zebra will end up with a recursive nexthop that resolves
to the blackhole.

The original rib install function assumed that we would never
want the ability to recursively resolve a blackhole route.
Instead just handle the blackhole as part of the nexthop_num = 1
case.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 08:33:37 -04:00
Donald Sharp
0a16efff9b zebra: Fix rib_update_table
We should only be operating RIB_UPDATE_IF_CHANGE on
types that zebra has control of.  We assume that
the calling routing protocol is going to take care
of their own route changes based upon the interface
state change.

Also try to re-organize the code a tiny bit to allow
it to fit better within a tabed world.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 13:35:26 -04:00
Donald Sharp
407c87a6c3 zebra: Fixup indentation
RNODE_FOREACH_RE... function calls were not properly being
indented when we switched over to the new format.  Let's fix
this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 13:35:23 -04:00
Donald Sharp
c9abf5584a zebra: Small performance improvement for garbage collection
There is no need to retrieve the zvrf *unless* we are doing
debugs.  So move the retrieval under the debug statement.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 11:12:03 -04:00
Nigel Kukard
446176bdec doc: Cleaned up BGP showing of information section
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-09-11 09:13:03 +00:00
Nigel Kukard
4f65c0d630 doc: English language cleanup
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-09-11 09:12:04 +00:00
Nigel Kukard
47e7c0b971 doc: Moved AS regular expressions to BGP regular expressions
Regular expressions are used throughout in bgp commands, it
should not be in a section under as paths which cannot be
easily found.

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-09-11 09:12:04 +00:00
Nigel Kukard
b0e019cc0c doc: Clarified the use of show bgp ipv4/ipv6 for communities
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-09-11 09:12:04 +00:00