]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
20 months agoMerge pull request #12053 from opensourcerouting/feature/accept_own_extended_communit...
Russ White [Wed, 12 Oct 2022 19:58:23 +0000 (15:58 -0400)]
Merge pull request #12053 from opensourcerouting/feature/accept_own_extended_community_single_rr

bgpd: Implement ACCEPT_OWN extended community

20 months agobgpd: Implement ACCEPT_OWN extended community
Donatas Abraitis [Sun, 18 Sep 2022 19:18:13 +0000 (22:18 +0300)]
bgpd: Implement ACCEPT_OWN extended community

TL;DR: rfc7611.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #11159 from maduri111/bgpd-orr
Russ White [Wed, 12 Oct 2022 13:30:36 +0000 (09:30 -0400)]
Merge pull request #11159 from maduri111/bgpd-orr

bgpd: optimal route reflection

20 months agoMerge pull request #12059 from achernavin22/fix-max-med-on-startup
Donatas Abraitis [Wed, 12 Oct 2022 13:19:06 +0000 (16:19 +0300)]
Merge pull request #12059 from achernavin22/fix-max-med-on-startup

bgpd: fix "bgp max-med on-startup"

20 months agoMerge pull request #11981 from proelbtn/add-support-to-change-function-length
Russ White [Wed, 12 Oct 2022 12:44:29 +0000 (08:44 -0400)]
Merge pull request #11981 from proelbtn/add-support-to-change-function-length

bgpd: Add support to change Segment Routing function length

20 months agoMerge pull request #12105 from opensourcerouting/fix/bgp_list_sequence_handling_frr...
Donald Sharp [Wed, 12 Oct 2022 11:41:56 +0000 (07:41 -0400)]
Merge pull request #12105 from opensourcerouting/fix/bgp_list_sequence_handling_frr-reload

tools: Handle sequence numbers for BGP community (large/ext) in frr-reload.py

20 months agobgpd: code review comments addressed
Madhuri Kuruganti [Tue, 11 Oct 2022 13:29:37 +0000 (18:59 +0530)]
bgpd: code review comments addressed

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agobgpd, ospfd: update BGP when routes are removed from OSPF routing table
Madhuri Kuruganti [Sun, 18 Sep 2022 22:23:20 +0000 (03:53 +0530)]
bgpd, ospfd: update BGP when routes are removed from OSPF routing table

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agobgpd: fix for crash when no neighbor A.B.C.D remote-as AS_NUM with orr config
Madhuri Kuruganti [Sun, 18 Sep 2022 15:45:03 +0000 (21:15 +0530)]
bgpd: fix for crash when no neighbor A.B.C.D remote-as AS_NUM with orr config

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agoospfd: few fixes in rSPF calc when LSA received from non root node
Madhuri Kuruganti [Mon, 12 Sep 2022 14:27:20 +0000 (19:57 +0530)]
ospfd: few fixes in rSPF calc when LSA received from non root node

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agobgpd, ospfd: BGP ORR CI warning fixes
Madhuri Kuruganti [Sun, 4 Sep 2022 15:11:07 +0000 (20:41 +0530)]
bgpd, ospfd: BGP ORR CI warning fixes

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agoospfd: rSPF calc and messaging for optimal route reflection
Madhuri Kuruganti [Sun, 4 Sep 2022 12:46:09 +0000 (18:16 +0530)]
ospfd: rSPF calc and messaging for optimal route reflection

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agobgpd: optimal router reflection cli and fsm changes
Madhuri Kuruganti [Sun, 4 Sep 2022 12:06:33 +0000 (17:36 +0530)]
bgpd: optimal router reflection cli and fsm changes

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agodoc: Add documentation for BGP ORR support
Madhuri Kuruganti [Sun, 4 Sep 2022 11:59:41 +0000 (17:29 +0530)]
doc: Add documentation for BGP ORR support

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agolib: BGP registration with IGP for BGP ORR rSPF calc
Madhuri Kuruganti [Sun, 4 Sep 2022 11:56:11 +0000 (17:26 +0530)]
lib: BGP registration with IGP for BGP ORR rSPF calc

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agoMerge pull request #12074 from donaldsharp/lib_debugs
Donatas Abraitis [Wed, 12 Oct 2022 07:38:21 +0000 (10:38 +0300)]
Merge pull request #12074 from donaldsharp/lib_debugs

*: Create and use infrastructure to show debugs in lib

20 months agoMerge pull request #12091 from kuldeepkash/update_assert_msg
Donatas Abraitis [Wed, 12 Oct 2022 07:37:10 +0000 (10:37 +0300)]
Merge pull request #12091 from kuldeepkash/update_assert_msg

tests: [topojson]Update assert messages for better debugging

20 months agotools: Apply black formatting for frr-reload.py
Donatas Abraitis [Tue, 11 Oct 2022 19:38:30 +0000 (22:38 +0300)]
tools: Apply black formatting for frr-reload.py

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agotools: Handle sequence numbers for BGP community (large/ext) in frr-reload.py
Donatas Abraitis [Tue, 11 Oct 2022 19:36:26 +0000 (22:36 +0300)]
tools: Handle sequence numbers for BGP community (large/ext) in frr-reload.py

If we add/modify community/large/ext lists without sequence numbers, and
doing frr-reload.py, then rules with sequence numbers (show running-config
always adds sequence numbers) will be deleted and new ones will be re-added.

