]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
6 years agozebra: do not check if advertise-default-gw is on in no-advertise-default-gw flow
Mitesh Kanjariya [Wed, 13 Dec 2017 20:18:11 +0000 (12:18 -0800)]
zebra: do not check if advertise-default-gw is on in no-advertise-default-gw flow

Ticket: CM-19116
Review:  CCR-7042
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agovtysh/lib: write domainname to config file
Mitesh Kanjariya [Wed, 7 Feb 2018 22:46:04 +0000 (14:46 -0800)]
vtysh/lib: write domainname to config file

Ticket: CM-19626
Review: CCR-7170
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agobgpd: Handle multiple simultaneous changes for a VNI correctly
vivek [Thu, 25 Jan 2018 06:41:44 +0000 (22:41 -0800)]
bgpd: Handle multiple simultaneous changes for a VNI correctly

Ensure that if multiple parameters for a VNI change simultaneously, the
changes are processed correctly. The changes of interest are the local
tunnel IP address and the tenant VRF to which this VNI is attached. The
former is used to originate type-3 routes as well as set the next hop of
all routes, the latter helps to determine the route targets and VNIs to
include in the route.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Ticket: CM-19099
Reviewed By: CCR-7102
Testing Done:
1. Manually reproduced problem and verified fix.
2. Additional trigger events tested with fix.

6 years agobgpd: enunciate the error message if user tries to configure 'router bgp'
Mitesh Kanjariya [Wed, 7 Feb 2018 23:30:55 +0000 (15:30 -0800)]
bgpd: enunciate the error message if user tries to configure 'router bgp'

We need a better error message. "Multiple BGP processes are configured"
doesnt makes sense anymore as with l3vni,
we could have multiple auto configured bgp instances.

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agobgpd: Ensure EVPN routes are not injected back into EVPN
vivek [Fri, 19 Jan 2018 17:29:49 +0000 (09:29 -0800)]
bgpd: Ensure EVPN routes are not injected back into EVPN

EVPN type-2 and type-5 routes received with a L3 VNI and corresponding RTs
are installed into the appropriate BGP RIB. Ensure that these routes are not
re-injected back into EVPN as type-5 routes when type-5 advertisement is
enabled; only regular IPv4 routes (and IPv6 routes in future) in the RIB
should be injected into EVPN.

As a benefit of this change, no longer restrict that EVPN type-5 routes
should be non-host routes - i.e., allow /32 IPv4 routes (and /128 IPv6
routes in future).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Ticket: CM-19456
Reviewed By: CCR-7117
Testing Done:
1. Manual replication of problem and verification of fix
2. evpn-min

6 years agoMerge pull request #1720 from qlyoung/gitignore-changelog
Jafar Al-Gharaibeh [Thu, 8 Feb 2018 20:32:29 +0000 (14:32 -0600)]
Merge pull request #1720 from qlyoung/gitignore-changelog

debianpkg: .gitignore += changelog

6 years agoMerge pull request #1654 from mkanjari/evpn-symm-routing-enhancements
Philippe Guibert [Thu, 8 Feb 2018 10:46:29 +0000 (11:46 +0100)]
Merge pull request #1654 from mkanjari/evpn-symm-routing-enhancements

Evpn symmetric routing enhancements

6 years agoMerge pull request #1721 from opensourcerouting/isis-monitor-fds
Donald Sharp [Wed, 7 Feb 2018 19:35:08 +0000 (14:35 -0500)]
Merge pull request #1721 from opensourcerouting/isis-monitor-fds

isis: use descriptor polling instead of time

6 years agoisis: use descriptor polling instead of time
Rafael Zalamena [Wed, 7 Feb 2018 18:26:25 +0000 (16:26 -0200)]
isis: use descriptor polling instead of time

Allow other supported Operating Systems (OS) to use file descriptor
polling, instead of doing timed fd checks. This should improve
performance greatly on modern OSes (e.g. that support polling on
filtered sockets).

The known OS that doesn't support this is FreeBSD < 5.0, but even then
FRR doesn't compile in these versions. OSes using DLPI method (e.g
Solaris) does not support select()/poll()ing fds as well, so it will be
disabled for it.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 years agodebianpkg: .gitignore += changelog
Quentin Young [Wed, 7 Feb 2018 18:13:46 +0000 (13:13 -0500)]
debianpkg: .gitignore += changelog

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agoMerge pull request #1718 from ak503/keychain
Donald Sharp [Wed, 7 Feb 2018 14:56:42 +0000 (09:56 -0500)]
Merge pull request #1718 from ak503/keychain

lib: 'no accept-lifetime' and 'no send-lifetime' for keychain

6 years agolib: 'no accept-lifetime' and 'no send-lifetime' for keychain
dturlupov [Wed, 7 Feb 2018 11:56:06 +0000 (14:56 +0300)]
lib: 'no accept-lifetime' and 'no send-lifetime' for keychain

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-rs.ru>
6 years agoMerge pull request #1712 from donaldsharp/nht_updates
Renato Westphal [Wed, 7 Feb 2018 01:34:12 +0000 (23:34 -0200)]
Merge pull request #1712 from donaldsharp/nht_updates

