Commit Graph

4720 Commits

Author SHA1 Message Date
anlan_cs
5498a9f13d bfdd: correct one spelling error of comment
Signed-off-by: anlan_cs <anlan_cs@tom.com>
2021-12-31 05:32:49 -05:00
Igor Ryzhov
63011ec1c5
Merge pull request #10256 from anlancs/cleanup-zebra_evpn_mac_add
zebra: cleanup checking zebra_evpn_mac_add function's return value
2021-12-23 13:10:18 +03:00
anlan_cs
07361b8fdf zebra: cleanup checking zebra_evpn_mac_add function's return value
This function is sure to return correct value by "assert", so the
checking its return value should be removed.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2021-12-22 21:13:26 -05:00
Lou Berger
4b7d297d4b
Merge pull request #9750 from mjstapp/zebra_installed_nhg_id
zebra: add installed nexthop-group id value
2021-12-21 10:31:04 -05:00
Donatas Abraitis
20044d8090
Merge pull request #10245 from anlancs/fix-spell-error
zebra: correct one spell error
2021-12-20 15:14:53 +02:00
anlan_cs
b816de6213 zebra: correct one spell error
Signed-off-by: anlan_cs <anlan_cs@tom.com>
2021-12-19 20:47:01 -05:00
Donatas Abraitis
e69ae079b7
Merge pull request #9899 from Drumato/zebra-srv6-locator-detail-json-support
zebra: Add support for json output in srv6 locator detail command
2021-12-14 09:11:36 +02:00
Stephen Worley
f6f16b6073 zebra: add optional NHG ID output to show ip ro
Add optional NHG ID output to `show ip route` dumps. We have
this in json output already as nexthopGroupID but nice
to have the option in a normal dump as well. Not including in main
output for now to avoid breaking screen scrapers.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2021-12-02 11:28:37 -05:00
Donald Sharp
c3343a755f zebra: Prevent thread usage of data after it being freed
On startup we create a thread timer event to do a rib sweep
of the system.  On shutdown we never stopped this timer and
as such we have a situation where a thread event could be run
on shutdown after the data for it has been freed.  Here is the
crash I am seeing:

(gdb) bt
(gdb)

Save the thread data in zebra_router and stop the thread so we don't
accidently do work on shutdown we don't mean to.  In this case
it happened in our topotests with some severe system load.
Essentially we happened to kill the zebra daemon just as the
graceful_restart timer popped here.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-29 15:51:45 -05:00
Yamato Sugawara
559f4b2f2a zebra: Add support for json output in srv6 locator detail command
Signed-off-by: Yamato Sugawara <yamato.sugawara@linecorp.com>
2021-11-28 23:53:41 +00:00
Igor Ryzhov
cb3fa0a612
Merge pull request #10124 from ton31337/feature/vty_json 2021-11-29 02:11:29 +03:00
Donatas Abraitis
c48349e346 *: Remove redundand braces for single statement blocks
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-27 11:20:59 +02:00
Donatas Abraitis
962af8a8cd zebra: Convert vty_out to vty_json for JSON
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-25 17:49:46 +02:00
Donatas Abraitis
746a6eda2f *: Remove unused variables
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-25 17:35:55 +02:00
Donatas Abraitis
44991dc163 zebra: Replace prefix2str for JSON to %pFX
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-25 17:28:12 +02:00
Mark Stapp
002930f7bb zebra: add installed nexthop-group id value
In some cases, zebra may install a nexthop-group id that is
different from the id of the nhe struct attached to a
route-entry. This happens for a singleton recursive nexthop,
for example, where a route is installed with the resolving
nexthop's id.

