]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agodoc: add frr_{each,with} to coding style
David Lamparter [Tue, 13 Aug 2019 14:02:51 +0000 (16:02 +0200)]
doc: add frr_{each,with} to coding style

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years ago*: frr_elevate_privs -> frr_with_privs
David Lamparter [Tue, 13 Aug 2019 13:47:23 +0000 (15:47 +0200)]
*: frr_elevate_privs -> frr_with_privs

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agotools: extend checkpatch.pl for frr_{with,each}
David Lamparter [Tue, 13 Aug 2019 13:42:35 +0000 (15:42 +0200)]
tools: extend checkpatch.pl for frr_{with,each}

For frr_each, just fix some existing warnings;  for frr_with_* add a
warning indicating that braces should always be used.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agodoc: add developer docs for frr_with_mutex
David Lamparter [Tue, 6 Aug 2019 10:05:09 +0000 (12:05 +0200)]
doc: add developer docs for frr_with_mutex

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agolib: add frr_with_mutex() block-wrapper
David Lamparter [Fri, 21 Jun 2019 08:58:02 +0000 (10:58 +0200)]
lib: add frr_with_mutex() block-wrapper

frr_with_mutex(...) { ... } locks and automatically unlocks the listed
mutex(es) when the block is exited.  This adds a bit of safety against
forgetting the unlock in error paths & co. and makes the code a slight
bit more readable.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agolib: add some macro helpers
David Lamparter [Fri, 21 Jun 2019 08:58:02 +0000 (10:58 +0200)]
lib: add some macro helpers

Macro soup, now with 50% more macros.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agoMerge pull request #4888 from donaldsharp/rmap_cleanup
Donatas Abraitis [Tue, 3 Sep 2019 14:42:51 +0000 (17:42 +0300)]
Merge pull request #4888 from donaldsharp/rmap_cleanup

Rmap cleanup

4 years agoMerge pull request #4797 from opensourcerouting/eigrpd-vrf
Russ White [Tue, 3 Sep 2019 13:17:35 +0000 (09:17 -0400)]
Merge pull request #4797 from opensourcerouting/eigrpd-vrf

eigrpd: vrf support

4 years agoMerge pull request #4710 from ashish12pant/ecmp_tests
Martin Winter [Tue, 3 Sep 2019 12:39:14 +0000 (14:39 +0200)]
Merge pull request #4710 from ashish12pant/ecmp_tests

tests: Add ecmp test cases

4 years ago*: Convert some route map functions to return the enum
Donald Sharp [Tue, 27 Aug 2019 12:04:43 +0000 (08:04 -0400)]
*: Convert some route map functions to return the enum

Conver these functions:
route_map_add_match
route_map_delete_match
route_map_add_set
route_map_delete_set

To return the `enum rmap_compile_rets` and ensure all functions
that use this code handle all the enumerated possible returns.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agolib: Cleanup return codes to use enum values
Donald Sharp [Tue, 27 Aug 2019 11:45:02 +0000 (07:45 -0400)]
lib: Cleanup return codes to use enum values

A couple functions in routemap.c were returning
0/1 that were being mapped into the appropriate
enum values on the calling functions to check return
values.  This matches the return values to the actual
enum for future readability.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4917 from manuhalo/fix_isis_circuit_del
Donald Sharp [Tue, 3 Sep 2019 12:09:00 +0000 (08:09 -0400)]
Merge pull request #4917 from manuhalo/fix_isis_circuit_del

isisd: fix northbound circuit deletion

4 years agoMerge pull request #4920 from ddutt/bgp-summary-upd8
Donald Sharp [Tue, 3 Sep 2019 12:06:22 +0000 (08:06 -0400)]
Merge pull request #4920 from ddutt/bgp-summary-upd8

Add Estd & Dropped counters to JSON output of "show bgp summary" command

4 years agoMerge pull request #4913 from ddutt/master
Donald Sharp [Tue, 3 Sep 2019 12:05:33 +0000 (08:05 -0400)]
Merge pull request #4913 from ddutt/master

bgpd: Add a new command to only show failed peerings

4 years agoMerge pull request #4709 from opensourcerouting/frr-bmp
Russ White [Tue, 3 Sep 2019 11:58:11 +0000 (07:58 -0400)]
Merge pull request #4709 from opensourcerouting/frr-bmp

BMP support

4 years agotests: Fix topojson address-family configuration
Ashish Pant [Tue, 3 Sep 2019 01:47:10 +0000 (07:17 +0530)]
tests: Fix topojson address-family configuration

Signed-off-by: Ashish Pant <ashish12pant@gmail.com>
address-family configuration was commented out in earlier commit
by mistake. Re-enabling it now.

4 years agotests: Fix topojson static route tests
Ashish Pant [Mon, 29 Jul 2019 04:39:19 +0000 (10:09 +0530)]
tests: Fix topojson static route tests

Signed-off-by: Ashish Pant <ashish12pant@gmail.com>
Fix static route test in bgp-basic-functionality-topo1 and
example-topojson-test after lib changes

Add example-topojson-test to ignore from pytest.ini

4 years agotests: Add ecmp test cases
Ashish Pant [Mon, 29 Jul 2019 04:38:35 +0000 (10:08 +0530)]
tests: Add ecmp test cases

Signed-off-by: Ashish Pant <ashish12pant@gmail.com>
Adds ecmp test case for ibgp and ebgp topology.

4 years agobgpd: Add Established and Dropped counts to JSON output of bgp summary
Dinesh G Dutt [Mon, 2 Sep 2019 19:37:37 +0000 (19:37 +0000)]
bgpd: Add Established and Dropped counts to JSON output of bgp summary