Nht updates

6 years agoMerge pull request #1677 from chiragshah6/ospfv3_dev
Jafar Al-Gharaibeh [Tue, 6 Feb 2018 20:33:10 +0000 (14:33 -0600)]
Merge pull request #1677 from chiragshah6/ospfv3_dev

ospf6d: Fix redistribute [connected] with route-map

6 years agoMerge pull request #1699 from silasm/debianpkg-fix-debian-rules
Martin Winter [Tue, 6 Feb 2018 19:10:12 +0000 (11:10 -0800)]
Merge pull request #1699 from silasm/debianpkg-fix-debian-rules

debianpkg: normalize rules files, simplify logic/editing with '?='

6 years agoconfigure: Update version to 4.1-dev
Donald Sharp [Tue, 6 Feb 2018 17:26:47 +0000 (12:26 -0500)]
configure: Update version to 4.1-dev

We are now working on 4.1-dev for new work.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1542 from qlyoung/stylechecker
Martin Winter [Tue, 6 Feb 2018 16:44:37 +0000 (08:44 -0800)]
Merge pull request #1542 from qlyoung/stylechecker

tools: add style checking scripts

6 years agoMerge pull request #1653 from Orange-OpenSource/SR-Routing
Donald Sharp [Tue, 6 Feb 2018 16:32:51 +0000 (11:32 -0500)]
Merge pull request #1653 from Orange-OpenSource/SR-Routing

OSPFD: Add Experimental Segment Routing support

6 years agoMerge pull request #1713 from donaldsharp/nexthop_vrfs
Renato Westphal [Mon, 5 Feb 2018 22:45:50 +0000 (20:45 -0200)]
Merge pull request #1713 from donaldsharp/nexthop_vrfs

lib: Fix encoding of vrf

6 years agoMerge pull request #1702 from donaldsharp/bgp_cleanup
Lou Berger [Mon, 5 Feb 2018 22:06:08 +0000 (16:06 -0600)]
Merge pull request #1702 from donaldsharp/bgp_cleanup

Bgp cleanup

6 years agoMerge pull request #1694 from qlyoung/fix-bgp-default-shutdown-conf-write
Lou Berger [Mon, 5 Feb 2018 22:04:08 +0000 (16:04 -0600)]
Merge pull request #1694 from qlyoung/fix-bgp-default-shutdown-conf-write

bgpd: fixup default shutdown

6 years agobgpd: allow evpn safi under vrf instance
mitesh [Mon, 5 Feb 2018 21:29:52 +0000 (13:29 -0800)]
bgpd: allow evpn safi under vrf instance

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agobgpd: use BGP_LABEL_BYTES instead of a mogic number '3'
mitesh [Mon, 5 Feb 2018 21:24:57 +0000 (13:24 -0800)]
bgpd: use BGP_LABEL_BYTES instead of a mogic number '3'

While processing the type-2 evpn route nlri,
increment the pointer by BGP_LABEL_BYTES instead of '3'

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agoOSPFd: Fix Opaque LSA filtering in Segment Routing
Olivier Dugeon [Mon, 5 Feb 2018 19:24:17 +0000 (20:24 +0100)]
OSPFd: Fix Opaque LSA filtering in Segment Routing

Opaque LSA were incorrectly filtered. LSA Type 1 with a
router id set to 4.x.x.x or 7.x.x.x. or 8.x.x.x are not correctly
filtered and pass to Segment Routing as wrong Opaque LSA of type
Router Information, Extended Prefix respectively Extended Link.
 - Add Opaque LSA check to the filter

The CLI command 'segment-routing prefix' didn't check if a same prefix
already exist in SRDB resulting to multiple entries in the SRDB for the
same prefix.
 - Update prefix intead of adding a new one if already present in the SRDB

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agobgpd, pimd: Handle return code for nexthop_decode
Donald Sharp [Mon, 5 Feb 2018 13:34:47 +0000 (08:34 -0500)]
bgpd, pimd: Handle return code for nexthop_decode

Appropriately handle the return code for the
zapi_nexthop_update_decode call.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agolib: Fix encoding of vrf
Donald Sharp [Mon, 5 Feb 2018 10:49:27 +0000 (05:49 -0500)]
lib: Fix encoding of vrf

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agobgpd, lib, pimd: Make nexthop_update decoding common
Donald Sharp [Mon, 5 Feb 2018 08:44:29 +0000 (03:44 -0500)]
bgpd, lib, pimd: Make nexthop_update decoding common

Create a zapi_nexthop_update_decode function that both
pim and bgp use to decode the message from zebra.

There probably could be further optimizations but I opted
to keep the code as similiar as is possible between the
originals because they both make some assumptions about
code flow that I do not fully understand yet.