This could lead to blackholing for some time.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #12090 from patrasar/pimv6_show_bsm_db
Donatas Abraitis [Tue, 11 Oct 2022 18:59:22 +0000 (21:59 +0300)]
Merge pull request #12090 from patrasar/pimv6_show_bsm_db

pim6d: Fix RpAddress in "show ipv6 pim bsm-database"

20 months agoMerge pull request #12087 from achernavin22/fix-no-match-rpki
Donatas Abraitis [Tue, 11 Oct 2022 14:05:19 +0000 (17:05 +0300)]
Merge pull request #12087 from achernavin22/fix-no-match-rpki

bgpd: fix "no match rpki" in route-map

20 months agoMerge pull request #12099 from cscarpitta/fix/remove-null-check-before-free
Donatas Abraitis [Tue, 11 Oct 2022 13:39:16 +0000 (16:39 +0300)]
Merge pull request #12099 from cscarpitta/fix/remove-null-check-before-free

bgpd: Don't check for `NULL` when removing SRv6 SIDs

20 months agobgpd: Don't check for NULL when removing SRv6 SIDs
Carmine Scarpitta [Tue, 11 Oct 2022 11:06:39 +0000 (13:06 +0200)]
bgpd: Don't check for NULL when removing SRv6 SIDs

When an SRv6 locator is unset, all the SRv6 SIDs allocated from the
locator are removed. Before freeing the memory allocated for an SRv6
SID, we check if the pointer to the SID is `NULL`.

However, checking for `NULL` before freeing memory is useless.

This PR aims to improve the code's readability by removing the
useless `NULL` checks.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
20 months agobgpd: fix "bgp max-med on-startup"
Alexander Chernavin [Tue, 4 Oct 2022 12:38:54 +0000 (12:38 +0000)]
bgpd: fix "bgp max-med on-startup"

Currently, if `bgp max-med on-startup` is configured, after BGP session
is established for the first time, a timer for the specified time is
started. When the timer is expired, an UPDATE message should be sent to
reflect changes in the routes' MED value. The problem is that the routes
are being suppressed because based on the attributes they look like they
have not changed. However, in the case of max-med, the value is copied
to the packet directly from `bgp->maxmed_value`, not from the
attributes. Thus, changes in this case cannot be detected by comparing
attributes.

With this fix, avoid route suppressing when the `max-med on-startup`
timer expires and initiates an UPDATE.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
20 months agobgpd: fix "no match rpki" in route-map
Alexander Chernavin [Mon, 10 Oct 2022 13:17:54 +0000 (13:17 +0000)]
bgpd: fix "no match rpki" in route-map

With this fix, make "no match rpki" in a route-map actually remove the
node in the candidate configuration instead of creating it.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
20 months agoMerge pull request #12084 from ak503/bgp_show_lc
Donatas Abraitis [Tue, 11 Oct 2022 06:56:39 +0000 (09:56 +0300)]
Merge pull request #12084 from ak503/bgp_show_lc

bgpd: fix display bgp large-community exact-match

20 months agotests: Applied black formatting
Kuldeep Kashyap [Tue, 11 Oct 2022 06:47:54 +0000 (12:17 +0530)]
tests: Applied black formatting

Applied black formatting to suites,
which were missing.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
20 months agopim6d: Fix RpAddress in "show ipv6 pim bsm-database"
Sarita Patra [Tue, 11 Oct 2022 05:10:43 +0000 (22:10 -0700)]
pim6d: Fix RpAddress in "show ipv6 pim bsm-database"

RpAddress is showing wrong value in
"show ipv6 pim bsm-database" cli. This is fixed now.

Issue: #12089

Signed-off-by: Sarita Patra <saritap@vmware.com>
20 months agodoc: Update docs for SRv6 locator prefix command
Ryoga Saito [Fri, 7 Oct 2022 02:20:31 +0000 (11:20 +0900)]
doc: Update docs for SRv6 locator prefix command

In previous commits, func-bits was expanded to 0-64. This PR reflects
these changes.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agotests: Updated assert message for better debugging
Kuldeep Kashyap [Mon, 10 Oct 2022 23:57:50 +0000 (05:27 +0530)]
tests: Updated assert message for better debugging

Updating topojson script's assert messages,
which will help in better debugging, when
test will fail.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
20 months agoMerge pull request #9998 from pguibert6WIND/bgp_tcp_keepalive
Donatas Abraitis [Mon, 10 Oct 2022 12:46:30 +0000 (15:46 +0300)]
Merge pull request #9998 from pguibert6WIND/bgp_tcp_keepalive

Bgp tcp keepalive

20 months agobgpd: fix display bgp large-community exact-match
Your Name [Mon, 10 Oct 2022 10:51:27 +0000 (13:51 +0300)]
bgpd: fix display bgp large-community exact-match

Before patch:
frr# show bgp large-community 1:1:1 exact-match
% Large-community malformed

After patch:
frr# show bgp large-community 1:1:1 exact-match

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
20 months agoMerge pull request #12082 from anlancs/fix/cleanup-21
Donatas Abraitis [Mon, 10 Oct 2022 09:37:21 +0000 (12:37 +0300)]
Merge pull request #12082 from anlancs/fix/cleanup-21

bgpd: cosmetic function address

