]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
4 years agobfdd: fix parameter length 7318/head
Igor Ryzhov [Mon, 24 Aug 2020 15:45:53 +0000 (18:45 +0300)]
bfdd: fix parameter length

There is no space reserved for "[source-addr='']".

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit e6426ace1edadd3c27ac612815ebc994ea54ba39)

4 years agoospf6d: decimal area format in interface command
Patrick Ruddy [Wed, 3 Oct 2018 17:22:34 +0000 (18:22 +0100)]
ospf6d: decimal area format in interface command

The ospf6 "interface <blah> area <x>" command only allows the area to
be specified in the ipv4 address format, whereas the show run command
always shows it in the format in which the area was created. This causes
the frr-reload script to be unable to remove ospfv3 interfaces when the
area was created in decimal format. The solution is to allow both formats
to be configured as they can be for other area commands.

Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
(cherry picked from commit de842255f9a1930d7f927e94e7ea800bcfd1434c)

4 years agoMerge pull request #7007 from Jafaral/pim-dup-7.3
Donald Sharp [Thu, 27 Aug 2020 11:10:33 +0000 (07:10 -0400)]
Merge pull request #7007 from Jafaral/pim-dup-7.3

[7.3] pimd: fix IGMP querier election

4 years agopimd: fix IGMP querier election 7007/head
Nathan Bahr [Mon, 24 Aug 2020 18:52:51 +0000 (13:52 -0500)]
pimd: fix IGMP querier election

Match by exact address rather than by prefix match to
determine if we generated the IGMPP query. Othwerwise
we will be ignoring IGMP queries coming from other
hosts on the same subnet.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
Reviewed-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
4 years agoMerge pull request #6917 from ton31337/feature/dump_attributes_for_debugging_if_malfo...
Rafael Zalamena [Thu, 20 Aug 2020 11:22:54 +0000 (11:22 +0000)]
Merge pull request #6917 from ton31337/feature/dump_attributes_for_debugging_if_malformed_7.3

bgpd: [7.3] Dump attributes before returning from bgp_attr_malformed()

4 years agobgpd: Use sizeof() in bgp_dump_attr() 6917/head
Donatas Abraitis [Wed, 19 Aug 2020 12:57:26 +0000 (15:57 +0300)]
bgpd: Use sizeof() in bgp_dump_attr()

Missed this in 5022c8331d0119886a08dcef7b1eee4525b4d63a

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Use sizeof() in bgp_dump_attr()
Donatas Abraitis [Tue, 18 Aug 2020 18:43:07 +0000 (21:43 +0300)]
bgpd: Use sizeof() in bgp_dump_attr()

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6940 from LabNConsulting/working/lb/7.3/valgrind-supp-libyang
Donald Sharp [Wed, 19 Aug 2020 11:42:51 +0000 (07:42 -0400)]
Merge pull request #6940 from LabNConsulting/working/lb/7.3/valgrind-supp-libyang

[7.3] bgpd: suppress new libyang_1.0 related loss reports

4 years agobgpd: suppress new libyang_1.0 related loss reports 6940/head
Lou Berger [Tue, 18 Aug 2020 15:43:07 +0000 (11:43 -0400)]
bgpd: suppress new libyang_1.0 related loss reports

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agobgpd: Dump attributes before returning from bgp_attr_malformed()
Donatas Abraitis [Thu, 13 Aug 2020 15:42:31 +0000 (18:42 +0300)]
bgpd: Dump attributes before returning from bgp_attr_malformed()

This would be handy for situations when a notification was sent, but it's
absolutely not clear who triggered that.

Just in case dumping all attributes under the debug mode would help finding
the _bad_ attribute.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6890 from ton31337/fix/vtysh_sorting
Donald Sharp [Tue, 11 Aug 2020 12:19:04 +0000 (08:19 -0400)]
Merge pull request #6890 from ton31337/fix/vtysh_sorting

[7.3] Sorted vtysh commands

4 years agovtysh: Improve lookup performance 6890/head
Donald Sharp [Tue, 30 Jun 2020 13:03:55 +0000 (09:03 -0400)]
vtysh: Improve lookup performance

When we find the line we are interested in, stop looking.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agovtysh: master is a non-sorted list
Donald Sharp [Tue, 30 Jun 2020 12:59:46 +0000 (08:59 -0400)]
vtysh: master is a non-sorted list

The commit:
a798241265a5808083a06b14ce1637d1ddf6a45a

attempted to use sorted master lists to do faster lookups
by using a RB Tree.  Unfortunately the original code
was creating a list->cmp function *but* never using it.
If you look at the commit, it clearly shows that the
function listnode_add is used to insert but when you
look at that function it is a tail push.

Fixes: #6573
Namely now this ordering is preserved:
bgp as-path access-list originate-only permit ^$
bgp as-path access-list originate-only deny .*

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6828 from ton31337/fix/add_peer_sort_lookup_7.3
Donald Sharp [Tue, 4 Aug 2020 20:30:09 +0000 (16:30 -0400)]
Merge pull request #6828 from ton31337/fix/add_peer_sort_lookup_7.3

bgpd: [7.3] Create peer_sort_lookup()

4 years agoMerge pull request #6831 from ton31337/fix/revert_frr-reload_stderr_7.3
Donald Sharp [Sun, 2 Aug 2020 00:27:07 +0000 (20:27 -0400)]
Merge pull request #6831 from ton31337/fix/revert_frr-reload_stderr_7.3

tools: [7.3] revert frr-reload.py remove stderr redirects"

4 years agotools: revert frr-reload.py remove stderr redirects" 6831/head
Donald Sharp [Tue, 12 May 2020 17:31:05 +0000 (13:31 -0400)]
tools: revert frr-reload.py remove stderr redirects"

This reverts commit 3fa139a65be70e5a81b5f078530094f09a247416.

This is being reverted because this commit completely
breaks the invocation of frr-reload.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agobgpd: Create peer_sort_lookup() 6828/head
Donald Sharp [Wed, 12 Feb 2020 18:26:19 +0000 (13:26 -0500)]
bgpd: Create peer_sort_lookup()

The act of peer_sort() being called always set this value
even when we are just looking it up.  We need to seperate
out the idea of lookup from set.

For those places that this is immediately obvious that
this is a lookup switch over to using this function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6691 from mjstapp/zapi_sync_client_7_3
Renato Westphal [Tue, 7 Jul 2020 22:02:10 +0000 (19:02 -0300)]
Merge pull request #6691 from mjstapp/zapi_sync_client_7_3

[7.3] lib,ldp,zebra: add synchronous zapi session flag

