]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
5 years agozebra: separate netlink socket for dataplane
Mark Stapp [Mon, 12 Nov 2018 20:57:03 +0000 (15:57 -0500)]
zebra: separate netlink socket for dataplane

Use a separate netlink socket for the dataplane's updates, to
avoid races between the dataplane pthread and the zebra main
pthread. Revise zebra shutdown so that the dataplane netlink
socket is cleaned-up later, after all shutdown-time dataplane
work has been done.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: dplane lock and thread_master apis
Mark Stapp [Thu, 27 Sep 2018 19:10:54 +0000 (15:10 -0400)]
zebra: dplane lock and thread_master apis

Improve, simplify dataplane provider locking apis. Add accessor
for dataplane pthread's thread_master, for use by providers who
need to use the thread/event apis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: improve dataplane shutdown checks
Mark Stapp [Tue, 11 Sep 2018 20:42:36 +0000 (16:42 -0400)]
zebra: improve dataplane shutdown checks

Update the dataplane shutdown checks to include the providers.
Also revise the typedef for provider structs to make const
work.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: revise dplane dequeue api
Mark Stapp [Mon, 10 Sep 2018 19:36:30 +0000 (15:36 -0400)]
zebra: revise dplane dequeue api

Change the dataplane context dequeue api used by zebra to make the
purpose a bit clearer.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: add initial error handling to dplane loop
Mark Stapp [Mon, 10 Sep 2018 19:17:19 +0000 (15:17 -0400)]
zebra: add initial error handling to dplane loop

Capture error work during dataplane provider processing.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: reorg dataplane pthread start
Mark Stapp [Fri, 7 Sep 2018 19:46:13 +0000 (15:46 -0400)]
zebra: reorg dataplane pthread start

Move dataplane pthread start later in the zebra startup; make
the 'test' dplane provider conditional

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: dataplane provider enhancements
Mark Stapp [Fri, 31 Aug 2018 17:46:50 +0000 (13:46 -0400)]
zebra: dataplane provider enhancements

Limit the number of updates processed from the incoming queue;
add more stats. Fill out apis for dataplane providers; convert
route update processing to provider model; move dataplane
status enum

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: fix get_old_instance api
Mark Stapp [Wed, 14 Nov 2018 15:06:05 +0000 (10:06 -0500)]
zebra: fix get_old_instance api

One of the dplane context accessors was returning the wrong value;
correct it.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agozebra: introduce dedicated dataplane pthread
Mark Stapp [Thu, 30 Aug 2018 17:48:05 +0000 (13:48 -0400)]
zebra: introduce dedicated dataplane pthread

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoMerge pull request #3339 from opensourcerouting/bugfix/isis-flooding-issues
Russ White [Tue, 20 Nov 2018 20:07:19 +0000 (15:07 -0500)]
Merge pull request #3339 from opensourcerouting/bugfix/isis-flooding-issues

isis: Fix flooding issues

5 years agoMerge pull request #3359 from qlyoung/true-atomics
Mark Stapp [Tue, 20 Nov 2018 16:43:10 +0000 (11:43 -0500)]
Merge pull request #3359 from qlyoung/true-atomics

Restrict atomics to 32-bits only

5 years agoMerge pull request #2929 from kssoman/rtr_fix
Renato Westphal [Tue, 20 Nov 2018 14:26:52 +0000 (12:26 -0200)]
Merge pull request #2929 from kssoman/rtr_fix

bgpd, zebra: Creating Loopback Interface Flaps BGPd, it should update

5 years agotools: add non-32 bit atomic warning to checkpatch
Quentin Young [Mon, 19 Nov 2018 18:48:42 +0000 (18:48 +0000)]
tools: add non-32 bit atomic warning to checkpatch

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years ago*: only use 32-bit atomics
Quentin Young [Mon, 19 Nov 2018 18:44:35 +0000 (18:44 +0000)]
*: only use 32-bit atomics

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agoMerge pull request #3358 from opensourcerouting/libtool-cfg-warn
Quentin Young [Mon, 19 Nov 2018 17:16:37 +0000 (12:16 -0500)]
Merge pull request #3358 from opensourcerouting/libtool-cfg-warn

build: refuse non-working linking options

