]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospfd/ospf_ri.h
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / ospfd / ospf_ri.h
index 26bcc1b62a9d92f32a7a49d36fe400ff71bd23ca..84511ac5e78161851e020fceced60fb8de41f1cd 100644 (file)
@@ -170,7 +170,71 @@ struct ri_pce_subtlv_cap_flag {
 /* Structure to share flooding scope info for Segment Routing */
 struct scope_info {
        uint8_t scope;
-       struct in_addr area_id;
+       struct list *areas;
+};
+
+/* Flags to manage the Router Information LSA. */
+#define RIFLG_LSA_INACTIVE             0x0
+#define RIFLG_LSA_ENGAGED              0x1
+#define RIFLG_LSA_FORCED_REFRESH       0x2
+
+/* Store Router Information PCE TLV and SubTLV in network byte order. */
+struct ospf_pce_info {
+       bool enabled;
+       struct ri_tlv_pce pce_header;
+       struct ri_pce_subtlv_address pce_address;
+       struct ri_pce_subtlv_path_scope pce_scope;
+       struct list *pce_domain;
+       struct list *pce_neighbor;
+       struct ri_pce_subtlv_cap_flag pce_cap_flag;
+};
+
+/*
+ * Store Router Information Segment Routing TLV and SubTLV
+ * in network byte order
+ */
+struct ospf_ri_sr_info {
+       bool enabled;
+       /* Algorithms supported by the node */
+       struct ri_sr_tlv_sr_algorithm algo;
+       /*
+        * Segment Routing Global Block i.e. label range
+        * Only one range supported in this code
+        */
+       struct ri_sr_tlv_sid_label_range range;
+       /* Maximum SID Depth supported by the node */
+       struct ri_sr_tlv_node_msd msd;
+};
+
+/* Store area information to flood LSA per area */
+struct ospf_ri_area_info {
+
+       uint32_t flags;
+
+       /* area pointer if flooding is Type 10 Null if flooding is AS scope */
+       struct ospf_area *area;
+};
+
+/* Following structure are internal use only. */
+struct ospf_router_info {
+       bool enabled;
+
+       uint8_t registered;
+       uint8_t scope;
+       /* LSA flags are only used when scope is AS flooding */
+       uint32_t as_flags;
+
+       /* List of area info to flood RI LSA */
+       struct list *area_info;
+
+       /* Store Router Information Capabilities LSA */
+       struct ri_tlv_router_cap router_cap;
+
+       /* Store PCE capability LSA */
+       struct ospf_pce_info pce_info;
+
+       /* Store SR capability LSA */
+       struct ospf_ri_sr_info sr_info;
 };
 
 /* Prototypes. */