20 months agoMerge pull request #12070 from cscarpitta/fix/srv6-sid-print-using-pI6
Donatas Abraitis [Mon, 10 Oct 2022 06:36:36 +0000 (09:36 +0300)]
Merge pull request #12070 from cscarpitta/fix/srv6-sid-print-using-pI6

bgpd: Use `%pI6` to print the SRv6 VPN SIDs

20 months agoMerge pull request #11961 from maduri111/ospfd-debug-cmds
Donatas Abraitis [Sun, 9 Oct 2022 18:16:01 +0000 (21:16 +0300)]
Merge pull request #11961 from maduri111/ospfd-debug-cmds

ospfd: fix for some of ospf debug commands config lost after reboot

20 months agoMerge pull request #12073 from donaldsharp/pi_or_die
Donatas Abraitis [Sun, 9 Oct 2022 14:01:38 +0000 (17:01 +0300)]
Merge pull request #12073 from donaldsharp/pi_or_die

bgpd: Remove unnecessary check for pi and setting type and sub-type

20 months agoMerge pull request #12083 from donaldsharp/nexthop_group_issues_local
Donatas Abraitis [Sun, 9 Oct 2022 14:01:16 +0000 (17:01 +0300)]
Merge pull request #12083 from donaldsharp/nexthop_group_issues_local

tests: nhid is interfering with pattern match

20 months agotests: nhid is interfering with pattern match
Donald Sharp [Sat, 8 Oct 2022 14:35:35 +0000 (10:35 -0400)]
tests: nhid is interfering with pattern match

The bgp_gr_restart_retain_routes test is looking for specific output
that does not include the routes nexthop id:

    def _bgp_check_kernel_retained_routes():
        output = (
            r2.cmd("ip route show 172.16.255.1/32 proto bgp dev r2-eth0")
            .replace("\n", "")
            .rstrip()
        )
        expected = "172.16.255.1 via 192.168.255.1 metric 20"
        diff = topotest.get_textdiff(
            output, expected, "Actual IP Routing Table", "Expected IP RoutingTable"
        )
        if diff:
            return False
        return True

While the output includes nexthop group id's now:

root@r2:# ip route show 172.16.255.1 proto bgp dev r2-eth0
172.16.255.1 nhid 8 via 192.168.255.1 metric 20

Let's just mark r2 as not to use nexthop groups for installation
and this test issue will go away.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobgpd: cosmetic function address
anlan_cs [Mon, 26 Sep 2022 02:18:52 +0000 (22:18 -0400)]
bgpd: cosmetic function address

No mistake, just to unify style for the parameter of function address - remove
ampersand.  In current code, only this one place of `hook_register()`s needs
to be made.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
20 months ago*: Create and use infrastructure to show debugs in lib
Donald Sharp [Fri, 7 Oct 2022 11:51:17 +0000 (07:51 -0400)]
*: Create and use infrastructure to show debugs in lib

There are lib debugs being set but never show up in
`show debug` commands because there was no way to show
that they were being used.  Add a bit of infrastructure
to allow this and then use it for `debug route-map`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agoMerge pull request #12062 from fdumontet6WIND/hash_list
Mark Stapp [Fri, 7 Oct 2022 11:30:46 +0000 (07:30 -0400)]
Merge pull request #12062 from fdumontet6WIND/hash_list

lib: hash list add function fix

20 months agotests: Add func-bits for compatibility
Ryoga Saito [Wed, 21 Sep 2022 22:24:02 +0000 (07:24 +0900)]
tests: Add func-bits for compatibility

In order to minimize the changes of test files, this PR adds `func-bits`
parameters on the SRv6 locator definition.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agozebra: expand func-bits
Ryoga Saito [Wed, 21 Sep 2022 07:35:40 +0000 (16:35 +0900)]
zebra: expand func-bits

In order to set function length of SID freely, this PR relieves the
lower limitation of `func-bits`.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: expand SID index
Ryoga Saito [Wed, 21 Sep 2022 07:52:00 +0000 (16:52 +0900)]
bgpd: expand SID index

In order to set higher SID index, this PR relieves the upper
limitation of `sid vpn export`.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: add handling for special label
Ryoga Saito [Tue, 20 Sep 2022 09:42:38 +0000 (18:42 +0900)]
bgpd: add handling for special label

Add handling for reserved MPLS label like IMPLICIT_NULL (3).

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: save srv6_locator_chunk in vpn_policy
Ryoga Saito [Tue, 20 Sep 2022 09:41:55 +0000 (18:41 +0900)]
bgpd: save srv6_locator_chunk in vpn_policy

In order to send correct SRv6 L3VPN advertisement, we need to save
srv6_locator_chunk in vpn_policy. With this information, we can
construct correct SRv6 L3VPN advertisement packets.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: allocate SID according to Function length
Ryoga Saito [Tue, 20 Sep 2022 09:19:13 +0000 (18:19 +0900)]
bgpd: allocate SID according to Function length

Allocate SID according to Function length to eliminate old SID
allocation limits (255).

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: fix transpose_sid
Ryoga Saito [Wed, 21 Sep 2022 03:58:18 +0000 (12:58 +0900)]
bgpd: fix transpose_sid

In order to support variable function length, it is need to update
transpose_sid.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agozebra: add default SRv6 Function length
Ryoga Saito [Tue, 20 Sep 2022 09:24:50 +0000 (18:24 +0900)]
zebra: add default SRv6 Function length

