Calculation of the routing table
1.Calculating the shortest-path tree for an area,
-yields the set of intra-area routes
-examine router-LSAs and network-LSAs
-consider those links between routers and transit networks at first, then the stub networks.
2.Calculating the inter-area routes.
-The inter-area routes are calculated by examining summary-LSAs.
-If the router has active attachments to multiple areas, only backbone summary-LSAs are examined.
-Routers attached to a single area examine that area’s summary-LSAs.
3.Examining transit areas’ summary-LSAs
-only performed by area border routers attached to one or more non-backbone transit areas(transit area is different from transit network).
-updates backbone intra-area routes found in Step 1 and inter-area routes found in Step 2.
-never makes unreachable destinations reachable.
4.Calculating AS external routes
ospf
|--new_table(route_table)--ospf_route (for network route)
|--new_rtrs(route_table)--list--ospf_route (for ABR/ASBR route)
case 4.1
ospf_spf_calculate_timer
|--ospf_ia_routing
|--ospf_examine_summaries
|--process_summary_lsa
|--ospf_ia_network_route
|--ospf_route_cmp
|--ospf_ia_router_route
|--ospf_route_cmp
case 4.2
ospf_spf_calculate_timer
|--ospf_ia_routing
|--ospf_examine_summaries
|--process_transit_summary_lsa
|--ospf_update_network_route
|--ospf_update_router_route
case 4.3
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_find_asbr_route (forwarding address is not set)
|--route_node_match(ospf->new_table) (forwarding address is set)
case 4.4
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_find_asbr_route
case 4.5
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--route_node_lookup (ospf->new_table)
case 4.6
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_route_cmp (line: 472)
case 4.7
ospf_route
|--cost
|--u.ext.type2_cost
for type 1 ase, cost is asbr_route->cost + metric
for type 2 ase, cost is asbr_route->cost
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_ase_calculate_new_route
|--ospf_route_cmp
case 4.8
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_route_cmp
|--ospf_asbr_route_cmp
case 4.9
case 4.10
ospf_ase_calculate_timer
|--ospf_ase_calculate_route
|--ospf_route_cmp
|--ospf_asbr_route_cmp
these two cases check for intra-area backbone paths vs inter-area paths, case 4.7 and 4.8 check for intra-area non-backbone paths vs intra-area backbone paths