]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agoMerge pull request #6727 from opensourcerouting/nb-cfg-backoff
Donald Sharp [Tue, 4 Aug 2020 17:54:55 +0000 (13:54 -0400)]
Merge pull request #6727 from opensourcerouting/nb-cfg-backoff

lib: introduce configuration back-off timer for YANG-modeled commands

4 years agoMerge pull request #6815 from donaldsharp/vtysh_goes_vroom
Renato Westphal [Tue, 4 Aug 2020 17:42:41 +0000 (14:42 -0300)]
Merge pull request #6815 from donaldsharp/vtysh_goes_vroom

vtysh: Speed up output of configuration across daemons

4 years agoMerge pull request #6812 from mjstapp/fix_dplane_ret_sa
Sri Mohana Singamsetty [Tue, 4 Aug 2020 16:06:17 +0000 (09:06 -0700)]
Merge pull request #6812 from mjstapp/fix_dplane_ret_sa

zebra: fix SA warning, handle return code

4 years agoMerge pull request #6834 from ton31337/feature/documentation_for_bgp_wide_option
Quentin Young [Tue, 4 Aug 2020 15:45:23 +0000 (11:45 -0400)]
Merge pull request #6834 from ton31337/feature/documentation_for_bgp_wide_option

doc: Add wide option for show bgp commands

4 years agoMerge pull request #6821 from Niral-Networks/niral_6VPE_6PE_fix
Stephen Worley [Tue, 4 Aug 2020 15:17:31 +0000 (11:17 -0400)]
Merge pull request #6821 from Niral-Networks/niral_6VPE_6PE_fix

BGP : Fix for nexthop as IPv4 mapped IPv6 address

4 years agoMerge pull request #6770 from opensourcerouting/fpm-race
Quentin Young [Tue, 4 Aug 2020 15:04:22 +0000 (11:04 -0400)]
Merge pull request #6770 from opensourcerouting/fpm-race

zebra: FPM fixes

4 years agovtysh: Speed up output of configuration across daemons
Donald Sharp [Tue, 28 Jul 2020 14:58:47 +0000 (10:58 -0400)]
vtysh: Speed up output of configuration across daemons

With a config that contains a large number of prefix-lists a 'show run' command
was an expensive operation:

sharpd@eva ~/frr_internal2 ((cl4.1.0))> time vtysh -c "show run" | grep ACTIVE | wc -l
32397
________________________________________________________
Executed in   14.53 secs   fish           external
   usr time   14.45 secs  591.00 micros   14.45 secs
   sys time    0.03 secs  189.00 micros    0.03 secs
sharpd@eva ~/frr_internal2 ((cl4.1.0))>

Effectively we are keeping a linked list of data to store the configuration.
When we received a new item we would look in the list to see if it already
does, by doing a string search across each element in the list.

Add to the master configuration a hash of items for O(1) lookup.
Keep the list for order so we don't mangle that up.

New time:
sharpd@eva ~/frr_internal1 (dev)> time vtysh -c "show run" | grep ACTIVE | wc -l
32397
________________________________________________________
Executed in  277.94 millis    fish           external
   usr time  237.46 millis   20.53 millis  216.93 millis
   sys time   14.31 millis    0.00 millis   14.31 millis

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agolib,zebra,bgpd: Fix for nexthop as IPv4 mapped IPv6 address
Kaushik [Wed, 29 Jul 2020 15:48:57 +0000 (08:48 -0700)]
lib,zebra,bgpd: Fix for nexthop as IPv4 mapped IPv6 address

Added a macro to validate the v4 mapped v6 address.
Modified bgp receive & send updates for v4 mapped v6 address as
nexthop and installing it as recursive nexthop in RIB.
Minor change in fpm while sending the routes for nexthop as
v4 mapped v6 address.

Signed-off-by: Kaushik <kaushik@niralnetworks.com>
4 years agoMerge pull request #6844 from donaldsharp/bestpath_routes
Donatas Abraitis [Tue, 4 Aug 2020 05:13:49 +0000 (08:13 +0300)]
Merge pull request #6844 from donaldsharp/bestpath_routes

Bestpath routes

4 years agoMerge pull request #6832 from pguibert6WIND/ignore_nhrp
Renato Westphal [Mon, 3 Aug 2020 23:03:39 +0000 (20:03 -0300)]
Merge pull request #6832 from pguibert6WIND/ignore_nhrp

nhrpd: ignore zebra updates about our routes being deleted/added

4 years agolib: introduce configuration back-off timer for YANG-modeled commands
Renato Westphal [Thu, 2 Jul 2020 17:43:36 +0000 (14:43 -0300)]
lib: introduce configuration back-off timer for YANG-modeled commands

