Commit Graph

15302 Commits

Author SHA1 Message Date
Russ White
72709da4f2
Merge pull request #4105 from donaldsharp/pim_cleanups
Pim cleanups
2019-04-11 17:44:50 -04:00
Russ White
45f3dcd317
Merge pull request #4111 from sworleys/Netlink-Rule-SA-Fix
zebra: Fix late memset of pbr rule in rule_netlink
2019-04-11 17:39:48 -04:00
Quentin Young
b9645ada29
Merge pull request #4125 from mjstapp/fix_debug_pim_static
pimd: use debug pim static
2019-04-11 16:14:30 -04:00
Mark Stapp
35a1272051 pimd: use debug pim static
Replace cli 'debug static' with 'debug pim static', to make
the 'debug static' node available for staticd (eventually).

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-11 11:46:40 -04:00
Donald Sharp
d53387edbe
Merge pull request #4119 from pacovn/201904_master__pw_fixes
zebra: pseudowire event recovery (DoS fix)
2019-04-11 08:20:02 -04:00
F. Aragon
72b1ee34b5
zebra: pseudowire event recovery (DoS fix)
When having a route recovery, because of the route installation
cycling and the next hop label check, it could happen that the PW
never gets recovered. The original code shows the intention of retrying,
but the code was missing. The fix includes the call to the timer programming
the recovery attempt.

Example for reproducing the issue:

      |P1|  <->  |P2|  <->  |P3|

- Being P1, P2, P3 nodes, using IS-IS as IGP, and having a pseudowire
betwen P1 and P3 (P1, P2, P3 having configured LDP daemons).
- After 60 seconds, kill the IS-IS daemon in P2.
- Wait 30 seconds
- Launch again the IS-IS daemon in P2
- The bug/issue is that after P1 <-> P3 recovering connectivity sometimes
  the PW is not recovered because the reason explained in the first paragraph.

Signed-off-by: F. Aragon <paco@voltanet.io>
2019-04-10 19:17:49 +02:00
Donald Sharp
6dc8dbf9bc
Merge pull request #4115 from Wojtek242/wojtek242/doc-overview-fix
doc: replace old text with info about integrated configuration mode
2019-04-09 22:29:06 -04:00
Mark Stapp
a5f42f7dea
Merge pull request #4114 from chiragshah6/evpn_dev2
zebra: avoid removing node twice from rb_tree
2019-04-09 16:46:59 -04:00
Wojciech Kozlowski
560470b552 doc: replace old text with info about integrated configuration mode
Signed-off-by: W. Kozlowski <wk@wojciechkozlowski.eu>
2019-04-09 22:38:35 +02:00
Chirag Shah
8a88f81550 zebra: avoid removing node twice from rb_tree
In zebra terminate path, the node was attempted to remove
twice from the RB_TREE table. This lead to a crash during
zebra shutdown zebra_router_free_table already calls RB_REMOVE
to remove a node from rb tree table.

    siginfo=0x7fffd9134a30, context=<optimized out>) at lib/sigevent.c:249
     rbt=<optimized out>, t=<optimized out>) at lib/openbsd-tree.c:226
     t=0x56296965ff50 <zebra_router_table_head_RB_INFO>) at lib/openbsd-tree.c:383
    rbt=rbt@entry=0x562969669bd0 <zrouter+16>, elm=elm@entry=0x56296afcf810)
    at lib/openbsd-tree.c:393
    (elm=0x56296afcf810, head=0x562969669bd0 <zrouter+16>) at zebra/zebra_router.h:46

Singned-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-04-09 12:30:15 -07:00
Donald Sharp
6f0f014f08 pimd: Add JoinDesired(S,G) to deciding to set spt bit
The decision for Update_SPTbit(S,G, iif) includes a test
for JoinDesired(S,G) in section 4.2.2.  When we were deciding
to update the spt bit we were not taking this into account.

This commit fixes this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-09 13:20:32 -04:00
Donald Sharp
e3af36d3ed pimd: Update state when receiving S,G join when in S,G RPT Prune state
When we receive a S,G join and the ifchannel is in S,G RPT Prune state,
pim should transition the ifchannel state to JOIN and transition the
pim_upstream state for the S,G stream.

Ticket: CM-24513
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-09 13:17:56 -04:00
Donald Sharp
ca6cb21b60 pimd: Only send triggered response after all of *,G message is read
pim was sending a triggered response on every S,G RPT prune information
read.  Suppose we had this in a *,G message:

*,G
  S1, G RPT Prune
  S2, G RPT Prune

We would send two triggered *,G messages upstream.  This leads to over
processing and quickly changing state if S1 or S2 were in different
states.