4 years agolib,ldp,zebra: add synchronous zapi session flag 6691/head
Mark Stapp [Tue, 7 Jul 2020 15:20:53 +0000 (11:20 -0400)]
lib,ldp,zebra: add synchronous zapi session flag

Zebra is currently sending messages on interface add/delete/update,
VRF add/delete, and interface address change - regardless of whether
its clients had requested them.  This is problematic for lde and isis,
which only listens to label chunk messages, and only when it is
waiting for one (synchronous client). The effect is the that messages
accumulate on the lde synchronous message queue.

With this change:
  - Zebra does not send unsolicited messages to synchronous clients.
  - Synchronous clients send a ZEBRA_HELLO to zebra.
    The ZEBRA_HELLO contains a new boolean field: synchronous.
  - LDP and PIM have been updated to send a ZEBRA_HELLO for their
    synchronous clients.

Signed-off-by: Karen Schoener <karen@voltanet.io>
Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #6561 from ton31337/fix/configuration_for_labeled_unicast_in_place_7.3
Donald Sharp [Wed, 10 Jun 2020 22:52:59 +0000 (18:52 -0400)]
Merge pull request #6561 from ton31337/fix/configuration_for_labeled_unicast_in_place_7.3

bgpd: [7.3] Make sure network/aggregate-address commands lay down under labeled safi

4 years agobgpd: Make sure network/aggregate-address commands lay down under labeled safi 6561/head
Donatas Abraitis [Thu, 30 Apr 2020 14:01:10 +0000 (17:01 +0300)]
bgpd: Make sure network/aggregate-address commands lay down under labeled safi

unicast and labeled-unicast share the same table, but configuration should
be visible for both independently. Without this fix it confuses a bit
because when you enter `network 10.0.0.0/24` under labeled-unicast it's
written in unicast family block.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6554 from ton31337/fix/bgp_dampening_vty_bug_7.3
Donald Sharp [Wed, 10 Jun 2020 19:31:01 +0000 (15:31 -0400)]
Merge pull request #6554 from ton31337/fix/bgp_dampening_vty_bug_7.3

bgpd: [7.3] Duplicate `bgp dampening ...` stuff

4 years agobgpd: Print dampening configuration per AF, not per neighbor 6554/head
Donatas Abraitis [Wed, 10 Jun 2020 07:09:01 +0000 (10:09 +0300)]
bgpd: Print dampening configuration per AF, not per neighbor

This caused duplicate `bgp dampening ...` to be printed per neighbor.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Allow setting dampening for more address families
Donatas Abraitis [Wed, 10 Jun 2020 07:10:18 +0000 (10:10 +0300)]
bgpd: Allow setting dampening for more address families

Until now, it was possible to set only for ipv4 unicast/multicast.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6551 from ton31337/fix/refcnt_check_for_dep_data_7.3
Donald Sharp [Wed, 10 Jun 2020 12:10:14 +0000 (08:10 -0400)]
Merge pull request #6551 from ton31337/fix/refcnt_check_for_dep_data_7.3

lib: [7.3] Make sure route_map_dep_data is not NULL before decrementing refcount

4 years agolib: Make sure route_map_dep_data is not NULL before decrementing refcount 6551/head
Donatas Abraitis [Wed, 10 Jun 2020 08:49:21 +0000 (11:49 +0300)]
lib: Make sure route_map_dep_data is not NULL before decrementing refcount

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6525 from ton31337/fix/set_ipv6_ll_if_global_zero_7.3
David Lamparter [Tue, 9 Jun 2020 14:42:29 +0000 (16:42 +0200)]
Merge pull request #6525 from ton31337/fix/set_ipv6_ll_if_global_zero_7.3

bgpd: [7.3] Use IPv6 LL address as nexthop if global was set to ::/LL

4 years agobgpd: Use IPv6 LL address as nexthop if global was set to ::/LL 6525/head
Donatas Abraitis [Mon, 25 May 2020 14:22:37 +0000 (17:22 +0300)]
bgpd: Use IPv6 LL address as nexthop if global was set to ::/LL

This happens between Bird and FRR. Maybe others as well, dunno.

Bird sends ::(fe80::1588) and we have a nexthop as :: which is inaccessible:

```
BGP routing table entry for fdff:b87d:f5b0::/48
Paths: (1 available, no best path)
  Not advertised to any peer
  4242421588 4242422547 4242422601 4242423605
    :: (inaccessible) from fe80::1588 (172.20.16.140)
    (fe80::1588) (used)
      Origin IGP, invalid, external
      Last update: Mon May 25 14:27:02 2020
```

bgpd[9554]: fe80::1588 went from OpenConfirm to Established
bgpd[9554]: fe80::1588 [FSM] Timer (routeadv timer expire)
bgpd[9554]: fe80::1588 rcvd UPDATE w/ attr: , origin i, mp_nexthop ::(fe80::1588)
bgpd[9554]: fe80::1588 rcvd UPDATE wlen 0 attrlen 120 alen 0
bgpd[9554]: fe80::1588 rcvd fda9:26a9:1c47:2d42::/64 IPv6 unicast
bgpd[9554]: Allocated bnc ::/128(VRF default) peer 0x0
bgpd[9554]: bgp_update(0.0.0.0): NH unresolved
bgpd[9554]: fe80::1588 rcvd fda9:26a9:1c47:d42::/64 IPv6 unicast

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6498 from qlyoung/fix-centos7-docker-build-7.3
Donatas Abraitis [Tue, 2 Jun 2020 05:55:43 +0000 (08:55 +0300)]
Merge pull request #6498 from qlyoung/fix-centos7-docker-build-7.3

[7.3] Fix centos7 docker build

4 years agoMerge pull request #6496 from qlyoung/fix-alpine-python3-build-7.3
Donatas Abraitis [Tue, 2 Jun 2020 05:55:08 +0000 (08:55 +0300)]
Merge pull request #6496 from qlyoung/fix-alpine-python3-build-7.3

[7.3] fix alpine build

4 years agodocker: fix centos7 install 6498/head
Quentin Young [Mon, 1 Jun 2020 20:03:35 +0000 (16:03 -0400)]
docker: fix centos7 install

We require python3-sphinx for RPM builds, but it wasn't being installed.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoalpine: update packages 6496/head
Quentin Young [Sun, 31 May 2020 08:10:33 +0000 (04:10 -0400)]
alpine: update packages