Based on a suggestion by Donald Sharp, this patch adds the counts of the
number of times a BGP peering session has transitioned from Estd->NotEstd
and from NotEstd->Estd to the JSON output only of the
"show [ip] bgp [vrf <vrf>] summary" command. The idea is that even if the
current session is well and up, but a sessions has trasnitionined in and
out of Estd state multiple times, its worth noting that. We cannot change
the non-JSON output as easily, and so this command only addresses the JSON
part for now. The fields added are the ones that were provided only as part
of the "show bgp neighbor" command.

Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
4 years agoisisd: fix northbound circuit deletion
Emanuele Di Pascale [Mon, 2 Sep 2019 15:06:57 +0000 (17:06 +0200)]
isisd: fix northbound circuit deletion

circuit deletion was being enforced by sending a fake IF_DOWN_FROM_Z
event for the circuit interface. This created a problem when the
circuit was enabled again, since isisd internal state machine was
expecting to see an IF_UP_FROM_Z that never came, as the interface
had not actually gone down.

As a consequence, disabling + re-enabling isis on an interface or
area would leave interfaces in a CONFIG state, and adjacencies were
not restored. Fix this by following the state machine and simply
disabling circuits rather than attempting to delete them forcefully.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agobgpd: Add a new command to only show failed peerings
Dinesh G Dutt [Sat, 31 Aug 2019 16:24:49 +0000 (16:24 +0000)]
bgpd: Add a new command to only show failed peerings

In a data center, having 32-128 peers is not uncommon. In such a situation, to find a
peer that has failed and why is several commands. This hinders both the automatability of
failure detection and the ease/speed with which the reason can be found. To simplify this
process of catching a failure and its cause quicker, this patch does the following:

1. Created a new function, bgp_show_failed_summary to display the
   failed summary output for JSON and vty
2. Created a new function to display the reset code/subcode. This is now used in the
   failed summary code and in the show neighbors code
3. Added a new variable failedPeers in all the JSON outputs, including the vanilla
   "show bgp summary" family. This lists the failed session count.
4. Display peer, dropped count, estd count, uptime and the reason for failure as the
   output of "show bgp summary failed" family of commands
5. Added three resset codes for the case where we're waiting for NHT, waiting for peer
   IPv6 addr, waiting for VRF to init.

This also counts the case where only one peer has advertised an AFI/SAFI.

The new command has the optional keyword "failed" added to the classical summary command.

The changes affect only one existing output, that of "show [ip] bgp neighbors <nbr>". As
we track the lack of NHT resolution for a peer or the lack of knowing a peer IPv6 addr,
the output of that command will show a "waiting for NHT" etc. as the last reset reason.

This patch includes update to the documentation too.

Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
4 years agoMerge pull request #4910 from sworleys/Docker-Update-Libyang
Donatas Abraitis [Mon, 2 Sep 2019 14:19:30 +0000 (17:19 +0300)]
Merge pull request #4910 from sworleys/Docker-Update-Libyang

tests: Update Dockerfile to a valid libyang version

4 years agotests: Update Dockerfile to a valid libyang version
Stephen Worley [Sat, 31 Aug 2019 14:51:34 +0000 (10:51 -0400)]
tests: Update Dockerfile to a valid libyang version

The built docker container was installing an old version of libyang.
Updated it to point to the most recent build for Debian.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agobuild: Fix checks for c_ares
Martin Winter [Thu, 29 Aug 2019 01:49:14 +0000 (03:49 +0200)]
build: Fix checks for c_ares

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agobuild: make BMP optional
David Lamparter [Tue, 13 Aug 2019 14:22:22 +0000 (16:22 +0200)]
build: make BMP optional

Sigh.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agobgpd/bmp: BMP implementation
David Lamparter [Wed, 24 Apr 2019 17:33:41 +0000 (19:33 +0200)]
bgpd/bmp: BMP implementation

This implements BMP.  There's no fine-grained history here, the non-BMP
preparations are already split out from here so all that remains is BMP
proper.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd/bmp: convert BMP code into module
David Lamparter [Wed, 24 Apr 2019 15:23:09 +0000 (17:23 +0200)]
bgpd/bmp: convert BMP code into module

This is mostly here for documentation purposes to show how some code is
converted into a module.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd/bmp: use bgp packet dump hook
David Lamparter [Wed, 24 Apr 2019 15:19:09 +0000 (17:19 +0200)]
bgpd/bmp: use bgp packet dump hook

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd/bmp: Initial BMP implementation.
Yasuhiro Ohara [Fri, 15 Feb 2019 09:12:10 +0000 (18:12 +0900)]
bgpd/bmp: Initial BMP implementation.

This is the initial BMP skeleton from Yasuhiro Ohara.

(License/Signoff note: code published on github as GPLv2+.)

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agobgpd: add timestamp to bgp_adj_in
David Lamparter [Wed, 17 Jul 2019 13:24:28 +0000 (15:24 +0200)]
bgpd: add timestamp to bgp_adj_in

If we reject a received update in a filter, it never turns into a
bgp_path_info but stays in adj_in.  For that case, we don't have any
timestamp for the update.

Currently, this isn't visible anywhere; BMP will make use of this
timestamp (and we can add a CLI option if we want.)

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: add monotime_to_realtime()
David Lamparter [Wed, 17 Jul 2019 13:26:00 +0000 (15:26 +0200)]
lib: add monotime_to_realtime()

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agolib: add pull-driven data write handler
David Lamparter [Thu, 9 May 2019 08:43:09 +0000 (10:43 +0200)]
lib: add pull-driven data write handler

This - mostly intended for BMP - implements a pull-driven write buffer
filled on demand by a callback with some reasonable buffering logic.

I don't expect it to be that useful in other places, but it's not BMP
specific so it's properly split off in its own place.

Signed-off-by: David Lamparter <equinox@diac24.net>
4 years agoMerge pull request #4794 from opensourcerouting/isis_nexthop_v4v6
Donald Sharp [Fri, 30 Aug 2019 15:26:27 +0000 (11:26 -0400)]
Merge pull request #4794 from opensourcerouting/isis_nexthop_v4v6

isisd: reduce IPv4/IPv6 code duplication

