mirror_frr/zebra
Chirag Shah c34e362b7e zebra: evpn dup detect handle ip state change
For a MAC-IP pair generally local/netlink msg for
MAC is received followed by Neigh. The MAC can be detected as duplicate
during this event.
When a neigh update is received, the neigh inherits DUP flag from its
MAC and along with that mark the neigh as INACTIVE.
Also, In the case of DUP detected neigh, do not update its state
to ACTIVE before determining to send notification to bgpd.

There is a time when Neigh update received prior to MAC update.
In that case neigh is marked as inactive since its MAC is
still in REMOTE state. Once the MAC update is received and
it is detected as DUPLICATE, the neigh would inherit DUP flag
but remained in inactive state.

By fixing the first case, the neigh remains in inactive once
detected as DUPLICATE in both scenarios.

The unfreeze action would mark all inherited neighs to ACTIVE,
and clears DUP flag then sends notification to bgpd (to send type-2).

Ticket:CM-24339
Reviewed By:CCR-8451
Testing Done:
Validated dup detection on both environment where neigh and mac
notification can come as either one first.
With the fix, the neigh was remained in "inactive" state
once detected as duplicate.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-03-25 15:48:53 -07:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
connected.c zebra: Treat ifaces withouth IPv4 as unnumbered 2019-03-07 10:42:31 +01:00
connected.h zebra: set connected route metric based on the devaddr metric 2019-01-25 14:19:26 -05:00
debug.c zebra: Add code to allow us to add debug for mlag 2019-01-31 09:20:46 -05:00
debug.h zebra: Add code to allow us to add debug for mlag 2019-01-31 09:20:46 -05:00
if_ioctl_solaris.c zebra: remove all instances of strncpy 2019-02-25 17:52:37 +00:00
if_ioctl.c zebra: remove all instances of strncpy 2019-02-25 17:52:37 +00:00
if_netlink.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
if_netlink.h zebra: Remove unnecessary function parameter 2018-05-24 09:14:43 -04:00
if_sysctl.c *: spelchek 2018-10-25 20:10:57 +02:00
interface.c Merge pull request #3723 from slrz/zebra-rtadv-add-rfc8106-support 2019-02-12 14:30:00 +01:00
interface.h zebra: support DNS configuration options in rtadv 2019-02-02 19:10:19 +01:00
ioctl_solaris.c zebra: remove all instances of strncpy 2019-02-25 17:52:37 +00:00
ioctl_solaris.h *: reindent 2017-07-17 14:04:07 +02:00
ioctl.c zebra: remove all instances of strncpy 2019-02-25 17:52:37 +00:00
ioctl.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
ipforward_proc.c zebra: fix includes 2018-09-06 20:56:41 +00:00
ipforward_solaris.c *: LIB_[ERR|WARN] -> EC_LIB 2018-09-13 19:34:28 +00:00
ipforward_sysctl.c *: style for EC replacements 2018-09-13 19:38:57 +00:00
ipforward.h *: reindent 2017-07-17 14:04:07 +02:00
irdp_interface.c zebra: Move the master thread handler to the zrouter structure 2019-01-31 09:20:46 -05:00
irdp_main.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
irdp_packet.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
irdp.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
kernel_netlink.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
kernel_netlink.h zebra: rebase dataplane, align with master 2018-10-25 08:57:04 -04:00
kernel_socket.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
kernel_socket.h zebra: cleanup blackhole support 2017-08-28 05:07:51 +02:00
label_manager.c zebra: Move the master thread handler to the zrouter structure 2019-01-31 09:20:46 -05:00
label_manager.h lib, zebra: fix formatting and style 2018-05-08 18:37:05 +02:00
main.c zebra: Remove struct zebra_t 2019-01-31 09:20:46 -05:00
Makefile build: convert zebra/ to non-recursive build 2017-07-31 23:03:30 +02:00
redistribute.c zebra: Remove zclient->idinfo restrictions 2019-02-05 09:13:30 -05:00
redistribute.h zebra: resolve style issues in dplane commit 2018-10-25 08:34:30 -04:00
rib.h zebra: Modify the status flag to 32 bits, add more flags 2019-01-11 11:48:14 -05:00
router-id.c zebra: Remove struct zebra_t 2019-01-31 09:20:46 -05:00
router-id.h *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
rt_netlink.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
rt_netlink.h Merge pull request #3508 from chiragshah6/evpn_dev2 2019-01-23 13:44:46 -05:00
rt_socket.c zebra: Fix use before initialized 2019-01-25 20:14:38 -05:00
rt.h Merge pull request #3684 from mjstapp/dplane_pw 2019-02-05 18:41:12 -05:00
rtadv.c zebra: Fix CLANG suggestion for braces on init of struct 2019-02-12 15:24:00 -05:00
rtadv.h zebra: support DNS configuration options in rtadv 2019-02-02 19:10:19 +01:00
rtread_getmsg.c zebra: evpn remote delete fetch local entry 2018-12-31 14:40:31 -08:00
rtread_netlink.c zebra: evpn remote delete fetch local entry 2018-12-31 14:40:31 -08:00
rtread_sysctl.c zebra: evpn remote delete fetch local entry 2018-12-31 14:40:31 -08:00
rule_netlink.c zebra: add fwmark information at netlink level 2019-01-29 14:15:51 +01:00
rule_netlink.h zebra: Remove unnecessary function parameter 2018-05-24 09:14:43 -04:00
rule_socket.c zebra: Create zebra_dplane.c and .h 2018-09-19 18:29:55 -04:00
subdir.am zebra: Add code to allow us to add debug for mlag 2019-01-31 09:20:46 -05:00
table_manager.c *: list_delete_and_null() -> list_delete() 2018-10-02 11:40:52 +02:00
table_manager.h zebra: use hooks for client lifecycle callbacks 2018-04-22 22:50:24 -04:00
testrib.conf
zapi_msg.c Merge pull request #3892 from vivek-cumulus/evpn_vrf_route_leak 2019-03-15 10:27:13 -07:00
zapi_msg.h zebra: Add ability to send to all clients updated capability information 2019-01-31 09:28:39 -05:00
zebra_dplane.c zebra: use const in dplane pw nhlfe accessors 2019-03-07 15:06:36 -05:00
zebra_dplane.h zebra: use const in dplane pw nhlfe accessors 2019-03-07 15:06:36 -05:00
zebra_errors.c zebra: reject routes without nexthops 2019-01-14 15:58:26 -02:00
zebra_errors.h zebra: reject routes without nexthops 2019-01-14 15:58:26 -02:00
zebra_fpm_dt.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
zebra_fpm_netlink.c zebra: Use ROUTE_ENTRY_INSTALLED as decision for route is installed 2019-01-25 20:16:15 -05:00
zebra_fpm_private.h *: reindent 2017-07-17 14:04:07 +02:00
zebra_fpm_protobuf.c *: fix clang-6 SA warnings 2018-09-08 20:34:35 +02:00
zebra_fpm.c *: style for EC replacements 2018-09-13 19:38:57 +00:00
zebra_l2.c zebra: Let zebra know about bond and blond slave intf types 2018-11-12 11:40:33 -05:00
zebra_l2.h zebra: Let zebra know about bond and blond slave intf types 2018-11-12 11:40:33 -05:00
zebra_memory.c zebra: prefer DEFINE_MTYPE_STATIC for local memtypes 2019-02-11 21:46:06 +01:00
zebra_memory.h zebra: prefer DEFINE_MTYPE_STATIC for local memtypes 2019-02-11 21:46:06 +01:00
zebra_mlag.c zebra: Add ability to send to all clients updated capability information 2019-01-31 09:28:39 -05:00
zebra_mlag.h zebra: Add a retrieve the mlag role function 2019-01-04 12:21:00 -05:00
zebra_mpls_netlink.c zebra: convert PW updates to async dataplane 2019-01-25 10:45:57 -05: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: use const in dplane pw nhlfe accessors 2019-03-07 15:06:36 -05:00
zebra_mpls_vty.c bgpd, ospfd, pimd, zebra: Convert more use_json locations to bool 2018-09-04 17:39:04 +00:00
zebra_mpls.c *: remove null check before XFREE 2019-02-25 23:00:46 +00:00
zebra_mpls.h *: Rename backet to bucket 2019-02-25 16:22:36 +00:00
zebra_mroute.c zebra: Add some additional vrf debug for retrieving mroute info 2018-09-17 09:22:31 -04:00
zebra_mroute.h zebra: standardize ZAPI message handler args 2018-03-12 14:57:05 -04:00
zebra_netns_id.c zebra: dead code (Coverity 1465497) 2018-10-02 15:45:44 +02:00
zebra_netns_id.h zebra: upon startup, a NSID is assigned to default netns 2018-02-27 11:11:24 +01:00
zebra_netns_notify.c zebra: Move the master thread handler to the zrouter structure 2019-01-31 09:20:46 -05:00
zebra_netns_notify.h zebra: collect and get netnamespaces information 2018-02-27 11:11:24 +01:00
zebra_ns.c zebra: start the netns notification mechanism after ns initialisation 2019-01-09 18:31:16 +01:00
zebra_ns.h zebra: start the netns notification mechanism after ns initialisation 2019-01-09 18:31:16 +01:00
zebra_pbr.c *: return bool from boolean functions 2019-02-25 23:00:16 +00:00
zebra_pbr.h zebra: Remove _wrap_script from hook names 2018-10-24 06:54:30 -04:00
zebra_ptm_redistribute.c zebra: Remove zclient->idinfo restrictions 2019-02-05 09:13:30 -05:00
zebra_ptm_redistribute.h *: reindent 2017-07-17 14:04:07 +02:00
zebra_ptm.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
zebra_ptm.h zebra_ptm: Add IS-IS and OpenFabric as protocols supporting BFD 2018-10-05 14:04:27 +02:00
zebra_pw.c Merge pull request #3684 from mjstapp/dplane_pw 2019-02-05 18:41:12 -05:00
zebra_pw.h zebra: convert PW updates to async dataplane 2019-01-25 10:45:57 -05:00
zebra_rib.c Revert "Merge pull request #3982 from pacovn/Coverity_1479148_copy_paste" 2019-03-20 21:25:04 +00:00
zebra_rnh.c *: remove trailing newlines from zlog messages 2019-03-14 18:41:15 +00:00
zebra_rnh.h zebra: consolidate how we indentify address-families in the NHT code 2019-01-21 13:26:36 -02:00
zebra_routemap.c *: remove null check before XFREE 2019-02-25 23:00:46 +00:00
zebra_routemap.h zebra: consolidate how we indentify address-families in the NHT code 2019-01-21 13:26:36 -02:00
zebra_router.c zebra: Upon vrf deletion, actually release this data. 2019-03-01 16:30:31 -05:00
zebra_router.h zebra: Upon vrf deletion, actually release this data. 2019-03-01 16:30:31 -05:00
zebra_snmp.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
zebra_vrf.c zebra: Cleanup rnh table information before deleting underlying tables 2019-03-08 15:38:00 -05:00
zebra_vrf.h zebra: advertise svi ip as macip route changes 2019-02-06 19:57:53 -08:00
zebra_vty.c zebra: remove duplicated json information 2019-03-25 15:02:52 +01:00
zebra_vxlan_private.h zebra: advertise svi ip as macip route changes 2019-02-06 19:57:53 -08:00
zebra_vxlan.c zebra: evpn dup detect handle ip state change 2019-03-25 15:48:53 -07:00
zebra_vxlan.h zebra: advertise svi ip as macip route changes 2019-02-06 19:57:53 -08:00
zebra.conf.sample *: Remove cvs control points 2017-12-05 17:28:12 -05:00
zserv.c zebra: Update zserv debug messages to give a bit more useful info 2019-02-10 11:48:14 -05:00
zserv.h zebra: Remove zclient->idinfo restrictions 2019-02-05 09:13:30 -05:00