Alpine builds have been failing for some time as a consequence of only
installing python 2 development packages when we have build scripts that
require python 3.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #6394 from opensourcerouting/7.3/init-config-perms
Donatas Abraitis [Thu, 14 May 2020 08:22:02 +0000 (11:22 +0300)]
Merge pull request #6394 from opensourcerouting/7.3/init-config-perms

[7.3] build: use configfile mode in init script

4 years agobuild: use configfile mode in init script 6394/head
David Lamparter [Mon, 11 May 2020 19:37:08 +0000 (21:37 +0200)]
build: use configfile mode in init script

This only applies for split-config;  the init script would create an
empty config file with default permissions.

Reported-by: Robert Scheck <robert@fedoraproject.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
(cherry picked from commit 5c9063771195bb51a8cc1c64f9924e53a0602817)

4 years agoFRRouting release 7.3.1 frr-7.3.1
David Lamparter [Wed, 6 May 2020 11:44:20 +0000 (13:44 +0200)]
FRRouting release 7.3.1

Maintenance/bugfix release.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
4 years agoMerge pull request #6353 from ton31337/fix/communities_bgpd_crash_7.3
David Lamparter [Wed, 6 May 2020 11:36:52 +0000 (13:36 +0200)]
Merge pull request #6353 from ton31337/fix/communities_bgpd_crash_7.3

4 years agobgpd: Check to ensure community attributes exist before freeing them 6353/head
Josh Cox [Tue, 5 May 2020 17:09:14 +0000 (13:09 -0400)]
bgpd: Check to ensure community attributes exist before freeing them

Community attributes might have been removed by an inbound route map, so we
should check to ensure they still exist before trying to free them.
This fixes a segfault described in issue #6345.

Signed-off-by: Josh Cox <josh.cox@pureport.com>
4 years agoMerge pull request #6338 from ton31337/fix/FALSE_TRUE_7.3
Quentin Young [Tue, 5 May 2020 04:42:48 +0000 (00:42 -0400)]
Merge pull request #6338 from ton31337/fix/FALSE_TRUE_7.3

bgpd: [7.3] bools use `true/false` not `TRUE/FALSE`

4 years agobgpd: bools use `true/false` not `TRUE/FALSE` 6338/head
Donald Sharp [Mon, 13 Apr 2020 12:08:48 +0000 (08:08 -0400)]
bgpd: bools use `true/false` not `TRUE/FALSE`

Who knows where these values were coming from.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #6336 from sworleys/No-NHG-Install-With-VRFns_7.3
Mark Stapp [Mon, 4 May 2020 16:36:34 +0000 (12:36 -0400)]
Merge pull request #6336 from sworleys/No-NHG-Install-With-VRFns_7.3

[7.3] zebra: force off kernel NHG install with netns VRFs

4 years agozebra: force off kernel NHG install with netns VRFs 6336/head
Stephen Worley [Fri, 1 May 2020 16:34:43 +0000 (12:34 -0400)]
zebra: force off kernel NHG install with netns VRFs

Force off kernel NHG install with netns-based VRFs for
now. There is not really a good solution for allowing
kernel nexthop groups in namespaced based vrfs.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit d982012a0e7e77814b25381f634b64034d80c1ad)

5 years agoMerge pull request #6315 from ton31337/fix/access-list_deletion_7.3
Renato Westphal [Thu, 30 Apr 2020 01:46:44 +0000 (22:46 -0300)]
Merge pull request #6315 from ton31337/fix/access-list_deletion_7.3

lib: [7.3] Delete the entire access-list only if there are no more entries

5 years agolib: Delete the entire access-list only if there are no more entries 6315/head
Donatas Abraitis [Mon, 27 Apr 2020 09:13:48 +0000 (12:13 +0300)]
lib: Delete the entire access-list only if there are no more entries

When you enter the access-list with the same sequence number but with a
different prefix AND access-list has only a single entry, then the entry
is deleted and the whole access-list is deleted.

That means that "replace entry" never be re-inserted.

With fix:
```
~# vtysh -c 'c' -c 'access-list 1 seq 10 permit 127.0.0.10/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.10/32
~# vtysh -c 'c' -c 'access-list 1 seq 10 permit 127.0.0.20/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.20/32
~# vtysh -c 'c' -c 'access-list 1 seq 11 permit 127.0.0.11/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.20/32
access-list 1 seq 11 permit 127.0.0.11/32
~# vtysh -c 'c' -c 'no access-list 1 seq 10 permit 127.0.0.20/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 11 permit 127.0.0.11/32
~#
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agolib: Convert access_list_empty to bool
Donatas Abraitis [Mon, 27 Apr 2020 09:13:04 +0000 (12:13 +0300)]
lib: Convert access_list_empty to bool

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agoMerge pull request #6312 from donaldsharp/revert_73
Sri Mohana Singamsetty [Tue, 28 Apr 2020 22:40:57 +0000 (15:40 -0700)]
Merge pull request #6312 from donaldsharp/revert_73

[7.3]Revert "vtysh: fix searching commands in parent nodes"

5 years agoRevert "vtysh: fix searching commands in parent nodes" 6312/head
Donald Sharp [Tue, 28 Apr 2020 14:46:22 +0000 (10:46 -0400)]
Revert "vtysh: fix searching commands in parent nodes"

This reverts commit d741915ecdcf8930ccb3bd23eec1da2f0d000483.

This is because it breaks this behavior:

router ospf6
  <commands>
!
int enp39s0
  <more commands>
!

This is a very legal set of commands and completely destroys the
ability to do this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #6288 from ton31337/fix/allow_nhlen_32_with_empty_global_7.3
Donald Sharp [Fri, 24 Apr 2020 12:07:08 +0000 (08:07 -0400)]
Merge pull request #6288 from ton31337/fix/allow_nhlen_32_with_empty_global_7.3

bgpd: [7.3] Do not discard an UPDATE if the global nexthop is set to ::

5 years agoMerge pull request #6287 from ton31337/fix/show_bgp_hostname_7.3
Donald Sharp [Fri, 24 Apr 2020 12:06:54 +0000 (08:06 -0400)]
Merge pull request #6287 from ton31337/fix/show_bgp_hostname_7.3

bgpd: [7.3] Show hostname in `show [ip] bgp ...` only if nexthop is connected

5 years agotests: Check if the right next-hop is shown (bgp_show_ip_bgp_fqdn) 6287/head
Donatas Abraitis [Thu, 16 Apr 2020 07:37:21 +0000 (10:37 +0300)]
tests: Check if the right next-hop is shown (bgp_show_ip_bgp_fqdn)

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agoMerge pull request #6283 from opensourcerouting/7.3/gcc-10
Donald Sharp [Thu, 23 Apr 2020 19:31:16 +0000 (15:31 -0400)]
Merge pull request #6283 from opensourcerouting/7.3/gcc-10

[7.3] backport gcc 10 fixes

5 years agobgpd: Do not discard an UPDATE if the global nexthop is set to :: 6288/head
Donatas Abraitis [Mon, 20 Apr 2020 15:46:23 +0000 (18:46 +0300)]
bgpd: Do not discard an UPDATE if the global nexthop is set to ::

When we receive an UPDATE with MP_NEXTHOP len as 32 bytes, we shouldn't
check if the global (1st) nexthop is unspecified.

Peering between bird and FRRouting we receive from Bird something like:
```
rcvd UPDATE w/ attr: , origin i, mp_nexthop ::(fe80::a00:27ff:fe09:f8a3)
```
The link-local (2nd) nexthop is valid and validated later in the code.

Before it was marked:
```
IPv6 unicast -- DENIED due to: martian or self next-hop;
```

After it's a valid prefix:
```
spine1-debian-9# show bgp
BGP table version is 0, local router ID is 2.2.2.2, vrf id 0
Default local pref 100, local AS 65002
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
   2a02:4780::/64   fe80::a00:27ff:fe09:f8a3
                                                           0 65001 i