When using the default CLI mode, the northbound layer needs to create
a separate transaction to process each YANG-modeled command since
they are supposed to be applied immediately (there's no candidate
configuration nor the "commit" command like in the transactional
CLI). The problem is that configuration transactions have an overhead
associated to them, in big part because of the use of some heavy
libyang functions like `lyd_validate()` and `lyd_diff()`. As of
now this overhead is substantial and doesn't scale well when large
numbers of transactions need to be performed in sequence.

As an example, loading 50k prefix-lists using a single transaction
takes about 2 seconds on a modern CPU. Loading the same 50k
prefix-lists using 50k transactions can take more than an hour
to complete (which is unacceptable by any standard). To fix this
problem, some heavy optimization work needs to be done on libyang and
on the FRR northbound itself too (e.g. perform partial configuration
diffs whenever possible).  This, however, should be a long term
effort since these optimizations shouldn't be trivial to implement
and we're far from having the performance numbers we need.

In the meanwhile, this commit introduces a simple but efficient
workaround to alleviate the issue. In short, a new back-off timer
was introduced in the CLI to monitor and detect when too many
YANG-modeled commands are being received at the same time. When
a certain threshold is reached (100 YANG-modeled commands within
one second), the northbound starts to group all subsequent commands
into a single large transaction, which allows them to be processed
much faster (e.g. seconds and not hours).  It's essentially a
protection mechanism that creates dynamically-sized transactions
when necessary to prevent performance issues from happening. This
mechanism is enabled both when parsing configuration files and when
reading commands from a terminal.

The downside of this optimization is that, if several YANG-modeled
commands are grouped into the same transaction and at least one of
them fails, the whole transaction is rejected. This is undesirable
since users don't expect transactional behavior when that's not
enabled explicitly. To minimize this issue, the CLI will log all
commands that were rejected whenever that happens, to make the
user aware of what happened and have enough information to fix
the problem. Commands that fail due to parsing errors or CLI-level
validations in general are rejected separately.

Again, this proposed workaround is intended to be temporary. The
goal is to provided a quick fix to issues like #6658 while we work
on better long-term solutions.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years ago*: introduce DEFPY_YANG & friends
Renato Westphal [Mon, 6 Jul 2020 15:47:44 +0000 (12:47 -0300)]
*: introduce DEFPY_YANG & friends

DEFPY_YANG will allow the CLI to identify which commands are
YANG-modeled or not before executing them. This is going to be
useful for the upcoming configuration back-off timer work that
needs to commit pending configuration changes before executing a
command that isn't YANG-modeled.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #6845 from opensourcerouting/foreach-safi-formatting
Quentin Young [Mon, 3 Aug 2020 16:27:28 +0000 (12:27 -0400)]
Merge pull request #6845 from opensourcerouting/foreach-safi-formatting

clang-format: add FOREACH_SAFI to the ForEachMacros list

4 years agoMerge pull request #6781 from chiragshah6/mdev
Renato Westphal [Mon, 3 Aug 2020 15:57:45 +0000 (12:57 -0300)]
Merge pull request #6781 from chiragshah6/mdev

yang: create route-map leafref reference type

4 years agoclang-format: add FOREACH_SAFI to the ForEachMacros list
Renato Westphal [Mon, 3 Aug 2020 15:18:24 +0000 (12:18 -0300)]
clang-format: add FOREACH_SAFI to the ForEachMacros list

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agodoc: Add documentation for the new cli
Donald Sharp [Mon, 3 Aug 2020 14:33:03 +0000 (10:33 -0400)]
doc: Add documentation for the new cli

Document the `show bgp ipv4 uni neighbors 192.168.161.2 bestpath-routes`
command.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Add `bestpath-routes` to neighbor command
Donald Sharp [Fri, 31 Jul 2020 16:12:37 +0000 (12:12 -0400)]
bgpd: Add `bestpath-routes` to neighbor command

Add the ability to list the bestpath-routes to the
`show bgp afi safi neighbor X` command.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Abstract the header inclusion for show_adj_route
Donald Sharp [Fri, 31 Jul 2020 16:33:59 +0000 (12:33 -0400)]
bgpd: Abstract the header inclusion for show_adj_route

Cut-n-paste code can go away.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6833 from donaldsharp/pcount_selected
Donatas Abraitis [Sat, 1 Aug 2020 10:09:28 +0000 (13:09 +0300)]
Merge pull request #6833 from donaldsharp/pcount_selected

bgpd: Add to neighbor prefix-counts the count of best path selected

4 years agoyang: route-map model description format
Chirag Shah [Wed, 29 Jul 2020 20:03:35 +0000 (13:03 -0700)]
yang: route-map model description format

