diff options
author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2020-05-11 03:02:37 +0200 |
---|---|---|
committer | Anuradha Karuppiah <anuradhak@nvidia.com> | 2020-11-24 19:20:32 +0100 |
commit | b2ee2b71f4864c691e7b022e06e01b521745bc85 (patch) | |
tree | cb8be2384efbfe58239c0581e28d6f62e249a6bb /zebra/zebra_evpn_neigh.c | |
parent | Merge pull request #7475 from eololab/add-more-parameters-for-crosscompilation (diff) | |
download | frr-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.c | 9 |
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)); |