zebra/quagga ospf and unh test section 3

类别:软件工程 点击:0 评论:0 推荐:

case 3.1
ospf_router_lsa_originate
  |--ospf_router_lsa_body_set
       |--router_lsa_link_set
            |--lsa_link_broadcast_set
           
           
A router originates a router-LSA for each area that it
belongs to. Such an LSA describes the collected states of
the router’s links to the area.

case 3.2
nsm_inactivity_timer
  |--nsm_kill_nbr
       |--nsm_change_state(NSM_Full-->NSM_Down)
            |--ospf_router_lsa_timer_add
            |--OSPF_ISM_EVENT_EXECUTE (ISM_NeighborChange)
           
case 3.3
see case 3.1


case 3.4
Part A
ism_change_state(ISM_Waiting-->ISM_DR)
  |--ospf_network_lsa_timer_add
      |--ospf_network_lsa_originate
           |--ospf_network_lsa_new
                |--  if (oi->full_nbrs == 0)return NULL;
               
Part B
nsm_change_state(NSM_Loading-->NSM_Full)
  |--ospf_network_lsa_timer_add
               
case 3.5
nsm_change_state(NSM_Loading-->NSM_Full or NSM_Full-->NSM_Down)
  |--ospf_network_lsa_timer_add  
       |--ospf_network_lsa_originate
            |--ospf_network_lsa_refresh
                 |--ospf_network_lsa_body_set
                
case 3.6
data structure:
ospf{}
  |--new_rtrs(route_table{})
       |--info(list{})--ospf_route
      
new_rtrs is constructed in
ospf_spf_calculate
  |--ospf_intra_add_router

originate/refresh summary lsa
ospf_abr_task
  |--ospf_abr_process_router_rt
       |--ospf_find_asbr_route
       |--ospf_abr_announce_rtr               
            |--ospf_abr_announce_rtr_to_area
                 |--ospf_summary_asbr_lsa_refresh

remove summary lsa                
ospf_abr_task
  |--ospf_abr_unapprove_summaries
  |--ospf_abr_remove_unapproved_summaries                
 
 
case 3.7
data structure:
ospf{}
  |--new_rtrs(route_table{})
       |--info--ospf_route{}

ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh
           
case 3.8
ospf_abr_task
  |--ospf_abr_process_router_rt
       |--ospf_find_asbr_route
       |--ospf_abr_announce_rtr            
             
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))  
            |--ospf_abr_announce_rtr_to_area
                 |--ospf_summary_asbr_lsa_refresh


case 3.9
ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh
 
 
case 3.10
ospf_abr_task
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            if (or->path_type == OSPF_PATH_INTER_AREA)
            if (!OSPF_IS_AREA_BACKBONE (area))
            |--ospf_abr_announce_network_to_area
                 |--ospf_summary_lsa_refresh

ospf_abr_task
  |--ospf_abr_unapprove_summaries
  |--ospf_abr_remove_unapproved_summaries                
 

case 3.12
ospf_area{}
  |--ranges(route_table)--ospf_area_range{}

ospf_abr_task
  |--ospf_abr_prepare_aggregates
  |--ospf_abr_process_network_rt
       |--ospf_abr_announce_network
            |--ospf_abr_update_aggregate
  |--ospf_abr_announce_aggregates
       |--ospf_abr_announce_network_to_area
      
ospf_area_range
  |--ospf_area_range_set
       |--ospf_area_range_new   
       |--ospf_area_range_add
       |--ospf_schedule_abr_task  
      
case 3.13
ospf_abr_announce_aggregates

case 3.14
ospf_abr_announce_aggregates     

本文地址:http://com.8s8s.com/it/it31630.htm