Added "." at the enf of each description of fields.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoyang: route-map style format
Chirag Shah [Tue, 21 Jul 2020 05:04:28 +0000 (22:04 -0700)]
yang: route-map style format

Align to yanglint format

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoyang: create route-map leafref reference type
Chirag Shah [Tue, 21 Jul 2020 04:47:03 +0000 (21:47 -0700)]
yang: create route-map leafref reference type

Create leafref reference type for route-map name.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agodoc: Add wide option for show bgp commands
Donatas Abraitis [Fri, 31 Jul 2020 19:14:00 +0000 (22:14 +0300)]
doc: Add wide option for show bgp commands

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Add to neighbor prefix-counts the count of best path selected
Donald Sharp [Fri, 31 Jul 2020 14:06:39 +0000 (10:06 -0400)]
bgpd: Add to neighbor prefix-counts the count of best path selected

When we have a prefix that has been selected, note that that
particular flag has been set and give that information to the
end user.

eva# show bgp ipv4 uni neighbors 192.168.161.131 prefix-counts
Prefix counts for 192.168.161.131, IPv4 Unicast
PfxCt: 814246

Counts from RIB table walk:

              Adj-in: 0
              Damped: 0
             Removed: 0
             History: 0
               Stale: 0
               Valid: 814246
             All RIB: 814246
       PfxCt counted: 814246
 PfxCt Best Selected: 0
             Useable: 814246
eva# show bgp ipv4 uni neighbors 192.168.161.2 prefix-counts
Prefix counts for 192.168.161.2, IPv4 Unicast
PfxCt: 814070

Counts from RIB table walk:

              Adj-in: 0
              Damped: 0
             Removed: 0
             History: 0
               Stale: 0
               Valid: 814070
             All RIB: 814070
       PfxCt counted: 814070
 PfxCt Best Selected: 814070
             Useable: 814070

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agonhrpd: ignore zebra updates about our routes being deleted/added
Philippe Guibert [Thu, 5 Mar 2020 14:50:37 +0000 (14:50 +0000)]
nhrpd: ignore zebra updates about our routes being deleted/added

nhrp listens for route entries to be deleted, in case some new routes
impact the current routes installed by nhrp. To prevent from
unconfiguring nhrp shortcut route, just prevent nhrp routes to be
processed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
4 years agoMerge pull request #6778 from mjstapp/fix_topo_route_scale
Rafael Zalamena [Thu, 30 Jul 2020 20:59:42 +0000 (17:59 -0300)]
Merge pull request #6778 from mjstapp/fix_topo_route_scale

tests: rework route_scale topotest

4 years agoMerge pull request #6824 from liweitianux/patch-1
Donald Sharp [Thu, 30 Jul 2020 18:34:34 +0000 (14:34 -0400)]
Merge pull request #6824 from liweitianux/patch-1

ospfd: Fix Zebra route add message truncation issue

4 years agozebra: fix SA warning, handle return code
Mark Stapp [Tue, 28 Jul 2020 12:30:52 +0000 (08:30 -0400)]
zebra: fix SA warning, handle return code

Handle a return code, resolving an SA warning

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agotests: Avoid top ecmp route_scale test case when memory limited
Mark Stapp [Wed, 29 Jul 2020 20:57:37 +0000 (16:57 -0400)]
tests: Avoid top ecmp route_scale test case when memory limited

Address-sanitizer runs in the CI appear to require more
memory than is available (at present), so skip the top
x32 route_scale testcase when running with <4G of ram.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agotests: rework route_scale topotest
Mark Stapp [Mon, 20 Jul 2020 18:51:16 +0000 (14:51 -0400)]
tests: rework route_scale topotest

Make some changes to the route-scale topotest, in view of
issue #6734. Table-drive the test to eliminate some
repeated code. Assert and fail if a step in the progression
of scale fails. Wait a little longer between checking the show
output - it's costly to generate that output at scale. Add a
memleak testcase.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #6825 from kuldeepkash/evpn_type2_tests
Mark Stapp [Thu, 30 Jul 2020 18:09:24 +0000 (14:09 -0400)]
Merge pull request #6825 from kuldeepkash/evpn_type2_tests

tests: Skipping evpn_type5_test_topo1 tests from CI runs

4 years agoospfd: Fix Zebra route add message truncation issue
Aaron LI [Thu, 30 Jul 2020 11:22:34 +0000 (19:22 +0800)]
ospfd: Fix Zebra route add message truncation issue

The `INET_ADDRSTRLEN` is 16 and is only enough to format an IPv4 address.
So when there is a prefix (`/xx`), the debug output may get truncated.
Use `PREFIX2STR_BUFFER` macro instead to fix the issue.

