mirror_frr/zebra
sharathr 5c71306220 zebra: svd and mvab bug fixes
Ticket: 2730328, 2724075
Reviewed By: CCR-11741, CCR-11746
Testing Done: Unit Test

2730328: At high bridge-vids count, VNI devices are not added in FRR if
FRR restarts after loading e/n/i
The issue is the wrt buffer overflow for netlink_recv_msg.
We have defined the kernel recv message buffer in stack which is of size 32768 (32K).

When the configuration is applied without FRR restart things work fine
because the recv message from kernel is well within the limit of 32K.
However with this configuration, when the FRR was restarted I could see that
some recv messages were crossing the 32K limit and hence weren't processed.
Below error logs were seen when frr was restarted with the confuguration.
2021/08/09 05:59:55 ZEBRA: [EC 4043309092] netlink-cmd (NS 0) error: data remnant size 32768
Fix is to increase the buffer size by another 2K

2724075: evpn mh/SVD - some of the remote neighs/macs aren't installed
in kernel post ifdown/ifup bridge

The issue was specific to SVD. During ifdown/ifup of the bridge,
I could see that the access-bd was not associated with the vni and hence
the remote neighs were not getting programmed in the kernel.
Fix is to reference (or associate) vxlan vni to the access-bd when
the vni is reported up. With this fix, I was able to see the remote
neighs getting programmed to the kernel.

