]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
3 years agobuild: add pceplib test output to gitignore
Mark Stapp [Wed, 31 Mar 2021 12:27:11 +0000 (08:27 -0400)]
build: add pceplib test output to gitignore

Add some pcep unit-test output files to gitignore.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agoMerge pull request #8058 from rgirada/ospf-ecmp
Mark Stapp [Tue, 30 Mar 2021 15:57:33 +0000 (11:57 -0400)]
Merge pull request #8058 from rgirada/ospf-ecmp

ospfd: Max multipath config support

3 years agoMerge pull request #8372 from FRRouting/revert-8216-add_rd_all
Russ White [Tue, 30 Mar 2021 15:34:00 +0000 (11:34 -0400)]
Merge pull request #8372 from FRRouting/revert-8216-add_rd_all

Revert "bgpd: Add 'rd all' keyword to EVPN/L3VPN show cmds"

3 years agoRevert "bgpd: Add 'rd all' keyword to EVPN/L3VPN show cmds"
Lou Berger [Tue, 30 Mar 2021 15:27:07 +0000 (11:27 -0400)]
Revert "bgpd: Add 'rd all' keyword to EVPN/L3VPN show cmds"

3 years agoMerge pull request #8216 from taspelund/add_rd_all
Russ White [Tue, 30 Mar 2021 14:41:08 +0000 (10:41 -0400)]
Merge pull request #8216 from taspelund/add_rd_all

bgpd: Add 'rd all' keyword to EVPN/L3VPN show cmds

3 years agoMerge pull request #8267 from idryzhov/bgp-cli-fixes
Russ White [Tue, 30 Mar 2021 14:40:43 +0000 (10:40 -0400)]
Merge pull request #8267 from idryzhov/bgp-cli-fixes

bgp cli fixes

3 years agoMerge pull request #8311 from idryzhov/nb-sorting
Russ White [Tue, 30 Mar 2021 14:37:31 +0000 (10:37 -0400)]
Merge pull request #8311 from idryzhov/nb-sorting

Sort route-maps/access-lists/prefix-lists by sequence number in running-config

3 years agoMerge pull request #8057 from ranjanyash54/default-route
Russ White [Tue, 30 Mar 2021 14:34:05 +0000 (10:34 -0400)]
Merge pull request #8057 from ranjanyash54/default-route

ospf6d: Default Route functionality

3 years agoMerge pull request #8137 from Orange-OpenSource/ospf_ls
Russ White [Tue, 30 Mar 2021 14:28:37 +0000 (10:28 -0400)]
Merge pull request #8137 from Orange-OpenSource/ospf_ls

ospfd: Add Link State support

3 years agoMerge pull request #8056 from jmmikkel/peertype
Russ White [Tue, 30 Mar 2021 14:26:57 +0000 (10:26 -0400)]
Merge pull request #8056 from jmmikkel/peertype

bgpd: Add "bgp bestpath peer-type multipath-relax"

3 years agoMerge pull request #8368 from volta-networks/fix_isis_ospfv3_coverity
Russ White [Tue, 30 Mar 2021 14:22:05 +0000 (10:22 -0400)]
Merge pull request #8368 from volta-networks/fix_isis_ospfv3_coverity

ospf6d: fix coverity warning

3 years agoMerge pull request #8369 from idryzhov/filter-fixes
Russ White [Tue, 30 Mar 2021 14:21:37 +0000 (10:21 -0400)]
Merge pull request #8369 from idryzhov/filter-fixes

access-list and prefix-list fixes

3 years agoMerge pull request #8362 from idryzhov/fix-ospf-cli-count
Mark Stapp [Tue, 30 Mar 2021 12:48:25 +0000 (08:48 -0400)]
Merge pull request #8362 from idryzhov/fix-ospf-cli-count

ospfd: fix counting of "ip ospf area" commands

3 years agoospfd: fix counting of "ip ospf area" commands
Igor Ryzhov [Mon, 29 Mar 2021 11:47:43 +0000 (14:47 +0300)]
ospfd: fix counting of "ip ospf area" commands

Instead of trying to maintain if_ospf_cli_count, let's directly count
the number of configured interfaces when it is needed. Current approach
sometimes leads to an incorrect counter.

Fixes #8321.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoospfd: Max multipath config support
rgirada [Thu, 11 Feb 2021 10:05:12 +0000 (02:05 -0800)]
ospfd: Max multipath config support

Description:
OSPF does not have an option to control the maximum multiple
equal cost paths to reach a destination/route(ECMP).
Currently, it is using the system specific max multiple paths.
But Somtimes, It requires to control the multiple paths from ospf.
This cli helps to configure the max number multiple paths in ospf.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
3 years agoMerge pull request #8351 from volta-networks/fix_ospf6_abr_examin_summary_check_cost_...
Martin Winter [Mon, 29 Mar 2021 23:00:51 +0000 (01:00 +0200)]
Merge pull request #8351 from volta-networks/fix_ospf6_abr_examin_summary_check_cost_change