Signed-off-by: Aaron LI <aly@aaronly.me>
4 years agotests: Skipping evpn_type5_test_topo1 tests from CI runs
Kuldeep Kashyap [Thu, 30 Jul 2020 12:12:07 +0000 (12:12 +0000)]
tests: Skipping evpn_type5_test_topo1 tests from CI runs

1. evpn_type5_test_topo1 tests started failing in CI for all Ubuntu 18.04 machine,
which are having kernel version: 5.4.0-42-generic
2. We will enable these tests once issue is found and fixed.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
4 years agoMerge pull request #6732 from opensourcerouting/printfrr-prep
Quentin Young [Wed, 29 Jul 2020 18:29:34 +0000 (14:29 -0400)]
Merge pull request #6732 from opensourcerouting/printfrr-prep

*: preparations for printfrr coccinelle run

4 years agoMerge pull request #6769 from opensourcerouting/acl-regress
Donald Sharp [Wed, 29 Jul 2020 13:57:39 +0000 (09:57 -0400)]
Merge pull request #6769 from opensourcerouting/acl-regress

lib,yang: merge cisco/zebra access list styles

4 years agozebra,fpm: serialize zebra table walks
Rafael Zalamena [Fri, 17 Jul 2020 19:15:04 +0000 (16:15 -0300)]
zebra,fpm: serialize zebra table walks

We were not getting any benefits from attempting to walk all tables at the
same time and it made debugging harder, so lets execute one table walk
per time.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agozebra,fpm: fix race on completion detection
Rafael Zalamena [Fri, 17 Jul 2020 14:37:38 +0000 (11:37 -0300)]
zebra,fpm: fix race on completion detection

Zebra runs on a different thread than FPM, so we need to synchronize
them by using events. While here, implement completion detection for all
kinds of walk.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agozebra,fpm: fix input handling
Rafael Zalamena [Fri, 17 Jul 2020 17:37:55 +0000 (14:37 -0300)]
zebra,fpm: fix input handling

Two important fixes:

* `stream_read_try` does a dirty trick and converts the `-1` return to
  `-2` when errno is `EAGAIN`, `EWOULDBLOCK` or `EINTR`.
* Don't enable reads until the connection is complete.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agoMerge pull request #6792 from chiragshah6/pim_dev
David Lamparter [Tue, 28 Jul 2020 13:13:00 +0000 (15:13 +0200)]
Merge pull request #6792 from chiragshah6/pim_dev

*: pim igmp yang registery to appropriate makefile

4 years agoMerge pull request #6787 from toreanderson/master
David Lamparter [Tue, 28 Jul 2020 13:09:15 +0000 (15:09 +0200)]
Merge pull request #6787 from toreanderson/master

tools: do not silently ignore errors when loading config during startup

4 years agoMerge pull request #6758 from chiragshah6/yang_nb6
Russ White [Tue, 28 Jul 2020 11:22:24 +0000 (07:22 -0400)]
Merge pull request #6758 from chiragshah6/yang_nb6

EVPN northbound conversion for vrf l3vni mapping command

4 years agoMerge pull request #6808 from ton31337/fix/dampening_reuse_limit_assert
Russ White [Tue, 28 Jul 2020 10:20:29 +0000 (06:20 -0400)]
Merge pull request #6808 from ton31337/fix/dampening_reuse_limit_assert

bgpd: Bypass SA tests regarding division by zero for reuse_limit in dampening

4 years agoMerge pull request #6806 from donaldsharp/tests_log_monitor
David Lamparter [Mon, 27 Jul 2020 22:15:22 +0000 (00:15 +0200)]
Merge pull request #6806 from donaldsharp/tests_log_monitor

tests: Remove 'log monitor' from tests

4 years agoMerge pull request #6805 from ton31337/fix/dead_code
Rafael Zalamena [Mon, 27 Jul 2020 21:35:20 +0000 (18:35 -0300)]
Merge pull request #6805 from ton31337/fix/dead_code

bgpd: Remove peer_afc_set()

4 years agoMerge pull request #6804 from donaldsharp/remove_cisco_compatability
Rafael Zalamena [Mon, 27 Jul 2020 20:15:02 +0000 (17:15 -0300)]
Merge pull request #6804 from donaldsharp/remove_cisco_compatability

doc: Remove `Cisco Compatability` section

4 years agobgpd: Bypass SA tests regarding division by zero for reuse_limit in dampening
Donatas Abraitis [Mon, 27 Jul 2020 17:38:42 +0000 (20:38 +0300)]
bgpd: Bypass SA tests regarding division by zero for reuse_limit in dampening

reuse_limit can't be zero basically, Coverity just does not know how the
value comes in.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6765 from mjstapp/backup_nhg_netlink
Renato Westphal [Mon, 27 Jul 2020 15:49:36 +0000 (12:49 -0300)]
Merge pull request #6765 from mjstapp/backup_nhg_netlink

