quagga代码学习之bgp4

author author     2022-09-06     325

关键词:

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

  

第四部分:路由宣告

 

spark学习之作业优化(代码片段)

💅在前面的spark优化学习中,我们学习了spark的语法、资源调度、sql语法优化和数据倾斜的技巧,今天我们来学习spark中的作业优化,也就是job优化。对往期内容感兴趣的同学可以参考👇:链接:spark学习之处理... 查看详情

elasticsearch聚合学习之四:结果排序(代码片段)

欢迎访问我的GitHub本篇概览本文是《Elasticsearch聚合学习》系列的第四篇,在前面的实战中,聚合的结果以桶(bucket)为单位,放在JSON数组中返回,这些数据是没有排序的,今天来学习如何给这些数据进行排序;系列文章列表《Elast... 查看详情

并发包学习之-atomic包(代码片段)

一,模拟并发代码:线程不安全的代码//并发模拟代码publicclassCountExample//请求总数publicstaticintclientTotal=5000;//同时并发执行的线程数publicstaticintthreadTotal=200;//全局变量publicstaticintcount=0;publicstaticvoidmain(String[]args)Execut 查看详情

vagrant的学习之打包分发(代码片段)

...新用户,直接使用新的box文件。修改vagrantfile,找到这段代码:# 查看详情

scala学习之scala集合类(代码片段)

文章目录SCALACOLLECTIONSThemainScalacollectionsclassesTHEARRAYBUFFERCLASSMorewaystoworkwith`ArrayBuffer`THELISTCLASSCreatingListsAddingelementstoaListHowtorememberthemethodnamesHowtoloopoverlistsA 查看详情

flutter学习之混合开发(代码片段)

...方插件支持直接调用)1.1.1添加依赖1.1.2平台配置1.1.3代码实现1.2电池信息(没有三方插件支持,需要编写原生代码)1.2.1平台通过介绍1.2.2创建测试项目1.2.3编写Dart代码1.2.4编写IOS平台代码1.2.4.1swift代码实现1. 查看详情

深度学习之图像分类(二十六)--convmixer网络详解(代码片段)

深度学习之图像分类(二十六)ConvMixer网络详解目录深度学习之图像分类(二十六)ConvMixer网络详解1.前言2.ASimpleModel:ConvMixer2.1PatchEmbedding2.2ConvMixerLayer2.3ConvMixer网络结构2.4实现代码:3.WeightVisualizations4 查看详情

scala学习之scala中的类(代码片段)

文章目录SCALACLASSESBasicclassconstructor`val`makesfieldsread-onlyClassconstructorsOtherScalaclassexamplesAUXILIARYCLASSCONSTRUCTORSNotesSUPPLYINGDEFAULTVALUESFORCONSTRUCTORPARAMETERSBenefitsBonus 查看详情

scala学习之scala快速入门(代码片段)

文章目录Scala的“味道”Overview概述Hello,worldTheScalaREPLTwotypesofvariablesDeclaringvariabletypesControlstructuresif/elsematchexpressionstry/catchforloopsandexpressionswhileanddo/whileClassesScalamethodsTraits 查看详情

机器学习之决策树(代码片段)

...的概念。   1、熵(entropy)        python3代码实现:defcalcShannonEnt(dataSet):‘‘‘计算香农熵:paramdataSet:数据集:return:计算结果‘‘‘numEntries=len(dataSet)labelCounts=forfeatVecinda 查看详情

scala学习之traits和抽象类(代码片段)

文章目录SCALATRAITSANDABSTRACTCLASSESUsingScalaTraitsasInterfacesAsimpleexampleExtendingatraitExtendingmultipletraitsUSINGSCALATRAITSLIKEABSTRACTCLASSESAfirstexampleOverridinganimplementedmethodMixinginmu 查看详情

opengl学习之13lesson(代码片段)

opengl学习之13lesson简介法向量纹理,让纹理显示的更逼真?linkhttp://www.opengl-tutorial.org/uncategorized/2017/06/07/website-update/http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-13-normal-mapping/(还有中文版 查看详情

spark学习之处理数据倾斜(代码片段)

🐥今天我们将对大数据计算管理部分的数据倾斜做一个总结,本文讲述主要是以spark计算引擎主,相信我,这可能是你看见过最详细的数据倾斜解决方案。对往期内容感兴趣的同学可以参考如下内容👇:链接:sp... 查看详情

javaweb学习之servlet基础(代码片段)

学习笔记仅供参考,如有错误,请多指出                        java学习路上,与君共勉​                                                                          ... 查看详情

javaweb学习之servlet基础(代码片段)

学习笔记仅供参考,如有错误,请多指出                        java学习路上,与君共勉​                                                                          ... 查看详情

mil学习之mcal(代码片段)

 将常用的Mcal模块函数梳理了一下 代码没有调试,可能会有BugusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingMatrox.MatroxImagingLibrary;usingSystem.IO;namesp 查看详情

scala学习之tuples和oop示例(代码片段)

文章目录AFEWMISCELLANEOUSITEMSTUPLESAfewmoretupledetailsReturningatuplefromamethodTuplesaren’tcollectionsANOOPEXAMPLEAfewclassesAddingbehaviortoPizzaAddingbehaviortoOrderTestingthoseclassesExperimentwitht 查看详情

基础学习之第二天(代码片段)

 一.格式化输出              现在有以下需求,让用户输入name,age,job,hobby然后输出如下所示:------------infoofAlexLi-----------Name:AlexLiAge22job:TeacherH 查看详情