ospf6d: fix ospf6_abr_examin_summary to check for a path cost change

3 years agolib: fix checking for duplicated prefix-list entries
Igor Ryzhov [Mon, 29 Mar 2021 21:37:52 +0000 (00:37 +0300)]
lib: fix checking for duplicated prefix-list entries

Restore the behavior that was before the NB conversion.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: restore checks for duplicated prefix-list entries
Igor Ryzhov [Mon, 29 Mar 2021 21:25:19 +0000 (00:25 +0300)]
lib: restore checks for duplicated prefix-list entries

The checks were incorrectly removed in commit 4d2f546f under the
assumption that it is needed only in CLI. Actually the checks are needed
for the case when the sequence number is explicitly set by a user.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: finish consolidation of prefix-list nb callbacks
Igor Ryzhov [Mon, 29 Mar 2021 19:53:36 +0000 (22:53 +0300)]
lib: finish consolidation of prefix-list nb callbacks

There was an attempt to consolidate the code in commit fae60215, but the
work was not actually finished and some necessary checks were missed.

Let's finish it.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: fix checking for duplicated access-list entries
Igor Ryzhov [Mon, 29 Mar 2021 18:26:28 +0000 (21:26 +0300)]
lib: fix checking for duplicated access-list entries

Restore the behavior that was before the NB conversion.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #8346 from mjstapp/fix_cov_sa
David Lamparter [Mon, 29 Mar 2021 18:17:12 +0000 (20:17 +0200)]
Merge pull request #8346 from mjstapp/fix_cov_sa

3 years agoospf6d: fix coverity warning
lynne [Mon, 29 Mar 2021 17:33:07 +0000 (13:33 -0400)]
ospf6d: fix coverity warning

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
3 years agotopotests: add tests for OSPFv3 default route
Rafael Zalamena [Wed, 10 Mar 2021 13:21:14 +0000 (10:21 -0300)]
topotests: add tests for OSPFv3 default route

Three new tests:

 - OSPFv3 convergence using 'ipv6 ospf6 neighbor json'
 - Default route functionality:
   * Check that the LSA is present
   * Check that the route was installed

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
3 years agoospf6d: Minor changes for stub area
Yash Ranjan [Tue, 23 Mar 2021 05:05:01 +0000 (22:05 -0700)]
ospf6d: Minor changes for stub area

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agodoc: Add documentation for default-information originate.
Yash Ranjan [Mon, 22 Mar 2021 06:40:25 +0000 (23:40 -0700)]
doc: Add documentation for default-information originate.

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agoospf6d: Add logic to set metric if route-map not present
Yash Ranjan [Wed, 10 Feb 2021 07:28:52 +0000 (23:28 -0800)]
ospf6d: Add logic to set metric if route-map not present

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agoospf6d: Add logic to change the status of router to ASBR
Yash Ranjan [Wed, 10 Feb 2021 06:44:44 +0000 (22:44 -0800)]
ospf6d: Add logic to change the status of router to ASBR

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agoospf6d: Add CLI and logic for default-information originate command
Yash Ranjan [Wed, 10 Feb 2021 04:53:46 +0000 (20:53 -0800)]
ospf6d: Add CLI and logic for default-information originate command

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agoMerge pull request #8285 from donaldsharp/rpki_find
Donatas Abraitis [Sun, 28 Mar 2021 17:48:24 +0000 (20:48 +0300)]
Merge pull request #8285 from donaldsharp/rpki_find

Rpki find

3 years agoospf6d: fix unguarded debug
Mark Stapp [Thu, 25 Mar 2021 17:44:50 +0000 (13:44 -0400)]
ospf6d: fix unguarded debug

Put a debug under a conditional.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agoisisd: fix coverity SA warning
Mark Stapp [Thu, 25 Mar 2021 17:23:44 +0000 (13:23 -0400)]
isisd: fix coverity SA warning

Add assert to clear SA warning.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agoMerge pull request #8317 from mjstapp/fix_short_printfrr_buf
David Lamparter [Fri, 26 Mar 2021 18:40:21 +0000 (19:40 +0100)]
Merge pull request #8317 from mjstapp/fix_short_printfrr_buf

3 years agoospf6d: fix ospf6_abr_examin_summary to check for a path cost change
Karen Schoener [Fri, 26 Mar 2021 18:20:40 +0000 (14:20 -0400)]
ospf6d: fix ospf6_abr_examin_summary to check for a path cost change

Fixes a regression in test case: anvl-ospfv3-16.14.

Signed-off-by: Karen Schoener <karen@voltanet.io>
3 years agobgpd: Use rpki_curr_state instead of curr_state
Donald Sharp [Thu, 25 Mar 2021 13:28:30 +0000 (09:28 -0400)]
bgpd: Use rpki_curr_state instead of curr_state

