guagga入门-lib库介绍

原创 2017年01月03日 18:06:42
无论是zebra也好还是动态路由的进程也好其都是一个单线程的程序;都能完成以下几个事情
1。一个tcp服务器
2。一个cli命令处理程序;
3。能够监听socket事件(读/写/关闭)
一个线程能完成如此复杂的事情,这个与guagga程序良好的框架设计有关系;
所有的库都在lib目录下
thread库
其实说是thread其实这并不是真正操作系统上的thread的概念,它是事件驱动模型中的一个事件的概念。一个fd对应的事件,其实对应起来就是一个thread。也就是说zebra项目中的thread其实是fd事件的描述;有多少个fd就应该对应有多少个thread。代码在thread.c中;有时间讲详细讲解thread的具体用法;这个thread的实现与libevent的实现其实是类似的。
cli库
cli的库包含几个部分,一个是cli部分的远程回调注册的框架程序,另外一个是cli命令对应终端程序的抽象,注册+回调框架在command.c中。vty的抽象在vty.c代码中;简单讲就是通过实现写好的cli注册命令,关联了命令字符串与其处理回调的关系。vty处理输入输出的信息,代码不用关系是telnet上来的请求,还是unix上来的请求;
zclient库
之前说过无论是ospf 还是ripd都是zebra的client程序,client与server之间交互的常用API已经全部定义到zclient库了,主要定义了zebra通知消息给ospf 以及ospf请求内容到server的一些常用方法。具体后续有时间详细说明;
kernel网络抽象库rtnetlink
因为guagga是路由的套件,自然少不了内核路由的一些接口在rt_netlink.c代码中,写好了常用的netlink消息以及其处理的回调函数,以及一些常用接口的API,例如接口up down的通知回调,例如添加删除路由的API接口等等。所有跟内核网络相关的接口都可以在这里面找到;
数据结构的库
也可以在其中可以找到例如c语言的vector list等等,都已经在里面实现好了。









版权声明:本文为博主原创文章,未经博主允许不得转载。

Quagga 简介

Quagga 简介 什么是Quagga   Quagga软件原名是Zebra是由一个日本开发团队编写的一个以GNU版权方式发布的软件。Quagga项目开始与1996年,当前版本是0.98.4版 可...
  • u011353822
  • u011353822
  • 2014年11月20日 23:51
  • 5765

guagga入门-我们对guagga的修改

在虚拟化修改之前我们队guagga的修改很少主要包含两个部分: 1.管理接口的过滤; 2.server的对接 管理接口的过滤: 主要是为了让zebra等程序不需要再管理口上面运行动态路由的...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:06
  • 283

(2) quagga源码分析--路由信息处理zebra-rib

(2) quagga源码分析--路由信息处理zebra-rib
  • ztguang
  • ztguang
  • 2017年04月29日 10:57
  • 518

unbutu环境下quagga路由软件下的安装[转]

一Quagga简介 Quagga是一个路由软件套件,它提供了路由协议的TCP / IP的路由支持服务,如RIPv1,RIPv2的,RIPng,OSPFv2,OSPFv3,BGP - 4的,和BG...
  • shan275
  • shan275
  • 2016年05月07日 14:52
  • 803

guagga配置问题

zebra和ospfd以及ripd都有自己的配置管理接口; 配置管理接口分为两种: 1。使用telnet来实现的配置管理界面; 2。使用unix套接字来实现的配置管理界面; TCP端口对应关系...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:11
  • 222

guagga入门-ripd的简单配置

在进过前面的内容以后,应该可以正常启动一个ripd的进程了,就可以开始ripd的学习工作了。一般学习ripd这种动态路由,一个主机是不够的,所以需要至少两台主机;建议使用VMware启动两台linux...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:09
  • 311

Quagga 路由软件学习(by quqi99)

Quagga 路由软件学习(by quqi99) 作者:张华  发表于:2013-07-07 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明  http:/...
  • quqi99
  • quqi99
  • 2013年07月07日 18:03
  • 5120

guagga入门-ripd的简单配置

在进过前面的内容以后,应该可以正常启动一个ripd的进程了,就可以开始ripd的学习工作了。一般学习ripd这种动态路由,一个主机是不够的,所以需要至少两台主机;建议使用VMware启动两台linux...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:09
  • 311

guagga入门-我们对guagga的修改

在虚拟化修改之前我们队guagga的修改很少主要包含两个部分: 1.管理接口的过滤; 2.server的对接 管理接口的过滤: 主要是为了让zebra等程序不需要再管理口上面运行动态路由的...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:06
  • 283

guagga入门-我们的虚拟化方案

guagga的虚拟化最早的版本是建立在6win的在github上的开源项目。所以在虚拟化版本中我们实际上是使用的6wind的github版本,后来发现在最新的官方版本中,将6wind已经合入到主线版本...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:05
  • 225
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:guagga入门-lib库介绍
举报原因:
原因补充:

(最多只允许输入30个字)