Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
/* 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;
}
Ejemplo n.º 3
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);
}