The real goal here is that I want to create a new
user of the nexthop tracking code from a higher level
daemon and I see no need to re-implement this damn
code again for a 3rd time.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agozebra: Cleanup nexthop update encoding
Donald Sharp [Mon, 5 Feb 2018 08:42:09 +0000 (03:42 -0500)]
zebra: Cleanup nexthop update encoding

The encoding of the nexthop update made some distinctions
between nexthop types that it does not need to.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoOSPFd: Fix ospfd crash during CI
Olivier Dugeon [Sat, 3 Feb 2018 18:30:33 +0000 (19:30 +0100)]
OSPFd: Fix ospfd crash during CI

When preforming CI test, CLI command 'no router ospf' followed by a
'router ospf' is performed to clean up the previous configuration.
Ospfd crash when configuring 'netwoark area'.

This is due to opsf_opaque_term() introduce in previous commit that cause this
crash. It remove not only Opaque LSA but also the list through the call to
'list_delete_and_null()' function. Same take place in 'ospf_mpls_te_term()',
'ospf_router_info_term()' and 'ospf_ext_term()' function.

New set of 'ospf_XXX_finish()' has been introduced to solve this issue while
keeping the possiblity to terminate properly the Opaque LSA and remove MPLS
LFIB entries set by Segment Routing.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agobgpd: Fix some evpn hash key creation
Donald Sharp [Fri, 12 Jan 2018 14:55:28 +0000 (09:55 -0500)]
bgpd: Fix some evpn hash key creation

The creation of a hash key should use a jhash
function instead of adding the char's together.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agobgpd: Fix bgp_vty.h to conform to coding standard
Donald Sharp [Fri, 12 Jan 2018 14:51:18 +0000 (09:51 -0500)]
bgpd: Fix bgp_vty.h to conform to coding standard

The function declarations were missing some parameter
names as is our standard.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agobgpd: bgp_afi_node_get is listed 2 times in bgp_route.h
Donald Sharp [Wed, 10 Jan 2018 20:07:05 +0000 (15:07 -0500)]
bgpd: bgp_afi_node_get is listed 2 times in bgp_route.h

Remove the extra.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1695 from chiragshah6/mdev
Renato Westphal [Sat, 3 Feb 2018 14:18:48 +0000 (12:18 -0200)]
Merge pull request #1695 from chiragshah6/mdev

ospfd: fix default-information orignate command not to display default parameter

6 years agoMerge pull request #1705 from donaldsharp/martian_nexthop
Renato Westphal [Sat, 3 Feb 2018 14:10:30 +0000 (12:10 -0200)]
Merge pull request #1705 from donaldsharp/martian_nexthop

bgpd: Add ability to see martian next-hop's for a vrf

6 years agobgpd: Add ability to see martian next-hop's for a vrf
Donald Sharp [Sat, 3 Feb 2018 00:26:22 +0000 (19:26 -0500)]
bgpd: Add ability to see martian next-hop's for a vrf

We've run across an issue where the local connected
ip address is not being removed in some error condition.
During trackdown it was noticed that we cannot look
at this table for views/vrf's.  While we don't have the
bug tracked down yet this will help us figure it out.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1703 from opensourcerouting/bsd-warnings
Donald Sharp [Fri, 2 Feb 2018 19:36:42 +0000 (14:36 -0500)]
Merge pull request #1703 from opensourcerouting/bsd-warnings

BSD warnings

6 years agolib: fix more warnings on *BSD
Renato Westphal [Fri, 2 Feb 2018 01:18:46 +0000 (23:18 -0200)]
lib: fix more warnings on *BSD

* zebra/kernel_socket.c: include "rt.h" to provide the prototypes of
  kernel_init() and kernel_terminate();

* lib/prefix.h: remove the deprecation warning whenever ETHER_ADDR_LEN
  is used. isisd uses the ETHER_HDR_LEN constant which is defined in
  terms of ETHER_ADDR_LEN in the *BSD system headers. So, when building
  FRR on *BSD, we were getting several warnings because we were using
  ETHER_ADDR_LEN indirectly;

* lib/command_lex.l, lib/defun_lex.l: ignore other harmless warnings;

* lib/spf_backoff.c: cast 'tv->tv_usec' to 'long int' before printing.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years ago*: silence '-Wchar-subscripts' warnings on NetBSD
Renato Westphal [Fri, 2 Feb 2018 17:11:03 +0000 (15:11 -0200)]
*: silence '-Wchar-subscripts' warnings on NetBSD

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years ago*: silence '-Wmaybe-uninitialized' warnings on NetBSD
Renato Westphal [Fri, 2 Feb 2018 17:10:09 +0000 (15:10 -0200)]
*: silence '-Wmaybe-uninitialized' warnings on NetBSD

None of these variables can actually be used before being initialized,
but unfortunately some old compilers are not smart enough to detect that.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years agotests: fix warnings related to afi/safi constants
Renato Westphal [Thu, 1 Feb 2018 23:04:03 +0000 (21:04 -0200)]
tests: fix warnings related to afi/safi constants

