RYU控制器代码结构的总结
来源:互联网 发布:多迪网络是培训公司吗 编辑:程序博客网 时间:2024/04/20 14:34
1. RYU的基本框架及开发须知
从框架中我们可以看到,在RYU控制器架构中,包括:Non-OF protocols、OF protocols、 各种libraries以及内嵌的APP,同时,RYU控制器提供给用户统一的REST API,供用户基于RYU框架开发自己的APP,同时,开发者可以根据自己的需要。添加所需的组件和库文件。值得注意的是,RYU架构只是提供给开发者一个平台,相当于一个没有应用软件的操作系统,开发者想基于这个框架实现自己想要的功能,就必须通过RYU提供的API编写相应功能的APP,这些APP就相当于我们操作系统的应用软件。
2. RYU的代码结构
RYU控制器实现主要功能的代码放在/ryu/folder中(在我的Linux系统中放在~/home/simon/ryu/ryu/),为了尽快的熟悉RYU,我们首先熟悉RYU的主要功能组件的作用:
- app/-在RYU控制器上面运行的应用,基于控制器完成特定的功能。
- base/-为RYU的APP的正常运行提供必要的基类。其中app_manager.py文件夹中的RyuApp类非常重要,每创建一个新的APP都要继承这个类。
- controller/-这个文件中包含处理OpenFlow功能的一系列文件。例如,来自交换机的数据包,生成flows,处理网络事件,汇总状态信息等与OpenFlow相关的数据处理。
- lib/-包括一系列用于分析不同协议包的包头的协议包库以及一个专门用于OFConfig协议的库。除此之外,还包括专门分析NetFlow和sFlow的分析器,注意,这里对于各个协议数据包只是分析,也就是可以识别以及分析出数据包的包头所包含的信息,并没有对数据包的处理能力,如果想进行不同协议之间的互通以及对于协议数据包的处理,必须要开发者创建相应的组件或者是相应的APP。
- ofproto/-包括OpenFlow协议的版本信息以及对于不同版本的OpenFlow协议相关的分析模块(OF 1.0 1.2 1.3 1.4)
- topology/-包括关于OpenFlow交换机相关的拓扑发现的代码以及对于和拓扑发现相关的信息的处理(例如ports, links等)。内部使用LLDP协议进行拓扑发现。
3.RYU控制器代码概要
大部分的控制器平台都会提供给开发者各自特有的特性来支持下面的关键功能:
- 可以监听异步事件(例如,PACKET_IN, FLOW_REMOVED等),并且可以查看 使用ryu.controller.handler.set_ev_cls decorator注册的事件
- 可以分析进入控制器的数据包(例如,ARP, ICMP, TCP等)并且可以产生发往网络的数据包
- 可以生成并且可以向可编程数据平面发送OpenFlow/SDN信息(例如,PACKET_OUT, FLOW_MOD, STATS_REQUEST等)。
欢迎大家批评指正!
1 0
- RYU控制器代码结构的总结
- RYU控制器代码结构的总结
- ryu控制器的安装
- RYU控制器代码解析-Hub
- RYU控制器代码解析-简单交换机
- Ryu控制器代码解析-DNS欺骗
- Ryu控制器代码解析-任意地址Ping应答
- 控制器ryu安装
- RYU多控制器小结
- SDN/OpenFlow控制器RYU的简介、安装与使用
- SDN/OpenFlow之Ryu控制器的安装与使用
- SDN控制器-Ryu简单使用
- Ubuntu14.04安装Ryu控制器
- Ubuntu14.04安装Ryu控制器
- Ryu eventlet学习总结
- Ryu oslo学习总结
- ryu安装总结
- 基于SDN/OpenFlow的RYU控制器的开发的一些想法
- 关联规则挖掘之Apriori优化
- 对Can We MakeOperating SystemsReliable and Secure 的翻译
- 关于ueditor的图片上传时返回图片存储路径的问题
- Lua学习之【1】:Mac平台下环境的搭建及Hello Lua的输出与编译
- x264移植记录
- RYU控制器代码结构的总结
- 过桥问题和分水问题
- 内存泄漏
- debug 总会停到fileInputStream.class 106行
- linux 中There are stopped jobs.解决方法
- 第八周:定期存款利息·计算器·
- Certificates下面的 App Store and Ad Hoc是灰的??
- 数据结构实验二------线性表
- 近期博客安排