Add default SRv6 Function Length for usecases like SRv6 L3VPN. The
default value (16) comes from the default Function length for SRv6
L3VPN in BGPd.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
20 months agobgpd: Remove unnecessary check for pi and setting type and sub-type
Donald Sharp [Fri, 7 Oct 2022 00:17:26 +0000 (20:17 -0400)]
bgpd: Remove unnecessary check for pi and setting type and sub-type

There is code that sets the pi based upon matching it against
the same peer.  In this code the type and sub-type are also
compared to the passed in type and sub-type.  Let's just use
type and sub-type as that if we have a pi we know type and sub-type
are already correct.  This should also make the first iteration
work correctly when the pi has not been created yet when we call
the martian_update function.bgpd: Remove unnecessary check for pi and setting type and sub-type

There is code that sets the pi based upon matching it against
the same peer.  In this code the type and sub-type are also
compared to the passed in type and sub-type.  Let's just use
type and sub-type as that if we have a pi we know type and sub-type
are already correct.  This should also make the first iteration
work correctly when the pi has not been created yet when we call
the martian_update function.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobgpd: Use %pI6 to print SRv6 VPN SIDs
Carmine Scarpitta [Thu, 6 Oct 2022 17:15:50 +0000 (19:15 +0200)]
bgpd: Use %pI6 to print SRv6 VPN SIDs

Use %pI6 to print the SRv6 VPN SIDs in bgpd VTY.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
20 months agoMerge pull request #12034 from opensourcerouting/fix/gr_hard_notification
Russ White [Thu, 6 Oct 2022 14:05:11 +0000 (10:05 -0400)]
Merge pull request #12034 from opensourcerouting/fix/gr_hard_notification

bgpd: Do not send Deconfig/Shutdown message when restarting

20 months agoMerge pull request #12038 from pguibert6WIND/show_bgp_nexthop_better
Russ White [Thu, 6 Oct 2022 14:04:49 +0000 (10:04 -0400)]
Merge pull request #12038 from pguibert6WIND/show_bgp_nexthop_better

bgpd: improve 'show bgp nexthop' command

20 months agoMerge pull request #12040 from opensourcerouting/fix/bgp_local_as_remote_as
Russ White [Thu, 6 Oct 2022 14:03:26 +0000 (10:03 -0400)]
Merge pull request #12040 from opensourcerouting/fix/bgp_local_as_remote_as

bgpd: Allow using remote-as the same as local-as

20 months agotests: make hash collision test collide harder
David Lamparter [Thu, 6 Oct 2022 13:27:08 +0000 (15:27 +0200)]
tests: make hash collision test collide harder

The issue fixed in the previous commit now correctly triggers a failure:
("assertion (list_add(&head, &itm[j]) == &itm[j]) failed")

Turns out the "shitty" hash function was not shitty enough.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
20 months agolib: fix typesafe hash add with hash collision
Francois Dumontet [Tue, 4 Oct 2022 14:26:19 +0000 (16:26 +0200)]
lib: fix typesafe hash add with hash collision

The typesafe hash data structure enforces items to be unique, but their
hash values may still collide.  To this extent, when two items have the
same hash value, the compare function is called to see if it returns 0
(aka "equal").

While the _find() function handles this correctly, the _add() function
mistakenly only checked the first item with a colliding hash value for
equality, and if it was inequal proceeded to add the new item.  There
may however be additional items with the same hash value collision, one
of which could still compare as equal.  In that case, _add() would
mistakenly add the new element, failing to notice the already added
item.  Breakage ensues.

Fix by looking for an equal element among *all* existing items with the
same hash value, not just the first.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
[DL: rewrote commit message, fixed whitespace/formatting]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
20 months agoMerge pull request #12054 from opensourcerouting/feature/show_that_route_is_not_adver...
mobash-rasool [Thu, 6 Oct 2022 09:53:21 +0000 (15:23 +0530)]
Merge pull request #12054 from opensourcerouting/feature/show_that_route_is_not_advertised

bgpd: Show why the prefix is inaccessible in show commands

20 months agoMerge pull request #11983 from maduri111/bgpd-cond-adv-debug
Donatas Abraitis [Thu, 6 Oct 2022 09:42:28 +0000 (12:42 +0300)]
Merge pull request #11983 from maduri111/bgpd-cond-adv-debug

bgpd: adding debug command for conditional advertisement

20 months agobgpd: conditional advertisement code cleanup
Madhuri Kuruganti [Thu, 6 Oct 2022 07:13:05 +0000 (12:43 +0530)]
bgpd: conditional advertisement code cleanup

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agoMerge pull request #11838 from Pdoijode/v6-gua-nh-bgp-update
Donatas Abraitis [Thu, 6 Oct 2022 07:04:37 +0000 (10:04 +0300)]
Merge pull request #11838 from Pdoijode/v6-gua-nh-bgp-update

bgpd: BGP does not update next-hop when global V6 address is configured

20 months agobgpd: adding debug command for conditional advertisement
Madhuri Kuruganti [Wed, 21 Sep 2022 07:03:52 +0000 (12:33 +0530)]
bgpd: adding debug command for conditional advertisement

Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
20 months agoMerge pull request #12060 from donaldsharp/tunnel_shenanigans
Jafar Al-Gharaibeh [Wed, 5 Oct 2022 22:50:48 +0000 (17:50 -0500)]
Merge pull request #12060 from donaldsharp/tunnel_shenanigans

