]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
7 years agoripd: Fix crash when ip rip split-horizon poisoned-reverse is configed 1719/head
Donald Sharp [Tue, 6 Feb 2018 23:48:09 +0000 (18:48 -0500)]
ripd: Fix crash when ip rip split-horizon poisoned-reverse is configed

The code was attempting to access a variable that would always be NULL.
In fact this code has been broken since the rip ECMP changes
were put into place a few years back.

I'm going to come straight out and say that I don't fully
understand this code.  rinfo is the first item in the ecmp
list and tmp_rinfo is used to iterate over all the items
in the ecmp list.  It sure looks like that the changes
made here were just hacked together.  So I modified
the tmp_rinfo loop to just work on tmp_rinfo and
the check that was crashing I modified to just use
the rinfo since that what was checked originally
in code before the ECMP was added.  So consider
this a hack job to stop the crashing.

I think worse case is that we might be sending some routes
back out interfaces it shouldn't be if you have
ip rip split-horizon poisoned-reverse configured but
that is less bad(tm) than crashing.

Fixes: #1717
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 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

7 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

7 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 '?='

7 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>
7 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

7 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

7 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

7 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

7 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

7 years agoOSPFd: Fix Opaque LSA filtering in Segment Routing 1653/head
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>
7 years agobgpd, pimd: Handle return code for nexthop_decode 1712/head
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>
7 years agolib: Fix encoding of vrf 1713/head
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>
7 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>
7 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>
7 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>
7 years agobgpd: Fix some evpn hash key creation 1702/head
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>
7 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>
7 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>
7 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

7 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

7 years agobgpd: Add ability to see martian next-hop's for a vrf 1705/head
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>
7 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

7 years agolib: fix more warnings on *BSD 1703/head
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>
7 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>
7 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>
7 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>
7 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>
7 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

7 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

7 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>
7 years agodebianpkg rules files: WANT_CUMULUS_MODE, not WANT_CUMULUS_NODE 1699/head
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>
7 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>
7 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>
7 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

7 years agoospfd: fix redistribute running config 1695/head
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>
7 years agobgpd: improve default shutdown help string 1694/head
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>
7 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

7 years agotools: return exit status in checkpatch.sh 1542/head
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>
7 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>
7 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>
7 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>
7 years agobgpd: fix output of show bgp vrf all neighbor x.x.x.x 1690/head
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>
7 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

7 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>
7 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

7 years agolib, pimd: Remove PIM_NODE as it is not needed 1696/head
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>
7 years agoospfd: Fix default-info and redis cmd options 1688/head
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>
7 years agozebra: Fix v6 nexthop-vrf and nexthop confusion 1693/head
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>
7 years agozebra: Fix crash when dereferencing dest->selected_fib 1687/head
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>
7 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

7 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

7 years agozebra: On shutdown actually delete rn's assoc w/ other_tables 1686/head
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>
7 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

7 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.
7 years agozebra: Cleanup error handling of nexthop vrf and vrf 1684/head
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>
7 years agodoc: remove references to encap safi 1685/head
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>
7 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>
7 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

7 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>
7 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"

7 years agozebra: Fix failure to parse src 1680/head
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>
7 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

7 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>
7 years agoRevert "bgpd: disallow invalid config at cli layer" 1679/head
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.

7 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

7 years agoospf6d: Fix redist w/ route-map during restart 1677/head
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>
7 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

7 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

7 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

7 years agobgpd: remove poorly located bestpath json output 1676/head
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>
7 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

7 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

7 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

7 years agozebra: Fix crash in ptm code 1675/head
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>
7 years agoospfd: clean route map prefixlist vrf during exit 1674/head
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>
7 years agoospfd: allow multiple options in the redistribute command 1673/head
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>
7 years agozebra: Move selected_fib assignment 1671/head
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>
7 years agobgpd: check flags before attempting keepalive ops 1672/head
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>
7 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>
7 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>
7 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>
7 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>
7 years agoMerge pull request #1664 from chiragshah6/ospfv3_dev
Russ White [Wed, 24 Jan 2018 00:20:43 +0000 (19:20 -0500)]
Merge pull request #1664 from chiragshah6/ospfv3_dev

ospf6d: SPF calculation w/ multiple Router LSAs originated from given Adv Router

7 years agoMerge pull request #1665 from donaldsharp/nexthop_labels
Russ White [Wed, 24 Jan 2018 00:09:08 +0000 (19:09 -0500)]
Merge pull request #1665 from donaldsharp/nexthop_labels

Cleanup some zclient code

7 years agoMerge pull request #1667 from Orange-OpenSource/master
Russ White [Wed, 24 Jan 2018 00:05:05 +0000 (19:05 -0500)]
Merge pull request #1667 from Orange-OpenSource/master

OSPFD: Solve Issue #1652

7 years agobgpd: fix race condition causing occasional assert 1668/head
Quentin Young [Mon, 18 Dec 2017 18:19:22 +0000 (13:19 -0500)]
bgpd: fix race condition causing occasional assert

If a BGP message header fails validation we send a BGP NOTIFICATION from
the I/O thread. At this time we clear the output buffer, push a
NOTIFICATION and then call the manual write function for errors. But in
between the push and the write the main thread could have pushed some
other message. Thus we need to hold the lock for the duration of the
function. TOCTTOU.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agotools: enable stylechecker to handle new files
Quentin Young [Tue, 23 Jan 2018 19:35:46 +0000 (14:35 -0500)]
tools: enable stylechecker to handle new files