lib,zebra: support multiple backup nexthops

4 years agotests: Remove 'log monitor' from tests
Donald Sharp [Mon, 27 Jul 2020 15:09:16 +0000 (11:09 -0400)]
tests: Remove 'log monitor' from tests

The `log monitor' command is a no-op and actually
outputs a `this doesn't do anything` warning.  Let's remove
this cli line from our tests as that don't do anything and
people will look at these configs for guidance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6803 from donaldsharp/coverity_moo_moo
Donatas Abraitis [Mon, 27 Jul 2020 14:20:51 +0000 (17:20 +0300)]
Merge pull request #6803 from donaldsharp/coverity_moo_moo

Coverity code cleanup

4 years agobgpd: Remove peer_afc_set()
Donatas Abraitis [Mon, 27 Jul 2020 14:16:32 +0000 (17:16 +0300)]
bgpd: Remove peer_afc_set()

Dead code.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6662 from kuldeepkash/evpn_type2_tests
Mark Stapp [Mon, 27 Jul 2020 12:16:31 +0000 (08:16 -0400)]
Merge pull request #6662 from kuldeepkash/evpn_type2_tests

tests: Adding test suites evpn_type5_test_topo1

4 years agodoc: Remove `Cisco Compatability` section
Donald Sharp [Mon, 27 Jul 2020 11:57:13 +0000 (07:57 -0400)]
doc: Remove `Cisco Compatability` section

This code was deprecated in 5.0 and removed after a year.
It has not been in the code base and we forgot to update the
doc.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Deref after null check in bgp_evpn_vty.c
Donald Sharp [Mon, 27 Jul 2020 11:10:41 +0000 (07:10 -0400)]
bgpd: Deref after null check in bgp_evpn_vty.c

Coverity has noticed that we are using bgp_evpn after
we have already NULL checked it one time.  Add an assert
to make Coverity happy here, if we get to this point
something terrible has happened.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Prevent Null pointer usage
Donald Sharp [Mon, 27 Jul 2020 10:59:45 +0000 (06:59 -0400)]
bgpd: Prevent Null pointer usage

Coverity rightly points out that bgp_table_top might return
NULL and immediately deref'ing it might be a problem.
Add a bit of safety.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Comment out dead code for future
Donald Sharp [Mon, 27 Jul 2020 10:54:23 +0000 (06:54 -0400)]
bgpd: Comment out dead code for future

I wanted to preserve the old code flow to see what might
be needed in the future in commit:
23ca3269da5f9d898cb54d42c560d519b9cb9915

Coverity doesn't like dead code.  So let's comment it out.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6802 from donaldsharp/various
Donatas Abraitis [Mon, 27 Jul 2020 07:36:24 +0000 (10:36 +0300)]
Merge pull request #6802 from donaldsharp/various

Various

4 years agovrrpd: Make clang 11 happy
Donald Sharp [Sun, 26 Jul 2020 23:05:09 +0000 (19:05 -0400)]
vrrpd: Make clang 11 happy

Recent changes to remove PRIu... in commit:
6cde4b45528e52819c803de92d10d4be3abddf29

causes clang 11 to be unhappy, with length of field warnings.
Modify the offending code to compile properly using that compiler.
I've tested against clang 11 and gcc 9.3

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agodoc: Add doc for `coalesce-time` in bgp
Donald Sharp [Sun, 26 Jul 2020 22:58:25 +0000 (18:58 -0400)]
doc: Add doc for `coalesce-time` in bgp

The documentation for this command was missing.  Add a little
bit of data for people in the future.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6796 from russellb/bgp-debug-newline
Quentin Young [Fri, 24 Jul 2020 23:09:36 +0000 (19:09 -0400)]
Merge pull request #6796 from russellb/bgp-debug-newline

bgpd: Add missing newline to a log message

4 years agoMerge pull request #6771 from opensourcerouting/netbsd-tls-buf
Quentin Young [Fri, 24 Jul 2020 18:53:28 +0000 (14:53 -0400)]
Merge pull request #6771 from opensourcerouting/netbsd-tls-buf

lib: fix TLS log buffer on NetBSD

4 years agobgpd: Add missing newline to a log message
Russell Bryant [Fri, 24 Jul 2020 00:26:54 +0000 (20:26 -0400)]
bgpd: Add missing newline to a log message

While checking my BGP debugging settings at the console, I noticed
this message was missing a newline.  Add it to be consistent with the
other similar messages.

Signed-off-by: Russell Bryant <rbryant@redhat.com>
4 years agoMerge pull request #6793 from maduri111/bgpd-wide
Donatas Abraitis [Fri, 24 Jul 2020 05:42:26 +0000 (08:42 +0300)]
Merge pull request #6793 from maduri111/bgpd-wide

