Commit Graph

29815 Commits

Author SHA1 Message Date
Madhuri Kuruganti
a5dd4bf47d lib: BGP registration with IGP for BGP ORR rSPF calc
Signed-off-by: Madhuri Kuruganti <maduri111@gmail.com>
2022-10-12 13:29:24 +05:30
Donatas Abraitis
69c736ec06
Merge pull request #12074 from donaldsharp/lib_debugs
*: Create and use infrastructure to show debugs in lib
2022-10-12 10:38:21 +03:00
Donatas Abraitis
4b7ad630e0
Merge pull request #12091 from kuldeepkash/update_assert_msg
tests: [topojson]Update assert messages for better debugging
2022-10-12 10:37:10 +03:00
Donatas Abraitis
63f99a91c8 tools: Apply black formatting for frr-reload.py
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-10-11 22:38:30 +03:00
Donatas Abraitis
8bcbee1999 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>
2022-10-11 22:36:26 +03:00
Donatas Abraitis
9cd8485420
Merge pull request #12090 from patrasar/pimv6_show_bsm_db
pim6d: Fix RpAddress in "show ipv6 pim bsm-database"
2022-10-11 21:59:22 +03:00
Donatas Abraitis
656878e513
Merge pull request #12087 from achernavin22/fix-no-match-rpki
bgpd: fix "no match rpki" in route-map
2022-10-11 17:05:19 +03:00
Donatas Abraitis
9f03e9b2e5
Merge pull request #12099 from cscarpitta/fix/remove-null-check-before-free
bgpd: Don't check for `NULL` when removing SRv6 SIDs
2022-10-11 16:39:16 +03:00
Carmine Scarpitta
944909f4f7 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>
2022-10-11 13:06:39 +02:00
Alexander Chernavin
05ab8ceda4 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>
2022-10-11 10:45:06 +00:00
Alexander Chernavin
87c3ed1bf8 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>
2022-10-11 10:39:50 +00:00
Donatas Abraitis
afd4d90111
Merge pull request #12084 from ak503/bgp_show_lc
bgpd: fix display bgp large-community exact-match
2022-10-11 09:56:39 +03:00
Kuldeep Kashyap
84ab38367d tests: Applied black formatting
Applied black formatting to suites,
which were missing.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2022-10-11 12:17:54 +05:30
Sarita Patra
7e371efb85 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>
2022-10-10 22:10:43 -07:00
Ryoga Saito
68fb161b22 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>
2022-10-11 10:00:19 +09:00
Kuldeep Kashyap
d63c7094e4 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>
2022-10-11 06:07:48 +05:30
Donatas Abraitis
2ab760f056 watchfrr: Delay restart_kill if still reading configuration
This mostly happens only for large configuration files, where the default
restart-time (-T, --restart-time / 20s) is not enough.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-10-10 17:18:30 +03:00
Donatas Abraitis
eb53128367
Merge pull request #9998 from pguibert6WIND/bgp_tcp_keepalive
Bgp tcp keepalive
2022-10-10 15:46:30 +03:00
Your Name
1857760c1e 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>
2022-10-10 13:51:27 +03:00
Donatas Abraitis
0c993136ef
Merge pull request #12082 from anlancs/fix/cleanup-21
bgpd: cosmetic function address
2022-10-10 12:37:21 +03:00
Donatas Abraitis
5feffa8147
Merge pull request #12070 from cscarpitta/fix/srv6-sid-print-using-pI6
bgpd: Use `%pI6` to print the SRv6 VPN SIDs
2022-10-10 09:36:36 +03:00
Donatas Abraitis
a957e14cdf
Merge pull request #11961 from maduri111/ospfd-debug-cmds
ospfd: fix for some of ospf debug commands config lost after reboot
2022-10-09 21:16:01 +03:00
Donatas Abraitis
05d16acb20
Merge pull request #12073 from donaldsharp/pi_or_die
bgpd: Remove unnecessary check for pi and setting type and sub-type
2022-10-09 17:01:38 +03:00
Donatas Abraitis
e7954294a7
Merge pull request #12083 from donaldsharp/nexthop_group_issues_local
tests: nhid is interfering with pattern match
2022-10-09 17:01:16 +03:00
Donald Sharp
a61f4f48c7 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>
2022-10-08 10:35:35 -04:00
anlan_cs
f714e57a32 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>
2022-10-08 06:11:52 -04:00
Donald Sharp
cf00164b69 *: 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>
2022-10-07 12:39:05 -04:00
Mark Stapp
9daf964bc8
Merge pull request #12062 from fdumontet6WIND/hash_list
lib: hash list add function fix
2022-10-07 07:30:46 -04:00
Ryoga Saito
be6985adcb 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>
2022-10-07 18:26:53 +09:00
Ryoga Saito
8bcda259ec 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>
2022-10-07 18:26:52 +09:00
Ryoga Saito
46279a11eb 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>
2022-10-07 18:26:52 +09:00
Ryoga Saito
d8b596bd23 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>
2022-10-07 18:26:52 +09:00
Ryoga Saito
bee2e7d08f 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>
2022-10-07 18:26:48 +09:00
Ryoga Saito
c4ab9fd927 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>
2022-10-07 11:34:38 +09:00
Ryoga Saito
df237bd4f0 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>
2022-10-07 11:34:24 +09:00
Ryoga Saito
85521aaabd 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>
2022-10-07 11:34:20 +09:00
Donald Sharp
860ad3f91e 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>
2022-10-06 20:17:26 -04:00
Isabella de Leon
910dab7c30 tests: Add test to cover set-overload-bit on-startup functionality
Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2022-10-06 14:27:00 -07:00
Carmine Scarpitta
1830895a79 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>
2022-10-06 19:15:50 +02:00
Russ White
a00621d8b9
Merge pull request #12034 from opensourcerouting/fix/gr_hard_notification
bgpd: Do not send Deconfig/Shutdown message when restarting
2022-10-06 10:05:11 -04:00
Russ White
bfc8e5855c
Merge pull request #12038 from pguibert6WIND/show_bgp_nexthop_better
bgpd: improve 'show bgp nexthop' command
2022-10-06 10:04:49 -04:00
Russ White
a8ef436639
Merge pull request #12040 from opensourcerouting/fix/bgp_local_as_remote_as
bgpd: Allow using remote-as the same as local-as
2022-10-06 10:03:26 -04:00
David Lamparter
d40aee771f python: use ujson if available
It's noticeably faster.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:40:06 +02:00
David Lamparter
fc84b6ee08 build: don't include vtysh.xref in frr.xref
vtysh.xref only contains a rather-useless duplicate of every single CLI
command incorporated into vtysh...  and including it prevents frr.xref
from becoming the source for vtysh_cmd.c.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:40:06 +02:00
David Lamparter
8ba718d7f7 vtysh: fix bugged command definitions
DAEMON_LIST really needs a space.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:40:06 +02:00
David Lamparter
a0dfca37b5 *: fix some malformed CLI docstrings
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:39:56 +02:00
David Lamparter
3df5764499 lib: add CMD_ATTR_NOSH
To propagate into .xref so extract.pl can be handled there.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:34:32 +02:00
David Lamparter
ba31dc303a lib: detangle DEFUN macros
Make the variants go into an _ATTR macro each.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:34:32 +02:00
David Lamparter
9eebf97e3d lib: make cmd_element->attr a bitmask & clarify
It already "looks" like a bitmask, but we currently can't flag a command
both YANG and HIDDEN at the same time.  It really should be a bitmask.

Also clarify DEPRECATED behaviour (or the absence thereof.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:34:32 +02:00
David Lamparter
53d8bf6d7a lib: remove unused CLI macros
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-10-06 15:34:32 +02:00