The installed value is the most useful value - that corresponds
to information in the kernel on linux/netlink platforms that
support nhgs. Display both values if they differ in ascii
output, and include both values in the json form.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2021-11-23 11:23:26 -05:00
Igor Ryzhov
096f7609f9 *: cleanup ifp->vrf_id
Since f60a1188 we store a pointer to the VRF in the interface structure.
There's no need anymore to store a separate vrf_id field.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-22 20:47:23 +03:00
Donald Sharp
9d5a61264a
Merge pull request #10076 from idryzhov/if-is-loopback-or-vrf
*: unify if_is_loopback/if_is_loopback_or_vrf
2021-11-22 12:02:21 -05:00
Igor Ryzhov
0609190219
Merge pull request #10074 from opensourcerouting/assorted-20211116
lib/vtysh/ospf6d: assorted small bits
2021-11-19 15:43:10 +03:00
Igor Ryzhov
3c52293809
Merge pull request #10092 from ton31337/feature/replace_json_object_string_add_to_json_object_string_addf_for_inet_ntop
*: inet_ntop for JSON output
2021-11-18 22:19:40 +03:00
Russ White
ef148de26d
Merge pull request #9706 from donaldsharp/zebra_client_summ_more_room
zebra: Expand v4/v6 route space
2021-11-18 12:19:44 -05:00
Donatas Abraitis
4e9a98636f *: Remove unused variables
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-18 18:45:41 +02:00
Donatas Abraitis
08edf9c6af zebra: Replace inet_ntop to %pI4/6 for JSON outputs
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-11-18 18:45:41 +02:00
Igor Ryzhov
31ffc82f65
Merge pull request #10080 from mjstapp/fix_lsp_workqueue
zebra: ignore workqueue delete callbacks during shutdown
2021-11-18 18:47:35 +03:00
Mark Stapp
b0d10d93e2 zebra: during shutdown, don't process LSPs on the lsp workqueue
During zebra shutdown, we clear out the LSP workqueue. The LSPs
will be uninstalled and freed during the shutdown process, so
just ignore any LSPs that happen to be on the workqueue.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2021-11-18 07:35:35 -05:00
Mark Stapp
695b279ae3 zebra: free LSP workqueue early, revert PR 10050
this reverts commit dd9538c5f3, which tried to clear
the LSP workqueue late during shutdown.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2021-11-18 07:35:35 -05:00
Donald Sharp
f2ada31cba zebra: Expand v4/v6 route space
At some scale we eventually run out of room displaying v4/v6 route
totals for `show zebra client summ`:
janelle# show zebra client summ
Name      Connect Time    Last Read  Last Write  IPv4 Routes       IPv6 Routes
--------------------------------------------------------------------------------
bgp           04w0d18h     00:00:19    00:01:2411729127/4052681  2037786/903094

This total over ran the space in just a little over a week of uptime.
Expand to have a bit more room.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-17 07:47:28 -05:00
Donald Sharp
f284c1322d zebra: return void for dplane_ctx_get_pbr_ipset_entry
The dplane_ctx_get_pbr_ipset_entry function only
failed when the caller did not pass in a valid
usable pointer.  Change the code to assert on
a pointer not being passed in and remove the
bool return

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-17 07:46:36 -05:00
Donald Sharp
8d78e148b8 zebra: return void for dplane_ctx_get_pbr_iptable
The only time this function ever failed is when
the developer does not pass in a usable pointer
to place the data in.  Change it to an assert
to signify to the end developer that is what
we want and then remove all the if checks
for failure

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-17 07:46:36 -05:00
Donald Sharp
8249f96a5f zebra: dplane_ctx_get_pbr_ipset should return void
The function call dplane_ctx_get_pbr_ipset only
returns false when the calling function fails to
pass in a valid ipset pointer.  This should
be an assertion issue since it's a programming
issue as opposed to an actual run time issue.

