]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
4 years agonhrp: Make vici socket path configurable
Zoran Pericic [Sat, 25 Jan 2020 18:38:39 +0000 (19:38 +0100)]
nhrp: Make vici socket path configurable

nhrp: Configure vici socket path using

configure --with-vici-socket=/var/run/charon.vici

If not specified default to /var/run/charon.vici

Signed-off-by: Zoran Peričić <zpericic@netst.org>
4 years agoMerge pull request #6927 from donaldsharp/16_coverity
Olivier Dugeon [Mon, 12 Oct 2020 07:22:46 +0000 (09:22 +0200)]
Merge pull request #6927 from donaldsharp/16_coverity

Cleanup a bunch of new coverity issues

4 years agoospf6d, tests: Prevent use after free
Donald Sharp [Mon, 17 Aug 2020 12:25:12 +0000 (08:25 -0400)]
ospf6d, tests: Prevent use after free

The code pattern:

for (ALL_LSDB(lsdb, lsa)) {
remove_lsa(lsa)
}

has a use after free in ALL_LSDB, since we ask for the next pointer,
after it has been freed.

Modify the code such that we grab the next pointer before we can
possibly free it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoospf6d: Make ospf6_lsa_lock follow normal FRR pattern
Donald Sharp [Sun, 11 Oct 2020 15:13:33 +0000 (11:13 -0400)]
ospf6d: Make ospf6_lsa_lock follow normal FRR pattern

The normal ospf6_lsa_lock call should return the pointer
to the lock data structure we are holding.  This is the
normal pattern for locking a data structure in FRR.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: zevpn cannot be null passed into zebra_evpn_es_evi_show_one_evpn
Donald Sharp [Sat, 15 Aug 2020 17:41:18 +0000 (13:41 -0400)]
zebra: zevpn cannot be null passed into zebra_evpn_es_evi_show_one_evpn

In zebra_evpn_es_evi_show_vni the zevpn pointer if passed into
zebra_evpn_es_evi_show_one_evi will crash if it is null and
we have code that checks that it is non null and then immediately
calls the function.  Add a return to prevent a crash.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agozebra: n->mac is derefed in all paths
Donald Sharp [Sat, 15 Aug 2020 17:37:09 +0000 (13:37 -0400)]
zebra: n->mac is derefed in all paths

No need to check for n->mac existence as that all paths
leading to this code have n->mac already derefed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoMerge pull request #7222 from idryzhov/fix-debug
Renato Westphal [Sat, 10 Oct 2020 00:58:24 +0000 (21:58 -0300)]
Merge pull request #7222 from idryzhov/fix-debug

fix debug commands node inconsistencies

4 years agoMerge pull request #7270 from donaldsharp/isis_cleanup
Renato Westphal [Sat, 10 Oct 2020 00:53:06 +0000 (21:53 -0300)]
Merge pull request #7270 from donaldsharp/isis_cleanup

Isis cleanup

4 years agoMerge pull request #7269 from idryzhov/rip-crash-fix
Donald Sharp [Fri, 9 Oct 2020 23:38:07 +0000 (19:38 -0400)]
Merge pull request #7269 from idryzhov/rip-crash-fix

