Commit Graph

24797 Commits

Author SHA1 Message Date
Donatas Abraitis
f4d81e5507 *: Replace IPV6_MAX_PREFIXLEN to IPV6_MAX_BITLEN
Just drop IPV6_MAX_PREFIXLEN at all, no need keeping both.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 17:41:09 +03:00
Donatas Abraitis
3036004116 bgpd: Convert numeric 32 into IPV4_MAX_BITLEN for prefixlen
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 17:37:04 +03:00
Donatas Abraitis
135e9bdb69 bgpd: Convert numeric 128 into IPV6_MAX_BITLEN for prefixlen
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-07-01 17:35:02 +03:00
Philippe Guibert
17ef5a9343 bgpd: nht unresolved with global address next-hop
When bgp peers with ipv6 link local addresses, it may receive a
BGP update with next-hop containing both LL and GA information.
By default, nexthop tracking applies to GA, and ignores presence
of LL, when both addresses are present. This is a problem for
resolving GA as next-hop as the next-hop information can be solved
by using the LL address only.

The solution consists in defaulting the nexthop ipv6 choice to LL
when available, and moving back to GA if a route-map is locally
configured at inbound.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-07-01 16:21:54 +02:00
Rafael Zalamena
1f3ae3a678 doc: document new PIM MSDP timers command
Let the user know how to use it and what are the default values.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-01 09:59:55 -03:00
Rafael Zalamena
6f015b21a9 doc: simplify PIM RIB title
Don't use colon and make it more generic.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-01 09:59:55 -03:00
Rafael Zalamena
622fd3f11e pimd: support MSDP global timers configuration
Users can now configure:

 * Hold time
 * Keep alive
 * Connection retry

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-01 09:59:51 -03:00
Louis Scalbert
c295917b4a ospf6d: harmonize ospf6_asbr_redistribute_disable and _reset
Harmonize the code of functions ospf6_asbr_redistribute_disable and
ospf6_asbr_redistribute_reset.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2021-07-01 14:40:14 +02:00
Louis Scalbert
c54fb080a0 ospf6d: reset areas and redistribution at router-id modification
The ospf6 router-id is provided by order of preference by:

 ospf6d itself if the "ospf6 router-id X.X.X.X" command is set.
- zebra. If the "ip router-id X.X.X.X" zebra command is set, the
  configured IP is provided as the ID or alternatively the highest
  loopback IPv4 address or else the highest interface IPv4 address.

The running ospf6 router-id is stored in ospf6->router-id.

ospf6->router-id can change in the following conditions:

- A configuration change provides a new router-id value according to
  the above rules. ospf6->router-id is updated to the new value if
  there is no adjacency in FULL state. Otherwise, the ospf6d process
  must be restarted to take the new router-id into account.
- On startup of both zebra and ospf6d, if ospf6d has not yet received a
  valid router-id, ospf6d->router-id is set to 0 (i.e. 0.0.0.0). Then,
  zebra notifies ospf6d that the router-id is available.

At ospf6->router-id, the current behavior of ospf6d is the following:

- The self generated LSAs that refer to the previous router-id as the
  advertising router are kept.
- Self generated LSAs are created with router-id value.
- LSAs from the redistribution that refer to the previous router-id are
  kept and no new redistribution LSAs are created.

As a consequence, the routers in the ospf6 areas will get incorrect
LSAs and might not be able to install prefixes of those LSAs into their
RIB.

This fix solves this issue by resetting the areas and the redistribution
when ospf6->router-id updated.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2021-07-01 14:40:14 +02:00
Louis Scalbert
6794884231 ospf6d: factorize router-id update
ospf6_router_id_update function is used by ospf6_router_id_update_zebra
to update the running the ospf6 router-id.

This patches makes the functions to (un)configure ospf6 router-id use
the same function as ospf6_router_id_update_zebra.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
---
2021-07-01 14:40:14 +02:00
Louis Scalbert
08965422d0 ospf6d: don't update router-id if at least one adjacency is Full
When a router-id change is notified by zebra to ospf6d, we only take
into account the change if no adjacencies are in Full state.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2021-07-01 14:40:07 +02:00
Igor Ryzhov
bc65216a29
Merge pull request #8954 from mobash-rasool/ospfv3-feature
ospf6d: route-map config changed, not getting applied on all types of…
2021-07-01 14:47:40 +03:00
Rafael Zalamena
67aea150fe yang: add MSDP timer configuration
Allow users to configure global MSDP timers.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-07-01 08:40:09 -03:00
Donald Sharp
70ec4ea388
Merge pull request #8871 from opensourcerouting/msdp-peer-rework
pimd: rework MSDP peer and add tests
2021-07-01 07:31:21 -04:00
Donald Sharp
306dc5d495
Merge pull request #8965 from idryzhov/bgp-coverity
bgpd: fix coverity warning
2021-06-30 21:23:17 -04:00
Igor Ryzhov
a09811ff67 bgpd: fix coverity warning
`oly` is already dereferenced two lines earlier and is always passed to
the function.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-30 22:37:33 +03:00
Renato Westphal
8b0ab1f8a0
Merge pull request #8780 from idryzhov/fix-zebra-coverity
zebra: fix a couple of coverity warnings
2021-06-30 16:08:35 -03:00
Donald Lee
b16a58fc77 bgpd: Restore bgp_routemap logic
Signed-off-by: Donald Lee <dlqs@gmx.com>
2021-06-30 23:55:40 +08:00
Christian Hopps
0ef5bf1905 tests: generate support bundles in parallel, fix bugs
Speedup (large topo): OLD: ~6 minutes NEW: ~1 second
  (when paired with generate_support_bundle.py changes)
