zebra/quagga ospf and unh test section 3

原创 2005年04月26日 23:09:00

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     

case 3.15
set vlink ospf interface output cost
ospf_spf_calculate
  |--ospf_intra_add_router
       |--ospf_vl_up_check
            |--ospf_vl_set_params
           
ospf_write
in this case virtual link src address and destination address is not in the same subnet.
           
case 3.16
add a static route
ip_route
  |--zebra_static_ipv4
       |--static_add_ipv4
            |--static_install_ipv4
                 |--rib_process
                      |--nexthop_active_update (check unreachable nexthop)
                      |--rib_install_kernel
                           |--kernel_add_ipv4
                                |--netlink_route_multipath
                                     |--netlink_talk
                                    
                      |--redistribute_add
                           |--zsend_route_multipath
                                |--zebra_server_send_message


initiate request
ospf_redistribute_source_type_metric
  |--ospf_redistribute_set
       |--zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD)
            |--zebra_redistribute_send
       |--ospf_asbr_status_update
            |--ospf_spf_calculate_schedule  
           
           
zebra server handle service request
zebra_client_read (ZEBRA_REDISTRIBUTE_ADD)
  |--zebra_redistribute_add
       |--zebra_redistribute
            |--zsend_route_multipath
                 |--zebra_server_send_message        
                
zebra client handle response from server
zclient_read
  |--ipv4_route_add
       |--ospf_zebra_read_ipv4
            |--ospf_external_lsa_originate   
case 3.17
same as 3.16

case 3.18
can't find the related source code.it's a bug!!!
           
case 3.19
ospf_abr_task
  |--ospf_abr_announce_stub_defaults
       |--ospf_abr_announce_network_to_area         
      
ospf_area_default_cost   

case 3.20
ospf_spf_calculate_timer
  |--ospf_ia_routing
       |--ospf_examine_summaries            
            |--process_summary_lsa
                 |--ospf_ia_network_route
                      |--ospf_route_add

case 3.21
ospf_external_lsa_originate
  |--ospf_external_lsa_new
       |--ospf_lsa_unique_id
                     
case 3.22
can't find flush process, it's a bug!!!
ospf_lsa_install
  |--OSPF_MAX_SEQUENCE_NUMBER
                     

zebra-quagga-linux-open-router-software

  • 2014年06月24日 11:02
  • 2.24MB
  • 下载

quagga 的原理解析 zebra原理解析

quagga 的原理解析 zebra原理解析
  • ztguang
  • ztguang
  • 2017年04月25日 20:59
  • 801

(2) quagga源码分析--路由信息处理zebra-rib

(2) quagga源码分析--路由信息处理zebra-rib
  • ztguang
  • ztguang
  • 2017年04月29日 10:57
  • 440

Quagga(zebra)安装配置

Zebos编译 以下是在ubuntu12.04实验并编译通过(理论上适用ubuntu10.04)   一、安装编译需要的工具 1. ./configure 报错 configure: error: G...
  • fzs333
  • fzs333
  • 2016年04月12日 18:44
  • 1263

使用 Quagga 将你的 CentOS 变成 OSPF 路由器

使用 Quagga 将你的 CentOS 变成 OSPF 路由器
  • ztguang
  • ztguang
  • 2016年08月10日 08:24
  • 314

linux下使用quagga配置ospf协议

环境:三台(VM虚拟机) 一、ospf协议   OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gatewa...

Section 3: Console Tab : Logging, Profiling and CommandLine (Part I)

Overview of Console Tab This tab is mainly used for logging. It also can be used as CommandLine win...

CentOS配置zebra OSPF

创建zebra和ospfd的配置文件: [root@localhost ~]# cp /usr/local/etc/zebra.conf.sample /usr/local/etc/zebra.co...

嵌入式开发板 s3c2410下的按键中断 buttons_drv.c and test.c

///////////////////////////  #include #include #include #include #include #include #inc...
  • hejunw
  • hejunw
  • 2011年10月29日 18:55
  • 250
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zebra/quagga ospf and unh test section 3
举报原因:
原因补充:

(最多只允许输入30个字)