Quagga代码学习之BGP4

文中理解参考: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 }

  

第四部分:路由宣告

 

转载于:https://www.cnblogs.com/wangqing93/p/7111282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值