Displayed  1 routes and 1 total paths
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Add a sanitify check for bgp_nexthop_cache against NULL
Donatas Abraitis [Thu, 16 Apr 2020 13:13:01 +0000 (16:13 +0300)]
bgpd: Add a sanitify check for bgp_nexthop_cache against NULL

In real world sometimes happens that bgp_nexthop_cache is NULL. Avoid
segfaulting when using `show [ip] bgp ...` CLI commands.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Show hostname in `show [ip] bgp ...` only if nexthop is connected
Donatas Abraitis [Thu, 16 Apr 2020 07:36:59 +0000 (10:36 +0300)]
bgpd: Show hostname in `show [ip] bgp ...` only if nexthop is connected

The problem is when using kinda such topologies:
(192.168.1.1/32) r1 <-- eBGP --> r2 <-- iBGP --> r3

Looking at r3's nexthop for 192.168.1.1/32 we have it as r2, but really
it MUST be r1.

Checking if the nexthop is connected solves the problem even for cases
when route-reflectors are used.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agovrrpd: fix build on Fedora Rawhide 6283/head
Ruben Kerkhof [Sat, 7 Mar 2020 22:38:14 +0000 (23:38 +0100)]
vrrpd: fix build on Fedora Rawhide

Fixes the following linker errors:
make[1]: Entering directory '/home/ruben/src/frr'
  CCLD     vrrpd/vrrpd
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_arp.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_debug.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_ndisc.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_packet.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_vty.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: multiple definition of `vrrp_dbg_zebra'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:34: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: multiple definition of `vrrp_dbg_sock'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:33: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: multiple definition of `vrrp_dbg_proto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:32: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: multiple definition of `vrrp_dbg_pkt'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:31: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: multiple definition of `vrrp_dbg_ndisc'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:30: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: multiple definition of `vrrp_dbg_auto'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:29: first defined here
/usr/bin/ld: vrrpd/libvrrp.a(vrrp_zebra.o):/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: multiple definition of `vrrp_dbg_arp'; vrrpd/vrrp_main.o:/home/ruben/src/frr/vrrpd/vrrp_debug.h:28: first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6639: vrrpd/vrrpd] Error 1
make[1]: Leaving directory '/home/ruben/src/frr'
make: *** [Makefile:4525: all] Error 2

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit 744f2650c4e7b6dd5075c31dc8e1638269a6f601)

5 years agobabeld: GCC complaining about no return in non-void function
Donald Sharp [Thu, 13 Feb 2020 13:44:40 +0000 (08:44 -0500)]
babeld: GCC complaining about no return in non-void function

The babel_main_loop function did not have a return for
a non-void function.  For some reason gcc is starting to complain
about this now.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
(cherry picked from commit be04d1487f975e4044c2c07089722dab7f5afbff)

5 years agobabeld: fix build on Fedora Rawhide
Ruben Kerkhof [Sat, 7 Mar 2020 22:51:34 +0000 (23:51 +0100)]
babeld: fix build on Fedora Rawhide

Fixes the following linker errors:
/usr/bin/ld: babeld/libbabel.a(babel_interface.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(babel_zebra.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(babeld.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(kernel.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(message.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(neighbour.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(net.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(resend.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(route.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(source.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(util.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(xroute.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
/usr/bin/ld: babeld/libbabel.a(babel_filter.o):/home/ruben/src/frr/babeld/util.h:125: multiple definition of `v4prefix'; babeld/babel_main.o:/home/ruben/src/frr/babeld/util.h:125: first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6015: babeld/babeld] Error 1

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit b0ba81f81f5fff158e756ef52c91f8c6179872e6)

5 years agobgpd: remove unused variable
Ruben Kerkhof [Sat, 7 Mar 2020 22:19:13 +0000 (23:19 +0100)]
bgpd: remove unused variable

This fixes a linking issue on Fedora Rawhide:
/usr/bin/ld: bgpd/libbgp.a(bgp_flowspec.o):/home/ruben/src/frr/./bgpd/bgp_attr_evpn.h:37: multiple definition of `eth_tag_id'; bgpd/bgp_btoa-bgp_btoa.o:/home/ruben/src/frr/./bgpd/bgp_attr_evpn.h:37: first defined here
collect2: error: ld returned 1 exit status

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit 01feb0907f6e7f72fbd973dba1ea69489f11a9c7)

5 years agopimd: Make frr able to be built by gcc 10
Tomas Korbar [Thu, 20 Feb 2020 06:37:55 +0000 (07:37 +0100)]
pimd: Make frr able to be built by gcc 10

- Add extern modifier to some declarations in header file and move
qpim_all_pim_routers_addr definition to pimd/pimd.c

`GCC now defaults to -fno-common. As a result, global variable accesses
are more efficient on various targets. In C, global variables with
multiple tentative definitions now result in linker errors.`
Taken from https://gcc.gnu.org/gcc-10/changes.html

Signed-off-by: Tomas Korbar <tkorbar@redhat.com>
(cherry picked from commit 403242d214b6cb919ed08f2149d7bee77a060947)

5 years agoldpd: remove multiple definitions of thread_master
Ruben Kerkhof [Sun, 8 Mar 2020 19:21:05 +0000 (20:21 +0100)]
ldpd: remove multiple definitions of thread_master

This fixes the last issue compiling FRR with GCC 10 on Fedora Rawhide.

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit f3faea7fe3bf5f73991effe56290346e3f43728e)

5 years agoldpd: fix another linking issue with GCC-10
Ruben Kerkhof [Sun, 8 Mar 2020 19:17:42 +0000 (20:17 +0100)]
ldpd: fix another linking issue with GCC-10

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit 54ca644b6e20416587484011f8e649eeddf2cb15)

5 years agotests: fix build with GCC 10
Ruben Kerkhof [Sun, 8 Mar 2020 16:17:49 +0000 (17:17 +0100)]
tests: fix build with GCC 10

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit 9635de6e9b8cbc35f5ec62d4d1dc8b6c72df8c45)

5 years agoldpd: Fix linking error on Fedora Rawhide with GCC 10
Ruben Kerkhof [Sun, 8 Mar 2020 14:34:40 +0000 (15:34 +0100)]
ldpd: Fix linking error on Fedora Rawhide with GCC 10

GCC 10 switched to -fno-common by default, see
https://gcc.gnu.org/gcc-10/porting_to.html#common for details.

Fixes:
  CCLD     ldpd/ldpd
/usr/bin/ld: ldpd/libldp.a(adjacency.o):/home/ruben/src/frr/ldpd/ldpe.h:294: multiple definition of `pkt_ptr'; ldpd/ldpd.o:/home/ruben/src/frr/ldpd/ldpe.h:294: first defined here

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
(cherry picked from commit 56b7d7252f13f3c90c824287b2441f13e2b0defe)

