網絡子係統37_網橋、端口定時器
// 網橋定時器初始化 // 在添加網橋時,同時創建網橋使用的定時器 // 調用路徑:br_add_bridge->new_bridge_dev->br_stp_timer_init // 網橋使用的定時器:hello, tcn, tc, gc 1.1 void br_stp_timer_init(struct net_bridge *br) { //根網橋周期性向通過指定端口向其他網橋發送配置BPDU setup_timer(&br->hello_timer, br_hello_timer_expired, (unsigned long) br); //網橋檢測到拓撲變化,通過根端口,發送TCN,直到接收到TCA標誌的配置BPDU setup_timer(&br->tcn_timer, br_tcn_timer_expired, (unsigned long) br); //根網橋通過該定時器,在發送的配置BPDU中,設置TC標誌,指示網絡拓撲發生變化 setup_timer(&br->topology_change_timer, br_topology_change_timer_expired, (unsigned long) br); //垃圾回收,見轉發數據庫 setup_timer(&br->gc_timer, br_fdb_cleanup, (unsigned long) br); } // 端口定時器初始化 // 使能網橋端口的stp時,同時創建端口使用的定時器 // 調用路徑:br_stp_enable_port->br_init_port->br_stp_port_timer_init 2.1 void br_stp_port_timer_init(struct net_bridge_port *p) { //用於端口使用的配置BPDU有效性 setup_timer(&p->message_age_timer, br_message_age_timer_expired, (unsigned long) p); //狀態轉移定時器 setup_timer(&p->forward_delay_timer, br_forward_delay_timer_expired, (unsigned long) p); //端口發送配置bpdu的速率限製定時器 setup_timer(&p->hold_timer, br_hold_timer_expired, (unsigned long) p); }
最後更新:2017-04-03 14:53:53