mirror_frr/zebra
Chirag Shah e80f70f21d zebra: fix EVPN svd based remote nh neigh del
In the context of SVD (Single VxLAN Device) for L3VNI,
the remote VTEP's nexthop is programmed neighbor entry against
SVD along with neighbor entry against SVI.

However, when L3VNI is removed or the VRF is disabled, all SVI
based remote nexthop neighbors are uninstalled and deleted.
The SVD based neigh entries remains in Zebra and the Kernel.
Subsequently, when reconfiguring L3VNI and relearning the same nexthop,
the neighbor entry is not programmed is because it is not removed
from Zebra SVD neighbor hash table, leading to the failure to
reprogram the entry.

With this fix, the SVD nexthop neigh entry is uninstalled
and deleted from Zebra and Kernel.

Ticket: #3729045

Testing:

borderleaf:# ip neigh show 2.2.2.2
2.2.2.2 dev vlan2560_l3 lladdr 00:01:00:00:1d:09 extern_learn NOARP proto zebra
2.2.2.2 dev vxlan99 lladdr 00:01:00:00:1d:09 extern_learn NOARP proto zebra

With the fix:

Zebra log shows both enties SVD (vxlan99) and SVI (vlan2560_l3)
neighbor entries are deleted.

2024/05/03 18:41:33.527125 ZEBRA: [NH6N7-54CD1] Tx RTM_DELNEIGH family
ipv4 IF vxlan99(16) Neigh 2.2.2.2 MAC  null flags 0x10 state 0x0
ext_flags 0x0
2024/05/03 18:41:33.527128 ZEBRA: [NH6N7-54CD1] Tx RTM_DELNEIGH family
ipv4 IF vlan2560_l3(18) Neigh 2.2.2.2 MAC  null flags 0x10 state 0x0
ext_flags 0x0

borderleaf:# ip neigh show 2.2.2.2
borderleaf:#