5 years agoMerge pull request #3346 from donaldsharp/pim_possible_issues
David Lamparter [Mon, 19 Nov 2018 16:02:27 +0000 (17:02 +0100)]
Merge pull request #3346 from donaldsharp/pim_possible_issues

Pim possible issues

5 years agoMerge pull request #3294 from pguibert6WIND/distribute_list_ipv6
David Lamparter [Mon, 19 Nov 2018 16:01:24 +0000 (17:01 +0100)]
Merge pull request #3294 from pguibert6WIND/distribute_list_ipv6

lib: distribute-list ipv6 can be (un)configured

5 years agoMerge pull request #3311 from dslicenc/static-int-up
David Lamparter [Mon, 19 Nov 2018 15:59:08 +0000 (16:59 +0100)]
Merge pull request #3311 from dslicenc/static-int-up

staticd: install static routes in a vrf when next-hop interface comes up

5 years agoMerge pull request #2725 from pguibert6WIND/workflow_lts
David Lamparter [Mon, 19 Nov 2018 15:54:56 +0000 (16:54 +0100)]
Merge pull request #2725 from pguibert6WIND/workflow_lts

doc: change workflow to support long term maintenance branches

5 years agoMerge pull request #3343 from qlyoung/doc-add-vtysh-dev
David Lamparter [Mon, 19 Nov 2018 15:54:25 +0000 (16:54 +0100)]
Merge pull request #3343 from qlyoung/doc-add-vtysh-dev

doc: add dev doc for vtysh

5 years agobuild: refuse non-working linking options
David Lamparter [Mon, 19 Nov 2018 15:32:14 +0000 (16:32 +0100)]
build: refuse non-working linking options

We only support:
* --enable-shared --disable-static --disable-static-bin
* --enable-shared --enable-static --disable-static-bin
* --enable-shared --enable-static --enable-static-bin