zebra: Allow tunneldump data to work properly on non-supported kernels

20 months agoMerge pull request #12017 from patrasar/pimv6_hello
Donald Sharp [Wed, 5 Oct 2022 12:25:28 +0000 (08:25 -0400)]
Merge pull request #12017 from patrasar/pimv6_hello

pimd, pim6d: send secondary address in PIM hello packet

20 months agoMerge pull request #12063 from opensourcerouting/fix/update_package_development_versions
Donald Sharp [Wed, 5 Oct 2022 12:10:15 +0000 (08:10 -0400)]
Merge pull request #12063 from opensourcerouting/fix/update_package_development_versions

debian, redhat: Update changelog for new release (8.5)

20 months agoMerge pull request #12019 from devicenull/master
Donatas Abraitis [Wed, 5 Oct 2022 11:14:58 +0000 (14:14 +0300)]
Merge pull request #12019 from devicenull/master

Configure systemd to always restart FRR, regardless of exit code

20 months agoMerge pull request #12013 from SaiGomathiN/11895
Donatas Abraitis [Wed, 5 Oct 2022 11:09:39 +0000 (14:09 +0300)]
Merge pull request #12013 from SaiGomathiN/11895

pim6d: Adding new Debug CLI for MLD

20 months agoMerge pull request #12048 from taspelund/display_retrans_mismatch
Donatas Abraitis [Wed, 5 Oct 2022 11:08:06 +0000 (14:08 +0300)]
Merge pull request #12048 from taspelund/display_retrans_mismatch

RA logging improvements

20 months agobgpd: improve 'show bgp nexthop' command
Philippe Guibert [Wed, 28 Sep 2022 15:23:51 +0000 (17:23 +0200)]
bgpd: improve 'show bgp nexthop' command

- for a given IP nexthop, dump all NH entries, including
colored entries, or entries with an ifindex.
- when a given IP nexthop is requested, the path is displayed.
For better readibility, remove the carriage return between
'Last update' and 'Paths', because ctime() function already
performs carriage return.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
20 months agodebian, redhat: Update changelog for new release (8.5)
Donatas Abraitis [Tue, 4 Oct 2022 18:43:29 +0000 (21:43 +0300)]
debian, redhat: Update changelog for new release (8.5)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agozebra: Allow tunneldump data to work properly on non-supported kernels
Donald Sharp [Tue, 4 Oct 2022 12:51:38 +0000 (08:51 -0400)]
zebra: Allow tunneldump data to work properly on non-supported kernels

When zebra requests tunnel data it is sending a RTM_GETTUNNEL per
interface that is a VXLAN tunnel.  If the kernel that is being
used does not support the particular request type then zebra
will get a error message per tunnel request back.  Unfortunately
netlink_parse_info *stops* reading on the first error message.
Therefor one kernels that are returning an error message
let's gather all of those errors.  This will allow things
like route reads to actually work properly

Fixes: #12056
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobuild: FRR 8.5 development version
Donatas Abraitis [Tue, 4 Oct 2022 18:33:18 +0000 (21:33 +0300)]
build: FRR 8.5 development version

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #12058 from donaldsharp/fabricd_excessive_debugs
Donatas Abraitis [Tue, 4 Oct 2022 18:28:27 +0000 (21:28 +0300)]
Merge pull request #12058 from donaldsharp/fabricd_excessive_debugs

fabricd:  Turn off excessive logging when peering will not come up

20 months agoMerge pull request #12061 from mruprich/show-bgp-graceful-restart-typo
Donatas Abraitis [Tue, 4 Oct 2022 18:26:45 +0000 (21:26 +0300)]
Merge pull request #12061 from mruprich/show-bgp-graceful-restart-typo

bgpd: show ip bgp neighbors graceful-restart typo

20 months agozebra: ignore unspec RetransTimer in RA validation
Trey Aspelund [Fri, 30 Sep 2022 20:47:54 +0000 (20:47 +0000)]
zebra: ignore unspec RetransTimer in RA validation

Section 6.2.7 of RFC 4861 states that a router SHOULD log
inconsistencies in RA information detected on a given link:
```
    - Cur Hop Limit values (except for the unspecified value of zero
      other inconsistencies SHOULD be logged to system network
      management).

    - Values of the M or O flags.

    - Reachable Time values (except for the unspecified value of zero).

    - Retrans Timer values (except for the unspecified value of zero).

    - Values in the MTU options.

    - Preferred and Valid Lifetimes for the same prefix.  If
      AdvPreferredLifetime and/or AdvValidLifetime decrement in real
      time as specified in Section 6.2.1 then the comparison of the
      lifetimes cannot compare the content of the fields in the Router
      Advertisement, but must instead compare the time at which the
      prefix will become deprecated and invalidated, respectively.  Due
      to link propagation delays and potentially poorly synchronized
      clocks between the routers such comparison SHOULD allow some time
      skew.
```

We were not logging inconsistencies if "the unspecified value of zero"
was used for Reachable Time but were logging them for Retrans Timer.
This updates the validation check to also skip the logging of Retrans
Timer inconsistencies if either local/rx value is 0.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
20 months agozebra: show local/rx values in RA mismatch debugs
Trey Aspelund [Fri, 30 Sep 2022 19:58:31 +0000 (19:58 +0000)]
zebra: show local/rx values in RA mismatch debugs