Signed-off-by: Chirag Shah <chirag@nvidia.com>
(cherry picked from commit fde6dd7bb9)
2024-05-08 19:38:17 +00:00
..
dpdk zebra: Drop new lines from zlog_debug for dpdk debug messages 2023-09-29 09:02:58 +03:00
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
connected.c Revert "zebra: Add connected with noprefixroute" 2024-01-21 23:14:02 +02:00
connected.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
debug_nl.c *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
debug.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
debug.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
dplane_fpm_nl.c zebra: support route replace semantics in FPM 2023-09-04 15:38:03 -03:00
if_ioctl.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
if_netlink.c Revert "zebra: Add ability to note that a address is NOPREFIXROUTE" 2024-01-21 23:14:06 +02:00
if_netlink.h zebra: Move protodown_r_bit to a better spot 2023-07-05 11:49:36 -04:00
if_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
if_sysctl.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
interface.c zebra: don't deref vxlan-vni array 2024-04-01 20:32:25 +00:00
interface.h Merge pull request #13545 from idryzhov/remove-bond-slave 2023-06-23 11:01:19 +03:00
ioctl.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ioctl.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ipforward_proc.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ipforward_sysctl.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ipforward.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
irdp_interface.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
irdp_main.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
irdp_packet.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
irdp.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
kernel_netlink.c zebra: add RTM_xxxCHAIN message codes, ignore 2023-10-12 19:59:21 +00:00
kernel_netlink.h zebra: Remove unused functionality 2023-07-21 07:31:04 -04:00
kernel_socket.c zebra: Make main routing table (RT_TABLE_MAIN) configurable 2023-08-22 15:29:07 +02:00
kernel_socket.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
label_manager.c zebra: add label chunk range in log when label manager request fails 2023-10-13 15:50:36 +00:00
label_manager.h zebra: merge lm_get_chunk_response() function 2023-10-13 15:50:36 +00:00
main.c zebra: fix route deletion during zebra shutdown 2024-03-18 11:45:17 +00:00
Makefile
netconf_netlink.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
netconf_netlink.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
redistribute.c zebra: Remove static ARP entries on interface down events 2023-11-07 14:41:07 +00:00
redistribute.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
rib.h zebra: The dplane_fpm_nl return path leaks memory 2023-12-12 06:45:31 +00:00
router-id.c Revert "lib: register bgp link-state afi/safi" 2023-10-11 05:02:54 +00:00
router-id.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
rt_netlink.c zebra: The dplane_fpm_nl return path leaks memory 2023-12-12 06:45:31 +00:00
rt_netlink.h zebra: support route replace semantics in FPM 2023-09-04 15:38:03 -03:00
rt_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
rt.h zebra: Use zebra dplane for RTM link and addr 2023-07-05 13:03:14 -04:00
rtadv.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
rtadv.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
rtread_netlink.c Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
rtread_sysctl.c Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
rule_netlink.c zebra: ignore iprule requests for unsupported actions 2023-09-08 10:23:20 -04:00
rule_netlink.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
rule_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
sample_plugin.c *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
subdir.am zebra: dump label table information 2023-09-29 08:24:18 +02:00
table_manager.c zebra: remove unnecessary check for default vrf 2023-07-12 17:00:27 +08:00
table_manager.h *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
tc_netlink.c *: Do not cast to the same type as the destination is 2023-09-29 10:24:16 +03:00
tc_netlink.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
tc_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
testrib.conf
zapi_msg.c Revert "lib: register bgp link-state afi/safi" 2023-10-11 05:02:54 +00:00
zapi_msg.h *: remove ZEBRA_INTERFACE_VRF_UPDATE 2023-10-07 10:06:39 +08:00
zebra_affinitymap.c lib,zebra: add affinity-map configuration hooks 2023-02-10 13:52:01 +01:00
zebra_affinitymap.h lib,zebra: add affinity-map configuration hooks 2023-02-10 13:52:01 +01:00
zebra_dplane.c Revert "zebra: Add ability to note that a address is NOPREFIXROUTE" 2024-01-21 23:14:06 +02:00
zebra_dplane.h Revert "zebra: Add ability to note that a address is NOPREFIXROUTE" 2024-01-21 23:14:06 +02:00
zebra_errors.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_errors.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_evpn_mac.c zebra:fix evpn dup detected local mac del event 2023-04-20 15:45:39 -07:00
zebra_evpn_mac.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
zebra_evpn_mh.c zebra: use ifindex vs ifp to avoid use-after-free on shutdown 2023-05-30 04:09:29 -04:00
zebra_evpn_mh.h zebra: use ifindex vs ifp to avoid use-after-free on shutdown 2023-05-30 04:09:29 -04:00
zebra_evpn_neigh.c zebra:fix a zebra crash issue caused by mac change 2023-07-19 22:03:54 +08:00
zebra_evpn_neigh.h *: Convert THREAD_XXX macros to EVENT_XXX macros 2023-03-24 08:32:17 -04:00
zebra_evpn_vxlan.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_evpn.c Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_evpn.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_fpm_dt.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_fpm_netlink.c zebra: remove duplicated nexthops when sending fpm msg 2023-08-01 09:58:00 +08:00
zebra_fpm_private.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_fpm_protobuf.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_fpm.c zebra: On shutdown stop hook calls for fpm rmac updates 2023-05-19 10:02:19 -04:00
zebra_gr.c * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
zebra_l2_bridge_if.c *: Add a hash_clean_and_free() function 2023-03-21 08:54:21 -04: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: Fix crashes in interface change 2023-08-17 09:43:06 -04:00
zebra_l2.h zebra: Use zebra dplane for RTM link and addr 2023-07-05 13:03:14 -04:00
zebra_mlag_private.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
zebra_mlag_vty.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mlag_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mlag.c zebra: Consolidate the stream_failure section with normal return 2023-06-01 08:58:16 -04:00
zebra_mlag.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mpls_netlink.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mpls_null.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mpls_openbsd.c zebra: Add code to get/set interface to pass up from dplane 2023-07-05 13:03:14 -04:00
zebra_mpls_vty.c zebra: remove unnecessary check for default vrf 2023-07-12 17:00:27 +08:00
zebra_mpls.c zebra: remove unnecessary check for default vrf 2023-07-12 17:00:27 +08:00
zebra_mpls.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_mroute.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mroute.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nb_config.c zebra, yang: add an mpls leaf to interface 2023-08-10 18:13:21 +02:00
zebra_nb_rpcs.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nb_state.c zebra: add northbound api hooks for nexthop segments 2023-09-20 15:07:15 +02:00
zebra_nb.c zebra: add northbound api hooks for nexthop segments 2023-09-20 15:07:15 +02:00
zebra_nb.h zebra: add northbound api hooks for nexthop segments 2023-09-20 15:07:15 +02:00
zebra_neigh.c zebra: Remove static ARP entries on interface down events 2023-11-07 14:41:07 +00:00
zebra_neigh.h zebra: Remove static ARP entries on interface down events 2023-11-07 14:41:07 +00:00
zebra_netns_id.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_netns_id.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_netns_notify.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
zebra_netns_notify.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nhg_private.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nhg.c lib, zebra: Check for not being a blackhole route 2024-04-23 12:10:36 +00:00
zebra_nhg.h zebra: re-install nhg on interface up 2023-05-05 14:37:52 -07:00
zebra_ns.c zebra: Use zebra dplane for RTM link and addr 2023-07-05 13:03:14 -04:00
zebra_ns.h zebra: Use zebra dplane for RTM link and addr 2023-07-05 13:03:14 -04:00
zebra_opaque.c zebra: clean up coverity warning in opaque api 2023-06-26 13:19:23 -04:00
zebra_opaque.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_pbr.c zebra: add zclient to iprules key 2023-10-06 12:26:38 -04:00
zebra_pbr.h pbrd: PBR_FILTER_DSFIELD -> {PBR_FILTER_DSCP,PBR_FILTER_ECN} 2023-08-08 10:18:22 -07:00
zebra_ptm_redistribute.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_ptm_redistribute.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_ptm.c zebra: Make memory description string smaller to fit in vty space 2023-05-19 21:31:35 -04:00
zebra_ptm.h ripd: support BFD integration 2023-04-19 09:15:01 -03:00
zebra_pw.c zebra: remove unnecessary check for default vrf 2023-07-12 17:00:27 +08:00
zebra_pw.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
zebra_rib.c zebra: The dplane_fpm_nl return path leaks memory 2023-12-12 06:45:31 +00:00
zebra_rnh.c zebra: Refactor memory allocation in zebra_rnh.c 2023-11-15 12:28:51 +00:00
zebra_rnh.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01: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 *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_routemap_nb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_routemap.c zebra: Remove tag from zebra_rmap_obj 2023-08-11 11:21:03 -04:00
zebra_routemap.h zebra: Remove tag from zebra_rmap_obj 2023-08-11 11:21:03 -04:00
zebra_router.c zebra: Allow zebra cli to accept v6 routes with v4 nexthops 2023-08-03 08:25:20 -04:00
zebra_router.h zebra: Allow zebra cli to accept v6 routes with v4 nexthops 2023-08-03 08:25:20 -04:00
zebra_script.c zebra: Add code to get/set interface to pass up from dplane 2023-07-05 13:03:14 -04:00
zebra_script.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_snmp.c zebra: Fix longstanding snmp coverity issue 2023-09-21 08:45:27 -04:00
zebra_srte.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srte.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srv6_vty.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srv6_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srv6.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srv6.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_tc.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_tc.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_trace.c zebra: Add initial zebra tracepoint support 2022-04-20 09:39:47 -04:00
zebra_trace.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_vrf.c Merge pull request #14162 from opensourcerouting/feature/turn_on_nht_resolve_via_default_for_traditional_profile 2023-09-13 05:57:49 -04:00
zebra_vrf.h zebra: Enable nht resolve-via-default by default for traditional profile 2023-08-17 21:45:55 +03:00
zebra_vty.c zebra: Show NHT resolve via default status on/off 2023-08-17 21:45:55 +03:00
zebra_vxlan_if.c *: Add a hash_clean_and_free() function 2023-03-21 08:54:21 -04:00
zebra_vxlan_if.h zebra: Fix for mcast-group update and delete per vni for svd 2023-02-13 18:12:05 -05:00
zebra_vxlan_private.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_vxlan.c zebra: fix EVPN svd based remote nh neigh del 2024-05-08 19:38:17 +00:00
zebra_vxlan.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zserv.c Merge pull request #13333 from donaldsharp/vrf_bitmap_cleanup 2023-07-04 22:11:11 +03:00
zserv.h zebra: remove current_afi as that it is no longer used 2023-03-29 15:40:56 -04:00