Change the function call parameter to not return
a bool on success/fail for a compile time decision.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-17 07:46:36 -05:00
David Lamparter
dd2c81b8c0 lib: rework vty_check_node_for_xpath_decrement
...by having a flag in struct cmd_node rather than hardcoding it in
`lib/command.c`.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-11-16 18:51:22 +01:00
Igor Ryzhov
608c887069 *: unify if_is_loopback/if_is_loopback_or_vrf
We should always treat the VRF interface as a loopback. Currently, this
is not the case, because in some old pre-VRF code we use if_is_loopback
instead of if_is_loopback_or_vrf. To avoid any future problems, the
proposal is to rename if_is_loopback_or_vrf to if_is_loopback and use it
everywhere. if_is_loopback is renamed to if_is_loopback_exact in case
it's ever needed, but currently it's not used anywhere.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-16 18:07:11 +03:00
Donald Sharp
de093103cb
Merge pull request #10072 from idryzhov/zebra-memleak
zebra: fix memleak on shutdown
2021-11-16 08:01:30 -05:00
Igor Ryzhov
9742796ff1 zebra: fix memleak on shutdown
During shutdown, when table_manager_disable is called for the default
VRF, its vrf_id is already set to VRF_UNKNOWN, so the expression is true
and the table manager memory is not freed. Change the expression to
compare the VRF name instead of the id. The check in table_manager_enable
is changed for consistency.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-16 12:42:32 +03:00
Donatas Abraitis
2247d05efe
Merge pull request #10050 from mjstapp/fix_mpls_queue_cleanup
zebra: free LSP workqueue later during shutdown
2021-11-15 17:51:51 +02:00
Jafar Al-Gharaibeh
3357afaa74
Merge pull request #10036 from donaldsharp/finally_frr
Finally frr
2021-11-12 21:35:27 -06:00
Mark Stapp
dd9538c5f3 zebra: free LSP workqueue later during shutdown
Free the LSP workqueue later during shutdown, so that zebra
has enough time to clean up and uninstall any LSPs.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2021-11-12 15:10:00 -05:00
Quentin Young
b0b77855c8 zebra: use tabs instead of spaces zebra_vxlan.c
Bad style introduced in
https://github.com/FRRouting/frr/pull/10006

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-11-12 11:09:48 -05:00
Donald Sharp
f15d7a202e
Merge pull request #9982 from idryzhov/fix-netns-delete
zebra: fix netns deletion
2021-11-11 18:41:33 -05:00
Donald Sharp
66e108cc25
Merge pull request #9965 from idryzhov/fix-table-manager-disable
zebra: fix disabling table manager
2021-11-11 18:40:08 -05:00
Donald Sharp
b72aae2e04 *: Cleanup some documentation from quagga->frr
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-11 14:41:27 -05:00
Donald Sharp
e36f61b507 *: Rename quagga_timestamp with frr_timestamp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-11 14:41:27 -05:00
Donald Sharp
7cc91e67a3 *: Convert quagga_signal_X to frr_signal_X
Naming functions/data structures more appropriately for
the project we are actually in.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-11-11 14:41:27 -05:00
Russ White
7347a4859d
Merge pull request #10006 from chiragshah6/evpn_dev
zebra:  svi down remove evpn l2vni from l3vni list
2021-11-11 08:09:06 -05:00
Igor Ryzhov
928cd90201
Merge pull request #9931 from leibaogit/master
zebra: Fix the RA packets can not sent out
2021-11-11 15:34:01 +03:00
Igor Ryzhov
49df081596 zebra: fix disabling table manager
42d4b30e introduced per-VRF table manager.

Table manager is allocated when the VRF is created, but it is freed when
the VRF is disabled. When this VRF is re-enabled, zebra ends up with
table manager being NULL pointer and it crashes on any dereference.

Table manager should be freed when the VRF is deleted, not when it's
disabled.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-11 14:59:51 +03:00
Igor Ryzhov
6502e5f104 zebra: fix netns deletion
We don't receive interface down/delete notifications from kernel when a
netns is deleted. Therefore we have to manually replicate the necessary
actions, otherwise interfaces are kept in the system with stale pointers
to the deleted netns.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-11-11 14:57:18 +03:00
Mark Stapp
34e5d7e884
Merge pull request #9939 from idryzhov/fix-ptm-build
zebra: fix build with --enable-bfdd=no
2021-11-09 11:49:09 -05:00
Chirag Shah
b13f35ec67 zebra: svi down remove l2vni from l3vni list
Problem:
L2-VNI SVI down followed by L2-VNI's vxlan device
deletion leads to stale entry into L3VNI's
L2-VNI list.

Solution:
When L2-VNI associated SVI is down, default vrf
is the new tenant vrf.
Remove L2-VNI from L3VNI's l2vni list as
L3VNI/VRF is no longer valid in absence of associated
SVI.

When SVI is up re-add L2-VNI into associated VRF's
L3VNI.

The above remove/add from the L3VNI's L2VNI list is
already done when vxlan or L2-VNI is flaped, just need
to handle when SVI is flapped.

Ticket:#2817127
Reviewed By:
Testing Done:

After deleting SVI following by L2-VNI deletion,
L3VNI's L2-VNI list delets the L2-VNI. (no stale entry).

After adding back SVI/L2-VNI, L3VNI list adds back the
L2-VNI and it is associated right tenant VRF.

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2021-11-08 09:33:16 -08:00
Donald Sharp
b7bd8fce85
Merge pull request #9966 from idryzhov/release-daemon-table-chunks
zebra: don't register same hook multiple times
2021-11-08 12:28:10 -05:00