rip(ng)d: fix interfaces cleaning (leads to crash #6477)

4 years agoMerge pull request #7268 from ton31337/fix/dead_name_bgpd
Donald Sharp [Fri, 9 Oct 2020 23:34:38 +0000 (19:34 -0400)]
Merge pull request #7268 from ton31337/fix/dead_name_bgpd

bgpd: Use default VRF name if using `router bgp` command

4 years agoMerge pull request #7271 from vishaldhingra/static
Donald Sharp [Fri, 9 Oct 2020 23:29:55 +0000 (19:29 -0400)]
Merge pull request #7271 from vishaldhingra/static

staticd: To set the default value of blackhole type correctly

4 years agoMerge pull request #7265 from qlyoung/doc-black
Mark Stapp [Fri, 9 Oct 2020 18:02:52 +0000 (14:02 -0400)]
Merge pull request #7265 from qlyoung/doc-black

doc: document use of black for python formatting

4 years agostaticd: To set the default value of blackhole type correctly
vdhingra [Fri, 9 Oct 2020 16:23:14 +0000 (09:23 -0700)]
staticd: To set the default value of blackhole type correctly

When nexthop is allocated, default value of blockhole type
was not getting set, this leads to below problem. The default
value should be in-sync with the deafult value in yang model.

c t
ip route 131.1.1.0/24 Null0

do show running-config
...
!
ip route 131.1.1.0/24 blackhole
!
end

Signed-off-by: vishaldhingra <vdhingra@vmware.com>
4 years agoisisd: circuit->area->isis to circuit->isis
Donald Sharp [Fri, 9 Oct 2020 12:00:44 +0000 (08:00 -0400)]
isisd: circuit->area->isis to circuit->isis

The code in isisd uses `circuit->area->isis` all the time
but we know that circuit now has a valid `circuit->isis` pointer
so let's use that and cleanup the long dereference.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agorip(ng)d: fix interfaces cleaning
Igor Ryzhov [Fri, 9 Oct 2020 12:14:58 +0000 (15:14 +0300)]
rip(ng)d: fix interfaces cleaning

rip(ng)d_instance_disable unlinks the vrf from the instance which means
that rip(ng)_interfaces_clean never works, because rip(ng)->vrf is
always NULL there. This leads to the crash #6477.

Clean interfaces before disabling the instance to fix the issue.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoisisd: Always set `circuit->isis` on creation
Donald Sharp [Fri, 9 Oct 2020 12:10:20 +0000 (08:10 -0400)]
isisd: Always set `circuit->isis` on creation

There are code paths where we were not always setting the
circuit->isis on creation.  Fix that up so it will always
happen.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7266 from idryzhov/isis-fixes
Donald Sharp [Fri, 9 Oct 2020 11:55:08 +0000 (07:55 -0400)]
Merge pull request #7266 from idryzhov/isis-fixes

isis crash fix

4 years agoMerge pull request #7252 from sworleys/EVPN-RType-Help
Donatas Abraitis [Fri, 9 Oct 2020 06:19:18 +0000 (09:19 +0300)]
Merge pull request #7252 from sworleys/EVPN-RType-Help

lib,bgpd: EVPN help string cleanup

4 years agoMerge pull request #7264 from donaldsharp/ospfv3_funkiness
Donatas Abraitis [Fri, 9 Oct 2020 06:16:51 +0000 (09:16 +0300)]
Merge pull request #7264 from donaldsharp/ospfv3_funkiness

Some cleanup from recent commits

4 years agobgpd: Use default VRF name if using `router bgp` command
Donatas Abraitis [Fri, 9 Oct 2020 06:02:49 +0000 (09:02 +0300)]
bgpd: Use default VRF name if using `router bgp` command

When we enter `router bgp` it enters non-VRF instance which is default.

No need to check for VRF/VIEW name, kinda dead code.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #7262 from idryzhov/hide-bgpd-test
Donald Sharp [Fri, 9 Oct 2020 01:45:41 +0000 (21:45 -0400)]
Merge pull request #7262 from idryzhov/hide-bgpd-test

bgpd: hide test commands

4 years agodoc: Fix pimd.rst warnings issued by sphinx
Donald Sharp [Thu, 8 Oct 2020 14:41:37 +0000 (10:41 -0400)]
doc: Fix pimd.rst warnings issued by sphinx

A couple warnings have sneaked into the compilation of the pim
documentation.  Fix accordingly.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoospf6d: Move header includes around to reflect reality
Donald Sharp [Thu, 8 Oct 2020 14:38:45 +0000 (10:38 -0400)]
ospf6d: Move header includes around to reflect reality

ospf6_network.h needs ospf6_top.h to be included
first.

This makes newer versions of gcc much much happier.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agoisisd: move debug variables under ifdef
Igor Ryzhov [Thu, 8 Oct 2020 17:06:27 +0000 (20:06 +0300)]
isisd: move debug variables under ifdef

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoisisd: check for circuit existence on interface addr change
Igor Ryzhov [Thu, 8 Oct 2020 17:05:08 +0000 (20:05 +0300)]
isisd: check for circuit existence on interface addr change

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoisisd: fix incorrect vrf lookups
Igor Ryzhov [Thu, 8 Oct 2020 16:23:08 +0000 (19:23 +0300)]
isisd: fix incorrect vrf lookups

Lookup in C_STATE_NA must be made before the new circuit creation, or it
will be leaked if the isis instance is not found. All other lookups are
unnecessary - we just need to remember the previously used instance.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoisisd: add missing rollback if config is invalid
Igor Ryzhov [Thu, 8 Oct 2020 15:42:01 +0000 (18:42 +0300)]
isisd: add missing rollback if config is invalid

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agobgpd: re-use HELP_STR evpn macros
Stephen Worley [Tue, 6 Oct 2020 19:58:12 +0000 (15:58 -0400)]
bgpd: re-use HELP_STR evpn macros

Re-use some of the HELP_STR macros rather than copypastaing
strings everywhere.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agolib: add some EVPN help string constants
Stephen Worley [Tue, 6 Oct 2020 19:14:03 +0000 (15:14 -0400)]
lib: add some EVPN help string constants

Add some EVPN help string constants to make use of
in later commits.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agoMerge pull request #7256 from donaldsharp/topo_fixinator
Rafael Zalamena [Thu, 8 Oct 2020 19:45:35 +0000 (16:45 -0300)]
Merge pull request #7256 from donaldsharp/topo_fixinator

tests: bgp_l3vpn_to_bgp_vrf test needed to correct order

4 years agotests: bgp_l3vpn_to_bgp_vrf test needed to correct order
Quentin Young [Thu, 8 Oct 2020 17:02:06 +0000 (13:02 -0400)]
tests: bgp_l3vpn_to_bgp_vrf test needed to correct order

The bgp_l3vpn_to_bgp_vrf test is looking for a prefix
on multiple routers that the ordered received is non-deterministic.
As such the regex's are failing occassionaly when the
route is received in an unexpected order.

One possible order:
(#89) scripts/check_routes.py:120 COMMAND:ce3:vtysh -c "show bgp ipv4 uni 6.0.1.0":2 available, best .*192.168.1.1.* Local.* 99.0.0.3 from 0.0.0.0 .99.0.0.3.* Origin IGP, metric 200, localpref 50, weight 32768, valid, sourced, local, best .Weight.* Community: 0:67.* Extended Community: RT:89:123.* Large Community: 12:34:56.* Local.* 192.168.1.1 from 192.168.1.1 .192.168.1.1.* Origin IGP, metric 98, localpref 123, valid, internal.* Community: 0:67.* Extended Community: RT:52:100 RT:89:123.* Large Community: 12:34:56:pass:Redundant route 1 details c:
COMMAND OUTPUT:BGP routing table entry for 6.0.1.0/24^M
Paths: (2 available, best #1, table default)^M
  Advertised to non peer-group peers:^M
  192.168.1.1^M
  Local^M
    99.0.0.3 from 0.0.0.0 (99.0.0.3)^M
      Origin IGP, metric 200, localpref 50, weight 32768, valid, sourced, local, best (Weight)^M
      Community: 0:67^M
      Extended Community: RT:89:123^M
      Large Community: 12:34:56^M
      Last update: Wed Oct  7 11:12:22 2020^M
  Local^M
    192.168.1.1 from 192.168.1.1 (192.168.1.1)^M
      Origin IGP, metric 98, localpref 123, valid, internal^M
      Community: 0:67^M
      Extended Community: RT:52:100 RT:89:123^M
      Large Community: 12:34:56^M
      Last update: Wed Oct  7 11:12:41 2020:
R:89   ce3    Redundant route 1 details c                              1    0

Second possible order:
(#89) scripts/check_routes.py:120 COMMAND:ce3:vtysh -c "show bgp ipv4 uni 6.0.1.0":2 available, best .*192.168.1.1.* Local.* 99.0.0.3 from 0.0.0.0 .99.0.0.3.* Origin IGP, metric 200, localpref 50, weight 32768, valid, sourced, local, best .Weight.* Community: 0:67.* Extended Community: RT:89:123.* Large Community: 12:34:56.* Local.* 192.168.1.1 from 192.168.1.1 .192.168.1.1.* Origin IGP, metric 98, localpref 123, valid, internal.* Community: 0:67.* Extended Community: RT:52:100 RT:89:123.* Large Community: 12:34:56:pass:Redundant route 1 details c:
COMMAND OUTPUT:BGP routing table entry for 6.0.1.0/24^M
Paths: (2 available, best #2, table default)^M
  Advertised to non peer-group peers:^M
  192.168.1.1^M
  Local^M
    192.168.1.1 from 192.168.1.1 (192.168.1.1)^M
      Origin IGP, metric 98, localpref 123, valid, internal^M
      Community: 0:67^M
      Extended Community: RT:52:100 RT:89:123^M
      Large Community: 12:34:56^M
      Last update: Wed Oct  7 11:14:45 2020^M
  Local^M
    99.0.0.3 from 0.0.0.0 (99.0.0.3)^M
      Origin IGP, metric 200, localpref 50, weight 32768, valid, sourced, local, best (Weight)^M
      Community: 0:67^M
      Extended Community: RT:89:123^M
      Large Community: 12:34:56^M
      Last update: Wed Oct  7 11:14:27 2020:
R:89   ce3    Redundant route 1 details c                              0    1

BGP displays the paths in the order received since it's just a linked list.
For this test modify/add the luCommands to track that we may
receive the paths in a non-deterministic order.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agodoc: document use of black for python formatting
Quentin Young [Thu, 8 Oct 2020 16:53:13 +0000 (12:53 -0400)]
doc: document use of black for python formatting

Also moves "Exceptions" for C code under the C subsection.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #7260 from qlyoung/reformat-python
Donatas Abraitis [Thu, 8 Oct 2020 16:38:44 +0000 (19:38 +0300)]
Merge pull request #7260 from qlyoung/reformat-python

Reformat python

4 years agobgpd: hide test commands
Igor Ryzhov [Thu, 8 Oct 2020 08:03:25 +0000 (11:03 +0300)]
bgpd: hide test commands

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years ago*: add .ignore-revs for git blame w/ whitespace
Quentin Young [Wed, 7 Oct 2020 21:26:27 +0000 (17:26 -0400)]
*: add .ignore-revs for git blame w/ whitespace

git blame supports taking a file with a list of revisions to ignore

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years ago*: reformat python files
whitespace [Wed, 7 Oct 2020 21:22:26 +0000 (17:22 -0400)]
*: reformat python files

We are now using black.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #7254 from idryzhov/vtysh-include
Quentin Young [Wed, 7 Oct 2020 18:54:46 +0000 (14:54 -0400)]
Merge pull request #7254 from idryzhov/vtysh-include

vtysh: remove unnecessary include

4 years agoMerge pull request #7058 from Niral-Networks/niral_dev_vrf_ospf6
Rafael Zalamena [Wed, 7 Oct 2020 15:07:09 +0000 (12:07 -0300)]
Merge pull request #7058 from Niral-Networks/niral_dev_vrf_ospf6

ospf6d : Socket change for ospf6d vrf support.

4 years agoMerge pull request #7241 from chiragshah6/evpn_dev1
Renato Westphal [Wed, 7 Oct 2020 14:50:52 +0000 (11:50 -0300)]
Merge pull request #7241 from chiragshah6/evpn_dev1

lib: add errmsg to nb rpc

4 years agovtysh: remove unnecessary include
Igor Ryzhov [Wed, 7 Oct 2020 12:27:12 +0000 (15:27 +0300)]
vtysh: remove unnecessary include

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoMerge pull request #7250 from ckishimo/typos
Donatas Abraitis [Wed, 7 Oct 2020 11:43:09 +0000 (14:43 +0300)]
Merge pull request #7250 from ckishimo/typos

ospfd: fix typos

4 years agoospfd: fix typos
ckishimo [Tue, 6 Oct 2020 18:07:53 +0000 (11:07 -0700)]
ospfd: fix typos

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
4 years agoMerge pull request #7246 from mjstapp/fix_bgp_nb_sa
Donatas Abraitis [Wed, 7 Oct 2020 06:46:15 +0000 (09:46 +0300)]
Merge pull request #7246 from mjstapp/fix_bgp_nb_sa

bgpd: fix SA warnings in bgp northbound

4 years agoMerge pull request #7239 from opensourcerouting/bgp-aggregate-med
Donatas Abraitis [Wed, 7 Oct 2020 06:44:30 +0000 (09:44 +0300)]
Merge pull request #7239 from opensourcerouting/bgp-aggregate-med

bgpd: aggregate-address on matching MED only

4 years agoospf6d : Socket change for ospf6d vrf support.
Kaushik [Sat, 5 Sep 2020 07:07:25 +0000 (00:07 -0700)]
ospf6d : Socket change for ospf6d vrf support.

1. The socket() call is changed to vrf_socket().
2. The ospf6 instance creation api added.
3. The global socket fd is replaced with ospf6->fd.
4. All dependency of the global socket is resolved.
5. Added the ospf6 receive timer in the global structure.
6. Performed the thread off on receive timer when we do "no router ospf6".

Co-authored-by: harios <hari@niralnetworks.com>
Signed-off-by: Kaushik <kaushik@niralnetworks.com>
4 years agoMerge pull request #7248 from donaldsharp/revert_7113
Russ White [Tue, 6 Oct 2020 14:51:22 +0000 (10:51 -0400)]
Merge pull request #7248 from donaldsharp/revert_7113

Revert "bgpd: allow bestpath to handle mutliple locally-originated pa…

4 years agoRevert "bgpd: allow bestpath to handle mutliple locally-originated paths"
Donald Sharp [Tue, 6 Oct 2020 14:43:09 +0000 (10:43 -0400)]
Revert "bgpd: allow bestpath to handle mutliple locally-originated paths"

This reverts commit 82a843fa3df4adff6d2eaffbaba96eb136fcaebb.

4 years agoMerge pull request #7202 from gromit1811/proposed_fix_7030
Olivier Dugeon [Tue, 6 Oct 2020 14:42:41 +0000 (16:42 +0200)]
Merge pull request #7202 from gromit1811/proposed_fix_7030

ospf6d: Fix flooding of old copies of self-originated LSAs

4 years agoMerge pull request #7113 from donaldsharp/bgp_bestpath_origin
Russ White [Tue, 6 Oct 2020 14:41:31 +0000 (10:41 -0400)]
Merge pull request #7113 from donaldsharp/bgp_bestpath_origin

bgpd: allow bestpath to handle mutliple locally-originated paths

4 years agotests: bgp_l3vpn_to_bgp_vrf - verify details of exported/imported routes
Lou Berger [Thu, 1 Oct 2020 12:55:32 +0000 (08:55 -0400)]
tests: bgp_l3vpn_to_bgp_vrf - verify details of exported/imported routes

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agotests: bgp_l3vpn_to_bgp_vrf - change 1 route to have equal metrics
Lou Berger [Wed, 30 Sep 2020 14:50:57 +0000 (10:50 -0400)]
tests: bgp_l3vpn_to_bgp_vrf - change 1 route to have equal metrics

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agotests: bgp_l3vpn_to_bgp_vrf - add bestpath checks
Lou Berger [Wed, 30 Sep 2020 04:09:46 +0000 (00:09 -0400)]
tests: bgp_l3vpn_to_bgp_vrf - add bestpath checks

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agotests: lib/bgprib.py - add bestpath checks and logging to lu log file
Lou Berger [Wed, 30 Sep 2020 04:09:04 +0000 (00:09 -0400)]
tests: lib/bgprib.py - add bestpath checks and logging to lu log file

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agotests: bgp_l3vpn_to_bgp_vrf - add redundant ce routes
Lou Berger [Tue, 29 Sep 2020 18:23:32 +0000 (14:23 -0400)]
tests: bgp_l3vpn_to_bgp_vrf - add redundant ce routes

Signed-off-by: Lou Berger <lberger@labn.net>
4 years agobgpd: allow bestpath to handle mutliple locally-originated paths
Donald Sharp [Wed, 16 Sep 2020 19:04:16 +0000 (15:04 -0400)]
bgpd: allow bestpath to handle mutliple locally-originated paths

Current code in bgp bestpath selection would accept the newest
locally originated path as the best path.  Making the selection
non-deterministic.  Modify the code to always come to the
same bestpath conclusion when you have multiple locally originated
paths in bestpath selection.

Before:

eva# conf
eva(config)# router bgp 323
eva(config-router)# address-family ipv4 uni
eva(config-router-af)# redistribute connected
eva(config-router-af)# network 192.168.161.0/24
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (2 available, best #1, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (Origin)
      Last update: Wed Sep 16 15:03:03 2020
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin incomplete, metric 0, weight 32768, valid, sourced
      Last update: Wed Sep 16 15:02:52 2020
eva(config-router-af)# no redistribute connected
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (First path received)
      Last update: Wed Sep 16 15:03:03 2020
eva(config-router-af)#  redistribute connected
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (2 available, best #2, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin incomplete, metric 0, weight 32768, valid, sourced
      Last update: Wed Sep 16 15:03:32 2020
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (Origin)
      Last update: Wed Sep 16 15:03:03 2020
eva(config-router-af)#

Notice the route choosen depends on order received

Fixed behavior:

eva# conf
eva(config)# router bgp 323
eva(config-router)# address-family ipv4 uni
eva(config-router-af)# redistribute connected
eva(config-router-af)# network 192.168.161.0/24
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (2 available, best #1, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (Origin)
      Last update: Wed Sep 16 15:03:03 2020
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin incomplete, metric 0, weight 32768, valid, sourced
      Last update: Wed Sep 16 15:02:52 2020
eva(config-router-af)# no redistribute connected
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (First path received)
      Last update: Wed Sep 16 15:03:03 2020
eva(config-router-af)#  redistribute connected
eva(config-router-af)# do show bgp ipv4 uni 192.168.161.0
BGP routing table entry for 192.168.161.0/24
Paths: (2 available, best #2, table default)
  Not advertised to any peer
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin incomplete, metric 0, weight 32768, valid, sourced
      Last update: Wed Sep 16 15:03:32 2020
  Local
    0.0.0.0(eva) from 0.0.0.0 (192.168.161.245)
      Origin IGP, metric 0, weight 32768, valid, sourced, local, bestpath-from-AS Local, best (Origin)
      Last update: Wed Sep 16 15:03:03 2020
eva(config-router-af)#

Ticket: CM-31490
Found-by: Trey Aspelund <taspelund@nvidia.com>
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #6725 from donaldsharp/6712
Russ White [Tue, 6 Oct 2020 14:26:34 +0000 (10:26 -0400)]
Merge pull request #6725 from donaldsharp/6712

PIM MSDP cleanup code and commits a bit

4 years agoMerge pull request #7238 from sworleys/Nexthop-Same-First-Remove
Mark Stapp [Tue, 6 Oct 2020 12:33:35 +0000 (08:33 -0400)]
Merge pull request #7238 from sworleys/Nexthop-Same-First-Remove

lib: remove nexthop_same_firsthop() api

4 years agoMerge pull request #7214 from donaldsharp/more_vrf_usefulness
Mark Stapp [Tue, 6 Oct 2020 12:29:45 +0000 (08:29 -0400)]
Merge pull request #7214 from donaldsharp/more_vrf_usefulness

zebra: cleanup zebra_rnh.c debugs

4 years agobgpd: fix SA warnings in bgp northbound
Mark Stapp [Tue, 6 Oct 2020 12:18:59 +0000 (08:18 -0400)]
bgpd: fix SA warnings in bgp northbound

Fix a couple of new SA warnings in the new bgp northbound.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agodoc: MSDP SA forwarding
Adriano Marto Reis [Fri, 10 Jul 2020 03:59:40 +0000 (13:59 +1000)]
doc: MSDP SA forwarding

Updating the documentation.

Signed-off-by: Adriano Reis <areis@barrukka.local>
4 years agopimd: MSDP SA forwarding
Adriano Marto Reis [Thu, 9 Jul 2020 22:56:24 +0000 (08:56 +1000)]
pimd: MSDP SA forwarding

* If the MSDP peer receives the SA from a non-RPF peer towards the
originating RP, it will drop the message.
* SA messages are forwarded away from the RP address only.
* SA messages are not forwarded within the mesh group.
* Preventing the MSDP connection from being dropped due to RPF check
failure (RFC3618, section 13 "MSDP Error Handling")

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
Signed-off-by: Adriano Reis <areis@barrukka.local>
4 years agotopotests: test aggregate-address matching-MED-only
Rafael Zalamena [Fri, 2 Oct 2020 14:59:50 +0000 (11:59 -0300)]
topotests: test aggregate-address matching-MED-only

Add a new topology test for `aggregate-address` to test
`matching-MED-only` and its combination with `summary-only`.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agodoc: new aggregate address option
Rafael Zalamena [Thu, 1 Oct 2020 17:57:41 +0000 (14:57 -0300)]
doc: new aggregate address option

Document the newly implemented aggregate address configuration option.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agobgpd: aggregate address matching-MED-only
Rafael Zalamena [Fri, 2 Oct 2020 18:47:17 +0000 (15:47 -0300)]
bgpd: aggregate address matching-MED-only

Add code to handle MED matching:

- When MED matches act as normal.

- When MED doesn't match do the following:

  * Uninstall the aggregate route
  * Unsuppress routes (if using summary-only)

- When MED didn't match, but now matches:

  * Install the aggregate route
  * Suppress all routes (if using summary-only)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agozebra: display rpc error msg to vtysh
Chirag Shah [Sat, 3 Oct 2020 23:12:31 +0000 (16:12 -0700)]
zebra: display rpc error msg to vtysh

Zebra's clear duplicate detect command is rpc converted.
There is condition where cli fails with human readable message.
Using northboun's errmsg buffer to display error message to
user.

Testing:

bharat# clear evpn dup-addr vni 1002 ip 2011:11::11
Error type: generic error
Error description: Requested IP's associated MAC aa:aa:aa:aa:aa:aa is still in duplicate state

bharat# clear evpn dup-addr vni 1002 ip 11.11.11.11
Error type: generic error
Error description: Requested IP's associated MAC aa:aa:aa:aa:aa:aa is still in duplicate state

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years ago*: add errmsg to nb rpc
Chirag Shah [Sat, 3 Oct 2020 22:34:33 +0000 (15:34 -0700)]
*: add errmsg to nb rpc

Display human readable error message in northbound rpc
transaction failure. In case of vtysh nb client, the error
message will be displayed to user.

Testing:

bharat# clear evpn dup-addr vni 1002 ip 11.11.11.11
Error type: generic error
Error description: Requested IP's associated MAC aa:aa:aa:aa:aa:aa is still
in duplicate state

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agoMerge pull request #6904 from chiragshah6/yang_nb6
Santosh P K [Mon, 5 Oct 2020 16:23:39 +0000 (21:53 +0530)]
Merge pull request #6904 from chiragshah6/yang_nb6

lib, bgpd: Convert global configurations to transactional cli

4 years agoMerge pull request #7124 from volta-networks/fix_ldp_sync_isis_nb
Renato Westphal [Mon, 5 Oct 2020 16:04:15 +0000 (13:04 -0300)]
Merge pull request #7124 from volta-networks/fix_ldp_sync_isis_nb

isisd: fix coverity errors in isis ldp-sync commands

4 years agoMerge pull request #7219 from donaldsharp/rib_fixes
Mark Stapp [Mon, 5 Oct 2020 13:11:50 +0000 (09:11 -0400)]
Merge pull request #7219 from donaldsharp/rib_fixes

Rib fixes

4 years agoMerge pull request #7242 from rsmarples/SO_RERROR
Donald Sharp [Mon, 5 Oct 2020 10:35:38 +0000 (06:35 -0400)]
Merge pull request #7242 from rsmarples/SO_RERROR

BSD: Detect route(4) overflows

4 years agoBSD: Add whitespace between declaration and code
Roy Marples [Mon, 5 Oct 2020 07:10:42 +0000 (08:10 +0100)]
BSD: Add whitespace between declaration and code

Signed-off-by: Roy Marples <roy@marples.name>
4 years agobgpd: simplify aggregate address commands
Rafael Zalamena [Thu, 1 Oct 2020 13:35:52 +0000 (10:35 -0300)]
bgpd: simplify aggregate address commands

Use `DEFPY` instead of `DEFUN` to remove duplicated code.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
4 years agoMerge pull request #7237 from opensourcerouting/topoextcircid
Donald Sharp [Sun, 4 Oct 2020 23:16:06 +0000 (19:16 -0400)]
Merge pull request #7237 from opensourcerouting/topoextcircid

tests: Skip comparing neighbor-extended-circuit-id in yang output.

4 years agoBSD: Detect route(4) overflows
Roy Marples [Sun, 4 Oct 2020 19:32:26 +0000 (20:32 +0100)]
BSD: Detect route(4) overflows

NetBSD and DragonFlyBSD support reporting of route(4) overflows
by setting the socket option SO_RERROR.

This is handled the same as on Linux by exiting with a -1 error code.

Signed-off-by: Roy Marples <roy@marples.name>
4 years agobgpd: no router bgp check candidate config
Chirag Shah [Thu, 17 Sep 2020 21:20:44 +0000 (14:20 -0700)]
bgpd: no router bgp check candidate config

For `no router bgp` without ASN check candidate
config for default bgp instance presence to avoid
failure from checking backend db where bgp instance
may not be created.
This situation can be seen in transactional cli mode
with following config.

bharat(config)# router bgp 101
bharat(config-router)# exit
bharat(config)# no router bgp
% No BGP process is configured
bharat(config)# no router bgp
% No BGP process is configured
bharat(config)#

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: move router bgp nb callback
Chirag Shah [Sun, 20 Sep 2020 15:13:53 +0000 (08:13 -0700)]
bgpd: move router bgp nb callback

move `router bgp` nb callback at `bgp` node level
to have access to bgp context at neighbor and peer-group
level and align create/destroy callbacks call during
no router bgp.

Earlier `no router bgp` is performed first global destroy
callback is called which essentially removes `bgp context`
then it calls to remove (parallel nodes) neighbor and peer-group
which does not have access to bgp context.
Moving router bgp at bgp solves this destroy callback ordering issue.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: correct bgp global context
Chirag Shah [Wed, 16 Sep 2020 17:28:11 +0000 (10:28 -0700)]
bgpd: correct bgp global context

Move bgp (router bgp) context at "bgp" node
level from (instead of) "global" level.
This change allows access of bgp context at neighbor
and peer-group node levels.

    +--rw bgp   <--- (store `struct bgp` at bgp node xpath)
       +--rw global!
       |    ...
       |  +--rw afi-safis
       |    ...
       +--rw neighbors
       |  +--rw neighbor* [remote-address]
       |    ...
       |  |  +--rw afi-safis
       |    ...
       |  +--rw unnumbered-neighbor* [interface]
       |    ...
       +--rw peer-groups
          +--rw peer-group* [peer-group-name]
            ...

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: shorten northbound callback names
Chirag Shah [Wed, 26 Aug 2020 17:50:40 +0000 (10:50 -0700)]
bgpd: shorten northbound callback names

Omit routing protocol augment name from callbacks name.

(Omitted: routing_control_plane_protocols_control_plane_protocol_)

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agotests: add bgp yang module registery to attr test
Chirag Shah [Wed, 19 Aug 2020 21:04:21 +0000 (14:04 -0700)]
tests: add bgp yang module registery to attr test

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agotests/bgpd: initialized candidate_config to vtysh
Chirag Shah [Tue, 18 Aug 2020 18:55:51 +0000 (11:55 -0700)]
tests/bgpd: initialized candidate_config to vtysh

In test_peer_attr.c test is initializd with vty handler
but candiate_config is not set.

northbound converted bgp cli expects to derefence the
candidate_config field which leads to crash.

(gdb) p *test->vty->candidate_config
$9 = {dnode = 0x0, version = 0}

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: register nb routing hook
Chirag Shah [Mon, 17 Aug 2020 00:59:13 +0000 (17:59 -0700)]
bgpd: register nb routing hook

On bgpd bootstrap register routing hook which ensures
only single bgp named instance created per vrf routing
hierarchy.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: convert global config to transactional cli
Chirag Shah [Wed, 12 Aug 2020 20:30:24 +0000 (13:30 -0700)]
bgpd: convert global config to transactional cli

Convert global congigurations clis to transactional
clis using northbound plugin callbacks.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: register northbound callbacks to bootstrap
Chirag Shah [Wed, 12 Aug 2020 05:14:07 +0000 (22:14 -0700)]
bgpd: register northbound callbacks to bootstrap

Register bgpd northbound callbacks to bgp daemon
bootstrap.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agolib: increase the size of northbound max module
Chirag Shah [Wed, 12 Aug 2020 04:31:53 +0000 (21:31 -0700)]
lib: increase the size of northbound max module

Increase the size of frr_yang_module_info
macro to accomodate bgp module list.

root@bharat:~/stash/frr# egrep "xpath" bgpd/bgp_nb.c | wc -l
1150

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agobgpd: bgp northbound callbacks prototypes
Chirag Shah [Wed, 12 Aug 2020 02:14:36 +0000 (19:14 -0700)]
bgpd: bgp northbound callbacks prototypes

This commit contains splitting of auto-generated bgp northbound callbacks
into separate files.
Include the files into bgp makefile.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years ago*: add bgp yang files into makefiles
Chirag Shah [Thu, 23 Jul 2020 18:40:18 +0000 (11:40 -0700)]
*: add bgp yang files into makefiles

Signed-off-by: Chirag Shah <chirag@nvidia.com>
4 years agoMerge pull request #6882 from vishaldhingra/static
Donald Sharp [Sat, 3 Oct 2020 03:52:53 +0000 (23:52 -0400)]
Merge pull request #6882 from vishaldhingra/static

staticd : Added the warning log for route when VRF is not ready.

4 years agoMerge pull request #7225 from idryzhov/vtysh-fix-domainname
Donald Sharp [Fri, 2 Oct 2020 22:15:26 +0000 (18:15 -0400)]
Merge pull request #7225 from idryzhov/vtysh-fix-domainname

vtysh: fix multiple "domainname" commands in running config

4 years agoMerge pull request #7228 from idryzhov/vtysh-dynamic-daemons
Donald Sharp [Fri, 2 Oct 2020 22:07:31 +0000 (18:07 -0400)]
Merge pull request #7228 from idryzhov/vtysh-dynamic-daemons

vtysh: dynamically generate the list of daemons for commands

4 years agoMerge pull request #7236 from idryzhov/fix-docstrings
Donald Sharp [Fri, 2 Oct 2020 21:59:52 +0000 (17:59 -0400)]
Merge pull request #7236 from idryzhov/fix-docstrings

isisd, ospfd: fix missing/excessive docstrings

4 years agolib: remove nexthop_same_firsthop() api
Stephen Worley [Fri, 2 Oct 2020 21:25:36 +0000 (17:25 -0400)]
lib: remove nexthop_same_firsthop() api

Remove the nexthop_same_firsthop() api and just call nexthop_same().
Not entirely sure why we were using this function in the first place,
but now we are just marking dupes with it so lets just call a
common function and avoid issues.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agotests: Skip comparing neighbor-extended-circuit-id in yang output. They are not consi...
Martin Winter [Fri, 2 Oct 2020 20:07:25 +0000 (22:07 +0200)]
tests: Skip comparing neighbor-extended-circuit-id in yang output. They are not consistent

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
4 years agoisisd: fix coverity errors in isis ldp-sync commands
lynne [Thu, 17 Sep 2020 18:08:04 +0000 (14:08 -0400)]
isisd: fix coverity errors in isis ldp-sync commands

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
4 years agozebra: cleanup zebra_rnh.c debugs
Donald Sharp [Wed, 30 Sep 2020 14:42:50 +0000 (10:42 -0400)]
zebra: cleanup zebra_rnh.c debugs

a) Use appropriate %p modifiers for output
2) Display vrf name in addition to vrf id
c) Remove now unused function

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoisisd, ospfd: fix missing/excessive docstrings
Igor Ryzhov [Fri, 2 Oct 2020 15:51:12 +0000 (18:51 +0300)]
isisd, ospfd: fix missing/excessive docstrings

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agovtysh: dynamically generate the list of daemons for commands
Igor Ryzhov [Thu, 1 Oct 2020 22:16:23 +0000 (01:16 +0300)]
vtysh: dynamically generate the list of daemons for commands

Some daemons were actually missing from the static definitions: nhrpd,
babeld, eigrpd and bfdd.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years ago*: move "show debugging ..." commands to enable node
Igor Ryzhov [Thu, 1 Oct 2020 14:57:23 +0000 (17:57 +0300)]
*: move "show debugging ..." commands to enable node

Use the same node for "show debugging" commands in all daemons.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years ago*: move "debug ..." commands to enable node
Igor Ryzhov [Thu, 1 Oct 2020 14:49:47 +0000 (17:49 +0300)]
*: move "debug ..." commands to enable node

Use the same node for "debug" commands in all daemons.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoMerge pull request #7232 from idryzhov/more-topotests-vrf-id
Martin Winter [Fri, 2 Oct 2020 12:01:15 +0000 (14:01 +0200)]
Merge pull request #7232 from idryzhov/more-topotests-vrf-id

tests: don't compare internal vrfId in topotests

4 years agotests: don't compare internal vrfId in topotests
Igor Ryzhov [Fri, 2 Oct 2020 11:45:51 +0000 (14:45 +0300)]
tests: don't compare internal vrfId in topotests

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>