Signed-off-by: Sharath Ramamurthy <sramamurthy@nvidia.com>
2023-02-13 18:12:05 -05:00
..
dpdk build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
connected.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
connected.h lib,zebra: use more const 2021-09-14 10:31:45 -04:00
debug_nl.c zebra: add tc netlink and dplane ops 2022-08-11 02:32:43 +08:00
debug.c zebra: fix flags used for debug dpdk 2022-12-13 17:02:29 -05:00
debug.h zebra: fix flags used for debug dpdk 2022-12-13 17:02:29 -05:00
dplane_fpm_nl.c zebra: single vxlan device dataplace vni update changes 2023-02-13 18:12:04 -05:00
if_ioctl.c zebra: changes for code maintainability 2022-09-15 14:18:48 +05:30
if_netlink.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
if_netlink.h zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
if_socket.c zebra: Add a mpls enable interface node command 2022-08-08 09:15:22 -04:00
if_sysctl.c zebra: changes for code maintainability 2022-09-15 14:18:48 +05:30
interface.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
interface.h zebra: Refactoring changes for zebra_evpn_map_vlan zebra_evpn_from_svi and zl3vni_from_svi 2023-02-13 18:12:04 -05:00
ioctl.c zebra: Attempt to make ioctl.c have a bit more useful log messges 2022-06-15 10:34:30 -04:00
ioctl.h *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward_proc.c zebra: Cleanup set but unused variables 2020-02-27 09:41:58 -05:00
ipforward_sysctl.c *: Remove solaris from FRR 2020-09-21 10:02:20 -04:00
ipforward.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
irdp_interface.c zebra: use real MTYPEs for various objects 2022-12-05 10:55:35 -05:00
irdp_main.c zebra: Convert thread_cancel to THREAD_OFF 2022-07-21 08:30:50 -04:00
irdp_packet.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
irdp.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
kernel_netlink.c zebra: ignore GETVLAN errors at startup 2023-02-13 18:12:05 -05:00
kernel_netlink.h zebra: svd and mvab bug fixes 2023-02-13 18:12:05 -05:00
kernel_socket.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
kernel_socket.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
label_manager.c Merge pull request #7756 from pjdruddy/bgplu-fixes 2021-01-09 15:48:22 -05:00
label_manager.h zebra: expose label-manager util-funcs 2021-01-05 18:19:44 +00:00
main.c zebra: Ensure memory is not freed that dplane depends on in shutdown 2022-12-17 14:09:29 -05:00
Makefile
netconf_netlink.c zebra/netconf_netlink.c: fix build without AF_MPLS 2022-11-08 18:48:41 +01:00
netconf_netlink.h zebra: Add a mpls enable interface node command 2022-08-08 09:15:22 -04:00
redistribute.c zebra: Create a zebra_rib_route_entry_new function and use it 2022-08-17 16:04:50 -04:00
redistribute.h zebra: Fix redistribute.h up to our standards 2022-01-18 08:39:40 -05:00
rib.h zebra: Fix handling of recursive routes when processing closely in time 2022-10-26 15:06:23 -04:00
router-id.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
router-id.h zebra: add IPv6 router-id 2020-07-17 17:39:05 +02:00
rt_netlink.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
rt_netlink.h zebra: Bug fixes in fdb read for flooded traffic and remote fdb cleanup upon vni removal 2023-02-13 18:12:04 -05:00
rt_socket.c zebra: Do not complain if deletion fails 2022-03-19 07:44:54 -04:00
rt.h zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
rtadv.c zebra: Notice Optional Router Advertisement types that are not handled 2022-12-17 16:32:13 -05:00
rtadv.h zebra: Notice Optional Router Advertisement types that are not handled 2022-12-17 16:32:13 -05:00
rtread_netlink.c zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
rtread_sysctl.c zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
rule_netlink.c zebra: Add tracepoint for netlink_rule_change 2022-04-20 09:43:47 -04:00
rule_netlink.h zebra: netlink message batching 2020-08-10 21:42:43 +02:00
rule_socket.c zebra: convert ip rule installation to use dplane thread 2020-06-10 16:18:45 +02:00
sample_plugin.c *: require semicolon after FRR_DAEMON_INFO & co. 2021-03-17 06:18:39 +01:00
subdir.am zebra: add zebra_vxlan_if.h header file to noinst_HEADER 2023-02-13 18:12:04 -05:00
table_manager.c zebra, ospf6d: Do not check if NULL for XCALLOC() 2022-05-08 15:43:21 +03:00
table_manager.h zebra: extend table manager per vrf, add vty configuration 2021-09-21 18:37:30 +02:00
tc_netlink.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
tc_netlink.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
tc_socket.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
testrib.conf
zapi_msg.c lib: add label_type as field in zapi_nexthop 2023-02-13 18:12:05 -05:00
zapi_msg.h zebra: name the route_entry opaque struct more specifically 2022-01-31 08:50:50 -05:00
zebra_dplane.c zebra: single vxlan device dataplace vni update changes 2023-02-13 18:12:04 -05:00
zebra_dplane.h zebra: single vxlan device dataplace vni update changes 2023-02-13 18:12:04 -05:00
zebra_errors.c zebra: add support for protodown reason code 2022-03-09 17:52:44 -05:00
zebra_errors.h zebra: add support for protodown reason code 2022-03-09 17:52:44 -05:00
zebra_evpn_mac.c zebra: vxlan interface refactoring changes 2023-02-13 18:12:04 -05:00
zebra_evpn_mac.h bgpd,zebra,lib: bgp evpn vni macip into two tables 2022-10-11 16:18:21 -04:00
zebra_evpn_mh.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
zebra_evpn_mh.h zebra: multiple vlan aware bridge data structure and related changes 2023-02-13 18:12:04 -05:00
zebra_evpn_neigh.c zebra: vxlan interface refactoring changes 2023-02-13 18:12:04 -05:00
zebra_evpn_neigh.h zebra: install neigh entries on SVD 2023-02-13 18:12:05 -05:00
zebra_evpn_vxlan.h zebra: Refactoring changes for zebra_evpn_map_vlan zebra_evpn_from_svi and zl3vni_from_svi 2023-02-13 18:12:04 -05:00
zebra_evpn.c zebra: Bug fixes in fdb read for flooded traffic and remote fdb cleanup upon vni removal 2023-02-13 18:12:04 -05:00
zebra_evpn.h zebra: Refactoring changes for zebra_evpn_map_vlan zebra_evpn_from_svi and zl3vni_from_svi 2023-02-13 18:12:04 -05:00
zebra_fpm_dt.c zebra: replace inet_ntoa 2020-10-22 13:37:25 -04:00
zebra_fpm_netlink.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_fpm_private.h zebra: Fix IPv4 routes with IPv6 link local next hops install in FPM 2021-09-13 08:39:43 -07:00
zebra_fpm_protobuf.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_fpm.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_gr.c zebra: use real MTYPEs for various objects 2022-12-05 10:55:35 -05:00
zebra_l2_bridge_if.c zebra: Bug fixes in fdb read for flooded traffic and remote fdb cleanup upon vni removal 2023-02-13 18:12:04 -05:00
zebra_l2_bridge_if.h zebra: multiple vlan aware bridge data structure and related changes 2023-02-13 18:12:04 -05:00
zebra_l2.c zebra: Refactoring changes for zebra_evpn_map_vlan zebra_evpn_from_svi and zl3vni_from_svi 2023-02-13 18:12:04 -05:00
zebra_l2.h zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
zebra_mlag_private.c *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
zebra_mlag_vty.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
zebra_mlag_vty.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_mlag.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_mlag.h *: require semicolon after DEFINE_HOOK & co. 2021-03-17 06:18:17 +01:00
zebra_mpls_netlink.c zebra: dplane FPM handle LSP install/update/delete 2020-11-27 16:32:01 +00:00
zebra_mpls_null.c zebra: convert PW updates to async dataplane 2019-01-25 10:45:57 -05:00
zebra_mpls_openbsd.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_mpls_vty.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
zebra_mpls.c lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
zebra_mpls.h lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
zebra_mroute.c zebra, pimd: Add a field family in the message ZEBRA_IPMR_ROUTE_STATS 2022-04-28 01:10:49 -07:00
zebra_mroute.h zebra: Modify base code to get ipv6 stats from kernel 2022-04-28 01:10:49 -07:00
zebra_nb_config.c zebra: remove one unnecessary check for l3vni nb 2022-05-20 03:11:27 -04:00
zebra_nb_rpcs.c zebra: display rpc error msg to vtysh 2020-10-05 13:57:54 -07:00
zebra_nb_state.c zebra: vxlan interface refactoring changes 2023-02-13 18:12:04 -05:00
zebra_nb.c zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_neigh.c zebra: free neighbor state before exit to avoid memleaks 2022-07-14 12:20:01 -04:00
zebra_neigh.h zebra: add support for maintaining local neigh entries 2022-06-27 07:56:55 -04:00
zebra_netns_id.c *: introduce function for sequence numbers 2023-01-20 15:40:28 -03:00
zebra_netns_id.h zebra: dynamically detect vxlan link interfaces in other netns 2020-09-11 18:26:23 +02:00
zebra_netns_notify.c zebra: make sure string is null terminated 2023-01-17 17:08:23 -03:00
zebra_netns_notify.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_nhg_private.h lib, zebra: add missing extern "C" {} blocks to new header files 2020-04-22 23:49:22 -03:00
zebra_nhg.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
zebra_nhg.h lib, zebra: Add ability to encode/decode resilient nhg's 2022-11-04 13:29:36 -04:00
zebra_ns.c zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
zebra_ns.h zebra: Make netlink buffer reads resizeable when needed 2022-02-08 17:28:19 -05:00
zebra_opaque.c *: frr_with_mutex change to follow our standard 2022-07-20 15:50:32 -04:00
zebra_opaque.h zebra: add zebra opaque module 2020-06-02 08:20:54 -04:00
zebra_pbr.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_pbr.h zebra: use real MTYPEs for various objects 2022-12-05 10:55:35 -05:00
zebra_ptm_redistribute.c zebra: kill zebra_memory.h, use MTYPE_STATIC 2021-03-22 20:02:17 +01:00
zebra_ptm_redistribute.h add cplusplus guards to all zebra headers 2019-03-25 16:05:27 +01:00
zebra_ptm.c zebra: Convert thread_cancel to THREAD_OFF 2022-07-21 08:30:50 -04:00
zebra_ptm.h zebra: send BFD messages to staticd 2023-01-13 15:32:12 -03:00
zebra_pw.c zebra: Fix crash in shutdown w/ pw thread still running 2022-08-11 16:31:28 -04:00
zebra_pw.h *: use FRR interface name definition everywhere 2022-05-02 13:00:12 -03:00
zebra_rib.c lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
zebra_rnh.c lib,zebra,bgpd,staticd: use label code to store VNI info 2023-02-13 18:12:05 -05:00
zebra_rnh.h zebra: fix JSON fields for "show ip/ipv6 nht" 2023-01-24 18:15:36 -08:00
zebra_routemap_nb_config.c zebra: remove checks for src address existence when using "set src" 2021-08-02 18:35:30 +03:00
zebra_routemap_nb.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
zebra_routemap_nb.h zebra: North-bound implementation for zebra rmaps 2021-03-30 22:58:42 +03:00
zebra_routemap.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_routemap.h zebra: Free up routemap name memory on vrf deletion event 2022-12-09 09:47:06 -05:00
zebra_router.c zebra: Add zrouter.asic_notification_nexthop_control 2022-12-12 10:44:57 -05:00
zebra_router.h zebra: Add zrouter.asic_notification_nexthop_control 2022-12-12 10:44:57 -05:00
zebra_script.c zebra: Replace TC definitions for dplane 2022-11-23 17:35:33 +02:00
zebra_script.h zebra: Add encoders/decoders for zebra 2021-10-20 00:56:00 +08:00
zebra_snmp.c build: make builddir include path consistent 2021-04-21 15:42:33 +02:00
zebra_srte.c zebra: Add missing enums to switch statements 2023-01-31 15:15:42 -05:00
zebra_srte.h zebra: upon srte leave, flush sr policies 2022-10-19 08:40:01 +02:00
zebra_srv6_vty.c zebra: Add missing newline in SRv6 config write 2022-12-05 10:22:06 +01:00
zebra_srv6_vty.h zebra: add default SRv6 Function length 2022-10-07 11:34:20 +09:00
zebra_srv6.c zebra: Add helpers to notify locator add/delete 2022-11-08 22:44:23 +01:00
zebra_srv6.h zebra: Add helpers to notify locator add/delete 2022-11-08 22:44:23 +01:00
zebra_tc.c zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_tc.h zebra: traffic control state management 2022-11-22 22:35:35 +08:00
zebra_trace.c zebra: Add initial zebra tracepoint support 2022-04-20 09:39:47 -04:00
zebra_trace.h zebra: Fix tracepoint changes for lttng 2022-11-26 09:30:48 -05:00
zebra_vrf.c zebra: Free up routemap name memory on vrf deletion event 2022-12-09 09:47:06 -05:00
zebra_vrf.h zebra: clean up rtadv integration 2022-05-21 14:14:01 +02:00
zebra_vty.c zebra: make next-hop svd command hidden for now 2023-02-13 18:12:05 -05:00
zebra_vxlan_if.c zebra: svd and mvab bug fixes 2023-02-13 18:12:05 -05:00
zebra_vxlan_if.h zebra: handle STP state change for SVD per vlan ID 2023-02-13 18:12:05 -05:00
zebra_vxlan_private.h zebra: install neigh entries on SVD 2023-02-13 18:12:05 -05:00
zebra_vxlan.c zebra: clang-format style fixes 2023-02-13 18:12:05 -05:00
zebra_vxlan.h zebra: add show commands for SVD global neigh table 2023-02-13 18:12:05 -05:00
zserv.c zebra: do not load/store wider-than-ptr atomics 2023-01-06 16:59:02 +01:00
zserv.h zebra: do not load/store wider-than-ptr atomics 2023-01-06 16:59:02 +01:00