(The second option is not particularly useful.)

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobgpd: Creating Loopback Interface Flaps BGPd (#2865)
root [Mon, 19 Nov 2018 12:35:32 +0000 (04:35 -0800)]
bgpd: Creating Loopback Interface Flaps BGPd (#2865)

* The function bgp_router_id_zebra_bump() will check for active bgp
  peers before chenging the router ID.
  If there are established peers, router ID is not modified
  which prevents the flapping of established peer connection

* Added field in bgp structure to store the count of established peers

Signed-off-by: kssoman <somanks@vmware.com>
5 years agoMerge pull request #3341 from donaldsharp/unneeded
Renato Westphal [Sat, 17 Nov 2018 22:33:44 +0000 (20:33 -0200)]
Merge pull request #3341 from donaldsharp/unneeded

zebra: Remove uncompiled file

5 years agoMerge pull request #3352 from pacovn/Coverity_1475489_resource_leak
Renato Westphal [Sat, 17 Nov 2018 22:32:02 +0000 (20:32 -0200)]
Merge pull request #3352 from pacovn/Coverity_1475489_resource_leak

bgpd: fix resource leak (Coverity 1475489)

5 years agoMerge pull request #3353 from qlyoung/fix-bgpd-community-list-deletion-nit
Renato Westphal [Sat, 17 Nov 2018 22:30:23 +0000 (20:30 -0200)]
Merge pull request #3353 from qlyoung/fix-bgpd-community-list-deletion-nit

bgpd: fix small error in community-list patch

5 years agoMerge pull request #3338 from ton31337/fix/optional_args_for_exclude
Quentin Young [Fri, 16 Nov 2018 20:43:44 +0000 (15:43 -0500)]
Merge pull request #3338 from ton31337/fix/optional_args_for_exclude

bgpd: Optionally remove AS number when using `no set as-path exclude`

5 years agoMerge pull request #3344 from ton31337/fix/optional_args_for_community-lists
Quentin Young [Fri, 16 Nov 2018 20:16:35 +0000 (15:16 -0500)]
Merge pull request #3344 from ton31337/fix/optional_args_for_community-lists

bgpd: Remove community-list by name without typing full rule

5 years agobgpd: fix resource leak (Coverity 1475489)
F. Aragon [Fri, 16 Nov 2018 19:13:38 +0000 (20:13 +0100)]
bgpd: fix resource leak (Coverity 1475489)

Signed-off-by: F. Aragon <paco@voltanet.io>
5 years agoMerge pull request #3348 from donaldsharp/bsd_route_install
Mark Stapp [Fri, 16 Nov 2018 13:53:27 +0000 (08:53 -0500)]
Merge pull request #3348 from donaldsharp/bsd_route_install

zebra: Fix bsd privs elevation

5 years agozebra: Fix privs elevation
Donald Sharp [Fri, 16 Nov 2018 12:26:51 +0000 (07:26 -0500)]
zebra: Fix privs elevation

This Commit: f183e380fae61b7c1f89fed6e32ed5a9d1ede8a8 broke
priviledge escalation on *bsd.  This puts it back.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agopimd: When we fail to initiate ifchannel backout work done
Donald Sharp [Fri, 16 Nov 2018 00:28:43 +0000 (19:28 -0500)]
pimd: When we fail to initiate ifchannel backout work done

When we receive a igmp report and attempt to initiate
a pim ifchannel for it and that fails to work then
let's back out the work done setting stuff up to this
point.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agopimd: Add some debugs for when local membership fails
Donald Sharp [Fri, 16 Nov 2018 00:17:17 +0000 (19:17 -0500)]
pimd: Add some debugs for when local membership fails

When we fail to add a local membership add some additional debugs
so that we can have a bit more information on when something goes
bad.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agobgpd: Remove community-list by name without typing full rule
Donatas Abraitis [Thu, 15 Nov 2018 20:08:42 +0000 (22:08 +0200)]
bgpd: Remove community-list by name without typing full rule

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Optionally remove AS number when using `no set as-path exclude`
Donatas Abraitis [Thu, 15 Nov 2018 19:57:34 +0000 (21:57 +0200)]
bgpd: Optionally remove AS number when using `no set as-path exclude`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agozebra: Remove uncompiled file
Donald Sharp [Thu, 15 Nov 2018 18:42:30 +0000 (13:42 -0500)]
zebra: Remove uncompiled file

The zebra_l2_null.c is not compiled and not needed, remove.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoisisd: Fix behavior on reception of self-originated LSP
Christian Franke [Thu, 15 Nov 2018 13:55:31 +0000 (14:55 +0100)]
isisd: Fix behavior on reception of self-originated LSP

We should only update and reflood our own LSPs when the received LSP
is newer than the local copy.

In all other cases, we should simply acknowledge it or resend our own
LSP.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agofabricd: Fix flooding bug
Christian Franke [Thu, 15 Nov 2018 12:05:35 +0000 (13:05 +0100)]
fabricd: Fix flooding bug

Due to `lsp` getting shadowed, we would send each T0 its own LSP
whenever we actually wanted to flood a different LSP.

Fix this and set -Wshadow=local in my build environment. m(

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: Always consider purges as newer
Christian Franke [Wed, 14 Nov 2018 17:54:59 +0000 (18:54 +0100)]
isisd: Always consider purges as newer

When receiving an LSP with same sequence number but different
checksum as in the local database, we would always treat it as
newer than the local LSP.

That behavior is incorrect if the local LSP is indeed a purged
LSP waiting for age-out and the received one is not.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3326 from qlyoung/fix-lla-reinstallation
David Lamparter [Thu, 15 Nov 2018 13:58:51 +0000 (14:58 +0100)]
Merge pull request #3326 from qlyoung/fix-lla-reinstallation

zebra: force neighbor entry reinstallation

5 years agoMerge pull request #3316 from qlyoung/remove-pr-admonishment
David Lamparter [Thu, 15 Nov 2018 13:07:09 +0000 (14:07 +0100)]
Merge pull request #3316 from qlyoung/remove-pr-admonishment

.github: remove style reminder from PR template

5 years agoMerge pull request #3323 from qlyoung/doc-zebra-protocol
David Lamparter [Thu, 15 Nov 2018 13:06:00 +0000 (14:06 +0100)]
Merge pull request #3323 from qlyoung/doc-zebra-protocol

doc: update zebra protocol documentation

5 years agoMerge pull request #3329 from rubenk/autoconf-cleanup
David Lamparter [Thu, 15 Nov 2018 13:02:20 +0000 (14:02 +0100)]
Merge pull request #3329 from rubenk/autoconf-cleanup

configure.ac: consistently quote all m4 macros

5 years agoMerge pull request #3331 from mjstapp/fix_lib_id_warning
David Lamparter [Thu, 15 Nov 2018 12:59:52 +0000 (13:59 +0100)]
Merge pull request #3331 from mjstapp/fix_lib_id_warning

libs: rename two id_alloc macros to resolve bsd conflict

5 years agoMerge pull request #3332 from qlyoung/fix-code-block-err
Renato Westphal [Thu, 15 Nov 2018 12:50:38 +0000 (10:50 -0200)]
Merge pull request #3332 from qlyoung/fix-code-block-err

doc: use correct specifier for code block

5 years agoMerge pull request #3164 from pguibert6WIND/bgpstandalone_importexport
Renato Westphal [Thu, 15 Nov 2018 12:49:17 +0000 (10:49 -0200)]
Merge pull request #3164 from pguibert6WIND/bgpstandalone_importexport

bgpd: allow vrf validity and bgp vrf import/export, when zebra is off

5 years agolibs: rename two id_alloc macros to resolve bsd conflict
Mark Stapp [Wed, 14 Nov 2018 19:04:55 +0000 (14:04 -0500)]
libs: rename two id_alloc macros to resolve bsd conflict

Two of the macros in lib/id_alloc had conflicts on some platforms;
rename them to be unique.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoconfigure.ac: consistently quote all m4 macros
Ruben Kerkhof [Wed, 14 Nov 2018 11:23:49 +0000 (12:23 +0100)]
configure.ac: consistently quote all m4 macros

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
5 years agoMerge pull request #3322 from qlyoung/remove-vestigial-secondary
David Lamparter [Wed, 14 Nov 2018 08:09:43 +0000 (09:09 +0100)]
Merge pull request #3322 from qlyoung/remove-vestigial-secondary

Remove vestigial secondary

5 years agoMerge pull request #3324 from qlyoung/fix-zebra-router-memleak
David Lamparter [Wed, 14 Nov 2018 08:08:50 +0000 (09:08 +0100)]
Merge pull request #3324 from qlyoung/fix-zebra-router-memleak

zebra: fix zebra router memleaks

5 years agoMerge pull request #3320 from mjstapp/fix_dp_ecmp
Donald Sharp [Tue, 13 Nov 2018 18:02:02 +0000 (13:02 -0500)]
Merge pull request #3320 from mjstapp/fix_dp_ecmp

zebra: Fix netlink installation of recursive ecmp routes

5 years agodoc: change workflow to support long term maintenance branches
Philippe Guibert [Wed, 25 Jul 2018 16:09:52 +0000 (18:09 +0200)]
doc: change workflow to support long term maintenance branches

Add in the workflow the possibility to do long term support.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3295 from pguibert6WIND/ospf_area_unconfigure
David Lamparter [Tue, 13 Nov 2018 15:40:58 +0000 (16:40 +0100)]
Merge pull request #3295 from pguibert6WIND/ospf_area_unconfigure

ospfd: permit reconfiguring network after area suppressed

5 years agozebra: Fix netlink installation of recursive ecmp routes
Mark Stapp [Tue, 13 Nov 2018 15:21:16 +0000 (10:21 -0500)]
zebra: Fix netlink installation of recursive ecmp routes

Recursive multipath nexthops were broken by the initial async
dataplane - we were trying to install an extra, invalid
nexthop.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agobgpd: allow vrf validity and bgp vrf import/export, when zebra is off
Philippe Guibert [Thu, 11 Oct 2018 16:37:01 +0000 (18:37 +0200)]
bgpd: allow vrf validity and bgp vrf import/export, when zebra is off

if zebra is not started, then vrf identifiers are not available. This
prevents import/exportation to be available. This commit permits having
import/export available, even when zebra is not started.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3310 from adeg/bugfix/bgpd-mplsvpn-route-import-check
Donald Sharp [Tue, 13 Nov 2018 14:21:05 +0000 (09:21 -0500)]
Merge pull request #3310 from adeg/bugfix/bgpd-mplsvpn-route-import-check

bgpd: fix bgp path info for mplsvpn leaked routes

5 years agoMerge pull request #3051 from mitch-skiba/addpath_change_V1
Donald Sharp [Tue, 13 Nov 2018 14:20:22 +0000 (09:20 -0500)]
Merge pull request #3051 from mitch-skiba/addpath_change_V1

Addpath - Reuse IDs

5 years agoMerge pull request #3318 from qlyoung/agentx-remove-warning-msg
David Lamparter [Tue, 13 Nov 2018 14:06:24 +0000 (15:06 +0100)]
Merge pull request #3318 from qlyoung/agentx-remove-warning-msg

lib: remove agentx already enabled warning

5 years agoMerge pull request #3317 from qlyoung/gitignore-libtool-orig
David Lamparter [Tue, 13 Nov 2018 14:05:24 +0000 (15:05 +0100)]
Merge pull request #3317 from qlyoung/gitignore-libtool-orig

frr: ignore libtool.orig

5 years agoMerge pull request #3287 from donaldsharp/v6_access_list
Lou Berger [Tue, 13 Nov 2018 09:59:23 +0000 (16:59 +0700)]
Merge pull request #3287 from donaldsharp/v6_access_list

zebra: Add `match ipv6 address WORD` as a legal option

5 years agoMerge pull request #3286 from donaldsharp/late_registration
David Lamparter [Tue, 13 Nov 2018 09:26:14 +0000 (10:26 +0100)]
Merge pull request #3286 from donaldsharp/late_registration

bgpd: Late registration of Extended Nexthop should allow RA's to happen

5 years agoMerge pull request #3313 from qlyoung/doc-strip-whitespace
Lou Berger [Tue, 13 Nov 2018 07:56:14 +0000 (14:56 +0700)]
Merge pull request #3313 from qlyoung/doc-strip-whitespace

doc: strip trailing whitespace

5 years agoMerge pull request #3314 from qlyoung/doc-ipv6-isis-router-cmd
Lou Berger [Tue, 13 Nov 2018 07:55:38 +0000 (14:55 +0700)]
Merge pull request #3314 from qlyoung/doc-ipv6-isis-router-cmd

doc: add missing docs for ipv6 isis router cmd

5 years agoMerge pull request #3315 from qlyoung/doc-dev-fixes
Lou Berger [Tue, 13 Nov 2018 07:54:11 +0000 (14:54 +0700)]
Merge pull request #3315 from qlyoung/doc-dev-fixes

Doc dev fixes

5 years agoMerge pull request #3307 from donaldsharp/bondo
Jafar Al-Gharaibeh [Mon, 12 Nov 2018 22:51:22 +0000 (16:51 -0600)]
Merge pull request #3307 from donaldsharp/bondo

zebra: Let zebra know about bond and blond slave intf types

5 years agostaticd: remove stale header info in static_fixup_intf_nh
Don Slice [Mon, 12 Nov 2018 18:34:48 +0000 (18:34 +0000)]
staticd: remove stale header info in static_fixup_intf_nh

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
5 years agoMerge pull request #3312 from pguibert6WIND/ospf6_missing_vty
Quentin Young [Mon, 12 Nov 2018 18:08:59 +0000 (13:08 -0500)]
Merge pull request #3312 from pguibert6WIND/ospf6_missing_vty

ospf6d: add missing vty commands to ospf6 area command

5 years agoMerge pull request #3303 from opensourcerouting/bugfix/isis-fragment-retransmission
Olivier Dugeon [Mon, 12 Nov 2018 16:59:50 +0000 (17:59 +0100)]
Merge pull request #3303 from opensourcerouting/bugfix/isis-fragment-retransmission

isisd: Fix issues with purged fragments

5 years agozebra: Let zebra know about bond and blond slave intf types
Dinesh Dutt [Sat, 10 Nov 2018 20:54:43 +0000 (15:54 -0500)]
zebra: Let zebra know about bond and blond slave intf types

The interface type can be a bond or a bond slave, add some
code to note this and to display it as part of a show interface
command.

Signed-off-by: Dinesh Dutt <didutt@gmail.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoospf6d: add missing vty commands to ospf6 area command
Philippe Guibert [Mon, 12 Nov 2018 16:09:01 +0000 (17:09 +0100)]
ospf6d: add missing vty commands to ospf6 area command

it was not possible to configure per area identifier under decimal
format some ospf6 area options. this is the case of filter list, or
export-list.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3289 from donaldsharp/onlink_schmonlink
Jafar Al-Gharaibeh [Mon, 12 Nov 2018 15:43:15 +0000 (09:43 -0600)]
Merge pull request #3289 from donaldsharp/onlink_schmonlink

zebra: Carry onlink if set from resolving nexthop

5 years agoMerge pull request #3276 from donaldsharp/zclient_update
Renato Westphal [Mon, 12 Nov 2018 15:40:47 +0000 (13:40 -0200)]
Merge pull request #3276 from donaldsharp/zclient_update

*: Replace zclient_new with zclient_new_notify

5 years agostaticd: install static routes in a vrf when next-hop interface comes up
Don Slice [Thu, 8 Nov 2018 19:47:27 +0000 (19:47 +0000)]
staticd: install static routes in a vrf when next-hop interface comes up

Problem reported with cross-vrf static routes that the routes weren't
installed when the target interface is bounced.  Determined that we did
not initiate re-install of the statics in that particular case, so added
it. Test case previously failing now passes.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
5 years agoMerge pull request #3285 from srimohans/watchfrr
Donald Sharp [Mon, 12 Nov 2018 14:36:40 +0000 (09:36 -0500)]
Merge pull request #3285 from srimohans/watchfrr

watchfrr: replace /usr/sbin/service frr with /usr/lib/frr/frr script

5 years agoMerge pull request #3281 from opensourcerouting/update-libyang-instructions
Donald Sharp [Mon, 12 Nov 2018 14:35:09 +0000 (09:35 -0500)]
Merge pull request #3281 from opensourcerouting/update-libyang-instructions

doc: update libyang build instructions

5 years agoMerge pull request #3299 from opensourcerouting/fix-bfd-ipv6-unnumbered
Donald Sharp [Mon, 12 Nov 2018 14:28:24 +0000 (09:28 -0500)]
Merge pull request #3299 from opensourcerouting/fix-bfd-ipv6-unnumbered

bfdd: fix BGP unnumbered peer setup

5 years agoMerge pull request #3305 from opensourcerouting/bugfix/isis-lsp-aggregate-time
Donald Sharp [Mon, 12 Nov 2018 14:27:34 +0000 (09:27 -0500)]
Merge pull request #3305 from opensourcerouting/bugfix/isis-lsp-aggregate-time

isisd: Adjust duration until lsp is regenerated

5 years agoMerge pull request #3304 from opensourcerouting/bugfix/openfabric-flooding
Donald Sharp [Mon, 12 Nov 2018 14:20:27 +0000 (09:20 -0500)]
Merge pull request #3304 from opensourcerouting/bugfix/openfabric-flooding

fabricd: never flood back through the incoming interface

5 years agoMerge pull request #3306 from opensourcerouting/bugfix/isis-csnp-handling
Donald Sharp [Mon, 12 Nov 2018 14:19:40 +0000 (09:19 -0500)]
Merge pull request #3306 from opensourcerouting/bugfix/isis-csnp-handling

Fix IS-IS CSNP handling

5 years ago*: Replace zclient_new with zclient_new_notify
Donald Sharp [Fri, 2 Nov 2018 12:54:58 +0000 (08:54 -0400)]
*: Replace zclient_new with zclient_new_notify

It's been a year since we added the new optional parameters
to instantiation.  Let's switch over to the new name.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agotests: Verify correct operation of lsp_build_list_nonzero_ht
Christian Franke [Sat, 10 Nov 2018 16:58:19 +0000 (17:58 +0100)]
tests: Verify correct operation of lsp_build_list_nonzero_ht

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agobgpd: fix bgp path info for mplsvpn leaked routes so that they are correctly seen...
Anton Degtyarev [Mon, 12 Nov 2018 03:08:17 +0000 (06:08 +0300)]
bgpd: fix bgp path info for mplsvpn leaked routes so that they are correctly seen (and checked) by the rnh module in Zebra

5 years agoisisd: Fix issues with purged fragments
Christian Franke [Fri, 9 Nov 2018 15:38:38 +0000 (16:38 +0100)]
isisd: Fix issues with purged fragments

Purged fragments would always be reoriginated by isisd. They
should only be purged once and never be reoriginated.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agofabricd: never flood back through the incoming interface
Christian Franke [Fri, 9 Nov 2018 15:40:17 +0000 (16:40 +0100)]
fabricd: never flood back through the incoming interface

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: Fix lsp_build_list_nonzero_ht
Christian Franke [Sat, 10 Nov 2018 15:14:40 +0000 (16:14 +0100)]
isisd: Fix lsp_build_list_nonzero_ht

When `first` would be initialized to the same value as `last`, the
function would return incorrect results.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agobgpd: Re-use TX Addpath IDs where possible
Mitch Skiba [Wed, 9 May 2018 23:10:02 +0000 (23:10 +0000)]
bgpd: Re-use TX Addpath IDs where possible

The motivation for this patch is to address a concerning behavior of
tx-addpath-bestpath-per-AS. Prior to this patch, all paths' TX ID was
pre-determined as the path was received from a peer. However, this meant
that any time the path selected as best from an AS changed, bgpd had no
choice but to withdraw the previous best path, and advertise the new
best-path under a new TX ID. This could cause significant network
disruption, especially for the subset of prefixes coming from only one
AS that were also communicated over a bestpath-per-AS session.

The patch's general approach is best illustrated by
txaddpath_update_ids. After a bestpath run (required for best-per-AS to
know what will and will not be sent as addpaths) ID numbers will be
stripped from paths that no longer need to be sent, and held in a pool.
Then, paths that will be sent as addpaths and do not already have ID
numbers will allocate new ID numbers, pulling first from that pool.
Finally, anything left in the pool will be returned to the allocator.

In order for this to work, ID numbers had to be split by strategy. The
tx-addpath-All strategy would keep every ID number "in use" constantly,
preventing IDs from being transferred to different paths. Rather than
create two variables for ID, this patch create a more generic array that
will easily enable more addpath strategies to be implemented. The
previously described ID manipulations will happen per addpath strategy,
and will only be run for strategies that are enabled on at least one
peer.

Finally, the ID numbers are allocated from an allocator that tracks per
AFI/SAFI/Addpath Strategy which IDs are in use. Though it would be very
improbable, there was the possibility with the free-running counter
approach for rollover to cause two paths on the same prefix to get
assigned the same TX ID. As remote as the possibility is, we prefer to
not leave it to chance.

This ID re-use method is not perfect. In some cases you could still get
withdraw-then-add behaviors where not strictly necessary. In the case of
bestpath-per-AS this requires one AS to advertise a prefix for the first
time, then a second AS withdraws that prefix, all within the space of an
already pending MRAI timer. In those situations a withdraw-then-add is
more forgivable, and fixing it would probably require a much more
significant effort, as IDs would need to be moved to ADVs instead of
paths.

Signed-off-by Mitchell Skiba <mskiba@amazon.com>

5 years agolib: Implement an allocator for 32 bit ID numbers
Mitch Skiba [Thu, 17 May 2018 19:06:08 +0000 (19:06 +0000)]
lib: Implement an allocator for 32 bit ID numbers

This commit introduces lib/id_alloc, which has facilities for both an ID number
allocator, and less efficient ID holding pools. The pools are meant to be a
temporary holding area for ID numbers meant to be re-used, and are implemented
as a linked-list stack.

The allocator itself is much more efficient with memory. Based on sizeof
values on my 64 bit desktop, the allocator requires around 155 KiB per
million IDs tracked.

IDs are ultimately tracked in a bit-map split into many "pages." The
allocator tracks a list of pages that have free bits, and which sections
of each page have free IDs, so there isn't any scanning required to find
a free ID. (The library utility ffs, or "Find First Set," is generally a
single CPU instruction.) At the moment, totally empty pages will not be
freed, so the memory utilization of this allocator will remain at the
high water mark.

The initial intended use case is for BGP's TX Addpath IDs to be pulled
from an allocator that tracks which IDs are in use, rather than a free
running counter.  The allocator reserves ID #0 as a sentinel value for
an invalid ID numbers, and BGP will want ID #1 reserved as well. To
support this, the allocator allows for IDs to be explicitly reserved,
though be aware this is only practical to use with low numbered IDs
because the allocator must allocate pages in order.

Signed-off-by Mitchell Skiba <mskiba@amazon.com>

5 years agoisisd: Remove unused debug flags
Christian Franke [Thu, 8 Nov 2018 19:30:55 +0000 (20:30 +0100)]
isisd: Remove unused debug flags

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoisisd: Adjust duration until lsp is regenerated
Christian Franke [Fri, 9 Nov 2018 16:12:53 +0000 (17:12 +0100)]
isisd: Adjust duration until lsp is regenerated

It turns out 50ms is actually too short to aggregate all changes
in some cases, so allow for 100ms.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3301 from opensourcerouting/bugfix/remove-unused-isis-debugs
Olivier Dugeon [Fri, 9 Nov 2018 15:13:13 +0000 (16:13 +0100)]
Merge pull request #3301 from opensourcerouting/bugfix/remove-unused-isis-debugs

isisd: Remove unused debug flags

5 years agoMerge pull request #3298 from ak503/mpls_te2
Olivier Dugeon [Fri, 9 Nov 2018 13:54:03 +0000 (14:54 +0100)]
Merge pull request #3298 from ak503/mpls_te2

ospfd: unregister mpls-te inter-as only if mpls-te is enabled

5 years agobfdd: fix BGP unnumbered peer setup
Rafael Zalamena [Sat, 3 Nov 2018 22:08:33 +0000 (19:08 -0300)]
bfdd: fix BGP unnumbered peer setup

The session key uses the scope id to figure out which interface we are
using with that link-local address, so if we don't set it when
registering a session we'll end up with multiple IPv6 sessions.

This bug was spotted by Sandro Bolliger.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
(cherry picked from commit de61f256d68bc792a3823193fa8a49fdcaf77d3c)

5 years agoospf: unregister mpls-te inter-as only if mpls-te is enabled
Dmitrii Turlupov [Fri, 9 Nov 2018 10:44:42 +0000 (13:44 +0300)]
ospf: unregister mpls-te inter-as only if mpls-te is enabled

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
5 years agoOSPF: Add support to multi-area to Router Info.
Olivier Dugeon [Fri, 26 Oct 2018 17:12:41 +0000 (19:12 +0200)]
OSPF: Add support to multi-area to Router Info.

  Router Information needs to specify the area ID when flooding scope is set to
  AREA. However, this authorize only one AREA. Thus, Area Border Router (ABR) are
  unable to flood Router Information Opaque LSA in all areas they are belongs to.

  The path implies that the area ID is no more necessary for the command
  'router-info area'. It remains suported for compatibility, but mark as
  deprecated. Documentation has been updated accordingly.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
5 years agoospfd: permit reconfiguring network after area suppressed
Philippe Guibert [Thu, 8 Nov 2018 16:37:50 +0000 (17:37 +0100)]
ospfd: permit reconfiguring network after area suppressed

avoid counting twice the number of areas configured, when entering back
to router ospf config node.

PR=61288
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Acked-by: Emmanuel Vize <emmanuel.vize@6wind.com>
5 years agolib: distribute-list ipv6 can be (un)configured
Philippe Guibert [Thu, 8 Nov 2018 13:33:19 +0000 (14:33 +0100)]
lib: distribute-list ipv6 can be (un)configured

ipv6 distribute-list name picked up was not the correct one. the
parameter number is modified accordingly.
Also, the unconfiguration of distribute-list ipv6 was conflicting with
other daemon, thus making impossible the unconfigration. The command has
been split to be specific to ipv6 distribute-list.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3202 from donaldsharp/evpn_dump
Russ White [Thu, 8 Nov 2018 23:13:27 +0000 (18:13 -0500)]
Merge pull request #3202 from donaldsharp/evpn_dump

Evpn dump

5 years agoisisd: Remove unused debug flags
Christian Franke [Thu, 8 Nov 2018 19:30:55 +0000 (20:30 +0100)]
isisd: Remove unused debug flags

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agoMerge pull request #3290 from rubenk/configure-ac-fix-typo-in-error-message
Donald Sharp [Thu, 8 Nov 2018 14:36:17 +0000 (09:36 -0500)]
Merge pull request #3290 from rubenk/configure-ac-fix-typo-in-error-message

configure.ac: fix a typo in an error message

5 years agoconfigure.ac: fix a typo in an error message
Ruben Kerkhof [Thu, 8 Nov 2018 11:29:57 +0000 (12:29 +0100)]
configure.ac: fix a typo in an error message

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
5 years agoMerge pull request #3205 from donaldsharp/default
Rafael Zalamena [Wed, 7 Nov 2018 20:48:21 +0000 (18:48 -0200)]
Merge pull request #3205 from donaldsharp/default

bgpd: make name of default vrf/bgp instance consistent