During Review it was suggested that appending rpki_
to curr_state and target_state would be better
variable names.  Instead of going and fixing
3 or so commits up.  Just do this one.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agodoc: Add doc for new rpki commands
Donald Sharp [Wed, 17 Mar 2021 20:26:49 +0000 (16:26 -0400)]
doc: Add doc for new rpki commands

`show bgp [afi] [safi] A.B.C.D rpki <valid|invalid|notfound>`
`show bgp [afi] [safi] rpki <valid|invalid|notfound>`

commands need to be documented

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Add rpki filter to some more show commands
Donald Sharp [Wed, 17 Mar 2021 20:19:02 +0000 (16:19 -0400)]
bgpd: Add rpki filter to some more show commands

Add a `show bgp ipv4 uni rpki ...` command.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Add `show bgp <afi> <safi> A.B.C.D [rpki <valid|invalid|notfound>]`
Donald Sharp [Mon, 8 Mar 2021 22:01:57 +0000 (17:01 -0500)]
bgpd: Add `show bgp <afi> <safi> A.B.C.D [rpki <valid|invalid|notfound>]`

Add the ability for the end operator to query the state of valid
or invalid or no information rpki prefix information.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Figure out rpki validation state earlier
Donald Sharp [Mon, 8 Mar 2021 21:16:43 +0000 (16:16 -0500)]
bgpd: Figure out rpki validation state earlier

Figure out the rpki validation state earlier and also check
to see if we care about this state or not.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Convert string output to rpki validation-state:
Donald Sharp [Mon, 8 Mar 2021 20:57:18 +0000 (15:57 -0500)]
bgpd: Convert string output to rpki validation-state:

When displaying data about the rpki state, use the
string `rpki validation-state` instead of `validation-state:`
to avoid confusion with `(valid)`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Convert RPKI states to an enum and use them
Donald Sharp [Mon, 8 Mar 2021 20:56:12 +0000 (15:56 -0500)]
bgpd: Convert RPKI states to an enum and use them

Convert the rpki states to an enum and use them in the code

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #8154 from AnuradhaKaruppiah/evpn-mh-irb-2
Patrick Ruddy [Fri, 26 Mar 2021 12:16:01 +0000 (12:16 +0000)]
Merge pull request #8154 from AnuradhaKaruppiah/evpn-mh-irb-2

bgpd, lib, zebra: Complete support for sym-IRB with EVPN-MH

3 years agobgpd: cleanup prefix2str usage
Anuradha Karuppiah [Fri, 26 Feb 2021 02:32:32 +0000 (18:32 -0800)]
bgpd: cleanup prefix2str usage

Use %pFX where possible.

Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
3 years agobgpd: fix crash in the MH cleanup handling
Anuradha Karuppiah [Thu, 10 Sep 2020 20:51:56 +0000 (13:51 -0700)]
bgpd: fix crash in the MH cleanup handling

The MH datastructures were being released before the paths that were
referencing them. Fix is to do the MH cleanup last.

The MH finish function has also been stripped down to only do a
datastructure cleanup i.e. avoid sending route updates etc.

Ticket: 31376

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: handle local ES del or transition to LACP bypass
Anuradha Karuppiah [Sun, 30 Aug 2020 21:05:33 +0000 (14:05 -0700)]
bgpd: handle local ES del or transition to LACP bypass

1. When a local ES is deleted or the ES-bond goes into bypass we treat
imported MAC-IP routes with that ES destination as remote routes instead
of sync routes. This requires a re-evaluation of the routes as
"non-local-dest" and an update to zebra.
2. When a ES is attached to an access port or the ES-bond transitions from
bypass to LACP-up we treat imported MAC-IP routes with that ES destination as
sync routes. This requires a re-evaluation of the routes as
"local-dest" and an update to zebra.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: changes for maintaining evpn nexthops and their rmac mapping
Anuradha Karuppiah [Sat, 12 Sep 2020 17:36:01 +0000 (10:36 -0700)]
bgpd: changes for maintaining evpn nexthops and their rmac mapping

In the case of EVPN type-2 routes that use ES as destination, BGP
consolidates the nh (and nh->rmac mapping) and sends it to zebra as
a nexthop add.

This nexthop is the EVPN remote PE and is created by reference of
VRF IPvx unicast paths imported from EVPN Type-2 routes.

zebra uses this nexthop for setting up a remote neigh enty for the PE
and a remote fdb entry for the PE's RMAC.

Ticket: CM-31398

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: ES evpn nexthop prep work
Anuradha Karuppiah [Fri, 11 Sep 2020 18:11:35 +0000 (11:11 -0700)]
bgpd: ES evpn nexthop prep work

Setup a mh_info indirection in the path extra. This has been done to
avoid increasing evpn route's path size to add new (type based) pointers
in path_info_extra.