We were improperly mixing constants used to identify AFI/SAFI values
using the IANA and internal representations. Things happened to be
working because the IANA/internal values are the same in some cases
(e.g. AFI_IP and IANA_AFI_IPV4). This commit fixes a few warnings when
running "make check" on FreeBSD 11.1.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years agotests: fix warnings by removing dead code
Renato Westphal [Thu, 1 Feb 2018 22:59:08 +0000 (20:59 -0200)]
tests: fix warnings by removing dead code

These variables being removed were made obsolete by commit 9cabb64b3. As
of now, the parse_test() function fetches the afi/safi values from
the parsed NLRIs. There's no need to have duplicate information in the
'test_segment' structure anymore.

This fixes several warnings of this kind when running "make check"
on FreeBSD: "implicit conversion from enumeration type 'iana_safi_t'
to different enumeration type 'safi_t'".

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years agoMerge pull request #1696 from donaldsharp/pim_node_removal
Rafael Zalamena [Fri, 2 Feb 2018 13:12:15 +0000 (11:12 -0200)]
Merge pull request #1696 from donaldsharp/pim_node_removal

lib, pimd: Remove PIM_NODE as it is not needed

6 years agoMerge pull request #1687 from donaldsharp/dest
Rafael Zalamena [Fri, 2 Feb 2018 13:08:28 +0000 (11:08 -0200)]
Merge pull request #1687 from donaldsharp/dest

zebra: Fix crash when dereferencing dest->selected_fib

6 years agoOSPFd: Correct Extended Prefix LSA refresh
Olivier Dugeon [Thu, 1 Feb 2018 13:30:34 +0000 (14:30 +0100)]
OSPFd: Correct Extended Prefix LSA refresh

 - When Extended Prefix LSA need to be refresh, paramaters may be
taken from the wrong interface i.e. Extended Link instead of Prefix
resulting in producing an empty LSA body. Then, ospfd crash due to the
assert on LSA length in ospf_lsa_different() function: code check that
the LSA size is larger than LSA header i.e. LSA is not empty.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agodebianpkg rules files: WANT_CUMULUS_MODE, not WANT_CUMULUS_NODE
smccroskey [Thu, 1 Feb 2018 01:15:36 +0000 (17:15 -0800)]
debianpkg rules files: WANT_CUMULUS_MODE, not WANT_CUMULUS_NODE

variable name seemed strange, and previously-commented-out name
suggests it was a typo, remove the newly-added definitions and
fix the ifeq block to reference the intended name.

Signed-off-by: Silas McCroskey <smccroskey@cumulusnetworks.com>
6 years agodebianpkg rules files: bgp-vnc is enabled by default
smccroskey [Thu, 1 Feb 2018 01:10:44 +0000 (17:10 -0800)]
debianpkg rules files: bgp-vnc is enabled by default

9782a8db773b8c5d9094eb3743aae43cc04e12f0 went with the wrong source of
truth when comments and code disagreed over whether bgp-vnc should be
enabled by default.  Fix the behavior back to what it was before.

Signed-off-by: Silas McCroskey <smccroskey@cumulusnetworks.com>
6 years agodebianpkg: normalize rules files
smccroskey [Wed, 31 Jan 2018 01:00:48 +0000 (17:00 -0800)]
debianpkg: normalize rules files

downstream packagers prefer to change defaults in a trackable way by
changing the rules file directly, rather than setting environment
variables.  Use '?=' (set if not already set in the environment or on
the make cmdline) to set defaults rather than alternating between
ifeq/ifneq clauses, which is harder to follow and edit.  Change any
existing `ifneq(...,0)' cases to `ifeq(...,1)', and get rid of any
ifdef/ifndefs, as ?= guarantees he value will be defined in one way or
another.  This allows the old behavior of overriding via the
environment while simplifying the workflow for anyone editing or
extending the current logic and defaults.

Portability note about '?=': it is GNU-make specific, but so is
ifeq/ifneq, which is/was used in this file, and this file is specific
to debian-based system as it is, so I don't consider it to be a
problem in this case.

Added any missing defaults (WANT_SNMP, WANT_CUMULUS_NODE) and
made it so that USE_XXX is always set for the sake of consistency.
Also brought a few changes from base debianpkg/rules into the
backports versions of the files where they were missing.

Signed-off-by: Silas McCroskey <smccroskey@cumulusnetworks.com>
6 years agoMerge pull request #1693 from donaldsharp/v6_leaking
Renato Westphal [Wed, 31 Jan 2018 17:52:01 +0000 (15:52 -0200)]
Merge pull request #1693 from donaldsharp/v6_leaking

zebra: Fix v6 nexthop-vrf and nexthop confusion

6 years agoospfd: fix redistribute running config
Chirag Shah [Tue, 30 Jan 2018 15:42:28 +0000 (07:42 -0800)]
ospfd: fix redistribute running config

