]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
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 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 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>
4 years agobgpd: fix bgp_table range lookup
Marcel Röthke [Fri, 16 Aug 2019 14:20:05 +0000 (16:20 +0200)]
bgpd: fix bgp_table range lookup

In case the topmost node has a larger prefix length than the lookup
prefix it never matches even if it was still lower than maxlen

This also alters a test case to check for this bug.

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
4 years agobgpd: remove initial sync timeout in rpki startup code
Marcel Röthke [Fri, 16 Aug 2019 10:52:47 +0000 (12:52 +0200)]
bgpd: remove initial sync timeout in rpki startup code

The initial sync timeout breaks config load and is not necessary anyway.

Fix #4827

Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
4 years agoMerge pull request #4837 from mjstapp/fix_ospf_redist_debug
Quentin Young [Wed, 14 Aug 2019 20:57:01 +0000 (16:57 -0400)]
Merge pull request #4837 from mjstapp/fix_ospf_redist_debug

ospfd: add redist message detail to debug

4 years agobgpd: Display the imported route information for EVPN routes
Dinesh Dutt [Mon, 12 Aug 2019 13:20:18 +0000 (13:20 +0000)]
bgpd: Display the imported route information for EVPN routes

For IPv4/v6 unicast routes that have been imported from EVPN Prefix
routes, display the information about where the route has been imported
from allowing for easy tracing of how a FIB/RIB entry got populated.

Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
4 years agoospfd: add redist message detail to debug
Mark Stapp [Wed, 24 Jul 2019 19:57:34 +0000 (15:57 -0400)]
ospfd: add redist message detail to debug

Add the specific message being processed when ospfd receives
a redistribution from zebra.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #4836 from mruprich/python-3.8
Quentin Young [Wed, 14 Aug 2019 17:06:24 +0000 (13:06 -0400)]
Merge pull request #4836 from mruprich/python-3.8

build: add check for python-3.8

4 years agozebra : zebra redistributing IPV4 link local Addresses inconsistently.
vdhingra [Wed, 14 Aug 2019 07:18:43 +0000 (00:18 -0700)]
zebra : zebra redistributing IPV4 link local Addresses inconsistently.

Create an interface with IP4 link local address 169.254.0.131/25.
In BGP enable the redistribute connected. Now Zebra will not send
the route corresponding to IPV4 link local address. Now made this
interface down and up. Zebra sends the route to BGP.
Zebra should not send this route to BGP.
This Fix would make the behaviour consistent and would not send the
routes corresponding to IPV4 Link local addresses.

Signed-off-by: vishaldhingra <vdhingra@vmware.com>
4 years agobuild: add check for python-3.8
Michal Ruprich [Wed, 14 Aug 2019 13:06:52 +0000 (15:06 +0200)]
build: add check for python-3.8

In python-3.8, the --embed needs to be added to pythonX.Y-config

Signed-off-by: Michal Ruprich <michalruprich@gmail.com>
4 years agozebra: Ensure master's ifname is known, even if slave comes up first
Dinesh G Dutt [Tue, 13 Aug 2019 16:29:40 +0000 (16:29 +0000)]
zebra: Ensure master's ifname is known, even if slave comes up first

In if_netlink.c, when an interface structure, ifp, is first created,
its possible for the master to come up after the slave interface does.
This means, the slave interface has no way to display the master's ifname
in show outputs. To fix this, we need to allow creation by ifindex instead
of by ifname so that this issue is handled.

Signed-off-by: Dinesh G Dutt<5016467+ddutt@users.noreply.github.com>
4 years ago zebra: Display master interface names, not ifindices
Dinesh G Dutt [Tue, 13 Aug 2019 16:28:16 +0000 (16:28 +0000)]
zebra: Display master interface names, not ifindices

    When displaying the master interface's information in "show interface",
    the display is currently the ifindex of the master interface. Make it
    display the name as well as that is more useful than the name.

Signed-off-by: Dinesh G Dutt<5016467+ddutt@users.noreply.github.com>
4 years agoMerge pull request #4706 from qlyoung/fix-exit-vrf-markfile
Sri Mohana Singamsetty [Tue, 13 Aug 2019 15:40:21 +0000 (08:40 -0700)]
Merge pull request #4706 from qlyoung/fix-exit-vrf-markfile

vtysh: mark exit-vrf with end when using vtysh -m