Ticket: CM-31398

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agolib/zebra: zapi for installing EVPN nexthops from bgp
Anuradha Karuppiah [Mon, 14 Sep 2020 13:35:45 +0000 (06:35 -0700)]
lib/zebra: zapi for installing EVPN nexthops from bgp

EVPN nexthops are installed as remote neighs by zebra. This was earlier
done only via VRF IPvX uni routes imported from EVPN routes.

With EVPN-MH these VRF routes now reference a L3NHG which is setup based
on the EAD and doesn't include the RMAC. To workaround that BGP now
consolidates and maintains EVPN nexthops which are then sent to zebra.

zebra sets up these nexthops as L3-VNI nh entries using a dummy type-1
route as reference.

Ticket: CM-31398

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: Disable L3NHG support for routes leaked from another VRF
Anuradha Karuppiah [Fri, 4 Sep 2020 15:19:49 +0000 (08:19 -0700)]
bgpd: Disable L3NHG support for routes leaked from another VRF

Theoretically we should just be able to use the L3 NHG in the other-VRF/nh-VRF.
But there is some change list handling (when an ES is added to or
removed from a VRF) that needs to be updated to account for routes in other
VRFs using that ES-VRF as nexthop. Till that is done we will disable L3-NHG
use for routes leaked from a different VRF.

Route in tenant2 with ES/NHG as destination -
===========================================
root@leaf11:mgmt:~# ip route show vrf tenant2 22.1.0.7
22.1.0.7 nhid 75000012 proto bgp metric 20
root@leaf11:mgmt:~# ip nexthop list id 75000012
id 75000012 group 103/107/111 proto bgp
root@leaf11:mgmt:~# ip nexthop |grep "103\|107\|111"
id 103 via 6.0.0.11 dev vlan12 scope link proto bgp onlink
id 107 via 6.0.0.12 dev vlan12 scope link proto bgp onlink
id 111 via 6.0.0.13 dev vlan12 scope link proto bgp onlink
id 75000012 group 103/107/111 proto bgp
root@leaf11:mgmt:~#

Leaked into VRF1 with a flat/exploded mpaths
============================================
root@leaf11:mgmt:~# ip route show vrf tenant1 |grep -A3 22.1.0.7
22.1.0.7 proto bgp metric 20
        nexthop via 6.0.0.11 dev vlan12 weight 1 onlink
        nexthop via 6.0.0.12 dev vlan12 weight 1 onlink
        nexthop via 6.0.0.13 dev vlan12 weight 1 onlink
root@leaf11:mgmt:~#

Ticket: CM-31115

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: flush remote ES-EVI entries when a L2-VNI is deleted
Anuradha Karuppiah [Thu, 27 Aug 2020 23:55:28 +0000 (16:55 -0700)]
bgpd: flush remote ES-EVI entries when a L2-VNI is deleted

Force flush all ES-EVI PE entries when a L2-VNI is deleted. This will
implicitly free up the remote ES-EVI and deref the ES entry.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: re-eval use-l3nhg when a remote ES is [de]activated in a VRF
Anuradha Karuppiah [Mon, 17 Aug 2020 23:24:50 +0000 (16:24 -0700)]
bgpd: re-eval use-l3nhg when a remote ES is [de]activated in a VRF

There are two changes in this commit -

1. Maintain a list of global MAC-IP routes per-ES. This list is maintained
for quick processing on the following events -
a. When the first VTEP/PE becomes active in the ES-VRF, the L3 NHG is
activated and the route can be sent to zebra.
b. When there are no active PEs in the ES-VRF the L3 NHG is
de-activated and -
- If the ES is present in the VRF -
The route is not installed in zebra as there are no active PEs for
the ES-VRF
- If the ES is not present in the VRF -
The route is installed with a flat multi-path list i.e. without L3NHG.
This is to handle the case where there are no locally attached L2VNIs
on the ES (for that tenant VRF).