4 years agoMerge pull request #4902 from donaldsharp/more_bgp_test_cleanup
Mark Stapp [Thu, 29 Aug 2019 15:25:52 +0000 (11:25 -0400)]
Merge pull request #4902 from donaldsharp/more_bgp_test_cleanup

tests: Ensure topotests are actually waiting appropriately for peers …

4 years agotests: Ensure topotests are actually waiting appropriately for peers to come up
Donald Sharp [Thu, 29 Aug 2019 13:33:47 +0000 (09:33 -0400)]
tests: Ensure topotests are actually waiting appropriately for peers to come up

The FRR bgp topotests are employing a luCommand that looks for bgp peering
to be up on the first router with a `wait` sub-command.  Please note that
a variety of tests are using this.  This wait command has a variety of time
outs being used `30`, `90`, and `300`.  BGP peering with how we compile
it have very long timers and 30( and possibly 90) seconds is clearly not enough when
we are waiting, given the nature of our test beds.  Additionally we were employing a model
where once the first summary command succeeded we automatically assumed that all
subsuquent summary commands( to look at other routers ) would not need to
possibly wait.  This is insufficient in that if I have multiple peerings in
multiple vrf's there is no guarantee that one router peers being up will
be sufficient information to know that all the other routers peers are up.

Modify the test cases to be a bit more conformant about this and to
allow peer checks to actually wait a reasonable amount of time for
all peers to have a chance to come up.

Signed-off-by: Donald Sharp <sharpdc@cumulusnetworks.com>
4 years agoMerge pull request #4891 from donaldsharp/bgp_keepalives
Donatas Abraitis [Thu, 29 Aug 2019 13:22:04 +0000 (16:22 +0300)]
Merge pull request #4891 from donaldsharp/bgp_keepalives

bgpd: Shut off keepalives as soon as we shutdown a peer

4 years agoMerge pull request #4847 from vivek-cumulus/evpn-route-import-fix
Sri Mohana Singamsetty [Thu, 29 Aug 2019 12:50:23 +0000 (05:50 -0700)]
Merge pull request #4847 from vivek-cumulus/evpn-route-import-fix

bgpd: Ensure correct checks for EVPN route import

4 years agoMerge pull request #4896 from donaldsharp/docker_dev_build
Donatas Abraitis [Thu, 29 Aug 2019 07:15:52 +0000 (10:15 +0300)]
Merge pull request #4896 from donaldsharp/docker_dev_build

tests: Modify docker build for local to have dev build

4 years agoMerge pull request #4871 from vishaldhingra/ipv4_linklocal
Donatas Abraitis [Thu, 29 Aug 2019 05:39:52 +0000 (08:39 +0300)]
Merge pull request #4871 from vishaldhingra/ipv4_linklocal

zebra: Added a few more information in route_entry while dumping

4 years agoMerge pull request #4852 from ashish12pant/fix_log
Martin Winter [Thu, 29 Aug 2019 02:35:37 +0000 (04:35 +0200)]
Merge pull request #4852 from ashish12pant/fix_log

tests: Enhance execution logs in topojson

4 years agoMerge pull request #4849 from sworleys/Label-Append-Resolve_2
Mark Stapp [Wed, 28 Aug 2019 19:52:27 +0000 (15:52 -0400)]
Merge pull request #4849 from sworleys/Label-Append-Resolve_2

zebra: Append rparent labels when resolving nexthop

4 years agotests: Modify docker build for local to have dev build
Donald Sharp [Wed, 28 Aug 2019 19:50:23 +0000 (15:50 -0400)]
tests: Modify docker build for local to have dev build

Allow a local build of a frr docker container to be built with
`--enable-dev-build`.  This allows better decodes of symbols
which could be useful when you are trying to fix something
that is broken inside the docker container.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4894 from donaldsharp/arm_wrestling
Mark Stapp [Wed, 28 Aug 2019 18:30:55 +0000 (14:30 -0400)]
Merge pull request #4894 from donaldsharp/arm_wrestling

lib: Stop arm crash on shutdown

4 years agolib: Stop arm crash on shutdown
Donald Sharp [Wed, 28 Aug 2019 16:09:41 +0000 (12:09 -0400)]
lib: Stop arm crash on shutdown

Arm platforms are crashing in our topotests with this callstack;

50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0xffffabb591d0 (LWP 18947))]
(gdb) bt
    file=file@entry=0xaaaadfed1e48 "lib/memory.c", line=line@entry=80,
    function=function@entry=0xaaaadfed1db8 <__func__.10514> "mt_count_free") at lib/log.c:837
(gdb)

So we are crashing because we are attempting to free a mtype that has no allocations
associated with it.

I added this debug code:
@@ -227,7 +230,9 @@ static void rcu_bump(void)
     struct rcu_next *rn;

     rn = XMALLOC(MTYPE_RCU_NEXT, sizeof(*rn));
