Quagga代碼學習之BGP4
阿新 • • 發佈:2017-07-03
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