Testing:
CL(config)# router ospf
CL(config-router)# redistribute static metric-type 2
CL(config)# router ospf
CL(config-router)# default-information originate always metric-type 2

show running output
router ospf
 redistribute static
 default-information originate always
!

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
6 years agobgpd: improve default shutdown help string
Quentin Young [Tue, 30 Jan 2018 16:47:15 +0000 (11:47 -0500)]
bgpd: improve default shutdown help string

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agoMerge pull request #1690 from dslicenc/bgpd-vrf-show-cm17377
Lou Berger [Tue, 30 Jan 2018 16:42:26 +0000 (11:42 -0500)]
Merge pull request #1690 from dslicenc/bgpd-vrf-show-cm17377

bgpd: fix output of show bgp vrf all neighbor x.x.x.x

6 years agotools: return exit status in checkpatch.sh
Quentin Young [Tue, 30 Jan 2018 15:48:03 +0000 (10:48 -0500)]
tools: return exit status in checkpatch.sh

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agoOSPFd: Clean up Segment Routing patch
Olivier Dugeon [Tue, 30 Jan 2018 15:17:54 +0000 (16:17 +0100)]
OSPFd: Clean up Segment Routing patch

 - ospfd/ospf_te.c: Remove unregister function and call to
ospf_delete_opaque_functab() following the introduction of
ospf_opaque_term() function in ospfd.c for ospfd termination.
 - ospfd/ospf_sr.c: Set initial index value for node-msd CLI to
avaoid crash when using this command
 - ospfd/ospf_ext.c: Disable call to ospf_sr_update_prefix() if
Segment Routing, thus Extended Link/Prefix, is not enable
 - ospfd/ospf_opaque.c: Correct scheduling of Opaque LSA flooding

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agobgpd: fixup default shutdown
Quentin Young [Tue, 30 Jan 2018 15:12:19 +0000 (10:12 -0500)]
bgpd: fixup default shutdown

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agoOSPFd: Remove unecessary debug message
Olivier Dugeon [Tue, 30 Jan 2018 13:25:40 +0000 (14:25 +0100)]
OSPFd: Remove unecessary debug message

 - Line 865 in ospfd/ospf_ext.c cause compilation failure when
-werror is set. This line was not necessary and add only for debugging
purpose.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agobgpd: fix output of show bgp vrf all neighbor x.x.x.x
Don Slice [Thu, 25 Jan 2018 16:06:27 +0000 (16:06 +0000)]
bgpd: fix output of show bgp vrf all neighbor x.x.x.x

Problem reported with output of the command "show bgp vrf all
neighbor x.x.x.x" not limiting the output to that peer in any vrf.
This fix corrects the logic to display by neighbor
(ipv4/ipv6/interface) in any vrf.

Ticket: CM-17377
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
6 years agoMerge remote-tracking 'frr/master' into SR-Routing
Olivier Dugeon [Tue, 30 Jan 2018 10:43:25 +0000 (11:43 +0100)]
Merge remote-tracking 'frr/master' into SR-Routing

6 years agoOSPFd: Correct compilation error
Olivier Dugeon [Tue, 30 Jan 2018 10:42:02 +0000 (11:42 +0100)]
OSPFd: Correct compilation error

 - Forget to remove ospf_router_info_unregister in ospfd_ri.c

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agoMerge pull request #1688 from chiragshah6/mdev
Olivier Dugeon [Tue, 30 Jan 2018 10:37:59 +0000 (11:37 +0100)]
Merge pull request #1688 from chiragshah6/mdev

ospfd: Fix default-info and redis cmd options

6 years agolib, pimd: Remove PIM_NODE as it is not needed
Donald Sharp [Tue, 30 Jan 2018 08:07:15 +0000 (03:07 -0500)]
lib, pimd: Remove PIM_NODE as it is not needed

The PIM_NODE command is only being used to display
default vrf configuration.  Move this into the
vrf display and remove PIM_NODE.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoospfd: Fix default-info and redis cmd options
Chirag Shah [Tue, 30 Jan 2018 02:03:08 +0000 (18:03 -0800)]
ospfd: Fix default-info and redis cmd options

Fix default-information parsing of metric-type,
route-map.
show running to display metic-type 2.

metric, metric-type and route-map can be configured in
any order, running-config displays in specific order..

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
6 years agozebra: Fix v6 nexthop-vrf and nexthop confusion
Donald Sharp [Tue, 30 Jan 2018 05:15:45 +0000 (00:15 -0500)]
zebra: Fix v6 nexthop-vrf and nexthop confusion

The v6 code had the same issue with how it handled
nexthop-vrf and nexthop when it was entered on the
same line.  This fixes that issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agozebra: Fix crash when dereferencing dest->selected_fib
Donald Sharp [Mon, 29 Jan 2018 22:52:15 +0000 (17:52 -0500)]
zebra: Fix crash when dereferencing dest->selected_fib

When a rib_unlink() event is directly called for a
route_entry we need to see if the dest->selected_fib
is the same and just unset the dest->selected_fib.