- Collect from each node in parallel

Bug fixes:
- sub-directory test name was the same internal pytest function name
  for any test, and not the actual test name.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-06-30 15:46:10 +00:00
Christian Hopps
5417cc2de3 tests: collect support bundle data in parallel, fix bugs
Speedup (large topo): OLD: ~6 minutes NEW: ~1 second.
  (when paired with common_config.py changes)
- Collect each "proc" support in parallel
- For each "proc" only call vtysh once with all commands

Bug fixes:
- output was broken, a dump of python "repr" format of str.

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-06-30 15:46:10 +00:00
Christian Hopps
744bc17db5 vtysh: add CLI timestamp '-t' flag
Example output:

    flk# show version
    % 2021/06/29 00:25:01.562

    FRRouting 8.1-dev-my-manual-build (flk).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.

    ...

Signed-off-by: Christian Hopps <chopps@labn.net>
2021-06-30 15:46:10 +00:00
Christian Hopps
396b072f9c tests: extend timeout period for failing mcast test
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-06-30 15:46:10 +00:00
Donald Sharp
dac42f2ef5 bgpd: Ensure v6 LL address is available before establishing peering
There are startup situations where we will attempt to connect to a remote
peer before bgp has received the v6 LL address.  If we do not have this address
we must not allow the connection to come up until we have one available to use
in those situations where we must have a v6 LL address.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-06-30 10:33:21 -04:00
Renato Westphal
c36a440cba
Merge pull request #8950 from idryzhov/ospf6-router-id
ospf6d: use per-vrf router id instead of one global
2021-06-30 11:22:08 -03:00
Mobashshera Rasool
2f43e34de1 ospf6d: route-map config changed, not getting applied on all types of routes
Problem Statement:
==================
when route-map config is changed from permit to deny, it is not getting
applied to both connected and static and vice versa

RCA:
==================
When route-map changes from permit to deny or vice versa, a notification is
sent to ospf6 daemon via ospf6_asbr_routemap_update. In this function, a thread
is scheduled after 5 seconds to apply the route-map changes. In this thread
(ospf6_asbr_routemap_update_timer), only the first type is passed as argument
and only the first type i.e "connected" is passed and hence in callback only
on this type of route route-map gets applied.

Fix:
====
Need to loop through all the route-types in the call back and process
the route-map changes. Added a flag to mark which all route-types needs
to be processed.

Test Executed:
===============
1. Change route-map from permit to deny.
2. Change route-map from deny to permit.
3. Add new route and checked.
4. Verified summarised routes.

Risk:
============
Low

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-06-30 11:55:17 +00:00
Mobashshera Rasool
67df36493d ospfd: show ip ospf route json does not shown metric and tag
Problem Statement:
==================
[FRR OSPF] show ip ospf route json does not shown metric and tag.

Root Cause Analysis:
===================
In function show_ip_ospf_route_external, type 2 cost is not added in json.
Hence it is not displayed.

Fix:
=================
1. Add type2cost in the json display
2. Tag was also missing, added that as well