2. Reinstall VRF route when an ES is installed or uninstalled in a
tenant VRF (the global MAC-IP list in #1 is used for this purpose also).
If an ES is present in the VRF we use L3NHG to enable fast-failover of
routed traffic.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: Rename macip_path_list to macip_evi_path_list
Anuradha Karuppiah [Tue, 18 Aug 2020 13:52:40 +0000 (06:52 -0700)]
bgpd: Rename macip_path_list to macip_evi_path_list

This is done to clearly indicate what routes are being linked to
the list i.e. MAC-IP routes in the VNI table.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: allow routes to be imported if the ES/ES-VRF is not present
Anuradha Karuppiah [Sat, 15 Aug 2020 13:41:31 +0000 (06:41 -0700)]
bgpd: allow routes to be imported if the ES/ES-VRF is not present

In a sym-IRB setup the remote ES may not be installed if the tenant
VRF is not present locally. To allow that case while retaining the
fast-failover benefits for the case where the tenant VRF is locally
present we use the following approach -
1. If ES is present in the tenant VRF we use the L3NHG for installing
the MAC-IP based tenant route. This allows for efficient failover via
L3NHG updates.
2. If the ES is not present locally in the corresponding tenant VRF we
fall back to a non-NHG multi-path based routing approach. In this
case individual routes are updated when the ES links flap.

PS: #1 can be turned off entirely by disabling use-l3-nhg in BGP.

Ticket: CM-30935

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agobgpd: on ES down re-advertise the MAC-IP entry without the L3 ECOM
Anuradha Karuppiah [Fri, 14 Aug 2020 22:48:34 +0000 (15:48 -0700)]
bgpd: on ES down re-advertise the MAC-IP entry without the L3 ECOM

When an ES goes down the MAC-IP route must be updated to remove it from
the tenant VRF routing table. This is because the fast-failover
(via EAD-per-ES withdraw) procedures described in RFC 7432 are only
applicable to L2 forwarding/MAC-ECMP. For L3/routed traffic (in a
sym-IRB setup) failover, individual paths need to be withdrawn.

To handle this difference in L2/L3 requirements BGP updates the MAC-IP
route to include the L3 ECOM if local destination ES is oper-up and
to exclude the L3 ECOM if local ES is oper-down.

Ticket: CM-30935

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
3 years agoMerge pull request #8344 from pjdruddy/coverity_mpls_l3vpn
Donald Sharp [Thu, 25 Mar 2021 23:40:34 +0000 (19:40 -0400)]
Merge pull request #8344 from pjdruddy/coverity_mpls_l3vpn

lib, bgpd: add a specific oid_copy function for IPv6 addrs

3 years agoMerge pull request #8341 from simondeziel/systemd-onfailure
Donald Sharp [Thu, 25 Mar 2021 19:00:13 +0000 (15:00 -0400)]
Merge pull request #8341 from simondeziel/systemd-onfailure

systemd's %n already includes the type suffix (.service)

3 years agoMerge pull request #8340 from mjstapp/fix_pcep_timer_race
Donald Sharp [Thu, 25 Mar 2021 18:31:04 +0000 (14:31 -0400)]
Merge pull request #8340 from mjstapp/fix_pcep_timer_race

libs: fix race in pcep lib

3 years agoMerge pull request #8292 from donaldsharp/isis_crash
Mark Stapp [Thu, 25 Mar 2021 16:52:45 +0000 (12:52 -0400)]
Merge pull request #8292 from donaldsharp/isis_crash

isisd: Prevent OOM crash in isis

3 years agoMerge pull request #8338 from idryzhov/fix-ospfd-sa-warning
Mark Stapp [Thu, 25 Mar 2021 16:15:05 +0000 (12:15 -0400)]
Merge pull request #8338 from idryzhov/fix-ospfd-sa-warning

ospfd: fix SA warning

3 years agoMerge pull request #8252 from SaiGomathiN/8249
Donald Sharp [Thu, 25 Mar 2021 15:52:12 +0000 (11:52 -0400)]
Merge pull request #8252 from SaiGomathiN/8249

pimd: support bundle commands added

3 years agolib, bgpd: add a specific oid_copy function for IPv6 addrs
Pat Ruddy [Thu, 25 Mar 2021 14:39:07 +0000 (14:39 +0000)]
lib, bgpd: add a specific oid_copy function for IPv6 addrs

Do not overload the v4 oid_copy_addr function for ipv6
coverity does not like this kind of thing.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
3 years agoMerge pull request #8332 from donaldsharp/yang_clean
David Lamparter [Thu, 25 Mar 2021 14:50:18 +0000 (15:50 +0100)]
Merge pull request #8332 from donaldsharp/yang_clean

yang: Allow `make clean` to actually clean up dependant files

3 years agotools: fix systemd OnFailure directive
Simon Deziel [Thu, 25 Mar 2021 14:35:26 +0000 (10:35 -0400)]
tools: fix systemd OnFailure directive

systemd's %n already includes the type suffix (.service)

Signed-off-by: Simon Deziel <simon@sdeziel.info>
3 years agoMerge pull request #8167 from LabNConsulting/chopps/tests-add-gdb
Donald Sharp [Thu, 25 Mar 2021 14:27:50 +0000 (10:27 -0400)]
Merge pull request #8167 from LabNConsulting/chopps/tests-add-gdb

tests: add option for auto-launching gdb

3 years agoMerge pull request #8333 from mobash-rasool/pim-fixes-2
Donald Sharp [Thu, 25 Mar 2021 14:19:12 +0000 (10:19 -0400)]
Merge pull request #8333 from mobash-rasool/pim-fixes-2

pimd: Fix hold time related issues

3 years agolibs: fix race in pcep lib
Mark Stapp [Thu, 25 Mar 2021 13:56:11 +0000 (09:56 -0400)]
libs: fix race in pcep lib

Fix a race in the libpcep timer code; reported by coverity.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agoisisd: Prevent OOM crash in isis
Donald Sharp [Fri, 19 Mar 2021 13:27:51 +0000 (09:27 -0400)]
isisd: Prevent OOM crash in isis

When you set the isis mtu to 200, isis ends up in a infinite loop
trying to fragment the tlv's.

Specifically ( for me ) the extended reachability function
for packing pack_item_extended_reach requires 11 + ISIS_SUBTLV_MAX_SIZE
room in the packet.  Which is 180 bytes.  At this point we have
174 bytes that we can write into a packet.

I created this by modifying the isis-topo1 topology to all
the isis routers to have a lsp-mtu of 200 and immediately
saw the crash.

Effectively the pack_items_ function had no detection for
when a part of the next bit it was writing into the stream
could not even fit and it would go into an infinite loop
allocating ~800 bytes at a time.  This would cause the
router to run out of memory very very fast and the OOM
detector would kill the process.

Modify the code to notice that we have insufficient space to
even write any data into the stream.

I suspect that pack_item_extended_reach could also be optimized
to figure out exactly how much space is needed.  But I also
think we need this protection in the function if this ever
happens again.

I also do not understand the use case of saying the min mtu is
200.

Fixes: #8289
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #8309 from opensourcerouting/init-config-read
Donald Sharp [Thu, 25 Mar 2021 13:06:16 +0000 (09:06 -0400)]
Merge pull request #8309 from opensourcerouting/init-config-read

tools: run `vtysh -b` once for all-startup

3 years agoospfd: fix SA warning
Igor Ryzhov [Thu, 25 Mar 2021 12:29:43 +0000 (15:29 +0300)]
ospfd: fix SA warning

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #8329 from volta-networks/fix_unkown_lsa_U_bit
Donald Sharp [Thu, 25 Mar 2021 12:29:13 +0000 (08:29 -0400)]
Merge pull request #8329 from volta-networks/fix_unkown_lsa_U_bit

ospf6d: Do not flood unknown LSAs if U-bit is clear

3 years agoMerge pull request #8335 from ranjanyash54/link-db
Donald Sharp [Thu, 25 Mar 2021 12:05:13 +0000 (08:05 -0400)]
Merge pull request #8335 from ranjanyash54/link-db

ospf6d: Link LSAs are not getting MAX_AGE in neighbor

3 years agoMerge pull request #8316 from qlyoung/fix-doc-interface-peer
Donatas Abraitis [Thu, 25 Mar 2021 11:08:04 +0000 (13:08 +0200)]
Merge pull request #8316 from qlyoung/fix-doc-interface-peer

doc: document proper config for BGP iface peers

3 years agopimd: in 'no ip pim hello' add hold time as optional when hello interval given
Mobashshera Rasool [Thu, 25 Mar 2021 05:45:06 +0000 (05:45 +0000)]
pimd: in 'no ip pim hello' add hold time as optional when hello interval given

Issue:
  User is allowed to configure only hello without hold timer but when undo
  config, the hold timer is mandatory as shown below:
  FRR-4(config-if)# ip pim hello 10
    <cr>
    (1-180)  Time in seconds for Hold Interval
  FRR-4(config-if)# ip pim hello 10
  FRR-4(config-if)# no ip pim hello 10
    (1-180)  Time in seconds for Hold Interval
  FRR-4(config-if)# no ip pim hello 10
  % Command incomplete: no ip pim hello 20

Fix:
  Making the hold timer as optional when undo config.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
3 years agopimd: Validation that hello should be less than hold time config.
Mobashshera Rasool [Thu, 25 Mar 2021 05:12:57 +0000 (05:12 +0000)]
pimd: Validation that hello should be less than hold time config.

Also included display of hold time in CLI 'show ip pim int <intf>' cmd
and json commands.

Issue:
PIM neighbor not coming up if hold time is less than hello timer
since hello is sent every 4 sec and hold is 1 sec,
because of this nbr is flapping

Fix:
Do not allow configuration of hold timer less than hello timer
Also reset the value of hold timer to 3.5 times to hello whenever
only hello is modified so that the relationship holds good.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
3 years agoMerge pull request #7437 from ckishimo/suppress_fa
Olivier Dugeon [Thu, 25 Mar 2021 09:06:54 +0000 (10:06 +0100)]
Merge pull request #7437 from ckishimo/suppress_fa

ospfd: add support for suppress_fa

3 years agoospf6d: Link LSAs are not getting MAX_AGE in neighbor
Yash Ranjan [Thu, 11 Mar 2021 13:41:05 +0000 (05:41 -0800)]
ospf6d: Link LSAs are not getting MAX_AGE in neighbor

When the ospf6 daemon goes down, it originates MAX_AGE
LSAs for all the self-originated LSAs so that it gets
flushed from the neighbor's database. But the link-LSAs
are not getting MAX_AGE.
Set the self-originated link-LSAs age to MAX_AGE and
flood it

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
3 years agoyang: Allow `make clean` to actually clean up dependant files
Donald Sharp [Wed, 24 Mar 2021 23:27:20 +0000 (19:27 -0400)]
yang: Allow `make clean` to actually clean up dependant files

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #8326 from idryzhov/hide-show-config
Renato Westphal [Wed, 24 Mar 2021 22:40:13 +0000 (19:40 -0300)]
Merge pull request #8326 from idryzhov/hide-show-config

vtysh: hide "show configuration running" command

3 years agoMerge pull request #8250 from idryzhov/fix-nb-running-get-entry
Renato Westphal [Wed, 24 Mar 2021 22:39:09 +0000 (19:39 -0300)]
Merge pull request #8250 from idryzhov/fix-nb-running-get-entry

Fix aborts when using nb_running_get_entry during validation stage

3 years agodoc: document proper config for BGP iface peers
Quentin Young [Tue, 23 Mar 2021 17:02:15 +0000 (13:02 -0400)]
doc: document proper config for BGP iface peers

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agoMerge pull request #8331 from mjstapp/fix_dev_doc_pip
Quentin Young [Wed, 24 Mar 2021 20:52:38 +0000 (20:52 +0000)]
Merge pull request #8331 from mjstapp/fix_dev_doc_pip

doc: fix url for pip 2 in dev doc

3 years agodoc: fix url for pip 2 in dev doc
Mark Stapp [Wed, 24 Mar 2021 20:21:49 +0000 (16:21 -0400)]
doc: fix url for pip 2 in dev doc

Use updated url for python2 version of pip.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agoMerge pull request #8290 from adharkar/frr-es_rt
Patrick Ruddy [Wed, 24 Mar 2021 18:10:37 +0000 (18:10 +0000)]
Merge pull request #8290 from adharkar/frr-es_rt

bgpd: Update EVPN type-1 routes when VNI RT changes

3 years agoospf6d: Do not flood unknown LSAs if U-bit is clear
Karen Schoener [Wed, 24 Mar 2021 16:49:59 +0000 (12:49 -0400)]
ospf6d: Do not flood unknown LSAs if U-bit is clear

Do not flood unknown LSAs if U-bit is clear.

Signed-off-by: Karen Schoener <karen@voltanet.io>
3 years agoospfd: add support for suppress_fa
ckishimo [Mon, 2 Nov 2020 14:28:52 +0000 (06:28 -0800)]
ospfd: add support for suppress_fa

This command will trigger the OSPF forwarding address suppression in
translated type-5 LSAs, causing a NSSA ABR to use 0.0.0.0 as a forwarding
address instead of copying the address from the type-7 LSA

Example: In a topology like: R1 --- R2(ABR) --- R3(ASBR)

R3 is announcing a type-7 LSA that is translated to type-5 by the R2 ABR.
The forwarding address in the type-5 is by default copied from the type-7

    r1# sh ip os da external

                    AS External Link States

      LS age: 6
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000001
      Checksum: 0xcf99
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 10.0.23.3    <--- address copied from type-7 lsa
            External Route Tag: 0

    r2# sh ip os database

                    NSSA-external Link States (Area 0.0.0.1 [NSSA])

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.23.3          8 0x80000001 0x431d E2 3.3.3.3/32 [0x0]

                    AS External Link States

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.25.2          0 0x80000001 0xcf99 E2 3.3.3.3/32 [0x0]

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# area 1 nssa suppress-fa
    r2(config-router)# exit
    r2(config)# exit

    r2# sh ip os database

                    NSSA-external Link States (Area 0.0.0.1 [NSSA])

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.23.3         66 0x80000001 0x431d E2 3.3.3.3/32 [0x0]

                    AS External Link States

    Link ID         ADV Router      Age  Seq#       CkSum  Route
    3.3.3.3         10.0.25.2         16 0x80000002 0x0983 E2 3.3.3.3/32 [0x0]

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 34
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000002
      Checksum: 0x0983
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 0.0.0.0       <--- address set to 0
            External Route Tag: 0

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# no area 1 nssa suppress-fa
    r2(config-router)# exit

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 1
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000003
      Checksum: 0xcb9b
      Length: 36
      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 0.0.0.0       <--- address set to 0
            External Route Tag: 0

    r2# conf t
    r2(config)# router ospf
    r2(config-router)# no area 1 nssa suppress-fa
    r2(config-router)# exit

    r1# sh ip os da external

           OSPF Router with ID (11.11.11.11)

                    AS External Link States

      LS age: 1
      Options: 0x2  : *|-|-|-|-|-|E|-
      LS Flags: 0x6
      LS Type: AS-external-LSA
      Link State ID: 3.3.3.3 (External Network Number)
      Advertising Router: 10.0.25.2
      LS Seq Number: 80000003
      Checksum: 0xcb9b
      Length: 36

      Network Mask: /32
            Metric Type: 2 (Larger than any link state path)
            TOS: 0
            Metric: 20
            Forward Address: 10.0.23.3    <--- address copied from type-7 lsa
            External Route Tag: 0

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
3 years agodoc: add documentation for OSPF suppress-fa
ckishimo [Fri, 6 Nov 2020 08:02:43 +0000 (00:02 -0800)]
doc: add documentation for OSPF suppress-fa

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
3 years agodoc: add documentation for OSPF NSSA
ckishimo [Fri, 6 Nov 2020 08:01:55 +0000 (00:01 -0800)]
doc: add documentation for OSPF NSSA

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
3 years agoospfd: add topotest for suppress-fa feature
ckishimo [Thu, 5 Nov 2020 13:32:03 +0000 (05:32 -0800)]
ospfd: add topotest for suppress-fa feature

Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
3 years agoMerge pull request #8318 from qlyoung/improve-lua-autoconf-detection
David Lamparter [Wed, 24 Mar 2021 14:05:01 +0000 (15:05 +0100)]
Merge pull request #8318 from qlyoung/improve-lua-autoconf-detection

configure.ac: better lua detection

3 years agoMerge pull request #8078 from idryzhov/fix-zebra-vni
Rafael Zalamena [Wed, 24 Mar 2021 13:32:44 +0000 (13:32 +0000)]
Merge pull request #8078 from idryzhov/fix-zebra-vni

zebra: fix vni configuration in default vrf

3 years agoMerge pull request #8325 from idryzhov/fix-ip-router-isis
David Lamparter [Wed, 24 Mar 2021 11:13:07 +0000 (12:13 +0100)]
Merge pull request #8325 from idryzhov/fix-ip-router-isis

isisd: fix extra space after "ip router isis"

3 years agovtysh: hide "show configuration running" command
Igor Ryzhov [Wed, 24 Mar 2021 10:16:15 +0000 (13:16 +0300)]
vtysh: hide "show configuration running" command

This command is currently useful only for developers.
Let's hide it to not confuse end users by having both
"show runnning-config" and "show configuration running".

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #8203 from opensourcerouting/ospf-bfd-napi
Igor Ryzhov [Wed, 24 Mar 2021 07:36:48 +0000 (10:36 +0300)]
Merge pull request #8203 from opensourcerouting/ospf-bfd-napi

ospfd,doc,topotests: rework OSPFv2 BFD integrantion

3 years agoMerge pull request #8184 from opensourcerouting/bfd-bgp-napi
Igor Ryzhov [Wed, 24 Mar 2021 07:36:26 +0000 (10:36 +0300)]
Merge pull request #8184 from opensourcerouting/bfd-bgp-napi

bgpd,lib: rework BGP BFD integration

3 years agoisisd: fix extra space after "ip router isis"
Igor Ryzhov [Wed, 24 Mar 2021 07:30:36 +0000 (10:30 +0300)]
isisd: fix extra space after "ip router isis"

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #8319 from qlyoung/doc-remove-old-index-ospf6-spf-tree
Igor Ryzhov [Wed, 24 Mar 2021 07:01:16 +0000 (10:01 +0300)]
Merge pull request #8319 from qlyoung/doc-remove-old-index-ospf6-spf-tree

doc: remove extraneous .. index:: in ospf6d.rst

3 years agodoc: remove extraneous .. index:: in ospf6d.rst
Quentin Young [Tue, 23 Mar 2021 19:36:27 +0000 (19:36 +0000)]
doc: remove extraneous .. index:: in ospf6d.rst

And delete some trailing whitespace

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agoconfigure.ac: better lua detection
Quentin Young [Tue, 23 Mar 2021 19:20:38 +0000 (19:20 +0000)]
configure.ac: better lua detection

Make sure to constrain the Lua autoconf search to
Lua 5.3 interpreter and libraries.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agotests: use printfrr to use extended format specs
Mark Stapp [Tue, 23 Mar 2021 18:50:14 +0000 (14:50 -0400)]
tests: use printfrr to use extended format specs

Test was using 'pFX' with printf() - need to use printfrr().

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agolib: enlarge the local buffer for printfrr extension tokens
Mark Stapp [Tue, 23 Mar 2021 18:48:58 +0000 (14:48 -0400)]
lib: enlarge the local buffer for printfrr extension tokens

Make the local buffer offered to printfrr extension tokens
bigger; existing size wasn't quite enough for some of the
more elaborate struct prefix types.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agobgpd: don't use operational state in "router bgp" command
Igor Ryzhov [Sun, 14 Mar 2021 17:04:42 +0000 (20:04 +0300)]
bgpd: don't use operational state in "router bgp" command

Instead of using bgp_get_default which refers to operational state, we
can check existence of the default node using only candidate config.
The same thing is done in "no router bgp" command.

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