1. 程式人生 > >Quagga代碼學習之BGP4

Quagga代碼學習之BGP4

ive pat .html can 初始化 pack ble out 學習

文中理解參考:http://www.cnblogs.com/danxi/p/6344116.html 等關於Quagga的源碼學習

第一部分:入口函數

int main (int argc, char **argv) //bgp_main.c

vty_init(bm->master)

bgp_init() // install command

bgp_scan_init()

bgp_attr_init(void)

aspath_init()

community_init()

bgp_route_init() //路由表初始化,安裝BGP命令

table.h

備註:delegate意思為代表

/* Routing table top structure. 
*/ struct route_table { struct route_node *top; /* * Delegate that performs certain functions for this table. */ route_table_delegate_t *delegate; unsigned long count; /* * User data. */ void *info; };

第二部分:config配置如何生效

主要方式:通過DEFUN入口(bgp_vty.c),調用相關的函數

第三部分:路由計算

當收到一個UPDATE包,需要進行路由計算

bgp_packet.c
/* Parse BGP Update packet and make attribute object. */ static int bgp_update_receive (struct peer *peer, bgp_size_t size) {
  //code }

  

第四部分:路由宣告

Quagga代碼學習之BGP4