void ospf_examine_summaries (struct ospf_area * area, struct route_table *lsdb_rt, struct route_table *rt, struct route_table *rtrs) { struct ia_args args = {rt, rtrs, area}; foreach_lsa (lsdb_rt, &args, 0, process_summary_lsa); }
/* The area link state database consists of the router-LSAs, network-LSAs and summary-LSAs contained in the area structure, along with the AS-external- LSAs contained in the global structure. AS- external-LSAs are omitted from a virtual neighbor's Database summary list. AS-external-LSAs are omitted from the Database summary list if the area has been configured as a stub. */ int nsm_negotiation_done (struct ospf_neighbor *nbr) { struct ospf_area *area; area = nbr->oi->area; foreach_lsa (ROUTER_LSDB (area), nbr, 0, ospf_db_summary_add); foreach_lsa (NETWORK_LSDB (area), nbr, 0, ospf_db_summary_add); foreach_lsa (SUMMARY_LSDB (area), nbr, 0, ospf_db_summary_add); foreach_lsa (SUMMARY_ASBR_LSDB (area), nbr, 0, ospf_db_summary_add); if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK && area->external_routing == OSPF_AREA_DEFAULT) foreach_lsa (EXTERNAL_LSDB (ospf_top), nbr, 0, ospf_db_summary_add); /* OSPF_NSM_TIMER_OFF (nbr->t_db_desc); */ return 0; }
void ospf_examine_transit_summaries (struct ospf_area *area, /* struct ospf_lsdb *lsdb, */ struct route_table *lsdb_rt, struct route_table *rt, struct route_table *rtrs) { struct ia_args args = {rt, rtrs, area}; /* ospf_lsdb_iterator (lsdb, &args, 0, process_transit_summary_lsa); */ foreach_lsa (lsdb_rt, &args, 0, process_transit_summary_lsa); }