Since the tool is entirely diff based, it was having some issues diffing
things that didn't exist.

Also made it a bit smarter about ignoring kernel-specific style nits we
don't really care about.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoOSPFD: Solve Issue #1652 1667/head
Olivier Dugeon [Tue, 23 Jan 2018 15:15:58 +0000 (16:15 +0100)]
OSPFD: Solve Issue #1652

Issue 1652 was related to OSPF Crash on termination when ospf is
configured to flood self Opaque LSA e.g TE or RI Opaque LSA.

Analysis:
The problem resides in free_opaque_info_per_type() line 576 of
ospf_opaque.c. Once LSA flush, the function removes by calling
listnode_delete() function the opaque_info_per_type data structure.
However, this is also performed at the upper level function
ospf_opaque_type10lsa_term() which call list_delete_and_null() function.
This result into a double free pointer exception.

Solution:
Remove call to listnode_delete() calls in free_opaque_info_per_type()
function as it is done by list_delete_and_null(). Delete lines 592 - 615.
Remove also second call to ospf_opaque_type10lsa_term() in ospfd.c line 848.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
7 years agoOSPFD: Set Segment Routing patch conform to C99
Olivier Dugeon [Tue, 23 Jan 2018 11:19:50 +0000 (12:19 +0100)]
OSPFD: Set Segment Routing patch conform to C99

 - Change all u_intXX_t typedef to standard type uintXX_t
 - Correct removal of ZEBRA_OSPF_SR route in ospf_sr.c line 670

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
7 years agoMerge pull request #1618 from donaldsharp/zebra_startup_ordering
Philippe Guibert [Tue, 23 Jan 2018 07:25:01 +0000 (08:25 +0100)]
Merge pull request #1618 from donaldsharp/zebra_startup_ordering

zebra route-leaking for static routes

7 years agoospf6d: spf calculation w/ multiple router lsas 1664/head
Chirag Shah [Wed, 17 Jan 2018 18:55:46 +0000 (10:55 -0800)]
ospf6d: spf calculation w/ multiple router lsas

An OSPFv3 enabled Router can originate or receive
multiple Link State-IDs for Router LSAs.
As per RFC 5340 A 4.3, more than one Router LSAs,
from given Vertex is considered (as concatenated)
single large Router LSA.

Created hidden show command to simulate concatenated
large LSA from advertising/self Router LSAs.

Ticket:CM-19329
Reviewed By:
Testing Done:
Simulate 160 subinterfaces between R1 === R2--R3,
This triggers R1 and R2 to generate multiple link state
IDs for Router LSAs. During SPF calculation only aggregated
single router LSA processed and SPF tree formed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
7 years agobgpd, lib, pimd: Abstract commands for nexthop tracking 1665/head
Donald Sharp [Mon, 22 Jan 2018 23:36:03 +0000 (18:36 -0500)]
bgpd, lib, pimd: Abstract commands for nexthop tracking

Abstract the code that sends the zapi message into zebra
for the turn on/off of nexthop tracking for a prefix.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: No need to assert on the redist_default
Donald Sharp [Mon, 22 Jan 2018 23:22:09 +0000 (18:22 -0500)]
pimd: No need to assert on the redist_default

zclient_init sets the redist_default to the appropriate
value, testing it with an assert doesn't really provide
us with much of anything useful.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: Unset bitmap when not using it
Donald Sharp [Mon, 22 Jan 2018 23:18:38 +0000 (18:18 -0500)]
lib: Unset bitmap when not using it

The zclient->redist bitmap for vrf's was being set again
for the zclient_send_dereg_requests function.  This should
be a unset on tear down.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: Cleanup some zclient clutter.
Donald Sharp [Mon, 22 Jan 2018 23:16:59 +0000 (18:16 -0500)]
lib: Cleanup some zclient clutter.

The zclient code can be cleaned up a tiny bit and hopefully
improve it's indentation some.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge pull request #1655 from LabNConsulting/working/master/consistent_count
Quentin Young [Mon, 22 Jan 2018 23:53:19 +0000 (18:53 -0500)]
Merge pull request #1655 from LabNConsulting/working/master/consistent_count

bgpd: update last_update whenever obuf sent

7 years agobgpd: update last_update whenever obuf sent 1655/head
Lou Berger [Sun, 7 Jan 2018 14:41:53 +0000 (09:41 -0500)]
bgpd: update last_update whenever obuf sent
      (to be consistent with last_write updates)

Signed-off-by: Lou Berger <lberger@labn.net>
7 years agoMerge pull request #1663 from donaldsharp/mpls
Renato Westphal [Mon, 22 Jan 2018 19:43:10 +0000 (17:43 -0200)]
Merge pull request #1663 from donaldsharp/mpls

Mpls

7 years agoMerge pull request #1656 from ak503/bgp
Renato Westphal [Mon, 22 Jan 2018 19:03:58 +0000 (17:03 -0200)]
Merge pull request #1656 from ak503/bgp

bgp: small fix for write to 'address-family l2vpn evpn' configuration