]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_spf_private.h
isisd: implement Remote LFA
[mirror_frr.git] / isisd / isis_spf_private.h
index b7f326ca864692cf8477f2d5d09b73a25ebb3aa0..79dfa3e164be09412598d9bb86a1423d096f7267 100644 (file)
@@ -76,7 +76,9 @@ struct isis_vertex {
        struct list *parents;  /* list of parents for ECMP */
        struct hash *firsthops; /* first two hops to neighbor */
        uint64_t insert_counter;
+       uint8_t flags;
 };
+#define F_ISIS_VERTEX_LFA_PROTECTED    0x01
 
 /* Vertex Queue and associated functions */
 
@@ -349,6 +351,21 @@ struct isis_spftree {
                struct isis_spf_nodes p_space;
                struct isis_spf_nodes q_space;
 
+               /* Remote LFA related information. */
+               struct {
+                       /* List of RLFAs eligible to be installed. */
+                       struct rlfa_tree_head rlfas;
+
+                       /*
+                        * RLFA post-convergence SPTs (needed to activate RLFAs
+                        * once label information is received from LDP).
+                        */
+                       struct list *pc_spftrees;
+
+                       /* RLFA maximum metric (or zero if absent). */
+                       uint32_t max_metric;
+               } remote;
+
                /* Protection counters. */
                struct {
                        uint32_t lfa[SPF_PREFIX_PRIO_MAX];