From d4a53d583c56462864b2fce08b1cf94493c041ab Mon Sep 17 00:00:00 2001 From: paul Date: Sat, 12 Jul 2003 21:30:57 +0000 Subject: 2003-07-12 Paul Jakma * (global): Add/fixup NSSA ABR translation functionality * ospfd.h: Adjust the NSSA ROLE defines. Rename STATE to TRANSLATE. Rename the LSA_NSSA_GET define to LSA_OPTIONS_NSSA_GET. * ospfd.c: Adjust to match changes to ospfd.h * ospf_te.c: Adjust to match change to LSA_NSSA_GET. * ospf_lsa.h: slights reformatting. Add new NSSA functions, ospf_translated_nssa_compare() (not currently used), ospf_translated_nssa_refresh() and ospf_translated_nssa_originate(). * ospf_lsa.c: Implemented aforementioned new functions. Fix up several NSSA hooks to /not/ be called for Type-5s which are translated. Add additional hooks. Set the ROUTER_LSA_NT bit in router-lsa flags if ABR does translation. New function, ospf_lsa_translated_nssa_new() implemented. Dont register translated LSAs for refreshing - instead we implicitly rely on the ASBR refreshing the Type-7, and refresh the translated Type-5 at the same time. Some minor reformatting. Extra debug info added. Also, existing debug statements modified to report LSA Id. * ospf_flood.c: call ospf_translated_nssa_refresh() when refreshing Type-7. minor reformatting. * ospf_dump.c: Dump NSSA LSAs. * ospf_asbr.h: slight reformatting. Export ospf_external_route_lookup() (though, not used. probably will undo this). * ospf_abr.c: Slight reformatting in many places. Update to match ospfd.h changes. (ospf_abr_translate_nssa): make it work, using the new ospf_lsa translation functions. (Several places): change struct prefix * to struct prefix_ipv4 *. (might as well do the casts at higher levels). Add more debug info. (ospf_abr_announce_stub_defaults): announce default to NSSA areas too. (ospf_abr_announce_nssa_defaults): do nothing. this function probably should die. (see ospf_abr_announce_stub_defaults). (ospf_abr_task_timer): run NSSA tasks. --- ospfd/ospf_lsa.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'ospfd/ospf_lsa.h') diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h index 54c88d46..c5541c85 100644 --- a/ospfd/ospf_lsa.h +++ b/ospfd/ospf_lsa.h @@ -277,7 +277,9 @@ struct ospf_lsa *ospf_external_lsa_originate (struct ospf *, struct external_inf int ospf_external_lsa_originate_timer (struct thread *); struct ospf_lsa *ospf_lsa_lookup (struct ospf_area *, u_int32_t, struct in_addr, struct in_addr); -struct ospf_lsa *ospf_lsa_lookup_by_id (struct ospf_area *,u_int32_t, struct in_addr); +struct ospf_lsa *ospf_lsa_lookup_by_id (struct ospf_area *, + u_int32_t, + struct in_addr); struct ospf_lsa *ospf_lsa_lookup_by_header (struct ospf_area *, struct lsa_header *); int ospf_lsa_more_recent (struct ospf_lsa *, struct ospf_lsa *); @@ -319,10 +321,10 @@ int metric_value (struct ospf *, u_char); #ifdef HAVE_NSSA struct in_addr ospf_get_nssa_ip (struct ospf_area *); -#endif /* HAVE NSSA */ - -#ifdef HAVE_NSSA -struct in_addr ospf_get_nssa_ip (struct ospf_area *); +int ospf_translated_nssa_compare (struct ospf_lsa *, struct ospf_lsa *); +struct ospf_lsa *ospf_translated_nssa_refresh (struct ospf *, struct ospf_lsa *, + struct ospf_lsa *); +struct ospf_lsa *ospf_translated_nssa_originate (struct ospf *, struct ospf_lsa *); #endif #endif /* _ZEBRA_OSPF_LSA_H */ -- cgit v1.2.1