5 years agoMerge pull request #6148 from opensourcerouting/ldpd-broken-lsps-7.3
Donald Sharp [Tue, 21 Apr 2020 13:09:40 +0000 (09:09 -0400)]
Merge pull request #6148 from opensourcerouting/ldpd-broken-lsps-7.3

[7.3] ldpd: don't drop packets coming through a broken LSP

5 years agoMerge pull request #6223 from dslicenc/ospf6d-brouter-loop-73
Russ White [Tue, 14 Apr 2020 15:29:47 +0000 (11:29 -0400)]
Merge pull request #6223 from dslicenc/ospf6d-brouter-loop-73

[7.3]ospf6d: stop looping thru same Inter-Area Router LSAs

5 years agoospf6d: stop looping thru same Inter-Area Router LSAs 6223/head
Don Slice [Thu, 2 Apr 2020 20:17:33 +0000 (20:17 +0000)]
ospf6d: stop looping thru same Inter-Area Router LSAs

Processing loop uncovered when there are multiple ABRs also
acting as ASBRs into the same area in ospf6.  The problem
was that when looking thru the list of Inter-area router
entries, if the current entry being processed matched, it
still merged next-hops and re-initiated the process.  In
this fix, if the route/path matches and the next-hops also
match, there is no need to re-initiate the examine process.

Ticket: CM-28900
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
5 years agoldpd: don't drop packets coming through a broken LSP 6148/head
Renato Westphal [Fri, 3 Apr 2020 17:42:25 +0000 (14:42 -0300)]
ldpd: don't drop packets coming through a broken LSP

When the Independent Control mode is in use (the default one),
each LDP speaker allocates labels independently, which can lead to
broken LSPs when the LDP and IGP domains are not congruent.

What we were doing in this case was to drop all packets coming
through a broken LSP, which causes drastic side effects in the
network like loss of IP connectivity between routers.

We can however do a best-effort attempt to avoid packet loss by
popping the top-level label of the incoming packets and forwarding
them normally to their nexthops. This will be enough to guarantee
that labeled IP packets will reach their final destination. The
broken LSPs will still be unsuitable to tunnel labeled traffic, like
VPN packets, but in this case there's nothing we can do about it.

Cisco's IOS does something similar, called the "Untagged/No Label"
operation, which removes the entire label stack and forward the
packet unlabeled. We don't have such functionality available in the
Linux kernel, but this shouldn't make any difference for practical
purposes.

Fixes #6127.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
5 years agoMerge pull request #6151 from sworleys/NHG-Backports_7.3
David Lamparter [Mon, 6 Apr 2020 16:04:16 +0000 (18:04 +0200)]
Merge pull request #6151 from sworleys/NHG-Backports_7.3

[7.3] NHG Backports

5 years agozebra: add null check before connecting recursive depend 6151/head
Stephen Worley [Tue, 21 Jan 2020 20:03:52 +0000 (15:03 -0500)]
zebra: add null check before connecting recursive depend

Add a null check in `handle_recursive_depend()` so it
doesn't try to add a NULL pointer to the RB tree.

This was found with clang SA.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit a7e1b02d4a6794a5caa475ab6e4bfc30fdc6b31b)

5 years agozebra: reset nexthop pointer in zread of nexthops
Stephen Worley [Mon, 6 Jan 2020 18:33:45 +0000 (13:33 -0500)]
zebra: reset nexthop pointer in zread of nexthops

We were not resetting the nexthop pointer to NULL for each
new read of a nexthop from the zapi route. On the chance we
get a nexthop that does not have a proper type, we will not
create a new nexthop and update that pointer, thus it still
has the last valid one and will create a group with two
pointers to the same nexthop.

Then when it enters any code that iterates the group, it loops
endlessly.

This was found with zapi fuzzing.

```
0x00007f728891f1c3 in jhash2 (k=<optimized out>, length=<optimized out>, initval=12183506) at lib/jhash.c:138
0x00007f728896d92c in nexthop_hash (nexthop=<optimized out>) at lib/nexthop.c:563
0x00007f7288979ece in nexthop_group_hash (nhg=<optimized out>) at lib/nexthop_group.c:394
0x0000000000621036 in zebra_nhg_hash_key (arg=<optimized out>) at zebra/zebra_nhg.c:356
0x00007f72888ec0e1 in hash_get (hash=<optimized out>, data=0x7ffffb94aef0, alloc_func=0x0) at lib/hash.c:138
0x00007f72888ee118 in hash_lookup (hash=0x7f7288de2f10, data=0x7f728908e7fc) at lib/hash.c:183
0x0000000000626613 in zebra_nhg_find (nhe=0x7ffffb94b080, id=0, nhg=0x6020000032d0, nhg_depends=0x0, vrf_id=<optimized out>,
    afi=<optimized out>, type=<optimized out>) at zebra/zebra_nhg.c:541
0x0000000000625f39 in zebra_nhg_rib_find (id=0, nhg=<optimized out>, rt_afi=AFI_IP) at zebra/zebra_nhg.c:1126
0x000000000065f953 in rib_add_multipath (afi=AFI_IP, safi=<optimized out>, p=0x7ffffb94b370, src_p=0x0, re=0x6070000013d0,
    ng=0x7f728908e7fc) at zebra/zebra_rib.c:2616
0x0000000000768f90 in zread_route_add (client=0x61f000000080, hdr=<optimized out>, msg=<optimized out>, zvrf=<optimized out>)
    at zebra/zapi_msg.c:1596
0x000000000077c135 in zserv_handle_commands (client=<optimized out>, msg=0x61b000000780) at zebra/zapi_msg.c:2636
0x0000000000575e1f in main (argc=<optimized out>, argv=<optimized out>) at zebra/main.c:309
```