bgpd: wide option

4 years agoMerge pull request #6730 from wesleycoakley/pbrd-dscp-ecn
Russ White [Thu, 23 Jul 2020 16:08:38 +0000 (12:08 -0400)]
Merge pull request #6730 from wesleycoakley/pbrd-dscp-ecn

DSCP / ECN-based PBR Matching

4 years agoMerge pull request #6243 from pguibert6WIND/flowspec_some_regression_seen
Quentin Young [Thu, 23 Jul 2020 15:26:00 +0000 (11:26 -0400)]
Merge pull request #6243 from pguibert6WIND/flowspec_some_regression_seen

Flowspec some regression seen

4 years agobgpd: wide option
Madhuri Kuruganti [Thu, 23 Jul 2020 09:20:52 +0000 (14:50 +0530)]
bgpd: wide option

Signed-off-by: Madhuri Kuruganti <k.madhuri@samsung.com>
4 years agotools: do not silently ignore errors when loading config during startup
Tore Anderson [Wed, 22 Jul 2020 15:32:18 +0000 (17:32 +0200)]
tools: do not silently ignore errors when loading config during startup

Drop the `-n` (`--noerror`) flag from the `vtysh -b` invocation called by the
init script responsible for starting FRR. This ensures that errors in the
configuration file is propagated to the administrator, and prevents a node from
entering a production network while running an essentially undefined
configuration (a behaviour that I can personally attest to has the potential to
cause disastrous network outages - documented in more detail in Cumulus
Networks CS#12791).

Silently ignoring errors also leads to the rather odd behaviour that starting
FRR will ostensibly succeed, while reloading it immediately after - without
changing the configuration - will fail. This is due to the fact that the `-n`
flag is not used while reloading.

The use of the `-n` flag appears to have been introduced without any
explanation in commit 858aa29c6862ed2390baee53b6fc9f54e65246e2 by @donaldsharp.
Looking at the commit message, I suspect that it was not an intentional change.
It seems more likely to me that it was just meant to be used during testing and
development, but ended up being committed to master by accident.

Ticket:CM-28003

Signed-off-by: Tore Anderson <tore@fud.no>
4 years ago*: pim igmp yang registery to appropriate makefile
Chirag Shah [Thu, 23 Jul 2020 06:16:05 +0000 (23:16 -0700)]
*: pim igmp yang registery to appropriate makefile

Move pim and igmp yang files registery to appropriate makefiles.

In yang directory makefile move under `PIMD`
Remove pimd yang files from library makefile instead move them
to pimd makefile.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoMerge pull request #6343 from opensourcerouting/watchfrr-n-20200505
Quentin Young [Wed, 22 Jul 2020 16:07:14 +0000 (12:07 -0400)]
Merge pull request #6343 from opensourcerouting/watchfrr-n-20200505

watchfrr: add `-N` and `--netns` options

4 years agodoc: update watchfrr manpage
David Lamparter [Thu, 8 Aug 2019 18:55:40 +0000 (20:55 +0200)]
doc: update watchfrr manpage

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agotools: add frr@.service
David Lamparter [Thu, 8 Aug 2019 18:51:01 +0000 (20:51 +0200)]
tools: add frr@.service

... for starting an FRR instance.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agotools/frr-reload.py: support -N pathspace
David Lamparter [Thu, 8 Aug 2019 18:20:33 +0000 (20:20 +0200)]
tools/frr-reload.py: support -N pathspace

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agowatchfrr: add (network) namespace support
David Lamparter [Thu, 8 Aug 2019 17:25:39 +0000 (19:25 +0200)]
watchfrr: add (network) namespace support

This adds -N and --netns options to watchfrr, allowing it to start
daemons with -N and switching network namespaces respectively.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agotests: Adding test suites evpn_type5_test_topo1
Kuldeep Kashyap [Wed, 1 Jul 2020 13:16:34 +0000 (13:16 +0000)]
tests: Adding test suites evpn_type5_test_topo1

1. Added 15 test cases to test evpn type5 functionality
2. Total execution time is ~9 mins

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
4 years agotests: Adding framework support for EVPN-Type5 automation
Kuldeep Kashyap [Wed, 1 Jul 2020 13:13:08 +0000 (13:13 +0000)]
tests: Adding framework support for EVPN-Type5 automation

1. Added APIs to create evpn related config.
2. Added APIs to verify evpn config and routes.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
4 years agoMerge pull request #6780 from chiragshah6/evpn_dev2
Mark Stapp [Tue, 21 Jul 2020 20:08:13 +0000 (16:08 -0400)]
Merge pull request #6780 from chiragshah6/evpn_dev2

zebra: vrf disable clean up evpn rmac and nxthp cache

4 years agoMerge pull request #6711 from GalaxyGorilla/bfd_isis_profiles
Quentin Young [Tue, 21 Jul 2020 18:45:31 +0000 (14:45 -0400)]
Merge pull request #6711 from GalaxyGorilla/bfd_isis_profiles

Add BFD profiles for IS-IS

4 years agoMerge pull request #6435 from idryzhov/fix-no-vrf
Quentin Young [Tue, 21 Jul 2020 15:48:34 +0000 (11:48 -0400)]
Merge pull request #6435 from idryzhov/fix-no-vrf

vtysh: return success from "no vrf" when VRF doesn't exist

4 years agozebra: add validate function for zapi_labels message
Mark Stapp [Mon, 20 Jul 2020 21:19:31 +0000 (17:19 -0400)]
zebra: add validate function for zapi_labels message

Add a simple validation function for zapi_labels messages; it
checks for and validates backup nexthop indexes currently.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #6700 from deastoe/ospf6-interface-decimal-area
David Lamparter [Tue, 21 Jul 2020 11:42:59 +0000 (13:42 +0200)]
Merge pull request #6700 from deastoe/ospf6-interface-decimal-area

4 years agoMerge pull request #6777 from idryzhov/vtysh-defpy
David Lamparter [Tue, 21 Jul 2020 11:36:33 +0000 (13:36 +0200)]
Merge pull request #6777 from idryzhov/vtysh-defpy

vtysh: rework DEFPY processing in extract.pl

4 years agoMerge pull request #6745 from ton31337/fix/handle_bgp_vrf_all_statistics_crash
David Lamparter [Tue, 21 Jul 2020 06:01:22 +0000 (08:01 +0200)]
Merge pull request #6745 from ton31337/fix/handle_bgp_vrf_all_statistics_crash

4 years agoMerge pull request #6764 from dslicenc/frr-reload-vrf-static
David Lamparter [Tue, 21 Jul 2020 05:51:55 +0000 (07:51 +0200)]
Merge pull request #6764 from dslicenc/frr-reload-vrf-static

tools: fix more frr-reload vrf static errors

4 years agoMerge pull request #6776 from idryzhov/ospf-vty
David Lamparter [Tue, 21 Jul 2020 05:49:11 +0000 (07:49 +0200)]
Merge pull request #6776 from idryzhov/ospf-vty

ospfd: remove redundant line continuations

4 years agoMerge pull request #6754 from mjstapp/stream_warn_backtrace
David Lamparter [Tue, 21 Jul 2020 05:48:01 +0000 (07:48 +0200)]
Merge pull request #6754 from mjstapp/stream_warn_backtrace

lib: add a backtrace when stream bounds check fails

4 years agoMerge pull request #6775 from idryzhov/vtysh-linemarkers
David Lamparter [Tue, 21 Jul 2020 05:47:08 +0000 (07:47 +0200)]
Merge pull request #6775 from idryzhov/vtysh-linemarkers

vtysh: suppress linemarkers in vtysh_cmd.c

4 years agozebra: vrf disable clean up evpn rmac nxthp cache
Chirag Shah [Mon, 6 Jul 2020 18:13:54 +0000 (11:13 -0700)]
zebra: vrf disable clean up evpn rmac nxthp cache

In networking restart event, l3vni (vxlan) interface followed by
associated vrf interfaces go down/deleted.
L3vni (oper) down event (from zebra to bgp) triggers to
clean up/un-import evpn routes (one-by-one) from the vrf table,
zebra internally removes the route entry from nexthop and RMAC hash.
When all the routes references in nexthop and RMAC db removed,
both (nexthop/rmac) are suppose to be uninstalled from the
bridge fdb and neigh table.
While evpn routes removal in progress, a vrf disable event removes
l3vni to its vrf association.
Subsequent bgp to evpn routes removal does not clean up thus evpn routes
reference to nexthop and RMAC remains in zebra hash.
bridge fdb and neigh tables are flushed out since networking restart brings down
all interfaces which results in flush of fdb and neigh tables.
By product is the zebra does not install nexthop and rmac when routes are re-imported
into vrf in VNI/VRF up event.

The fix is in vrf disable event to flush all l3vni's nexthop and rmac db.

Ticket:CM-30338
Reviewed By:CCR-10489
Testing Done:

Performed multiple networking restart and checked neigh and
bridge fdb tables for respective nexthop and router mac entry
programmed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: evpn l3vni map to vrf nb changes
Chirag Shah [Tue, 14 Jul 2020 21:23:48 +0000 (14:23 -0700)]
zebra: evpn l3vni map to vrf nb changes

The set of northbound changes for l3vni configuration
command under vrf.

vrf x
 vni 1000 prefix-routes-only

{
  "frr-vrf:lib": {
    "vrf": [
      {
        "name": "vrf1",
        "frr-zebra:zebra": {
          "l3vni-id": 4001
        }
      },
      {
        "name": "vrf2",
        "frr-zebra:zebra": {
          "l3vni-id": 4002,
          "prefix-only": true
        }
      }
    ]
  }
}

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agozebra: include backup nexthops for pseudowires
Mark Stapp [Fri, 17 Jul 2020 17:55:23 +0000 (13:55 -0400)]
zebra: include backup nexthops for pseudowires

Include any installed backup nexthops when installing
pseudowires; include installed backups in vty and json
pw show output.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agozebra: improve vty, simplify some primary/backup code
Mark Stapp [Fri, 17 Jul 2020 17:10:29 +0000 (13:10 -0400)]
zebra: improve vty, simplify some primary/backup code

Improve vty output for routes and lsps with backups, including
json. Simplify or correct some code that uses both primary and
backup nexthops in dplane, nht.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoyang: move evpn l3vni config under vrf
Chirag Shah [Tue, 14 Jul 2020 17:55:37 +0000 (10:55 -0700)]
yang: move evpn l3vni config under vrf

Move EVPN L3VNI configuration under vrf tree.

augment /frr-vrf:lib/frr-vrf:vrf:
  +--rw zebra
     |
     +--rw vni-id?        vni-id-type
     +--rw prefix-only?   boolean

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoMerge pull request #6729 from volta-networks/fix_stale_pw_status
Renato Westphal [Mon, 20 Jul 2020 15:28:58 +0000 (12:28 -0300)]
Merge pull request #6729 from volta-networks/fix_stale_pw_status

ldpd: Update LDP to process received pw-status in received order.

4 years agovtysh: rework DEFPY processing in extract.pl
Igor Ryzhov [Mon, 20 Jul 2020 15:15:49 +0000 (18:15 +0300)]
vtysh: rework DEFPY processing in extract.pl

Currently, all DEFPY commands are translated into one-liners in
vtysh_cmd.c. After the patch, DEFPY commands are correctly indented just
like DEFUN/ALIAS commands.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoospfd: remove redundant line continuations
Igor Ryzhov [Mon, 20 Jul 2020 15:09:34 +0000 (18:09 +0300)]
ospfd: remove redundant line continuations

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agovtysh: suppress linemarkers in vtysh_cmd.c
Igor Ryzhov [Mon, 20 Jul 2020 15:08:00 +0000 (18:08 +0300)]
vtysh: suppress linemarkers in vtysh_cmd.c

Remove lines like this from the vtysh_cmd.c:
```
# 10764 "bgpd/bgp_route.c"
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoldpd: process pw-status in received order
Karen Schoener [Mon, 13 Jul 2020 16:22:15 +0000 (12:22 -0400)]
ldpd: process pw-status in received order

Update LDP to process received pw-status in received order.
Update LDP to save pw-status regardless of whether the PW is configured.
When the PW is configured, LDP checks for any saved PW pw-status.

Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agozebra,fpm: fix dead lock on close during startup
Rafael Zalamena [Fri, 17 Jul 2020 12:19:29 +0000 (09:19 -0300)]
zebra,fpm: fix dead lock on close during startup

Serialize the `fpm_reconnect` function by only allowing one part of our
code to call it, then make sure all zebra threads executions are done
before attempting to close and reset the output stream.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agolib: add a backtrace when stream bounds check fails
Mark Stapp [Thu, 16 Jul 2020 15:05:01 +0000 (11:05 -0400)]
lib: add a backtrace when stream bounds check fails

Add a backtrace call when the stream code detects a bounds error,
to help with debugging.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agolib: fix TLS log buffer on NetBSD
David Lamparter [Sun, 19 Jul 2020 09:14:48 +0000 (11:14 +0200)]
lib: fix TLS log buffer on NetBSD

... this didn't work on NetBSD.  Like, at all.  It returns a positive
error code from posix_fallocate() and then we bang our head against a
brick wall trying to write to the mmap'd buffer.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib,yang: merge cisco/zebra access list styles
Rafael Zalamena [Sun, 19 Jul 2020 18:27:56 +0000 (15:27 -0300)]
lib,yang: merge cisco/zebra access list styles

Merge the cisco style access list with zebra's logic so we can mix both
types of rules while keeping the commands.

With this the cisco style limitation of having 'destination-*' only for
specific number ranges no longer exist for users of YANG/northbound (the
CLI still has this limitation).

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agoMerge pull request #6767 from donaldsharp/compile_issues
David Lamparter [Sun, 19 Jul 2020 09:36:38 +0000 (11:36 +0200)]
Merge pull request #6767 from donaldsharp/compile_issues