【SDN控制器分析之三】ONOS Device Subsystem
来源:互联网 发布:淘宝账号密码分享 编辑:程序博客网 时间:2024/04/28 16:52
概述
设备子系统负责发现和跟踪组成网络的设备,并使管理员和应用程序能够控制它们。大多数ONOS核心子系统都依赖Device子系统的Device和Port的模型对象来进行管理和创建,也会通过Device Provider来和网络进行交互。
Device子系统由以下几个部分组成:
- DeviceManager : 能够与多个Provider通过deviceproviderservice接口交互和多个监听者通过deviceservice接口进行交互。
- DeviceProviders,各有自己的网络协议库或手段与网络进行交互。
- Devicestore,跟踪Device模型对象并生成deviceevents。
Model Objects and Provider Representations
上一节曾讲过ONOS会描述各种网络组件和属性为Core层协议无关的模型对象,在Provider层表述为协议相关的具体对象。以下是两层之间翻译的主要表达方式:
The OpenFlow Subsystem
OpenFlow的南向是由openflowdeviceprovider和OpenFlow驱动组件组成的。OpenFlow的子系统实现了控制器端的OpenFlow协议,通过Loxi工具来生成java代码实现的。因此,当前支持的协议版本1.0和1.3,前者有Nicira扩展的角色协商功能。
下图概述了南向的组织情况:
The OpenFlow Controller
OpenFlow的功能是通过openflowcontroller(OFController图)来进行协同的。这个组件的存储了Switch dpid和OpenFlowSwitch对象之间的映射关系,并生成OpenFlow事件给听众(Provider)订阅。Provider可以订阅以下侦听器中的一个或多个:
- openflowswitchlistener - 设备事件监听器,例如设备连接和断开。例子:openflowdeviceprovider,openflowlinkprovider。
- openfloweventlistener - OpenFlow消息监听器。例如:在openflowruleprovider。
- packetlistener - 传入流量包监听器(packetins)。例子:openflowpacketprovider,openflowlinkprovider,openflowhostprovider。
OpenflowController还负责给每一个Switch对象建立、管理沟通Channel为每个开关对象的了解。连接是通过控制器的建立的,和每个连接的Switch的状态是由openflowswitchagent来记录的。具体来说,控制器将TCP OpenFlow通道(OFChannelHandler, 当前是Netty实现)和一个接入的TCP连接相关联(标记为“通道”上)。
Switch States
- 【SDN控制器分析之三】ONOS Device Subsystem
- 【SDN控制器分析之二】ONOS网络状态表述
- 【SDN控制器分析之一】ONOS架构概述
- SDN控制器ONOS的学习过程[mininet]
- ONOS之开放分布式SDN操作系统
- ONOS之开放分布式SDN操作系统
- (三)SDN 控制器 NOX 源码分析之—— Event_dispatcher
- SDN控制器之POX篇
- 通过ONOSFW项目让Neutron使用ONOS作为SDN控制器(by quqi99)
- 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API
- SDN控制器之OVN实验三:从OVN虚拟网络访问物理网络
- SDN控制器
- (一)SDN 控制器 NOX 源码分析之—— nox_main.cc
- (二)SDN 控制器 NOX 源码分析之—— Component
- (四)SDN 控制器 NOX 源码分析之—— DSO-deployer
- (五)SDN 控制器 NOX 源码分析之—— Connection_manager
- (六)SDN 控制器 NOX 源码分析之—— Kernel
- (七)SDN 控制器 NOX 源码分析之—— static-deployer
- iOS事件响应链(Responder Chain)
- 小希的迷宫 HDU
- input输入框外联式样式控制不了字体
- 斐波那契数列的实现
- Sqoop语句简单案例应用
- 【SDN控制器分析之三】ONOS Device Subsystem
- JAVA反编译工具
- 来学习加载的原理及实现
- 2017暑假训练第五天
- bind()
- 使用scrapy框架爬取豆瓣电影top250信息
- C“段错误” : 快速定位“段错误”位置
- 分区索引笔记(四)--分区索引什么时候会失效及处理
- HDU2255二分匹配最大权值