-
+    zlog_debug("RCU_BUMP");
+    mtype_dump(MTYPE_RCU_THREAD);
+    mtype_dump(MTYPE_RCU_NEXT);
     /* note: each RCUA_NEXT item corresponds to exactly one seqno bump.
      * This means we don't need to communicate which seqno is which
      * RCUA_NEXT, since we really don't care.

and added a mtype_dump function:
+void mtype_dump(struct memtype *mt)
+{
+    zlog_debug("%s: %d", mt->name, (int)mt->n_alloc);
+}

Which resulted in this output:

2019/08/28 15:41:11 BGP: RCU_BUMP
2019/08/28 15:41:11 BGP: RCU thread: 3
2019/08/28 15:41:11 BGP: RCU thread: 3

If we look at the defintion of the two static memory types:

DEFINE_MTYPE_STATIC(LIB, RCU_THREAD,    "RCU thread")
DEFINE_MTYPE_STATIC(LIB, RCU_NEXT,      "RCU sequence barrier")

I would have expected the output to be:
RCU_BUMP
RCU thread: 3
RCU sequence barrier: X

instead.

As a thought experiment I reduced the number of static memory types
to 1 in the file and the crash stopped happening.

I suspect we have a systematic error on arm in lib/memory.h
due to the asm code.  I am going to leave that alone for the
moment ( and leave the crash issue open ), but see if we
can get this code change into the system so that our CI
system becomes happy again.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4890 from donaldsharp/solaris_warn
Mark Stapp [Wed, 28 Aug 2019 14:51:36 +0000 (10:51 -0400)]
Merge pull request #4890 from donaldsharp/solaris_warn

*: Start process of possibly deprecating Solaris

4 years agoMerge pull request #4884 from ddutt/master
Donald Sharp [Tue, 27 Aug 2019 22:43:45 +0000 (18:43 -0400)]
Merge pull request #4884 from ddutt/master

bgpd: Eliminate all incorrect formulations of afi/safi in JSON

4 years agobgpd: Shut off keepalives as soon as we shutdown a peer
Donald Sharp [Tue, 27 Aug 2019 20:03:54 +0000 (16:03 -0400)]
bgpd: Shut off keepalives as soon as we shutdown a peer

We have this crash:

2019-08-18T07:58:44.831656-04:00 rch2-140-fwK2b bgpd[1791]: %NOTIFICATION: sent to neighbor 10.73.248.8 4/0 (Hold Timer Expired) 0 bytes
2019-08-18T07:58:44.832164-04:00 rch2-140-fwK2b bgpd[1791]: Assertion `!((peer->thread_flags) & ((1 << 0)))' failed in file bgpd.c, line 2173, function peer_delete
2019-08-18T07:58:44.832548-04:00 rch2-140-fwK2b bgpd[1791]: Backtrace for 11 stack frames:
2019-08-18T07:58:44.832942-04:00 rch2-140-fwK2b bgpd[1791]: [bt 0] /usr/lib/libfrr.so.0(zlog_backtrace+0x3a) [0x7f5503c7c31a]
2019-08-18T07:58:44.833311-04:00 rch2-140-fwK2b bgpd[1791]: [bt 1] /usr/lib/libfrr.so.0(_zlog_assert_failed+0x61) [0x7f5503c7c891]
2019-08-18T07:58:44.833684-04:00 rch2-140-fwK2b bgpd[1791]: [bt 2] /usr/lib/frr/bgpd(peer_delete+0x4d5) [0x1432ceea15]
2019-08-18T07:58:44.834095-04:00 rch2-140-fwK2b bgpd[1791]: [bt 3] /usr/lib/frr/bgpd(+0x430e9) [0x1432cfc0e9]
2019-08-18T07:58:44.834479-04:00 rch2-140-fwK2b bgpd[1791]: [bt 4] /usr/lib/frr/bgpd(bgp_event_update+0x121) [0x1432cfe1c1]
2019-08-18T07:58:44.834852-04:00 rch2-140-fwK2b bgpd[1791]: [bt 5] /usr/lib/frr/bgpd(+0x453f1) [0x1432cfe3f1]
2019-08-18T07:58:44.835388-04:00 rch2-140-fwK2b bgpd[1791]: [bt 6] /usr/lib/libfrr.so.0(thread_call+0x60) [0x7f5503c9e3c0]
2019-08-18T07:58:44.835829-04:00 rch2-140-fwK2b bgpd[1791]: [bt 7] /usr/lib/libfrr.so.0(frr_run+0xb8) [0x7f5503c79de8]
2019-08-18T07:58:44.836292-04:00 rch2-140-fwK2b bgpd[1791]: [bt 8] /usr/lib/frr/bgpd(main+0x229) [0x1432ce4a69]
2019-08-18T07:58:44.836729-04:00 rch2-140-fwK2b bgpd[1791]: [bt 9] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f550271bb45]
2019-08-18T07:58:44.837198-04:00 rch2-140-fwK2b bgpd[1791]: [bt 10] /usr/lib/frr/bgpd(+0x2cefc) [0x1432ce5efc]
2019-08-18T07:58:44.837670-04:00 rch2-140-fwK2b bgpd[1791]: Current thread function (bgp_holdtime_timer), scheduled from file bgp_fsm.c, line 380

This is the code:
bgp_reads_off(peer);
bgp_writes_off(peer);
assert(!CHECK_FLAG(peer->thread_flags, PEER_THREAD_WRITES_ON));
assert(!CHECK_FLAG(peer->thread_flags, PEER_THREAD_READS_ON));

The line crashing is the first assert.  We know in bgp_writes_off we unset this flag:

void bgp_writes_off(struct peer *peer)
{
        struct frr_pthread *fpt = bgp_pth_io;
        assert(fpt->running);

        thread_cancel_async(fpt->master, &peer->t_write, NULL);
        THREAD_OFF(peer->t_generate_updgrp_packets);

        UNSET_FLAG(peer->thread_flags, PEER_THREAD_WRITES_ON);
}

We also know that the keepalives are not being turned off until we call
bgp_fsm_change_status(peer, Deleted);

later in the function.  We know that the keepalive pthread will
write to individual peers and issue a bgp_write_on(), which sets
this flag.

Modify the code base so that we explicitly turn off the keepalives
immediately before the turning of writes off.

Ticket: CM-26119
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years ago*: Start process of possibly deprecating Solaris
Donald Sharp [Tue, 27 Aug 2019 18:55:48 +0000 (14:55 -0400)]
*: Start process of possibly deprecating Solaris

The FRR community has run into an issue where keeping up our
CI system to work with solaris has become a fairly large burden.
We have also sent emails and asked around and have not found
anyone standing up saying that they are using Solaris.

Given the fact that we do not have any comprehensive testing
being done w/ solaris and the fact that we are getting a steady
stream of new features that will never work on solaris and
we cannot find anyone to say that they are using it.  Let's
start the drawn out process of deprecating the code.

If in the mean-time someone comes forward with the fact that
they are using it we can then not deprecate it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Eliminate all incorrect formulations of afi/safi in JSON
Dinesh G Dutt [Tue, 27 Aug 2019 01:48:53 +0000 (01:48 +0000)]
bgpd: Eliminate all incorrect formulations of afi/safi in JSON

In a number of places, the JSON output had invalid key names for
AFI/SAFI. For example, the key name in JSON was "IPv4 Unicast" which
is invalid as a JSON Key name. Many JSON tools such as those used in
Ansible, jq etc. all fail to parse the output in these scenarios. The
valid name is ipv4Unicast. There's already a routine afi_safi_json()
defined to handle this change, but it was not consistently called.
The non-JSON version was called afi_safi_print() and it merely returned
the CLI version of the string, didn't print anything.

This patch deals with this issue by:
   - Renaming afi_safi_print to get_afi_safi_str()
   - get_afi_safi_str takes an additional param, for_json which if true
     will return the JSON-valid string
   - Renaming afi_safi_json to get_afi_safi_json_str()
   - Creating a new routine get_afi_safi_vty_str() for printing to vty
   - Consistently using get_afi_safi_str() with the appropriate for_json
     value

Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
4 years agoMerge pull request #4880 from ddutt/master
Donald Sharp [Mon, 26 Aug 2019 18:08:08 +0000 (14:08 -0400)]
Merge pull request #4880 from ddutt/master

lib: Make if_lookup_by_index understand if VRF is backed by netns or not

4 years agoMerge pull request #4881 from donaldsharp/aspath_prepend
Donatas Abraitis [Mon, 26 Aug 2019 16:19:38 +0000 (19:19 +0300)]
Merge pull request #4881 from donaldsharp/aspath_prepend

bgpd: Add 'no set as-path prepend last-as X' command

4 years agobgpd: Update doc for some as-path route-map commands
Donald Sharp [Mon, 26 Aug 2019 13:56:53 +0000 (09:56 -0400)]
bgpd: Update doc for some as-path route-map commands

Update the documentation for some as-path route-map commands.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Add 'no set as-path prepend last-as X' command
Donald Sharp [Mon, 26 Aug 2019 13:49:18 +0000 (09:49 -0400)]
bgpd: Add 'no set as-path prepend last-as X' command

The `set as-path prepend last-as X` command had no, 'no' form
of the command.  Add this into the cli.

Testing:
!
route-map BLARBLE permit 10
 set as-path prepend last-as 3
!
!
router bgp 9999
 neighbor 10.50.12.118 remote-as external
 neighbor 10.50.12.118 ebgp-multihop 30
 !
 address-family ipv4 unicast
  neighbor 10.50.12.118 route-map BLARBLE in
 !
!

eva# show bgp ipv4 uni 4.4.4.4
BGP routing table entry for 4.4.4.4/32
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.50.12.118
  999 999 999 999
    10.50.12.118 from 10.50.12.118 (10.50.12.118)
      Origin incomplete, metric 0, valid, external, best (First path received)
      Last update: Mon Aug 26 09:47:17 2019

eva# conf
eva(config)# route-map BLARBLE permit 10
eva(config-route-map)# no set as-path prepend last-as 3
eva(config-route-map)# end
eva# clear bgp ipv4 uni *
eva# show bgp ipv4 uni 4.4.4.4
BGP routing table entry for 4.4.4.4/32
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.50.12.118
  999
    10.50.12.118 from 10.50.12.118 (10.50.12.118)
      Origin incomplete, metric 0, valid, external, best (First path received)
      Last update: Mon Aug 26 09:48:31 2019

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4812 from pogojotz/fix-destination-multi-use
Donald Sharp [Mon, 26 Aug 2019 13:25:17 +0000 (09:25 -0400)]
Merge pull request #4812 from pogojotz/fix-destination-multi-use

zebra: Do not use connection dest for bcast

4 years agolib: Make if_lookup_by_index understand if VRF is backed by netns or not
Dinesh G Dutt [Mon, 26 Aug 2019 12:38:28 +0000 (12:38 +0000)]
lib: Make if_lookup_by_index understand if VRF is backed by netns or not

FRR has two implementations of VRF, one backed by netns and the other by
the proper VRF implementation in the Linux kernel. In certain places, the
code assumes that a VRF is netns and so lookups fail. One example of this
is in IPv6 RA code. This causes functionality such as Unnumbered BGP to
fail. To fix this, this patch makes if_lookup_by_index handle the
behavior based on the backend, similar to if_get_by_index. For the two
places in if.c that were calling if_lookup_by_index to be specific to
the VRF, I renamed the existing code, if_lookup_by_ifindex and made it a
static function that is never exposed or called by any routine outside of
if.c.

Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
4 years agoMerge pull request #4795 from opensourcerouting/assorted-fixes
Donald Sharp [Mon, 26 Aug 2019 12:32:31 +0000 (08:32 -0400)]
Merge pull request #4795 from opensourcerouting/assorted-fixes

Minor assorted fixes

4 years agoMerge pull request #4879 from qlyoung/fix-vtysh-of-crashy
Mark Stapp [Mon, 26 Aug 2019 12:30:10 +0000 (08:30 -0400)]
Merge pull request #4879 from qlyoung/fix-vtysh-of-crashy

vtysh: fix rare crash(es)

4 years agoMerge pull request #4870 from opensourcerouting/isis-bfd-v6
Donald Sharp [Mon, 26 Aug 2019 12:26:53 +0000 (08:26 -0400)]
Merge pull request #4870 from opensourcerouting/isis-bfd-v6

isisd: add support for IPv6 BFD peers

4 years agoMerge pull request #4821 from vishaldhingra/lcomm_json
Donatas Abraitis [Mon, 26 Aug 2019 08:23:30 +0000 (11:23 +0300)]
Merge pull request #4821 from vishaldhingra/lcomm_json

bgpd : Ambiguous command: show bgp large-community-list 1

4 years agobgpd : Ambiguous command: show bgp large-community-list 1
vdhingra [Mon, 12 Aug 2019 11:15:29 +0000 (04:15 -0700)]
bgpd : Ambiguous command: show bgp large-community-list 1

When user wants to dump individual large-community-list with the name
then bgp throws an error. It is due to command to dump the bgp RIB routes
having a particular large-community-list values. To segregate both the
commands this fix has added the detail keyword in the below command.
show bgp large-community-list <(1-500)|WORD> detail
The same code change is applicable for community-list also.

Signed-off-by: vishaldhingra<vdhingra@vmware.com>
4 years agoMerge pull request #4815 from NaveenThanikachalam/603_bgp_vty
Donatas Abraitis [Sat, 24 Aug 2019 19:52:08 +0000 (22:52 +0300)]
Merge pull request #4815 from NaveenThanikachalam/603_bgp_vty

bgpd: Large-communities CLI accepts configurations sans attributes.

4 years agoMerge pull request #4878 from donaldsharp/2_chars_1_strncmp
Sri Mohana Singamsetty [Sat, 24 Aug 2019 05:32:52 +0000 (22:32 -0700)]
Merge pull request #4878 from donaldsharp/2_chars_1_strncmp

bgpd: Allow shortened input for `show bgp l2vpn evpn route type e|p`

4 years agovtysh: fix rare crash(es)
Quentin Young [Fri, 23 Aug 2019 20:05:10 +0000 (20:05 +0000)]
vtysh: fix rare crash(es)

Couple code paths end up trying to dereference vty->of which can be null
in one special case.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agobgpd: Allow shortened input for `show bgp l2vpn evpn route type e|p`
Donald Sharp [Fri, 23 Aug 2019 19:44:32 +0000 (15:44 -0400)]
bgpd: Allow shortened input for `show bgp l2vpn evpn route type e|p`

The `show bgp l2vpn evpn route type <es|prefix>` commands
only accepted 2 letters.  You could not type `show bgp l2vpn evpn route type e`
or `show bgp l2vpn evpn route type p` although both are technically legal
since nothing overlaps with them.

Ticket: CM-25988
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Added a few more information in route_entry while dumping
vdhingra [Fri, 23 Aug 2019 05:36:36 +0000 (22:36 -0700)]
zebra: Added a few more information in route_entry while dumping

re->nexthop_num and re->nexthop_active_num are calculated while rib
processing. Also It helps in encoding the ZAPI message.
It's good to dump these parameters also, when the system is in
abnormal state.

Signed-off-by: vishaldhingra<vdhingra@vmware.com>
4 years agoMerge pull request #4864 from donaldsharp/nullzero
Sri Mohana Singamsetty [Thu, 22 Aug 2019 23:53:41 +0000 (16:53 -0700)]
Merge pull request #4864 from donaldsharp/nullzero

tests: Add a couple simple Null0 spelling tests

4 years agoMerge pull request #4868 from mjstapp/fix_stream_resize_api
Renato Westphal [Thu, 22 Aug 2019 22:39:59 +0000 (19:39 -0300)]
Merge pull request #4868 from mjstapp/fix_stream_resize_api

lib: remove deprecated stream_resize api

4 years agoisisd: add support for IPv6 BFD peers
Renato Westphal [Thu, 22 Aug 2019 14:29:37 +0000 (11:29 -0300)]
isisd: add support for IPv6 BFD peers

Make isisd create BFD sessions over IPv6 when IS-IS is configured
for IPv6 operation only.

When IS-IS is enabled for both IPv4 and IPv6 on a given interface,
prefer creating a BFD session over IPv6 to avoid having two BFD
sessions protecting the same IS-IS adjacency.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: remove deprecated stream_resize api
Mark Stapp [Thu, 22 Aug 2019 12:52:25 +0000 (08:52 -0400)]
lib: remove deprecated stream_resize api

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agotests: Enhance execution logs in topojson
Ashish Pant [Tue, 20 Aug 2019 04:21:59 +0000 (09:51 +0530)]
tests: Enhance execution logs in topojson

Signed-off-by: Ashish Pant <ashish12pant@gmail.com>
1. Add check if show running output is corrupted as frr-reload does
   not return cause of failure, just the error codes.
2. Change logger level to debug for some extra information.
3. Modify logger messages for more clear information.
4. Print configuration commands to console instead of show running
5. Print show command output to console.
6. Move show running output within flag show_router_config.
7. Add retry decorator for retyring show commands.

4 years agoMerge pull request #4778 from mjstapp/dplane_macs
Donald Sharp [Thu, 22 Aug 2019 00:26:29 +0000 (20:26 -0400)]
Merge pull request #4778 from mjstapp/dplane_macs

zebra: use dataplane for evpn macs

4 years agoMerge pull request #4857 from dslicenc/bgpd-clear-afi-safi
Russ White [Wed, 21 Aug 2019 18:53:32 +0000 (14:53 -0400)]
Merge pull request #4857 from dslicenc/bgpd-clear-afi-safi

bgpd: make clear bgp * clear all peers in all afi/safis

4 years agotests: Add a couple simple Null0 spelling tests
Donald Sharp [Wed, 21 Aug 2019 15:44:48 +0000 (11:44 -0400)]
tests: Add a couple simple Null0 spelling tests

Add a bit of code to test different spelling of Null0 routes.
This was broken at some point in the past and with recent
changes is working again, but it would be nice to
know when this breaks again.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agolib: fix a couple more doc comments
Renato Westphal [Wed, 7 Aug 2019 01:16:21 +0000 (22:16 -0300)]
lib: fix a couple more doc comments

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: switch str2prefix_ipv4() to use inet_pton()
Renato Westphal [Wed, 7 Aug 2019 01:13:20 +0000 (22:13 -0300)]
lib: switch str2prefix_ipv4() to use inet_pton()

This is the second part of commit 8d92004979dc68, which converted
only one of the two calls to inet_aton().

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: unify isis_nexthop and isis_nexthop6 into a single struct
Renato Westphal [Tue, 6 Aug 2019 20:43:46 +0000 (17:43 -0300)]
isisd: unify isis_nexthop and isis_nexthop6 into a single struct

This unification allows us to write code that works for both IPv4 and
IPv6, reducing duplication.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: reuse the nexthop lookup functions to avoid code duplication
Renato Westphal [Tue, 6 Aug 2019 20:24:54 +0000 (17:24 -0300)]
isisd: reuse the nexthop lookup functions to avoid code duplication

Nothing special here.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: remove unnecessary null checks
Renato Westphal [Tue, 6 Aug 2019 20:18:41 +0000 (17:18 -0300)]
isisd: remove unnecessary null checks

These null checks don't make sense because a) these two functions
are never called with a NULL IP address and b) the same pointers are
dereferenced later without any protection. Remove these NULL checks
to make the code less confusing.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: remove unused struct fields
Renato Westphal [Tue, 6 Aug 2019 20:13:38 +0000 (17:13 -0300)]
isisd: remove unused struct fields

These fields were introduced by commit e38e0df01ad, but they were
never put to any use. Remove them.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: fix doc comment of the "cli_show_end" northbound callback
Renato Westphal [Wed, 7 Aug 2019 00:46:55 +0000 (21:46 -0300)]
lib: fix doc comment of the "cli_show_end" northbound callback

The 'show_defaults' parameter is present on the "cli_show" callback
only.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: fix uint32_t overflow in a couple of CLI commands
Renato Westphal [Wed, 7 Aug 2019 00:44:58 +0000 (21:44 -0300)]
lib: fix uint32_t overflow in a couple of CLI commands

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: don't ignore stream errors in some zapi decode functions
Renato Westphal [Wed, 7 Aug 2019 00:30:08 +0000 (21:30 -0300)]
lib: don't ignore stream errors in some zapi decode functions

Some other ZAPI decode functions still use void return values and
can't propagate stream errors to their callers. They need to be fixed
as well in the future.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #4835 from vishaldhingra/ipv4_linklocal
Mark Stapp [Tue, 20 Aug 2019 19:30:19 +0000 (15:30 -0400)]
Merge pull request #4835 from vishaldhingra/ipv4_linklocal

zebra : redistribute IPV4 link local connected routes consistently.

4 years agoMerge pull request #4858 from donaldsharp/bgp_default
Sri Mohana Singamsetty [Tue, 20 Aug 2019 17:29:53 +0000 (10:29 -0700)]
Merge pull request #4858 from donaldsharp/bgp_default

bgpd: Remove declarations of unused functions

4 years agoMerge pull request #4846 from vivek-cumulus/rfc-5549-gua-fix-ra
Sri Mohana Singamsetty [Tue, 20 Aug 2019 16:07:54 +0000 (09:07 -0700)]
Merge pull request #4846 from vivek-cumulus/rfc-5549-gua-fix-ra

Fix nexthop reg and RA enable for IPv4 route exchange using GUA IPv6 peering

4 years agobgpd: Remove declarations of unused functions
Donald Sharp [Tue, 20 Aug 2019 13:59:39 +0000 (09:59 -0400)]
bgpd: Remove declarations of unused functions

Code inspection found some functions being declared
in a .h file but FRR does not have the functions
implemented.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: make clear bgp * clear all peers in all afi/safis
Don Slice [Mon, 12 Aug 2019 19:02:39 +0000 (19:02 +0000)]
bgpd: make clear bgp * clear all peers in all afi/safis

Problem reported that "clear bgp *" only cleared ipv6 peers.
Changed the logic to clear all afi/safis of all peers in
that case.  Also improved the operation of clearing
individual afi/safi using soft/in/out to do the right thing.

Ticket: CM-25887
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
4 years agoMerge pull request #4848 from donaldsharp/spelling_errors
Donatas Abraitis [Mon, 19 Aug 2019 16:30:23 +0000 (19:30 +0300)]
Merge pull request #4848 from donaldsharp/spelling_errors

debian packaging issues found

4 years agozebra: Append rparent labels when resolving nexthop
Stephen Worley [Wed, 7 Aug 2019 22:40:36 +0000 (18:40 -0400)]
zebra: Append rparent labels when resolving nexthop

When resolving a nexthop, append its labels to the one its
resolving to along with the labels that may already be present there.

Before we were ignoring labels if the resolving level was greater than
two.

Before:
```
S>  2.2.2.2/32 [1/0] via 7.7.7.7 (recursive), label 2222, 00:00:07
  *                    via 7.7.7.7, dummy1 onlink, label 1111, 00:00:07
S>  3.3.3.3/32 [1/0] via 2.2.2.2 (recursive), label 3333, 00:00:04
  *                    via 7.7.7.7, dummy1 onlink, label 1111, 00:00:04
K>* 7.7.7.7/32 [0/0] is directly connected, dummy1, label 1111, 00:00:17
C>* 192.168.122.0/24 is directly connected, ens3, 00:00:17
K>* 192.168.122.1/32 [0/100] is directly connected, ens3, 00:00:17
ubuntu_nh#
```

This patch:
```
S>  2.2.2.2/32 [1/0] via 7.7.7.7 (recursive), label 2222, 00:00:04
  *                    via 7.7.7.7, dummy1 onlink, label 1111/2222, 00:00:04
S>  3.3.3.3/32 [1/0] via 2.2.2.2 (recursive), label 3333, 00:00:02
  *                    via 7.7.7.7, dummy1 onlink, label 1111/2222/3333, 00:00:02
K>* 7.7.7.7/32 [0/0] is directly connected, dummy1, label 1111, 00:00:11
C>* 192.168.122.0/24 is directly connected, ens3, 00:00:11
K>* 192.168.122.1/32 [0/100] is directly connected, ens3, 00:00:11
ubuntu_nh#
```

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agopbrd, sharpd, staticd: Add some color to sample configuration files
Donald Sharp [Mon, 19 Aug 2019 14:25:40 +0000 (10:25 -0400)]
pbrd, sharpd, staticd: Add some color to sample configuration files

The sample configuration files for pbrd, sharpd and staticd
where all the same.  Add some bit of color to help new people
get rolling on these three daemons.

Signed-off-by: Donald Sharp <sharpd@cumulusnetwork.com>
4 years ago*: Fix spelling errors pointed out by debian packaging
Donald Sharp [Mon, 19 Aug 2019 14:12:30 +0000 (10:12 -0400)]
*: Fix spelling errors pointed out by debian packaging

Debian packaging when run finds a bunch of spelling errors:

I: frr: spelling-error-in-binary usr/bin/vtysh occurences occurrences
I: frr: spelling-error-in-binary usr/lib/frr/bfdd Amount of times Number of times
I: frr: spelling-error-in-binary usr/lib/frr/bgpd occurences occurrences
I: frr: spelling-error-in-binary usr/lib/frr/bgpd recieved received
I: frr: spelling-error-in-binary usr/lib/frr/isisd betweeen between
I: frr: spelling-error-in-binary usr/lib/frr/ospf6d Infomation Information
I: frr: spelling-error-in-binary usr/lib/frr/ospfd missmatch mismatch
I: frr: spelling-error-in-binary usr/lib/frr/pimd bootsrap bootstrap
I: frr: spelling-error-in-binary usr/lib/frr/pimd Unknwon Unknown
I: frr: spelling-error-in-binary usr/lib/frr/zebra Requsted Requested
I: frr: spelling-error-in-binary usr/lib/frr/zebra uknown unknown
I: frr: spelling-error-in-binary usr/lib/x86_64-linux-gnu/frr/libfrr.so.0.0.0 overriden overridden

This commit fixes all of them except the bgp `recieved` issue due to
it being part of json output.  That one will need to go through
a deprecation cycle.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4841 from rtrlib/2019-08-16-bugfix-master
Donald Sharp [Mon, 19 Aug 2019 13:57:18 +0000 (09:57 -0400)]
Merge pull request #4841 from rtrlib/2019-08-16-bugfix-master

bgpd: rpki fixes (master)

4 years agoMerge pull request #4842 from opensourcerouting/fix-isis-bfd-display
Mark Stapp [Mon, 19 Aug 2019 12:17:01 +0000 (08:17 -0400)]
Merge pull request #4842 from opensourcerouting/fix-isis-bfd-display

isisd: fix display of the "isis bfd" command

4 years agobgpd: Ensure correct checks for EVPN route import
vivek [Mon, 19 Aug 2019 06:07:59 +0000 (23:07 -0700)]
bgpd: Ensure correct checks for EVPN route import

In a situation where a VRF has configured route targets for importing
EVPN routes, this configuration may exist prior to the VRF being
ready to have EVPN routes installed into it - e.g., still missing
the L3VNI configuration or associated interface information. Ensure
that this is taken into account during EVPN route import and unimport.
Without this fix, EVPN routes would end up being prematurely imported
into the VRF routing table and consequently installed as inactive
(because the nexthop information would be incorrect when BGP informs
zebra).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
4 years agobgpd: Display peer info in NHT output
vivek [Mon, 19 Aug 2019 05:21:38 +0000 (22:21 -0700)]
bgpd: Display peer info in NHT output

When a BGP next hop tracking (NHT) entry is created for a peer,
display it in the corresponding "show" command output.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Fix nexthop reg for IPv4 route exchange using GUA IPv6 peering
vivek [Mon, 19 Aug 2019 05:12:06 +0000 (22:12 -0700)]
bgpd: Fix nexthop reg for IPv4 route exchange using GUA IPv6 peering

In the case of IPv4 route exchange using GUA IPv6 peering, the route install
into the FIB involves mapping the immediate next hop to an IPv4 link-local
address and installing neighbor entries for this next hop address. To
accomplish the latter, IPv6 Router Advertisements are exchanged (the next hop
or peer must also have this enabled) and the RAs are dynamically initiated
based on next hop resolution.

However, in the case of a passive connection where the local system has not
initiated anything, no NHT entry is created for the peer, hence RAs were not
getting triggered. Address this by ensuring that a NHT entry is created even
in this situation. This is done at the time the connection becomes established
because the code has other assumptions that a NHT entry will be present only
for the "configured" peer. The API to create the entry ensures there are
no duplicates.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: Correct /32 addr del with broadcast set
Juergen Werner [Tue, 13 Aug 2019 14:29:09 +0000 (16:29 +0200)]
zebra: Correct /32 addr del with broadcast set

Since we are now away from the dual use of the destination field, there
is no need to single out /32 addresses as broadcast. This was bugged
anyway, since the same /32 criteria was used for IPv6 addresses as well,
when `connected_check_ptp` is called in `connected_delete_ipv6`.

Fixes: 3053
Signed-off-by: Juergen Werner <juergen@opensourcerouting.org>
4 years agozebra: Do not use connection dest for bcast
Juergen Werner [Sat, 10 Aug 2019 09:52:03 +0000 (11:52 +0200)]
zebra: Do not use connection dest for bcast

The `destination` field of the connection structure was used to store
the broadcast address, if the connection was not p2p. This multipurpose
is not very evident and the benefits over calculating the bcast address
on the fly minimal.

Signed-off-by: Juergen Werner <juergen@opensourcerouting.org>
4 years agoMerge pull request #4832 from ddutt/master
Donald Sharp [Sat, 17 Aug 2019 13:00:47 +0000 (09:00 -0400)]
Merge pull request #4832 from ddutt/master

Clean up zebra's show interface display

4 years agoisisd: fix display of the "isis bfd" command
Renato Westphal [Fri, 16 Aug 2019 20:54:10 +0000 (17:54 -0300)]
isisd: fix display of the "isis bfd" command

We need to indent this command using one leading whitespace otherwise
vtysh will have problems to display it appropriately.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>