summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_evpn_mh.h
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-06-14 21:13:23 +0200
committerAnuradha Karuppiah <anuradhak@nvidia.com>2020-12-15 19:03:50 +0100
commit35f5c31b0e246ccafc0649e826b8d63ee60eaed1 (patch)
tree070058f85f8d422ba231148edd4f73d5e808869f /zebra/zebra_evpn_mh.h
parentzebra: display DF status only for local ESs (diff)
downloadfrr-35f5c31b0e246ccafc0649e826b8d63ee60eaed1.tar.xz
frr-35f5c31b0e246ccafc0649e826b8d63ee60eaed1.zip
zebra: add support for DF delay timer
When a new ES is created it is held in a non-DF state for 3 seconds as specified by RFC7432. This allows the switch time to import the Type-4 routes from the peers. And the peers time to rx the new Type-4 route. root@torm-11:mgmt:~# vtysh -c "show evpn es 03:44:38:39:ff:ff:01:00:00:01"|grep DF DF status: non-df DF delay: 00:00:01 DF preference: 50000 root@torm-11:mgmt:~# vtysh -c "show evpn es 03:44:38:39:ff:ff:01:00:00:01"|grep DF DF status: df DF preference: 50000 root@torm-11:mgmt:~# Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_evpn_mh.h')
-rw-r--r--zebra/zebra_evpn_mh.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/zebra/zebra_evpn_mh.h b/zebra/zebra_evpn_mh.h
index dc2c299cf..14b298757 100644
--- a/zebra/zebra_evpn_mh.h
+++ b/zebra/zebra_evpn_mh.h
@@ -88,6 +88,13 @@ struct zebra_evpn_es {
* advertised via the ESR
*/
uint16_t df_pref;
+
+ /* When a new ES is configured it is held in a non-DF state
+ * for 3 seconds. This allows the peer Type-4 routes to be
+ * imported before running the DF election.
+ */
+#define ZEBRA_EVPN_MH_DF_DELAY_TIME 3 /* seconds */
+ struct thread *df_delay_timer;
};
RB_HEAD(zebra_es_rb_head, zebra_evpn_es);
RB_PROTOTYPE(zebra_es_rb_head, zebra_evpn_es, rb_node, zebra_es_rb_cmp);