Commit Graph

18604 Commits

Author SHA1 Message Date
Quentin Young
3c7940063b .gitignore: ignore core dumps
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-17 20:40:46 +00:00
Quentin Young
5716ca94da lib: remove core dump
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-17 20:31:30 +00:00
Donald Sharp
87faa29bce Merge pull request #4151 from opensourcerouting/ospf-assorted-20190417
assorted OSPF fixes
2019-04-17 08:47:08 -04:00
Mark Stapp
3127c0ace3 Merge pull request #4148 from donaldsharp/ospf6_list_headinator
ospf6d: listhead returns a listnode *
2019-04-17 08:21:24 -04:00
David Lamparter
f32b6b9cea ospfd: make ECMP nexthop order deterministic
The order of ECMP nexthops currently depends on whatever order the
pqueue code returns the vertices in, which is essentially random since
they compare as equal.  While this shouldn't cause issues normally, it
is nondeterministic and causes the ldp-topo1 test to fail when the
ordering comes up different.  Also, nondeterministic behaviour is not a
nice thing to have here in general.

Just sort by nexthop address;  realistic numbers of ECMP nexthops should
hopefully not make this a performance issue.  (Also, nexthops should be
hot in the caches here.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-17 13:29:00 +02:00
David Lamparter
a61b32f00d ospfd: fix clang-SA warning
Need to clear refresh_list before dropping the reference.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-17 13:28:49 +02:00
Donald Sharp
1019731833 ospf6d: listhead returns a listnode *
The ospf6_route_get_first_nh_index function call calls
listhead which returns a (listnode *) but we are casting
it to a (struct ospf6_nexthop *) and away we go.

Fixes: #4142
Found By: Kwind
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-16 23:15:56 -04:00
Donald Sharp
42452fcbb2 Merge pull request #4147 from mjstapp/fix_pim_zebra_warning
pimd: fix compile warnings
2019-04-16 19:31:34 -04:00
Russ White
fe586c647b Merge pull request #4084 from qlyoung/bgp-prefix-md5-auth
Support TCP MD5 auth on prefixes & enable MD5 auth for BGP listen ranges
2019-04-16 19:25:43 -04:00
Mark Stapp
d1a1b09c45 pimd: fix compile warnings
Remove set-but-unused variables that provoke compile warnings

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-16 14:28:10 -04:00
Mark Stapp
ce3c7c2f78
Merge pull request #4132 from opensourcerouting/northbound-debug
lib: add fine-grained debugging in the northbound
2019-04-16 12:01:09 -04:00
Quentin Young
c74fea17c2
Merge pull request #4143 from opensourcerouting/update-libyang-build-intr
doc: update libyang build instructions to enable compiler optimizations
2019-04-16 11:58:51 -04:00
Russ White
0145af37e9
Merge pull request #4031 from nitinsoniism/show_evpn_route_vni_all_detail
bgpd: new show cmd  - bgp l2vpn evpn route vni all detail
2019-04-16 11:42:25 -04:00
Quentin Young
d79e0e085b doc: document bgp listen ranges and md5 behavior
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-16 15:28:20 +00:00
Quentin Young
9e7d9a61ac bgpd: add support for MD5 auth on listen ranges
Co-authored-by: Donald Sharp <sharpd@cumulusnetworks.com>
Co-authored-by: Quentin Young <qlyoung@cumulusnetworks.com>
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-16 15:26:20 +00:00
Quentin Young
b33e46666d lib: add support for extended TCP MD5 auth
MD5 auth on TCP is supported for prefixes in recent versions of Linux;
add complementary support for FRR.

This is a reworked version of Donald's commit to keep library
compatibility and obviate the need for changes in daemons that don't
need to support this themselves.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-16 15:26:20 +00:00
Renato Westphal
4a86cac885
Merge pull request #3720 from donaldsharp/bgp_vrf_peering
lib: Allow bgp to always create a listen socket for the vrf
2019-04-16 12:25:26 -03:00
Lou Berger
817489896f
Merge pull request #3762 from pguibert6WIND/do_not_alloc_lists_fs_by_def
bgpd: do not allocate lists on fs entries of bgp entries.
2019-04-16 11:24:48 -04:00
Russ White
0697abef9d
Merge pull request #4096 from donaldsharp/pim_nht_cleanup
Pim nht cleanup
2019-04-16 10:27:35 -04:00
Russ White
bfb1d6a7bf
Merge pull request #4094 from mjstapp/dplane_system_routes
zebra: dataplane notifications for system route changes
2019-04-16 10:22:26 -04:00
Russ White
c03b550b7a
Merge pull request #4029 from ak503/isis_yang
isis: priority of isis commands in interface configuration
2019-04-16 10:09:57 -04:00
Renato Westphal
45242058ec doc: update libyang build instructions to enable compiler optimizations
libyang defaults CMAKE_BUILD_TYPE to "Debug", which disables compiler
optimizations. We should instruct our users to build libyang in the
"Release" mode so that compiler optimizations are enabled and they
can benefit from the associated performance improvements.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-16 09:52:20 -03:00
Dmitrii Turlupov
ee22b19613 fabricd: allow redistribute statements with both the route-map and metric options
Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
2019-04-15 21:49:33 -03:00
Dmitrii Turlupov
82c25998be isisd: allow redistribute statements with both the route-map and metric options
Fixes #4012.

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
2019-04-15 21:49:31 -03:00
Dmitrii Turlupov
db45036897 yang: priority of isis commands in interface configuration
Move down the "circuit-type" leaf in the isisd YANG module so that
"ip[v6] router isis" will be the first commands displayed in the
running configuration.

Fixes #4028.

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
2019-04-15 21:49:31 -03:00
Renato Westphal
586d378603
Merge pull request #4139 from qlyoung/doc-add-libyang-denablecache-fix
doc: document libyang cache bug workaround
2019-04-15 16:33:26 -03:00
Quentin Young
03e72d8071 doc: document libyang cache bug workaround
Document workaround for
https://github.com/CESNET/libyang/issues/752

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-15 19:29:10 +00:00
Renato Westphal
9eb2c0a1dc lib: add fine-grained debugging in the northbound
Split the "debug northbound" command into the following commands:
* debug northbound callbacks configuration
* debug northbound callbacks state
* debug northbound callbacks rpc
* debug northbound notifications
* debug northbound events
* debug northbound client confd
* debug northbound client sysrepo

If "debug northbound" is entered alone, all of its suboptions
are enabled.

This commit also adds code to debug state/rpc callbacks and
notifications (only configuration callbacks were logged before).

Use the debugging infrastructure from "lib/debug.h" in order to
benefit from its facilities (e.g. MT-safe debugging) and avoid
code duplication.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-15 15:59:38 -03:00
Renato Westphal
e0cade1bbc lib: fix inverted logic in the "debug all" command
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-15 12:53:54 -03:00
Olivier Dugeon
9c95fe6986 Issue #4032: Add IS-IS-TE support per Area
- Change MPLS-TE from global to per Area
 - Add new mpls_te_area structure to area in replacement of global variable
isisMPLS_TE
 - Move mpls-te frmo global to instance in frr-isisd.yang
 - Change code in isis_te.c, isis_northbound.c, isis_cli.c, isis_pdu.c,
isis_lsp.c and isis_zebra.c accordingly

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2019-04-15 16:22:38 +02:00
Philippe Guibert
45ec928f49
Merge pull request #4130 from donaldsharp/show_frr
zebra: Add hidden 'show frr' command
2019-04-14 22:20:12 +02:00
Donald Sharp
d2f5903b84 zebra: Add hidden 'show frr' command
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-12 10:27:52 -04:00
Russ White
f765a2ff8e
Merge pull request #4081 from donaldsharp/rnh_reorder
zebra: Make rnh only send response once on first registration
2019-04-11 18:02:20 -04:00
Russ White
8bf8d8b2b2
Merge pull request #4103 from qlyoung/fix-ospf-+metric
ospfd: fix behavior of +/-metric
2019-04-11 17:45:41 -04:00
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
Kishore Aramalla
7a6ca8a6ae zebra: L3VNI's are allowed to unconfigure from any VRF
L3VNI configured in a specific VRF is allowed to unconfigure from any
VRF, including default (global) VRF. This results L3VNI delete notification
to BGP and subsequent type-5 route uninstall from the VRF the L3VNI belong to.
This also resulted in the inconsistent running configuration.

The deleted L3VNI still shows up in its original VRF. The VRF in which the
"no vni <x>" was executed doesn't display its own L3VNI.

Added a VRF check in zebra to prevent this.

Signed-off-by: Kishore Aramalla <karamalla@vmware.com>
2019-04-11 12:04:34 -07: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
Nitin Soni
21f3551ed5 bgpd: new show cmd - bgp l2vpn evpn route detail
This command is added to provide detailed information. It will be
useful in troubleshooting as we will be able to dump all detailed info
using a single command.
"show bgp l2vpn evpn route [detail] ...". Additional filtering
can be done by providing type of the route.

Command will display the detailed content for all rd and macs-ip as
displayed by "show bgp l2vpn evpn route rd <> mac <>" for a single
rd, mac, ip from the global bgp routing table.

Ticket: CM-24397
Signed-off-by: Nitin Soni <nsoni@cumulusnetworks.com>
Reviewed-by:
Testing-Done:
2019-04-10 23:11:02 -07:00
Mark Stapp
cf363e1bd8 zebra: dataplane notifications for system route changes
Add notifications from zebra to the dataplane subsystem when
kernel or connected routes change.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-10 16:07:01 -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