When we process a received Router Advertisement we have some logic in
place to detect and log mismatches in a handful of flags/values.
However, these logs do not include what the actual values are, which
means it's up to the operator to grab a packet capture and compare that
against the local configuration...
So let's make life a little easier by including those in the log itself.

Before:
```
2022/09/30 20:37:16 ZEBRA: [KV2V1-7GM7G][EC 4043309149] enp1s0(2): Rx RA - our AdvCurHopLimit doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [KS0BP-4GR8K][EC 4043309149] enp1s0(2): Rx RA - our AdvManagedFlag doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [RE4EC-VYEJ2][EC 4043309149] enp1s0(2): Rx RA - our AdvOtherConfigFlag doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [X6794-9MW18][EC 4043309149] enp1s0(2): Rx RA - our AdvReachableTime doesn't agree with fe80::5054:ff:feca:b085
2022/09/30 20:37:16 ZEBRA: [S1KXC-H8F4W][EC 4043309149] enp1s0(2): Rx RA - our AdvRetransTimer doesn't agree with fe80::5054:ff:feca:b085
```

After:
```
Sep 30 20:45:18 ub20-2 zebra[47487]: [GSW5Z-V7DZN][EC 4043309149] enp1s0(2): Rx RA - our AdvCurHopLimit (14) doesn't agree with fe80::5054:ff:fe9a:e2ca (64)
Sep 30 20:45:18 ub20-2 zebra[47487]: [RHHTS-F96DR][EC 4043309149] enp1s0(2): Rx RA - our AdvManagedFlag (0) doesn't agree with fe80::5054:ff:fe9a:e2ca (1)
Sep 30 20:45:18 ub20-2 zebra[47487]: [MNBY3-FTN6W][EC 4043309149] enp1s0(2): Rx RA - our AdvOtherConfigFlag (0) doesn't agree with fe80::5054:ff:fe9a:e2ca (1)
Sep 30 20:45:18 ub20-2 zebra[47487]: [GG62B-XXWR0][EC 4043309149] enp1s0(2): Rx RA - our AdvReachableTime (20) doesn't agree with fe80::5054:ff:fe9a:e2ca (777)
Sep 30 20:45:18 ub20-2 zebra[47487]: [YG220-D6B4H][EC 4043309149] enp1s0(2): Rx RA - our AdvRetransTimer (13) doesn't agree with fe80::5054:ff:fe9a:e2ca (0)
```

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
20 months agobgpd: show ip bgp neighbors graceful-restart typo
Michal Ruprich [Tue, 4 Oct 2022 13:14:48 +0000 (15:14 +0200)]
bgpd: show ip bgp neighbors graceful-restart typo

Noticed a typo in the definition of
show_ip_bgp_neighbors_graceful_restart function.

Signed-off-by: Michal Ruprich <mruprich@redhat.com>
20 months agoMerge pull request #12047 from donaldsharp/bgp_nexthop_individual
Russ White [Tue, 4 Oct 2022 11:41:58 +0000 (07:41 -0400)]
Merge pull request #12047 from donaldsharp/bgp_nexthop_individual

bgpd: Fix `show bgp nexthop A.B.C.D`

20 months agofabricd: Turn off excessive logging when peering will not come up
Donald Sharp [Tue, 4 Oct 2022 11:28:51 +0000 (07:28 -0400)]
fabricd:  Turn off excessive logging when peering will not come up

When fabricd is configured to use an interface and there will be
no peers out that interface, the log file is filling up with:

Oct 04 10:50:03 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Initializing to Up
Oct 04 10:50:03 host2 fabricd[1444769]: [R18GA-MS9R7] OpenFabric: Started initial synchronization with 1111.1111.1111 on enp1s0f1np1
Oct 04 10:50:06 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Up to Initializing
Oct 04 10:50:07 host2 fabricd[1444769]: [NT6J7-1RYRF] OpenFabric: Initial synchronization on enp1s0f1np1 timed out!
Oct 04 10:50:07 host2 fabricd[1444769]: [R18GA-MS9R7] OpenFabric: Started initial synchronization with 3333.3333.3333 on enp1s0f0np0
Oct 04 10:50:08 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Up to Initializing
Oct 04 10:50:11 host2 fabricd[1444769]: [NT6J7-1RYRF] OpenFabric: Initial synchronization on enp1s0f0np0 timed out!
Oct 04 10:50:11 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Initializing to Up
Oct 04 10:50:11 host2 fabricd[1444769]: [R18GA-MS9R7] OpenFabric: Started initial synchronization with 1111.1111.1111 on enp1s0f1np1
Oct 04 10:50:14 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Up to Initializing
Oct 04 10:50:15 host2 fabricd[1444769]: [NT6J7-1RYRF] OpenFabric: Initial synchronization on enp1s0f1np1 timed out!
Oct 04 10:50:16 host2 fabricd[1444769]: [R18GA-MS9R7] OpenFabric: Started initial synchronization with 1111.1111.1111 on enp1s0f1np1
Oct 04 10:50:18 host2 fabricd[1444769]: [HHXDJ-1DA93] ISIS-Adj (1): Threeway state change Initializing to Up