This was happening for redistributed table 10 routes
into BGP.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1686 from donaldsharp/mem_leaks_zebra
Renato Westphal [Mon, 29 Jan 2018 22:41:07 +0000 (20:41 -0200)]
Merge pull request #1686 from donaldsharp/mem_leaks_zebra

Mem leaks zebra

6 years agoMerge pull request #1684 from donaldsharp/vrf_leak
Renato Westphal [Mon, 29 Jan 2018 22:34:02 +0000 (20:34 -0200)]
Merge pull request #1684 from donaldsharp/vrf_leak

zebra: Fix to get correct nexthop-vrf

6 years agozebra: On shutdown actually delete rn's assoc w/ other_tables
Donald Sharp [Mon, 29 Jan 2018 21:20:41 +0000 (16:20 -0500)]
zebra: On shutdown actually delete rn's assoc w/ other_tables

Zebra stores routes coming from the kernel for non-default
tables.  This information on shutdown was being leaked
because we never cleaned it up.  Allow for this to happen
now.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1685 from LabNConsulting/working/vpn-doc
Donald Sharp [Mon, 29 Jan 2018 20:51:30 +0000 (15:51 -0500)]
Merge pull request #1685 from LabNConsulting/working/vpn-doc

doc: minor cleanup of bgp vpnvX and remove encap safi references

6 years agolib: When we shutdown we would leak interface description
Donald Sharp [Mon, 29 Jan 2018 20:38:03 +0000 (15:38 -0500)]
lib: When we shutdown we would leak interface description

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
6 years agozebra: Cleanup error handling of nexthop vrf and vrf
Donald Sharp [Mon, 29 Jan 2018 20:18:28 +0000 (15:18 -0500)]
zebra: Cleanup error handling of nexthop vrf and vrf

The error handling of the nexthop vrf and the vrf
for what was specified on the cli was not as clean
as it should have been.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agodoc: remove references to encap safi
Lou Berger [Mon, 29 Jan 2018 20:03:03 +0000 (15:03 -0500)]
doc: remove references to encap safi

Signed-off-by: Lou Berger <lberger@labn.net>
6 years agodoc: change vpnvX -> ipvX vpn
Lou Berger [Mon, 29 Jan 2018 19:55:16 +0000 (14:55 -0500)]
doc: change vpnvX -> ipvX vpn

Signed-off-by: Lou Berger <lberger@labn.net>
6 years agoMerge pull request #1680 from donaldsharp/inet_pton
Renato Westphal [Mon, 29 Jan 2018 19:24:33 +0000 (17:24 -0200)]
Merge pull request #1680 from donaldsharp/inet_pton

zebra: Fix failure to parse src

6 years agoOSPFd: Update Segment Routing PR following review
Olivier Dugeon [Mon, 29 Jan 2018 16:58:53 +0000 (17:58 +0100)]
OSPFd: Update Segment Routing PR following review

Following various review, following files have been modfied:

 - All: Change u_intXX_t typedef to standard uintXX_t types
 - doc/OSPF-SR.rst: Update doc in particular the Linux Kernel configuration
section
 - doc/ospfd.texi: Update CLI
 - ospfd/ospf_dump.[c,h]: Add new 'debug ospf sr' when performing 'sh run'
 - ospfd/ospf_ext.[c, h]: Various bug corrections notably to handle flooding of
Extended Prefix at startup. iFix TLVs size for LAN Adjacency.
Update Licence as per Community.md
 - ospfd/ospf_opaque.c: Add proper termination function call to remove MPLS entries
 - ospfd/ospf_ri.[c,h]: Bug corrections
 - ospfd/ospf_sr.[c,h]: Various bug corrections, notably to determine the nexthop
SR Node. Add support to 'no-php-flag'.
Update Licence as per Community.md
 - ospfd/ospfd.c: Add call to 'ospf_opaque_term()'

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
6 years agoMerge pull request #1679 from qlyoung/revert-remove-options-directly-connected
Russ White [Mon, 29 Jan 2018 13:25:49 +0000 (08:25 -0500)]
Merge pull request #1679 from qlyoung/revert-remove-options-directly-connected

Revert "bgpd: disallow invalid config at cli layer"

6 years agozebra: Fix failure to parse src
Donald Sharp [Sat, 27 Jan 2018 23:56:30 +0000 (18:56 -0500)]
zebra: Fix failure to parse src