4 years agoMerge pull request #4828 from vishaldhingra/blackhole_type
Donald Sharp [Tue, 13 Aug 2019 11:10:02 +0000 (07:10 -0400)]
Merge pull request #4828 from vishaldhingra/blackhole_type

zebra : blackhole_type was not set correctly in recursive routes

4 years agozebra : blackhole_type was not set correctly in recursive routes
vdhingra [Tue, 13 Aug 2019 05:56:38 +0000 (22:56 -0700)]
zebra : blackhole_type was not set correctly in recursive routes

If there is a recursive route resolved over blackhole route, then
the resolved blackhole_type is not getting set correctly.
This fix updates the bh_type correctly for resursive routes.

Signed-off-by: vishaldhingra <vdhingra@vmware.com>
4 years agoMerge pull request #4801 from donaldsharp/nht_vrf_show_evil
Sri Mohana Singamsetty [Tue, 13 Aug 2019 03:49:51 +0000 (20:49 -0700)]
Merge pull request #4801 from donaldsharp/nht_vrf_show_evil

zebra: Allow v4 or v6 addresses to be optional after `vrf X` in show …

4 years agoMerge pull request #4802 from donaldsharp/static_blackhole
Sri Mohana Singamsetty [Tue, 13 Aug 2019 03:49:17 +0000 (20:49 -0700)]
Merge pull request #4802 from donaldsharp/static_blackhole

staticd: Fix blackhole routes being installed

4 years agoMerge pull request #4823 from mjstapp/fix_dplane_thread_name
Quentin Young [Mon, 12 Aug 2019 18:26:58 +0000 (14:26 -0400)]
Merge pull request #4823 from mjstapp/fix_dplane_thread_name

zebra: make the dplane pthread name consistent

4 years agoMerge pull request #4677 from mruprich/master
David Lamparter [Mon, 12 Aug 2019 15:09:14 +0000 (17:09 +0200)]
Merge pull request #4677 from mruprich/master

ospfd,ripd: Enabling openssl library for md5 authentication in RIP and OSPF

4 years agozebra: make the dplane pthread name consistent
Mark Stapp [Mon, 12 Aug 2019 13:50:43 +0000 (09:50 -0400)]
zebra: make the dplane pthread name consistent

Make the dplane pthread's name consistent (lower-case)
with other pthreads.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #1 from FRRouting/master
Dinesh Dutt [Mon, 12 Aug 2019 13:19:54 +0000 (06:19 -0700)]
Merge pull request #1 from FRRouting/master

Merging from upstream tree

4 years agoMerge pull request #4793 from qlyoung/fix-bgp-labeled-unicast-addpath
Mark Stapp [Mon, 12 Aug 2019 12:51:36 +0000 (08:51 -0400)]
Merge pull request #4793 from qlyoung/fix-bgp-labeled-unicast-addpath

bgpd: tx addpath info for labeled unicast

4 years agoMerge pull request #4817 from NaveenThanikachalam/652
Donald Sharp [Mon, 12 Aug 2019 12:45:51 +0000 (08:45 -0400)]
Merge pull request #4817 from NaveenThanikachalam/652

bgpd: Optimizing route-map's processing of dependencies.

4 years agobgpd: Optimizing route-map's processing of dependencies.
Naveen Thanikachalam [Sun, 11 Aug 2019 11:24:15 +0000 (04:24 -0700)]
bgpd: Optimizing route-map's processing of dependencies.

Say for eg., 256 prefix-list entries are pasted to VTYSH.
This results in BGP processing the events for several minutes.

BGPD starts a timer for 5 seconds when the first dependency configuraion
is received. On timer expiry, BGP process dependent route-maps.
After this processing, BGPD reads the configurations received in the
next 5 seconds and then re-processes the route-maps from the beginning.
This cyclic re-processing consumes time and CPU cycles.

Instead of starting a timer when the first configuration is received,
everytime a configuration is received, the existing timer is reset.
This would mean that all the configurations are read first before the timer
expires. This eliminates the cyclic re-processing.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
4 years agobgpd: Large-communities CLI accepts configurations sans attributes.
Naveen Thanikachalam [Sun, 11 Aug 2019 10:30:22 +0000 (03:30 -0700)]
bgpd: Large-communities CLI accepts configurations sans attributes.

BGP large-communities configuration CLI is successful even if
the command is configured without any attributes.
For ex., the below commands are successful.
         1) "bgp large-community-list standard TEST permit"
         2) "bgp large-community-list standard TEST deny"