```
(gdb) p *nhg->nexthop
$4 = {next = 0x5488e0, prev = 0x5488e0, vrf_id = 16843009, ifindex = 16843009, type = NEXTHOP_TYPE_IFINDEX, flags = 8 '\b', {gate = {ipv4 = {s_addr = 0},
      ipv6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}},
    bh_type = BLACKHOLE_UNSPEC}, src = {ipv4 = {s_addr = 0}, ipv6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0,
          0}, __u6_addr32 = {0, 0, 0, 0}}}}, rmap_src = {ipv4 = {s_addr = 0}, ipv6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0,
          0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}}, resolved = 0x0, rparent = 0x0, nh_label_type = ZEBRA_LSP_NONE, nh_label = 0x0, weight = 1 '\001'}
(gdb) quit

```

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit c8b891b48392e0d29eb7b56942e4df697d4c14fd)

5 years agozebra: don't created connected if duplicate depend
Stephen Worley [Mon, 6 Jan 2020 17:58:41 +0000 (12:58 -0500)]
zebra: don't created connected if duplicate depend

Since we are using a UNIQUE RB tree, we need to handle the
case of adding in a duplicate entry into it.

The list API code returns NULL when a successfull add
occurs, so lets pull that handling further up into
the connected handlers. Then, free the allocated
connected struct if it is a duplicate.

This is a pretty unlikely situation to happen.

Also, pull up the RB handling of _del RB API as well.

This was found with the zapi fuzzing code.

```
==1052840==
==1052840== 200 bytes in 5 blocks are definitely lost in loss record 545 of 663
==1052840==    at 0x483BB1A: calloc (vg_replace_malloc.c:762)
==1052840==    by 0x48E1008: qcalloc (memory.c:110)
==1052840==    by 0x44D357: nhg_connected_new (zebra_nhg.c:73)
==1052840==    by 0x44D300: nhg_connected_tree_add_nhe (zebra_nhg.c:123)
==1052840==    by 0x44FBDC: depends_add (zebra_nhg.c:1077)
==1052840==    by 0x44FD62: depends_find_add (zebra_nhg.c:1090)
==1052840==    by 0x44E46D: zebra_nhg_find (zebra_nhg.c:567)
==1052840==    by 0x44E1FE: zebra_nhg_rib_find (zebra_nhg.c:1126)
==1052840==    by 0x45AD3D: rib_add_multipath (zebra_rib.c:2616)
==1052840==    by 0x4977DC: zread_route_add (zapi_msg.c:1596)
==1052840==    by 0x49ABB9: zserv_handle_commands (zapi_msg.c:2636)
==1052840==    by 0x428B11: main (main.c:309)
```

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 5bf15faa19288144c214ca48ef26e01512037ef6)

5 years agozebra: break if duplicate nexthop found in nhe2grp
Stephen Worley [Thu, 26 Mar 2020 14:57:45 +0000 (10:57 -0400)]
zebra: break if duplicate nexthop found in nhe2grp

If we find that a nexthop is a duplicate, break immediately
rather than continuing to look through the rest of the list.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit d43122b58f4bf9cb729c786b990ae254b8dde35b)

5 years agozebra: properly set the NEXTHOP_GROUP_VALID flag
Stephen Worley [Thu, 30 Jan 2020 21:43:09 +0000 (16:43 -0500)]
zebra: properly set the NEXTHOP_GROUP_VALID flag

Properly set the NEXTHOP_GROUP_VALID flag and use it
as a conditional for installation decisions for individual
nexthop and groups containing it.

We set the NEXTHOP_GROUP_VALID flag it is:

1) A fully resolved active nexthop
or
2) Its a group that contains at least one VALID NHE

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 086e4e02f5fe02849ad9a6c17472094c1c1cbd98)

5 years agozebra: set valid on re->nhe directly in nexthop_active_update()
Stephen Worley [Thu, 30 Jan 2020 17:34:35 +0000 (12:34 -0500)]
zebra: set valid on re->nhe directly in nexthop_active_update()

We were still doing a lookup on the nhe_id from before we
started referencing re->nhe directly.

Change set flag to just use re->nhe directly here since they
should always be the same at this point in the code anyway.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 715e5c70d564017a8b709599e23bf94884ab9bb9)

5 years agozebra: add debug for duplicate NH in dataplane array conversion
Stephen Worley [Tue, 28 Jan 2020 20:20:18 +0000 (15:20 -0500)]
zebra: add debug for duplicate NH in dataplane array conversion

When we find a nexthop ID thats a duplicate in the code that converts
NHG rb trees into a flat list of nexthop IDs for the dataplane,
output a debug message.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit b1c3f7ef80fb626a15a1043b4c46f53c3fd34826)

5 years agozebra: don't add ID to kernel nh_grp if not installed/queued
Stephen Worley [Tue, 28 Jan 2020 19:33:10 +0000 (14:33 -0500)]
zebra: don't add ID to kernel nh_grp if not installed/queued

When we transform the nexthop group rb trees into a flat
array of IDs to send into the dataplane code (zebra_nhg_nhe2grp),
don't put an ID in there that has not been in installed or is
not currently queued to be installed into the dataplane.

Otherwise, if some of the nexthops fail to install, we will
still try to create a group with them and then the entire group
will fail.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 1866b3afc259c565f42a9aab262ede27c142eea4)

5 years agozebra: handle NHG in NHG dataplane group conversion
Stephen Worley [Tue, 28 Jan 2020 00:36:01 +0000 (19:36 -0500)]
zebra: handle NHG in NHG dataplane group conversion

We were not properly handling the case of a NHG inside of
another NHG when converting the rb tree of a multilevel NHG
into a flat list of IDs. When constructing, we call the function
zebra_nhg_nhe2grp_internal() recursively so that the rare
case of a group within a group is handled such that its
singleton nexthops are appended to the grp array of IDs
we send to the dataplane code.

Ex)