If src happens to point at all 0's due to not initializing
it and if the address passed in is not a v6 address then
we would not set src in the AF_INET6 call and would
fail the (src.ipv4.s_addr && inet_pton(AF_INET...)
call.  Thus causing us to return a NULL and make
the routemap code think there was an issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #1659 from chiragshah6/ospf_vrf_dev
Martin Winter [Sat, 27 Jan 2018 17:17:45 +0000 (09:17 -0800)]
Merge pull request #1659 from chiragshah6/ospf_vrf_dev

ospfd: show ip ospf neighbor json output format

6 years agozebra: Fix to get correct nexthop-vrf
Donald Sharp [Sat, 27 Jan 2018 10:28:51 +0000 (05:28 -0500)]
zebra: Fix to get correct nexthop-vrf

The nexthop_vrf should be looked up as appropriate,
If the nexthop_vrf was specified use that, else
use the vrf context of what was passed in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoRevert "bgpd: disallow invalid config at cli layer"
Quentin Young [Fri, 26 Jan 2018 22:15:44 +0000 (17:15 -0500)]
Revert "bgpd: disallow invalid config at cli layer"

This reverts commit a174be631a14e0271fde6858fcb4d7ab55165014.

Turns out we need that variable to accept peer groups.

6 years agoMerge pull request #1671 from donaldsharp/southbound_pointer
Russ White [Fri, 26 Jan 2018 21:40:01 +0000 (16:40 -0500)]
Merge pull request #1671 from donaldsharp/southbound_pointer

Southbound pointer

6 years agoospf6d: Fix redist w/ route-map during restart
Chirag Shah [Thu, 25 Jan 2018 03:02:19 +0000 (19:02 -0800)]
ospf6d: Fix redist w/ route-map during restart

Add hook for route-map update event.
Add a delay one shot timer to accomodate route-map
update and reset redist with zebra to process
all redistribute routes with route-map info.

Cleanup route-map, prefix cached date during ospf6 exit.

Ticket:CM-13800
Testing Done:
configure redistribute connected with route-map to define
type-2 routes. Restart frr.service and validated
route-map add,update event, thread is scheduled,
once timer is done redist reset with zebra.
Upon redist add notification, all route map info is cached
in ospf6 and processed as type-2 route and send ASE E2 LSA.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
6 years agoMerge pull request #1676 from dslicenc/cm19322-bgp-json
Renato Westphal [Fri, 26 Jan 2018 12:52:19 +0000 (10:52 -0200)]
Merge pull request #1676 from dslicenc/cm19322-bgp-json

bgpd: remove poorly located bestpath json output

6 years agoMerge pull request #1672 from qlyoung/frr-pthread-improvements
Renato Westphal [Fri, 26 Jan 2018 12:47:55 +0000 (10:47 -0200)]
Merge pull request #1672 from qlyoung/frr-pthread-improvements

FRR pthread improvements

6 years agoMerge pull request #1675 from donaldsharp/ptm_crash
Renato Westphal [Thu, 25 Jan 2018 18:12:01 +0000 (16:12 -0200)]
Merge pull request #1675 from donaldsharp/ptm_crash

zebra: Fix crash in ptm code

6 years agobgpd: remove poorly located bestpath json output
Don Slice [Thu, 25 Jan 2018 17:45:40 +0000 (17:45 +0000)]
bgpd: remove poorly located bestpath json output

The bestpath multipath-relax setting was added to the output of
"show ip bgp neighbor json" several months ago but this is not
the correct place to display that information and this fix removes
it from there.  The multipath-relax setting  was also added
to the output of "show ip bgp sum json" which is fine.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
6 years agoMerge pull request #1668 from qlyoung/fix-bgp-corrupt-header-assert
Russ White [Thu, 25 Jan 2018 14:15:20 +0000 (09:15 -0500)]
Merge pull request #1668 from qlyoung/fix-bgp-corrupt-header-assert

bgpd: fix race condition causing occasional assert

6 years agoMerge pull request #1674 from chiragshah6/mdev
Russ White [Thu, 25 Jan 2018 14:07:23 +0000 (09:07 -0500)]
Merge pull request #1674 from chiragshah6/mdev

ospfd: clean up route map prefixlist vrf during exit

6 years agoMerge pull request #1673 from opensourcerouting/ospfd-metric-issue
Donald Sharp [Thu, 25 Jan 2018 13:19:53 +0000 (08:19 -0500)]
Merge pull request #1673 from opensourcerouting/ospfd-metric-issue

ospfd: allow multiple options in the redistribute command

6 years agozebra: Fix crash in ptm code
Donald Sharp [Thu, 25 Jan 2018 01:53:40 +0000 (20:53 -0500)]
zebra: Fix crash in ptm code

The code change to switch from stream_getX to STREAM_GETX added
a goto statement to be handled for a failure case.  The failure
case was properly handled but the normal case was not tested
properly and there exists a situation where we would free
the out_ctxt 2 times.  Prevent that from happening.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoospfd: clean route map prefixlist vrf during exit
Chirag Shah [Thu, 25 Jan 2018 00:41:07 +0000 (16:41 -0800)]
ospfd: clean route map prefixlist vrf during exit

Call Route-map, prefix-list clean up routines and
vrf clearnup during ospf daemon exit routine.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
6 years agoospfd: allow multiple options in the redistribute command
Renato Westphal [Wed, 24 Jan 2018 23:05:27 +0000 (21:05 -0200)]
ospfd: allow multiple options in the redistribute command

Other variants of the redistribute command (e.g. "redistribute
<ospf|table> (1-65535) ..." already accept multiple options.

Fixes Issue #1670.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
6 years agozebra: Move selected_fib assignment
Donald Sharp [Wed, 24 Jan 2018 14:16:39 +0000 (09:16 -0500)]
zebra: Move selected_fib assignment

The dest->selected_fib assignment needs to happen
after the install and should be controlled by
the southbound api return of success or failure.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agobgpd: check flags before attempting keepalive ops
Quentin Young [Wed, 24 Jan 2018 22:47:17 +0000 (17:47 -0500)]
bgpd: check flags before attempting keepalive ops

If a peer already has keepalives turned on when asking to turn them on,
return immediately. Same thing for turning them off.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agobgpd: fix SA issues
mitesh [Wed, 24 Jan 2018 22:03:05 +0000 (14:03 -0800)]
bgpd: fix SA issues

Signed-off-by: Mitesh KAnjariya <mitesh@cumulusnetworks.com>
6 years agotests: make tests happy for pthread changes
Quentin Young [Wed, 24 Jan 2018 20:53:07 +0000 (15:53 -0500)]
tests: make tests happy for pthread changes

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agobgpd: update pthreads to use lib changes
Quentin Young [Wed, 24 Jan 2018 16:07:27 +0000 (11:07 -0500)]
bgpd: update pthreads to use lib changes

Use the new threading facilities provided in lib/ to streamline the
threads used in bgpd. In particular, all of the lifecycle code has been
removed from the I/O thread and replaced with the default loop. Did not
do the same to the keepalives thread as it is much smaller (doesn't need
the event system).

Also cleaned up some comments to match the style guide.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agolib: streamline frr_pthreads, add default loop
Quentin Young [Mon, 22 Jan 2018 19:23:55 +0000 (14:23 -0500)]
lib: streamline frr_pthreads, add default loop

Some work on FRR's pthread wrapper.

* Provide a built-in way to synchronize thread startup
* Make utility functions take frr_pthread * instead of its integer ID
* Pass frr_pthread * as pthread start function argument
* Correct some comment styling
* Rename some variables to match naming conventions in the file
* Change parameter ordering in stop function prototype to follow the
  convention in the other functions
* Default new frr_pthreads to using a vanilla event loop

For the last point, the original goal when designing the implementation
of pthreads into FRR was to be able to use the thread.c event based
system inside pthreads. This code essentially encapuslates all the
thread.c functionality into an easy to use pthread out of the box.
Creating a new frr_pthread with a null attributes field will cause the
created frr_pthread to run a thread.c event loop. The upshot of this is
that it is now possible to safely run existing functions in a pthread in
roughly 3 lines of code. It also serves as an example / starting point
for others.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
6 years agozebra: Modify southbound interface to pass `struct route_node`
Donald Sharp [Wed, 24 Jan 2018 13:22:57 +0000 (08:22 -0500)]
zebra: Modify southbound interface to pass `struct route_node`

The route_node that we are working on is going to be interesting
to the kernel_route_rib_pass_fail.  So I am setting up the
code to allow me to pass it.  This will be done in a subsuquent
commit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years ago*: Refine the notion of a configured VRF in FRR
vivek [Wed, 6 Dec 2017 23:19:11 +0000 (15:19 -0800)]
*: Refine the notion of a configured VRF in FRR

Refine the notion of what FRR considers as "configured" VRF. It is no longer
based on user just typing "vrf FOO" but when something is actually configured
against that VRF. Right now, in zebra, the only configuration against a VRF
are static IP routes and EVPN L3 VNI. Whenever a configuration is removed,
check and clear the "configured" flag if there is no other configuration for
this VRF. When user attempts to configure a static route and the VRF doesn't
exist, a VRF is created; the VRF is only active when also defined in the
kernel.

Updates: 8b73ea7bd479030418ca06eef59d0648d913b620
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
Ticket: CM-10139, CM-18553
Reviewed By: CCR-7019
Testing Done:
1. Manual testing for L3 VNI and static routes - FRR restart, networking
restart etc.
2. 'vrf' smoke

<DETAILED DESCRIPTION (REPLACE)>

6 years agozebra/bgpd: fix compilation issues
mitesh [Thu, 18 Jan 2018 18:27:26 +0000 (10:27 -0800)]
zebra/bgpd: fix compilation issues

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
6 years agobgpd: Fix spurious error messages in EVPN type-5 route injection/withdraw
vivek [Fri, 5 Jan 2018 20:41:25 +0000 (12:41 -0800)]
bgpd: Fix spurious error messages in EVPN type-5 route injection/withdraw

Ensure that spurious error messages are not generated in a non-EVPN configuration
when routes in a VRF get deleted or added. Also, check on EVPN advertisement
being enabled before walking VRF routing table.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-19206
Reviewed By: CCR-7073
Testing Done:
1. Recreate errors and validate fix
2. Type-5 route related testing - new routes, neighbor flap etc.