The CLI definitions that allow these erroneous configurations need to be removed.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
4 years agoMerge pull request #4813 from NaveenThanikachalam/604
Donald Sharp [Sun, 11 Aug 2019 20:46:33 +0000 (16:46 -0400)]
Merge pull request #4813 from NaveenThanikachalam/604

bgpd: Standard large-communities CLI does not return error when it's configured with reg-ex.

4 years agoMerge pull request #4816 from NaveenThanikachalam/610
Donald Sharp [Sun, 11 Aug 2019 15:58:36 +0000 (11:58 -0400)]
Merge pull request #4816 from NaveenThanikachalam/610

bgpd: Assertion failed during shutdown.

4 years agobgpd: Assertion failed during shutdown.
Naveen Thanikachalam [Sun, 11 Aug 2019 10:56:12 +0000 (03:56 -0700)]
bgpd: Assertion failed during shutdown.

A race condition causes the failure.
The function "make_info()" sets the path info's peer to
bgp instance's "peer_self" which is created when BGP is first
configured and deleted only when BGP is brought down completely.
A race condition causes the bgp instances's "peer_self" to be
removed before the routes are being pulled off from the aggregate
address.

If the bgp instance's "peer_self" is NULL or, if BGP is being deleted,
the aggregate route must not be reinstalled.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
4 years agobgpd: Standard large-communities CLI does not return error when it's configured with...
Naveen Thanikachalam [Sun, 11 Aug 2019 07:29:32 +0000 (00:29 -0700)]
bgpd: Standard large-communities CLI does not return error when it's configured with reg-ex.

The CLI to configure the standard format large-communities attribute
accepts regular expressions as well.
For ex., the below configuration is accepted.
         "bgp large-community-list standard TEST permit 1:1 100:*"

The code to parse the large-communities does identify the configuration
as invalid however, error returned isn't processed.
The code has to be modified to handle the error.

Signed-off-by: NaveenThanikachalam nthanikachal@vmware.com
4 years agoMerge pull request #4803 from ddutt/master
Donald Sharp [Sat, 10 Aug 2019 19:41:18 +0000 (15:41 -0400)]
Merge pull request #4803 from ddutt/master

Support for display of received and advertised EVPN routes from neigh…

4 years agoMerge pull request #4811 from adharkar/frr-master-rtm_vni
Donald Sharp [Sat, 10 Aug 2019 00:39:34 +0000 (20:39 -0400)]
Merge pull request #4811 from adharkar/frr-master-rtm_vni

Zebra: Incorrect L3VNI for FPM rtmsg for EVPN RT-5 prefix

4 years agoZebra: Incorrect L3VNI for FPM rtmsg for EVPN RT-5 prefix
Ameya Dharkar [Fri, 9 Aug 2019 22:21:27 +0000 (15:21 -0700)]
Zebra: Incorrect L3VNI for FPM rtmsg for EVPN RT-5 prefix

We used the vrf_id in the rtm_table field of the netlink rtmsg to fetch L3VNI.
But, now we program table_id to rtm_table field instead of vrf_id.
Thus, L3VNI fetched using rtm_table is incorrect.

Instead, use nexthop->vrf_id to fetch the L3VNI.

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
4 years agoMerge pull request #4806 from chiragshah6/evpn_dev1
Russ White [Fri, 9 Aug 2019 11:32:57 +0000 (07:32 -0400)]
Merge pull request #4806 from chiragshah6/evpn_dev1

zebra: fix advertise svi ip as macip route

4 years agozebra: fix advertise svi ip as macip route
Chirag Shah [Thu, 8 Aug 2019 17:43:49 +0000 (10:43 -0700)]
zebra: fix advertise svi ip as macip route

PR #3745 added EVPN feature to advertise individual
SVI-IPs as MAC-IP routes.
Fix a condition in zebra to send MAC and IP pair
to bgpd when the feature is enabled.

Testing Done:

Originator VTEP:
TORC11:~# ip -br addr show VxU-1002
VxU-1002         UP             45.0.2.2/24 2001:fee1:0:2::2/64

show bgp l2vpn evpn vni 1004
VNI: 1004 (known to the kernel)
  Type: L2
  Tenant-Vrf: default
  RD: 27.0.0.11:3
  Advertise-svi-macip : Yes
  Import Route Target:
    10:1004
  Export Route Target:
    10:1004