The `Threeway state change..` message is guarded by a debug, but the other 2 are not.
Let's guard those with debugs since the log will be filled up rather quickly
with any sort of aggressive timers.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobgpd: Show why the prefix is inaccessible in show commands
Donatas Abraitis [Tue, 4 Oct 2022 08:32:39 +0000 (11:32 +0300)]
bgpd: Show why the prefix is inaccessible in show commands

```
donatas-pc# show ip bgp 100.100.100.0/24 longer-prefixes
BGP table version is 13, local router ID is 10.10.10.10, vrf id 0
Default local pref 100, local AS 65000
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
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
   100.100.100.0/24 0.0.0.0                  0         32768 i

Displayed  1 routes and 15 total paths
donatas-pc# show ip bgp 100.100.100.0/24
BGP routing table entry for 100.100.100.0/24, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    0.0.0.0 (inaccessible, import-check enabled) from 0.0.0.0 (10.10.10.10)
      Origin IGP, metric 0, weight 32768, invalid, sourced, local
      Last update: Tue Oct  4 11:31:44 2022
donatas-pc# show ip bgp 100.100.100.0/24 json
{
  "prefix":"100.100.100.0\/24",
  "version":0,
  "paths":[
    {
      "aspath":{
        "string":"Local",
        "segments":[
        ],
        "length":0
      },
      "origin":"IGP",
      "metric":0,
      "weight":32768,
      "valid":false,
      "version":0,
      "sourced":true,
      "local":true,
      "lastUpdate":{
        "epoch":1664872304,
        "string":"Tue Oct  4 11:31:44 2022\n"
      },
      "nexthops":[
        {
          "ip":"0.0.0.0",
          "hostname":"donatas-pc",
          "afi":"ipv4",
          "accessible":false,
          "importCheckEnabled":true,
          "used":true
        }
      ],
      "peer":{
        "peerId":"0.0.0.0",
        "routerId":"10.10.10.10"
      }
    }
  ]
}
donatas-pc#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #12043 from donaldsharp/bgp_hate
Donatas Abraitis [Sat, 1 Oct 2022 17:40:15 +0000 (20:40 +0300)]
Merge pull request #12043 from donaldsharp/bgp_hate

Bgp hate

20 months agobgpd: Fix `show bgp nexthop A.B.C.D`
Donald Sharp [Fri, 30 Sep 2022 18:58:21 +0000 (14:58 -0400)]
bgpd: Fix `show bgp nexthop A.B.C.D`

The issuing of `show bgp nexthop A.B.C.D` fails even if that
nexthop exists:

eva# show bgp nexthop 192.168.119.120
specified nexthop does not have entry

Fixed:

eva# show bgp nexthop 192.168.119.120
 192.168.119.120 valid [IGP metric 0], #paths 0, peer 192.168.119.120
  if enp39s0
  Last update: Fri Sep 30 14:55:13 2022

  Paths:

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobgpd: Ensure FRR has enough data to read 2 bytes in bgp_open_option_parse
Donald Sharp [Fri, 30 Sep 2022 12:57:43 +0000 (08:57 -0400)]
bgpd: Ensure FRR has enough data to read 2 bytes in bgp_open_option_parse

In bgp_open_option_parse the code is checking that the
stream has at least 2 bytes to read ( the opt_type and
the opt_length).  However if BGP_OPEN_EXT_OPT_PARAMS_CAPABLE(peer)
is configured then FRR is reading 3 bytes.  Which is not good
since the packet could be badly formateed.  Ensure that
FRR has the appropriate data length to read the data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agobgpd: Ensure FRR has enough data to read 2 bytes in peek_for_as4_capability
Donald Sharp [Fri, 30 Sep 2022 12:51:45 +0000 (08:51 -0400)]
bgpd: Ensure FRR has enough data to read 2 bytes in peek_for_as4_capability

In peek_for_as4_capability the code is checking that the
stream has at least 2 bytes to read ( the opt_type and the
opt_length ).  However if BGP_OPEN_EXT_OPT_PARAMS_CAPABLE(peer)
is configured then FRR is reading 3 bytes.  Which is not good
since the packet could be badly formated.  Ensure that
FRR has the appropriate data length to read the data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agopimd, pim6d: send secondary address in PIM hello packet
Sarita Patra [Fri, 23 Sep 2022 07:08:23 +0000 (00:08 -0700)]
pimd, pim6d: send secondary address in PIM hello packet

Fixed as per rfc7761 section 4.3.1.
"""
Sending Hello Messages
The Address List option advertises all the secondary addresses
associated with the source interface of the router originating the
message.  The option MUST be included in all Hello messages if there
are secondary addresses associated with the source interface and MAY
be omitted if no secondary addresses exist.
"""

Issue: #12015

Signed-off-by: Sarita Patra <saritap@vmware.com>
20 months agotests: Check if the routes in the kernel are retained for GR as well
Donatas Abraitis [Fri, 30 Sep 2022 06:46:00 +0000 (09:46 +0300)]
tests: Check if the routes in the kernel are retained for GR as well

Not only in BGP table.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agobgpd: Do not send Deconfig/Shutdown message when restarting
Donatas Abraitis [Tue, 27 Sep 2022 14:30:16 +0000 (17:30 +0300)]
bgpd: Do not send Deconfig/Shutdown message when restarting

We might disable sending unconfig/shutdown notifications when
Graceful-Restart is enabled and negotiated.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agobgpd: BGP does not update next-hop when global V6 address is configured
Pdoijode [Thu, 29 Sep 2022 22:28:38 +0000 (15:28 -0700)]
bgpd: BGP does not update next-hop when global V6 address is configured

When primary global v6 unicast address is configured on an
unnumbered interface, BGP does not re-advertise updates out
with the new global v6 address as the nexthop

Signed-off-by: Pdoijode <pdoijode@nvidia.com>
20 months agotests: Check if BGP works correctly when using local-as == remote-as
Donatas Abraitis [Thu, 29 Sep 2022 18:12:24 +0000 (21:12 +0300)]
tests: Check if BGP works correctly when using local-as == remote-as

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agobgpd: Allow using remote-as the same as local-as
Donatas Abraitis [Thu, 29 Sep 2022 16:09:13 +0000 (19:09 +0300)]
bgpd: Allow using remote-as the same as local-as

As an example, Arista EOS allows this behavior.

Configuration something like:

```
 neighbor PG peer-group
 neighbor PG remote-as 65001
 neighbor PG local-as 65001
 neighbor 192.168.10.124 peer-group PG
