diff options
author | Russ White <russ@riw.us> | 2023-02-21 14:03:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-21 14:03:06 +0100 |
commit | 62bd2580e3e7934d3512b6a88aaf93528a1d2f26 (patch) | |
tree | a41517de9fb95bd4e1620dc16c0be7e64f9b6de3 /ospfd/ospfd.h | |
parent | Merge pull request #12248 from pguibert6WIND/bgpasdot (diff) | |
parent | tests: Added ospfv2 flood reduction topotest changes. (diff) | |
download | frr-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.h | 26 |
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. */ |