summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_evpn_neigh.c
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-05-11 03:02:37 +0200
committerAnuradha Karuppiah <anuradhak@nvidia.com>2020-11-24 19:20:32 +0100
commitb2ee2b71f4864c691e7b022e06e01b521745bc85 (patch)
treecb8be2384efbfe58239c0581e28d6f62e249a6bb /zebra/zebra_evpn_neigh.c
parentMerge pull request #7475 from eololab/add-more-parameters-for-crosscompilation (diff)
downloadfrr-b2ee2b71f4864c691e7b022e06e01b521745bc85.tar.xz
frr-b2ee2b71f4864c691e7b022e06e01b521745bc85.zip
zebra: Keep DAD disabled if EVPN MH is turned on
DAD is not supported currently with EVPN-MH so we turn it off internally when the first ES config is detected. PS: Note that when all local ESs are deleted DAD will stay off and will need to be cleared via a daemon restart. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_evpn_neigh.c')
-rw-r--r--zebra/zebra_evpn_neigh.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/zebra/zebra_evpn_neigh.c b/zebra/zebra_evpn_neigh.c
index e4f38008a..6d72bc570 100644
--- a/zebra/zebra_evpn_neigh.c
+++ b/zebra/zebra_evpn_neigh.c
@@ -984,7 +984,8 @@ void zebra_evpn_process_neigh_on_local_mac_change(zebra_evpn_t *zevpn,
|| es_change) {
ZEBRA_NEIGH_SET_ACTIVE(n);
n->loc_seq = zmac->loc_seq;
- if (!(zvrf->dup_addr_detect && zvrf->dad_freeze
+ if (!(zebra_evpn_do_dup_addr_detect(zvrf)
+ && zvrf->dad_freeze
&& !!CHECK_FLAG(n->flags,
ZEBRA_NEIGH_DUPLICATE)))
zebra_evpn_neigh_send_add_to_client(
@@ -1106,7 +1107,7 @@ static int zebra_evpn_ip_inherit_dad_from_mac(struct zebra_vrf *zvrf,
bool is_old_mac_dup = false;
bool is_new_mac_dup = false;
- if (!zvrf->dup_addr_detect)
+ if (!zebra_evpn_do_dup_addr_detect(zvrf))
return 0;
/* Check old or new MAC is detected as duplicate
* mark this neigh as duplicate
@@ -1203,7 +1204,7 @@ zebra_evpn_dup_addr_detect_for_neigh(struct zebra_vrf *zvrf, zebra_neigh_t *nbr,
char buf1[INET6_ADDRSTRLEN];
bool reset_params = false;
- if (!zvrf->dup_addr_detect)
+ if (!zebra_evpn_do_dup_addr_detect(zvrf))
return;
/* IP is detected as duplicate or inherit dup
@@ -1456,7 +1457,7 @@ int zebra_evpn_local_neigh_update(zebra_evpn_t *zevpn, struct interface *ifp,
* is enabled, do not send update to client.
*/
is_neigh_freezed =
- (zvrf->dup_addr_detect
+ (zebra_evpn_do_dup_addr_detect(zvrf)
&& zvrf->dad_freeze
&& CHECK_FLAG(n->flags,
ZEBRA_NEIGH_DUPLICATE));