1:
-> 2:
-> 3
-> 4
->5:
->6

becomes this:

1:
->3
->4
->6

when its sent to the dataplane code for final kernel installation.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 497ff5792f6a27702bf4ee33b79e1a80ffcf0a09)

5 years agoMerge pull request #6142 from opensourcerouting/7.3/defaults-fix-bools
Donald Sharp [Thu, 2 Apr 2020 22:49:43 +0000 (18:49 -0400)]
Merge pull request #6142 from opensourcerouting/7.3/defaults-fix-bools

[7.3] bgpd, ospfd, ospf6d: long is not bool :(

5 years agoMerge pull request #6140 from sworleys/NHG-Fix-Dup-Leak_7.3
Mark Stapp [Thu, 2 Apr 2020 19:25:32 +0000 (15:25 -0400)]
Merge pull request #6140 from sworleys/NHG-Fix-Dup-Leak_7.3

[7.3] zebra: free unhashable (dup) NHEs via ID table cleanup

5 years agobgpd, ospfd, ospf6d: long is not bool :( 6142/head
David Lamparter [Thu, 2 Apr 2020 19:16:04 +0000 (21:16 +0200)]
bgpd, ospfd, ospf6d: long is not bool :(

... Oops ...

(for context, the defaults code originally didn't have a dedicated
"bool" variant and just used long for bools...  I derp'd this when
adding bool as a separate case :( )

Reported-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@diac24.net>
(cherry picked from commit 4c1458b595282bff6a6e0b20767bb5cb655d0b4c)

5 years agozebra: free unhashable (dup) NHEs via ID table cleanup 6140/head
Stephen Worley [Wed, 1 Apr 2020 19:31:40 +0000 (15:31 -0400)]
zebra: free unhashable (dup) NHEs via ID table cleanup

Free unhashable (duplicate NHEs from the kernel) via ID table
cleanup. Since the NHE ID hash table contains extra entries,
that's the one we need to be calling zebra_nhg_hash_free()
on, otherwise we will never free the unhashable NHEs.

This was found via a memleak:

==1478713== HEAP SUMMARY:
==1478713==     in use at exit: 10,267 bytes in 46 blocks
==1478713==   total heap usage: 76,810 allocs, 76,764 frees, 3,901,237 bytes allocated
==1478713==
==1478713== 208 (88 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 35 of 41
==1478713==    at 0x483BB1A: calloc (vg_replace_malloc.c:762)
==1478713==    by 0x48E35E8: qcalloc (memory.c:110)
==1478713==    by 0x451CCB: zebra_nhg_alloc (zebra_nhg.c:369)
==1478713==    by 0x453DE3: zebra_nhg_copy (zebra_nhg.c:379)
==1478713==    by 0x452670: nhg_ctx_process_new (zebra_nhg.c:1143)
==1478713==    by 0x4523A8: nhg_ctx_process (zebra_nhg.c:1234)
==1478713==    by 0x452A2D: zebra_nhg_kernel_find (zebra_nhg.c:1294)
==1478713==    by 0x4326E0: netlink_nexthop_change (rt_netlink.c:2433)
==1478713==    by 0x427320: netlink_parse_info (kernel_netlink.c:945)
==1478713==    by 0x432DAD: netlink_nexthop_read (rt_netlink.c:2488)
==1478713==    by 0x41B600: interface_list (if_netlink.c:1486)
==1478713==    by 0x457275: zebra_ns_enable (zebra_ns.c:127)

Repro with:
ip next add id 1 blackhole
ip next add id 2 blackhole

valgrind /usr/lib/frr/zebra

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit c25c3ea57a3dcd3b36d86ba76dd34961bcb662f0)

5 years agoMerge pull request #6136 from sworleys/NHG-Fix-Src_7.3
Mark Stapp [Thu, 2 Apr 2020 17:19:03 +0000 (13:19 -0400)]
Merge pull request #6136 from sworleys/NHG-Fix-Src_7.3

[7.3] zebra: determine src with nexthop objects as well

5 years agozebra: determine src when using nexthop objects 6136/head
Stephen Worley [Tue, 24 Mar 2020 21:32:21 +0000 (17:32 -0400)]
zebra: determine src when using nexthop objects

Determine src based on nexthop data even when we are using
kernel nexthop objects.

Before, we were entirely skipping this step and just sending the
nexthop ID, ignoring src determination.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit d8bfd8dc9a899f841967257a6b5f30910fdc17c8)

5 years agozebra: abstract route src determiniation into func
Stephen Worley [Tue, 24 Mar 2020 21:10:08 +0000 (17:10 -0400)]
zebra: abstract route src determiniation into func

Abstraction the route src determination from a nexthop in the
netlink code into a function for both singlepath and mutlipath
to call.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
(cherry picked from commit 762288f50f5fa29512864fcc7814be83e1b58ff4)

5 years agoMerge pull request #6098 from opensourcerouting/73_topo-fixes
Donald Sharp [Fri, 27 Mar 2020 02:06:23 +0000 (22:06 -0400)]
Merge pull request #6098 from opensourcerouting/73_topo-fixes

Topotest fixes

5 years agotests: fix check for nhid in ipv6 table output 6098/head
Martin Winter [Fri, 20 Mar 2020 22:53:39 +0000 (23:53 +0100)]
tests: fix check for nhid in ipv6 table output

Check based on actual output instead of assuming output based
on kernel version

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agotests: Make topotest working on different locale
Martin Winter [Fri, 20 Mar 2020 22:50:29 +0000 (23:50 +0100)]
tests: Make topotest working on different locale

"sort" as used in all-protocol-startup used sort which causes
different sort order based on locale settings. Specify the
correct one to make output matching our expected result

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agoMerge pull request #6063 from donaldsharp/73_want_a_yump
Sri Mohana Singamsetty [Sat, 21 Mar 2020 01:11:37 +0000 (18:11 -0700)]
Merge pull request #6063 from donaldsharp/73_want_a_yump

yang: Partially revert code to restore functionality

5 years agoyang: Partially revert code to restore functionality 6063/head
Donald Sharp [Thu, 19 Mar 2020 02:30:28 +0000 (22:30 -0400)]
yang: Partially revert code to restore functionality

Partially revert code from commit:
f22b9250853229c93617ffdad139a4762f5f7348

since this broke passive-interface, network and offset-list
commands in rip and ripng

Fixes: #6001
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #5980 from donaldsharp/backport_no_nhg_kernel_73
Donatas Abraitis [Thu, 12 Mar 2020 08:43:18 +0000 (10:43 +0200)]
Merge pull request #5980 from donaldsharp/backport_no_nhg_kernel_73

zebra: [7.3] add config to disable use of kernel nexthops

5 years agozebra: add config to disable use of kernel nexthops 5980/head
Mark Stapp [Tue, 28 Jan 2020 16:00:42 +0000 (11:00 -0500)]
zebra: add config to disable use of kernel nexthops

Add a config that disables use of kernel-level nexthop ids.
Currently, zebra always uses nexthop ids if the kernel supports
them.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoMerge pull request #5888 from ton31337/fix/do_not_show_failed_if_shutdown_7.3
Russ White [Tue, 3 Mar 2020 14:37:47 +0000 (09:37 -0500)]
Merge pull request #5888 from ton31337/fix/do_not_show_failed_if_shutdown_7.3

bgpd: [7.3] `show bgp summary failed` backports

5 years agobgpd: Format properly `show bgp summary failed` 5888/head
Donatas Abraitis [Tue, 11 Feb 2020 16:02:19 +0000 (18:02 +0200)]
bgpd: Format properly `show bgp summary failed`

Before:
```
Neighbor        EstdCnt DropCnt ResetTime Reason
192.168.0.1           0       0    never  Waiting for peer OPEN
```

After:
```
Neighbor        EstdCnt DropCnt ResetTime Reason
192.168.0.1           0       0     never Waiting for peer OPEN
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Show the real reason why the peer is failed
Donatas Abraitis [Fri, 14 Feb 2020 21:21:55 +0000 (23:21 +0200)]
bgpd: Show the real reason why the peer is failed

If the peer was shutdown locally, it doesn't show up as admin. shutdown.
Instead it's treated as "Waiting for peer OPEN".

The same applies to when the peer reaches maximum-prefix count.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
5 years agobgpd: Update failed reason to distinguish some NHT scenarios
Donald Sharp [Tue, 11 Feb 2020 00:25:52 +0000 (19:25 -0500)]
bgpd: Update failed reason to distinguish some NHT scenarios

Current failed reasons for bgp when you have a peer that
is not online yet is `Waiting for NHT`, even if NHT has
succeeded.  Add some code to differentiate this.

eva# show bgp ipv4 uni summ failed
BGP router identifier 192.168.201.135, local AS number 3923 vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 2, using 43 KiB of memory
Neighbor        EstdCnt DropCnt ResetTime Reason
192.168.44.1          0       0    never  Waiting for NHT
192.168.201.139       0       0    never  Waiting for Open to Succeed
Total number of neighbors 2
eva#

eva# show bgp nexthop
Current BGP nexthop cache:
 192.168.44.1 invalid, peer 192.168.44.1
  Must be Connected
  Last update: Mon Feb 10 19:05:19 2020

 192.168.201.139 valid [IGP metric 0], #paths 0, peer 192.168.201.139

So 192.168.201.139 is a peer for a connected route that has not been
created on .139, while 44.1 nexthop tracking has not succeeded yet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #5832 from mjstapp/fix_rtadv_stubs_7_3
Donatas Abraitis [Wed, 19 Feb 2020 20:02:24 +0000 (21:02 +0100)]
Merge pull request #5832 from mjstapp/fix_rtadv_stubs_7_3

[7.3] zebra: Fix rtadv stubs

5 years agozebra: fix missing route-advert stubs 5832/head
Mark Stapp [Wed, 19 Feb 2020 13:44:05 +0000 (08:44 -0500)]
zebra: fix missing route-advert stubs

Stubs are used when frr is built without route-advert
support; a couple of apis were missing, causing builds to fail.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoFRRouting Release 7.3 frr-7.3
Martin Winter [Fri, 14 Feb 2020 14:03:09 +0000 (15:03 +0100)]
FRRouting Release 7.3

BGPd
   EVPN PIP Support
   Route Aggregation code speed ups
   BGP Vector I/O speed ups
   New CLI: `set distance XXX`
   New CLI: `aggregate-address A.B.C.D/M route-map WORD`
   New CLI: `bgp reject-as-sets`
   New CLI: `advertise pip ...`
   New CLI: `match evpn rd ASN:NN_OR_IP-ADDRESS:NN`
   New CLI: `show bgp l2vpn evpn community|large-community X`
   New CLI: `show bgp l2vpn evpn A.B.C.D`
   Auto-completion for clear bgp command
   Add ability to set tcp socket buffer size
OSPFd
   Partial MPLS TE support
PBRd
   New CLI: `set vrf unchanged|NAME`
BFDd
   VRF Support
   New CLI: 'show bfd peers brief'
   New CLI: 'clear bfd peer ...'
PIMd
   Significant Speedups in accessing Internal Data for higher scale
   Support for joining any-source Multicast
   Updated CLI: 'show ip pim upstream-join-desired'
   New CLI: 'show ip pim channel'
   Debug Cleanup
   MLAG experimental support
VRRPd
   VRF Support
   Northbound Conversion- NHRPd
vtysh
   New CLI: `banner motd line LINE...`
yangx
   New CLI: `show yang operational-data XPATH`
   New CLI: `debug northbound`
Zebra
   Nexthop Group support
   New CLI: 'debug zebra nexthop [detail]'
   New CLI: 'show router-id'
   MLAG experimental support
watchfrr
   Additional status messages of system state to systemd
   New CLI: `watchfrr ignore DAEMON`
Others
   As always all daemons have received too many bug fixes to fully list
   There has been a significant focus on increasing test coverage
Change in Behavior:
   ISISd
      All areas created default automatically to level-1-2
   Zebra
      Nexthop Group Installation in Kernel is turned on by default
      if the kernel supports-    New CLI: 'show nexthop-group rib [singleton]'
   Man Pages
      Renamed to frr-* to remove collision with other packages

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agoMerge pull request #5782 from donaldsharp/bgp_73
Russ White [Tue, 11 Feb 2020 16:27:29 +0000 (11:27 -0500)]
Merge pull request #5782 from donaldsharp/bgp_73

[7.3]bgpd: Remove prefix pointer creation

5 years agoMerge pull request #5784 from donaldsharp/dc_73
Mark Stapp [Mon, 10 Feb 2020 15:49:44 +0000 (10:49 -0500)]
Merge pull request #5784 from donaldsharp/dc_73

[7.3] Double commit of nexthop cli changes to get this in.

5 years agodoc: Update doc to reflect changes in `show nexthop-group rib` command 5784/head
Donald Sharp [Wed, 15 Jan 2020 13:28:22 +0000 (08:28 -0500)]
doc: Update doc to reflect changes in `show nexthop-group rib` command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>