summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.h
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2023-02-21 14:03:06 +0100
committerGitHub <noreply@github.com>2023-02-21 14:03:06 +0100
commit62bd2580e3e7934d3512b6a88aaf93528a1d2f26 (patch)
treea41517de9fb95bd4e1620dc16c0be7e64f9b6de3 /ospfd/ospfd.h
parentMerge pull request #12248 from pguibert6WIND/bgpasdot (diff)
parenttests: Added ospfv2 flood reduction topotest changes. (diff)
downloadfrr-62bd2580e3e7934d3512b6a88aaf93528a1d2f26.tar.xz
frr-62bd2580e3e7934d3512b6a88aaf93528a1d2f26.zip
Merge pull request #12366 from manojvn/ospfv2-flood-reduction
ospfd: Support OSPF Refresh and Flooding Reduction RFC4136.
Diffstat (limited to 'ospfd/ospfd.h')
-rw-r--r--ospfd/ospfd.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h
index cb26ef5fb..4df65ea75 100644
--- a/ospfd/ospfd.h
+++ b/ospfd/ospfd.h
@@ -101,7 +101,25 @@ struct ospf_redist {
struct route_map *map;
} route_map; /* +1 is for default-information */
#define ROUTEMAP_NAME(R) (R->route_map.name)
-#define ROUTEMAP(R) (R->route_map.map)
+#define ROUTEMAP(R) (R->route_map.map)
+};
+
+/* OSPF area flood reduction info */
+struct ospf_area_fr_info {
+ bool enabled; /* Area support for Flood Reduction */
+ bool configured; /* Flood Reduction configured per area knob */
+ bool state_changed; /* flood reduction state change info */
+ int router_lsas_recv_dc_bit; /* Number of unique router lsas
+ * received with DC bit set.
+ * (excluding self)
+ */
+ bool area_ind_lsa_recvd; /* Indication lsa received in this area */
+ bool area_dc_clear; /* Area has atleast one lsa with dc bit 0(
+ * excluding indication lsa)
+ */
+ struct ospf_lsa *indication_lsa_self; /* Indication LSA generated
+ * in the area.
+ */
};
/* ospf->config */
@@ -240,6 +258,7 @@ struct ospf {
/* Threads. */
struct thread *t_abr_task; /* ABR task timer. */
+ struct thread *t_abr_fr; /* ABR FR timer. */
struct thread *t_asbr_check; /* ASBR check timer. */
struct thread *t_asbr_nssa_redist_update; /* ASBR NSSA redistribution
update timer. */
@@ -391,6 +410,9 @@ struct ospf {
bool ti_lfa_enabled;
enum protection_type ti_lfa_protection_type;
+ /* Flood Reduction configuration state */
+ bool fr_configured;
+
QOBJ_FIELDS;
};
DECLARE_QOBJ_TYPE(ospf);
@@ -576,6 +598,8 @@ struct ospf_area {
uint32_t act_ints; /* Active interfaces. */
uint32_t full_nbrs; /* Fully adjacent neighbors. */
uint32_t full_vls; /* Fully adjacent virtual neighbors. */
+
+ struct ospf_area_fr_info fr_info; /* Flood reduction info. */
};
/* OSPF config network structure. */