Remote vtep evpn route output for 45.0.4.2:

BGP routing table entry for 27.0.0.11:3:[2]:[0]:[48]:[00:02:00:00:00:2f]:[32]:[45.0.4.2]
Paths: (2 available, best #1)
  Advertised to non peer-group peers:
  MSP1(uplink-1) MSP2(uplink-2)
  Route [2]:[0]:[48]:[00:02:00:00:00:2f]:[32]:[45.0.4.2] VNI 1004
  64435 65546
    36.0.0.11 from MSP1(uplink-1) (27.0.0.9)
      Origin IGP, valid, external, bestpath-from-AS 64435, best (First path received)
      Extended Community: RT:10:1004 ET:8
      Last update: Thu Aug  8 18:09:13 2019

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agoMerge pull request #4724 from satheeshkarra/pim_fixes
Sri Mohana Singamsetty [Thu, 8 Aug 2019 16:57:18 +0000 (09:57 -0700)]
Merge pull request #4724 from satheeshkarra/pim_fixes

pimd: NH Updates are missing at PIM during boot up

4 years agoospfd,ripd: Enabling build with openssl
Michal Ruprich [Thu, 11 Jul 2019 09:28:15 +0000 (11:28 +0200)]
ospfd,ripd: Enabling build with openssl

Enabling openssl library for md5 authentication in RIP and OSPF

Signed-off-by: Michal Ruprich <michalruprich@gmail.com>
4 years agoMerge pull request #4497 from opensourcerouting/rcu
Donald Sharp [Thu, 8 Aug 2019 12:41:07 +0000 (08:41 -0400)]
Merge pull request #4497 from opensourcerouting/rcu

RCU support

4 years agobgpd: Display received and advertised EVPN routes from neighbors
Dinesh Dutt [Thu, 8 Aug 2019 02:58:18 +0000 (02:58 +0000)]
bgpd: Display received and advertised EVPN routes from neighbors

"show bgp l2vpn evpn neighbors <neighbor> [advertised-routes|routes]' did
not work due to various bugs. First, the command only accepted IPv4
addresses as valid neighbor ID, thereby rejecting unnumbered BGP and IPv6
neighbor address. Second, the SAFI was hardcoded to MPLS_VPN even though
we were passing the safi. Third, "all" made no sense in the command context
and to make the command uniform across all address families, I removed the
"all" keyword from the command.

Signed-off-by: Dinesh G Dutt <ddps4u@gmail.com>
4 years agostaticd: Fix blackhole routes being installed
Donald Sharp [Thu, 8 Aug 2019 01:45:02 +0000 (21:45 -0400)]
staticd: Fix blackhole routes being installed

When we are ready to install a route, we were treating
blackhole routes as something that should be nexthop tracked
which does not work as well as one would expect.

Additionally add some test code to show that this actually
fixes this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4763 from opensourcerouting/ds-work
Donald Sharp [Wed, 7 Aug 2019 20:45:02 +0000 (16:45 -0400)]
Merge pull request #4763 from opensourcerouting/ds-work

lib: get rid of pqueue_*, use DECLARE_HEAP in thread.c

4 years agozebra: Allow v4 or v6 addresses to be optional after `vrf X` in show ip nht
Donald Sharp [Wed, 7 Aug 2019 19:02:43 +0000 (15:02 -0400)]
zebra: Allow v4 or v6 addresses to be optional after `vrf X` in show ip nht

The `show ip nht vrf EVA ...` command was not allowing you to only
specify the vrf anymore.  Fix this:

robot# show ip nht vrf EVA
  <cr>
  A.B.C.D   IPv4 Address
  X:X::X:X  IPv6 Address
robot# show ip nht vrf EVA 4.5.6.7
robot# show ip nht vrf EVA
robot#

Ticket: CM-25831
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #4781 from opensourcerouting/eigrpd-northbound
Donald Sharp [Tue, 6 Aug 2019 23:38:30 +0000 (19:38 -0400)]
Merge pull request #4781 from opensourcerouting/eigrpd-northbound

eigrpd: migrate to northbound

4 years agobgpd: tx addpath info for labeled unicast
Quentin Young [Tue, 6 Aug 2019 21:18:42 +0000 (21:18 +0000)]
bgpd: tx addpath info for labeled unicast

Labeled unicast needs path IDs too!

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>