```

Or without peer-group.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #12035 from donaldsharp/pim6_write_non_integrated
Donatas Abraitis [Thu, 29 Sep 2022 11:47:10 +0000 (14:47 +0300)]
Merge pull request #12035 from donaldsharp/pim6_write_non_integrated

pimd: Allow v6 to do non-integrated configuration

20 months agopimd: Remove some unused defines in pimd.h
Donald Sharp [Tue, 27 Sep 2022 16:30:26 +0000 (12:30 -0400)]
pimd: Remove some unused defines in pimd.h

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agopimd: Assign a vty port value for v6
Donald Sharp [Tue, 27 Sep 2022 16:29:36 +0000 (12:29 -0400)]
pimd: Assign a vty port value for v6

Let's use 2620

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agoMerge pull request #12036 from opensourcerouting/fix/show_single_allow-reserved-ranges
Donald Sharp [Wed, 28 Sep 2022 12:24:52 +0000 (08:24 -0400)]
Merge pull request #12036 from opensourcerouting/fix/show_single_allow-reserved-ranges

vtysh: Show allow-reserved-ranges once in config

20 months agoMerge pull request #12028 from mobash-rasool/igmp-querier
Donald Sharp [Tue, 27 Sep 2022 19:45:27 +0000 (15:45 -0400)]
Merge pull request #12028 from mobash-rasool/igmp-querier

pimd: IGMP Querier election is not correct in LAN scenario

20 months agovtysh: Show allow-reserved-ranges once in config
Donatas Abraitis [Tue, 27 Sep 2022 18:39:50 +0000 (21:39 +0300)]
vtysh: Show allow-reserved-ranges once in config

Before:

```
donatas-pc# sh run | include allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
allow-reserved-ranges
donatas-pc#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
20 months agoMerge pull request #11990 from spk-hebbar/patch-1
Donald Sharp [Tue, 27 Sep 2022 16:40:37 +0000 (12:40 -0400)]
Merge pull request #11990 from spk-hebbar/patch-1

Update setup.rst

20 months agopimd: Allow v6 to do non-integrated configuration
Donald Sharp [Tue, 27 Sep 2022 16:24:16 +0000 (12:24 -0400)]
pimd: Allow v6 to do non-integrated configuration

Proof:
eva# conf
eva(config)# no service integrated-vtysh-config
eva(config)# end
eva# wr mem
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/ripngd.conf
Configuration saved to /etc/frr/ospfd.conf
Configuration saved to /etc/frr/ospf6d.conf
Configuration saved to /etc/frr/bgpd.conf
Configuration saved to /etc/frr/isisd.conf
Configuration saved to /etc/frr/pimd.conf
Configuration saved to /etc/frr/nhrpd.conf
Configuration saved to /etc/frr/eigrpd.conf
Configuration saved to /etc/frr/babeld.conf
Configuration saved to /etc/frr/sharpd.conf
Configuration saved to /etc/frr/fabricd.conf
Configuration saved to /etc/frr/pbrd.conf
Configuration saved to /etc/frr/staticd.conf
Configuration saved to /etc/frr/bfdd.conf
Configuration saved to /etc/frr/vrrpd.conf
Configuration saved to /etc/frr/pim6d.conf
eva#

Fixes: #12011
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
20 months agoMerge pull request #12018 from pguibert6WIND/pathd_warning_noted
Donald Sharp [Tue, 27 Sep 2022 15:39:46 +0000 (11:39 -0400)]
Merge pull request #12018 from pguibert6WIND/pathd_warning_noted

pathd: change the vty output, when no ted is enabled on pathd

20 months agoMerge pull request #12029 from donaldsharp/cputime_stats
Donatas Abraitis [Tue, 27 Sep 2022 15:39:06 +0000 (18:39 +0300)]
Merge pull request #12029 from donaldsharp/cputime_stats

Cputime stats

20 months agoMerge pull request #11985 from opensourcerouting/fix/thread_off_llgr
Russ White [Tue, 27 Sep 2022 15:29:54 +0000 (11:29 -0400)]
Merge pull request #11985 from opensourcerouting/fix/thread_off_llgr

bgpd: Stop LLGR thread when deleting a peer and/or GR flags changed