Issue: #8729

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-06-30 07:23:38 +00:00
Quentin Young
309f6af605
Merge pull request #8952 from Jafaral/show-ip-mroute
pimd: make show ip mroute output consistent
2021-06-30 04:35:38 +00:00
Quentin Young
5e02b133bf
Merge pull request #8943 from idryzhov/build-warn
tests: fix build warning
2021-06-30 04:33:30 +00:00
Quentin Young
f27e08373c
Merge pull request #8887 from LabNConsulting/chopps/fix-test-retries 2021-06-29 19:24:59 +00:00
Jafar Al-Gharaibeh
530b12cf6e pimd: make show ip mroute output consistent
We had 3 different string output formats in various places.
Make them all the same.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2021-06-29 14:19:35 -05:00
Philippe Guibert
eed936b334
Merge pull request #8744 from sworleys/RTADV-Fix-Upstream
zebra: rework RA handling for vrf-lite
2021-06-29 19:20:54 +02:00
Igor Ryzhov
3c5122c5a7 ospf6d: use per-vrf router id instead of one global
This code was not fully completed when adding support for VRFs.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-29 18:10:41 +03:00
Olivier Dugeon
55a02e1ed4
Merge pull request #8824 from volta-networks/fix_check_for_link_param_change
isisd, ospfd: update interface_link_params callback to check for change
2021-06-29 16:53:54 +02:00
Donatas Abraitis
d1b599209f
Merge pull request #8401 from taspelund/bgp_default_afis
bgpd: Expand 'bgp default <afi>-<safi>' cmds
2021-06-29 16:57:07 +03:00
Igor Ryzhov
f102386a04 tests: fix build warning
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-29 16:13:12 +03:00
Igor Ryzhov
b08dcc3f3f *: unify prefix copying
There are a few places in the code where we use PREFIX_COPY(_IPV4/IPV6)
macro to copy a prefix. Let's always use prefix_copy function for this.

This should fix CID 1482142 and 1504610.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-29 16:11:47 +03:00
Rafael Zalamena
176d039a27
Merge pull request #8937 from idryzhov/index-once-again
doc: remove unnecessary index directives
2021-06-29 07:27:29 -03:00
Igor Ryzhov
5c54512ecc doc: remove "no" from clicmd directives
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-29 12:50:10 +03:00
Igor Ryzhov
ba88ced84c
Merge pull request #8835 from ranjanyash54/clear_process
ospf6d: "clear ipv6 ospf6 process" command
2021-06-29 11:54:39 +03:00
Donatas Abraitis
7702d0b720
Merge pull request #8911 from donaldsharp/command_node
lib: Add some hash name differentiation for Command Hash's
2021-06-29 11:47:16 +03:00
Quentin Young
3f8711681e
Merge pull request #8850 from opensourcerouting/ospf6-checksum-json
ospf6d: consistent checksum JSON output
2021-06-29 02:23:06 +00:00
Trey Aspelund
38d11af5e8 bgpd: Expand 'bgp default <afi>-<safi>' cmds
Adds new commands to allow a user to default 'default' address-families
to be inherited by all new peers.  Previously this was limited to just
ipv4/ipv6 unicast, now the full list is:
---
ipv4-unicast
ipv4-multicast
ipv4-vpn
ipv4-labeled-unicast
ipv4-flowspec
ipv6-unicast
ipv6-multicast
ipv6-vpn
ipv6-labeled-unicast
ipv6-flowspec
l2vpn-evpn
---

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-06-28 20:55:59 +00:00
Trey Aspelund
b01830dc5b tests: Include evpn in bgp-default-afi-safi.py
Expands "bgp default" tests to include l2vpn evpn in addition
to ipv4/ipv6 unicast.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-06-28 20:55:51 +00:00
Trey Aspelund
4a804cedc8 tests: rename bgp_default_ipv4_ipv6 to _afi_safi
Replaces the ipv4/ipv6-specific naming with generic afi/safi reference.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-06-28 20:53:59 +00:00
Trey Aspelund
5441ad101b doc: Add docs for 'bgp default <afi>-<safi>' cmds
Adds climd definitions and explanations for expanded
'bgp default <afi>-<safi>' definitions.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-06-28 20:53:59 +00:00
Trey Aspelund
b16bcbba97 bgpd: Convert to default_af[afi][safi]
Introduces bgp->default_af to selectively enable various default
afi/safis to be inherited by new peers.
Makes default_af flag logic consistent for all address-families, i.e.
instead of a "no default" flag for ipv4 and a "default" flag for ipv6,
just use "default" for both and make it true for ipv4 by default.
Removes old BGP_FLAG_NO_DEFAULT_IPV4 and BGP_FLAG_DEFAULT_IPV6, and
cleans up bgp->flags bit definitions to avoid gaps for unused bits.
Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2021-06-28 20:53:59 +00:00
Igor Ryzhov
c9ba467f68 doc: remove unnecessary index directives
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-28 17:49:14 +03:00
Karen Schoener
0b4124c18c isisd, ospfd: update interface_link_params callback to check for change
Adding defensive code to the interface_link_params zebra callback
to check if the link params changed before taking action.

Signed-off-by: Karen Schoener <karen@voltanet.io>
2021-06-28 10:32:52 -04:00
Mark Stapp
0e5572bc63
Merge pull request #8932 from anlancs/fix-some-doc-warnings
doc: fix some compile warning
2021-06-28 10:30:34 -04:00
Donald Sharp
d57b090fcb
Merge pull request #8925 from idryzhov/ospf6-duplicated-read
ospf6d: fix duplicated packet read
2021-06-28 07:44:33 -04:00