【SDN控制器分析之三】ONOS Device Subsystem

本文介绍了ONOS系统中设备子系统的关键组成部分及其功能。主要内容包括DeviceManager如何与多个Provider及监听者交互,DeviceProviders如何使用特定网络协议与网络通信,以及Devicestore如何跟踪设备模型对象并生成事件。此外,还详细讲解了OpenFlow子系统的工作原理。
摘要由CSDN通过智能技术生成

概述

设备子系统负责发现和跟踪组成网络的设备,并使管理员和应用程序能够控制它们。大多数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

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值