Modify the code to send just one Triggered *,G upstream after looking
at all S,G state for a *,G.

Ticket: CM-24531
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-09 13:17:56 -04:00
Quentin Young
c8d8450442
Merge pull request #3779 from opensourcerouting/fix-mpls-label-topotests
tests: Remove some inconsistent local labels in check in test_ldp_vpls_topo1
2019-04-09 11:25:40 -04:00
Quentin Young
e3659a9a72
Merge pull request #4102 from opensourcerouting/sendbuf_recvbuf_privs
*: setting the socket send/recv buffer sizes doesn't need elevated privs
2019-04-09 10:59:00 -04:00
Stephen Worley
cc42104c35 zebra: Fix late memset of pbr rule in rule_netlink
We were memsetting zebra_pbr_rule struct after
we had already put some information in it. Also updated
the init of the struct to use braces instead of a
memset.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-09 10:35:11 -04:00
Donald Sharp
977e9f3791
Merge pull request #4095 from pacovn/201904_master__lm_aliasing_fixes
zebra: label manager race condition fix
2019-04-09 08:38:02 -04:00
Mark Stapp
2e4f15a0de
Merge pull request #4099 from donaldsharp/clang_sa
Clang sa fixes
2019-04-08 19:43:16 +02:00
Renato Westphal
338b8e914a *: setting the socket send/recv buffer sizes doesn't need elevated privs
The less code running under elevated privileges the better.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-08 13:11:28 -03:00
Quentin Young
421ac5391f
Merge pull request #4101 from pacovn/doc_typo1
doc: fix typo
2019-04-08 11:11:27 -04:00
F. Aragon
39e97e8732
doc: fix typo
Signed-off-by: F. Aragon <paco@voltanet.io>
2019-04-08 16:46:33 +02:00
Donald Sharp
9591da2653 bgpd: Remove extra alloc function bgp_path_info_new
The bgp_path_info_new function whenever it was called
pretty much duplicated the info_make function call.  So
convert over to using it and remove the bgp_path_info_new
function so people are not tempted.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-06 20:10:52 -04:00
Donald Sharp
e425c0196c ospfd: rn may be null
rn is not set the first time through the do {} while (); loop
As such we need to protect against it from being null( although
highly unlikely to ever happen given the ospf code base.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-06 20:10:52 -04:00
Donald Sharp
ea8b228286 bgpd: pi->peer assignment exists no need for null check
The creation of a new `struct bgp_path_info` requires a legitimate
peer being passed in for creation.  There exists no code paths
where this is not true.  As such checking pi->peer for null convinces
SA that it might happen.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-06 20:10:52 -04:00
Donald Sharp
3393df5cf1 lib: Fixup IFF_OUT_LOG macro to make SA happy
The IFF_OUT_LOG macro is using BUFSIZE, which is the sizeof(logbuf)
but for some reason 8.0 clang SA is not happy with it.  Just
make it happy.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-06 20:10:52 -04:00
Mark Stapp
a1a972fff5
Merge pull request #4066 from sworleys/Add-NG-Hash-Func
lib: Add hash function for nexthop groups
2019-04-05 21:31:41 +02:00
Stephen Worley
1b1fe1c409 lib: Add hash function for nexthop groups
Add a hash function to turn a nexthop group into a
32 bit unsigned hash key with jhash. We do not care to
hash any recursively resolved nexthops, just the group.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-05 14:19:44 -04:00
Renato Westphal
6709b814ab
Merge pull request #4085 from donaldsharp/zebra_nht_individual_items
zebra: Allow specification of v[4|6] addrs on some commands
2019-04-05 14:38:12 -03:00
Donald Sharp
dbeca4841b zebra: Allow specification of v[4|6] addrs on some commands
The `show ipv[4|6] <nht|import-check> ...` commands are starting
to produce a bunch of output due to multiple daemons now
using the code.  Allow the specification of a v4 or v6 address
to allow the show command to only display the interesting nht.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-05 11:34:22 -04:00
Donald Sharp
c54eeca10f
Merge pull request #4093 from mjstapp/fix_vrf_sched_flag
zebra: remove unused VRF_RIB_SCHEDULED flag
2019-04-05 10:56:08 -04:00
F. Aragon
98e9ab8b31
zebra: label manager race condition fix
This fix covers the case where two or more events are processed but only one
becoming effective. E.g. when mixing a synchronous label request from a LDP
deamon and an asynchronous request from a BGP daemon it could happen to the
BGP having the label chunk, but the LDP stuck waiting for the response.

Given e.g.

  ldpd     <-------->
  (sync label request)
                       Zebra (label proxy)  <-->  Zebra (shared label manager)
  bgpd     <-------->
  (async label request)

Sequence:

   LDP label request ----->
                               Zebra (label proxy FW) ----> Zebra (LM)
   BGP label request ----->
                               Zebra (label proxy FW) ----> Zebra (LM)
                                                      <---- Zebra (LM) RP LDP
                                                      <---- Zebra (LM) RP BGP

Signed-off-by: F. Aragon <paco@voltanet.io>
2019-04-05 15:39:03 +02:00
Mark Stapp
f4c6e2a815 zebra: remove unused VRF_RIB_SCHEDULED flag
We don't use th vrf-level VRF_RIB_SCHEDULED flag any longer;
remove it and collapse the zebra_vrf flags' values.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-05 08:46:28 -04:00
Jafar Al-Gharaibeh
5eec4615a2
Merge pull request #4083 from donaldsharp/static_reinstall_nexthops
staticd: Allow reinstall of static nexthops on vrf restart
2019-04-05 01:09:03 -05:00
Donald Sharp
f61f266a0e
Merge pull request #3548 from opensourcerouting/rip-vrf
rip(ng)d: add VRF support
2019-04-04 19:24:14 -04:00
Martin Winter
97ec2683d4 tests: test_ldp_vpls_topo1 Remove some inconsistent labels in check
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2019-04-04 18:44:13 -03:00
Lou Berger
04ca9856ba
Merge pull request #3899 from ton31337/fix/remove_private_as_with_local_as
bgpd: Remove private AS numbers if local-as is defined
2019-04-04 16:08:42 -04:00
Quentin Young
0080f1f558
Merge pull request #4065 from mjstapp/fix_nexthop_compare
libs: nexthop comparison includes labels if present
2019-04-04 14:08:22 -04:00
Quentin Young
ab9bcaf4f8
Merge pull request #4080 from mjstapp/fix_nh_copy_const
libs: use const in copy_nexthops api
2019-04-04 13:52:01 -04:00
Quentin Young
5e694d8365
Merge pull request #4076 from dteach-rv/bgp_rpki_enable_fix
bgpd: Fix rpki command nodes.
2019-04-04 13:51:22 -04:00
Donald Sharp
6d2a4f3732 staticd: Allow reinstall of static nexthops on vrf restart
When staticd receives notification that a vrf that it is using
is back up into a state that can be used, go through and
mark all the si data structures nexthops as not installed.
This will allow us to complete the loop and reinstall routes
that need to be fully resolved.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-04 12:19:50 -04:00
Renato Westphal
467c39ab04
Merge pull request #4074 from qlyoung/remove-event-counter
lib: remove event_counter.[ch]
2019-04-04 12:03:12 -03:00
Mark Stapp
deff170e8b libs: use const in copy_nexthops api
Use const for the source arg to copy_nexthops().

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-04 10:54:10 -04:00
Lou Berger
9ffa0d2404
Merge pull request #4072 from chiragshah6/evpn_dev2
lib,bgpd: do not register nexthop 0.0.0.0 to nht
2019-04-04 10:20:43 -04:00
Lou Berger
e9890df15d
Merge pull request #4073 from donaldsharp/undebug_me_or_not
some cleanup across multiple daemons
2019-04-04 10:08:34 -04:00
Mark Stapp
59d11e7cd1
Merge pull request #4075 from qlyoung/reduce-exported-vars
lib: reduce exported var symbols
2019-04-04 12:18:49 +02:00
Jafar Al-Gharaibeh
dbf2f94c2c
Merge pull request #4060 from donaldsharp/pim_cherrybomb
Pim cherrybomb
2019-04-03 23:02:32 -05:00
root
9593708de0 bgpd: Fix rpki command nodes.
Move &rpki_cmd from VIEW to ENABLE.  A non-enabled session could
enter into the rpki command node and exit into glocalb config mode
without having to enable.

Move &show_rpki* from ENABLE to VIEW. Allow non-enabled user to
view cache state and prefix table state.

Signed-off-by: David Teach <dteach@routeviews.org>
2019-04-03 16:47:44 -04:00
Donald Sharp
fa0069c647 lib, pbrd, zebra: Fix size_t type printf warnings on obscure platforms
Use the correct printf formater for those obscure platforms that
we build against.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-03 16:39:50 -04:00
Quentin Young
c17faa4b10 lib: reduce exported var symbols
Don't need these in our DSO tables

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-03 20:34:18 +00:00
Quentin Young
fe7f26ce76 lib: remove event_counter.[ch]
goodbye spooky code

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-03 20:18:08 +00:00