可编程数据平面将OpenFlow扩展至电信级应用(二)
可编程数据平面将OpenFlow扩展至电信级应用(二)
案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现
作者:Liviu Pinchas, Tao Lang - PMC-Sierra
Eddie Millsopp, Dermot Flanagan - Asidua
4. 软件考量
4.1 数据通道
为达到理想目标,可编程数据通道设备还须要配备一套丰富的数据通道软件协议。
开发该软件的目的在于满足电信级以太网协议严格的实时性要求。并提供所需的灵活度与便利性。从而能够随着标准的演进及新需求的添加而及时地增添新的功能。
现有的可用数据通道软件支持全部必要的标准协议,使得系统集成者能够专注于高附加值功能的开发,如专有功能的系统管理等,从而避免利用宝贵的资源来实现标准功能。
随着协议的演进。也推出了用来在现场升级已有系统的新数据通道模块。
通过这一举措。硬件部署甚至在某一特定协议的标准化工作完毕之间就能够进行。这一点对于加快有如基于电信级OpenFlow的SDN之类新技术的推动至关重要。
4.2 控制通道:Asidua的 WanStaX 产品线
Asidua的 WanStaX产品线为客户提供了一整套控制通道软件。因而能够加速网络服务的开发。
通过CFM ITU-T Y.1731堆栈,WanStaX既支持OpenFlow 1.3.2,也支持OAM功能。通过结合Asidua的WanStaX以及PMC的数据通道软件,WanStaX为MPLS-TP、OAM及保护倒换提供了全面支持。
正常情况下。全部与连接故障管理及线性保护协议相关的非时间关键性的PDU均由WanStaX利用OpenFlowPACKET_IN和PACKET_OUT消息进行处理。
4.3 整合全部部件
下图描绘了各个部件是怎样整合在一起的。现有的用于LP和CFM的WanStaX解决方式设计成独立方案。因此,能够在远端目标上执行。控制器接口用于WanStaX API与OpenFlow控制器之间的接口。WanStaX执行并发出API功能调用,貌似这些功能均在该目标上执行,而实际上,OpenFlow WanStaX控制器接口将API请求转化成OpenFlow消息,并将这些消息传送至目标上执行的OpenFlow交换机。
该OpenFlow交换机将此消息解码,然后,通过业务层。运用这些消息来配置可变成数据通道及硬件资源。
用于LP和CFM的非实时性PDU持续不断地在OpenFlow上通过PACKET_IN和PACKET_OUT消息传送,以维持与对方的协议运作正常。
可是,时间关键型的操作如CFM CCM的生成、CCM故障管理、DMM处理及LP保护倒换等均由OpenFlow交换机上的某一特定逻辑块来运行。
图4 OpenFlow控制器接口
5. WinPath架构上的电信级OpenFlow
WinPath网络处理器当初设计时即考虑到了为尚没有定义好的协议提供支持。其可编程数据通道及灵活的加速器能力已经经过实际应用的考验,可以随着网络的演进。在协议定义完好时对其进行支持。
SDN也包括在当中。WinPath特别适用于实现高效灵活的OpenFlow交换机。
图5 WinPath 高层功能图
入方向的分组数据包由一个微程序解析器及分类器引擎(PCE)以线速进行解析。在存储于内存(能够扩展到外部DDR3存储,至多数百万条目)的规则数据库中搜索由头域组合而成的keyword。PCE不象市面上提供的其它很多解决方式那样须要大量(即功耗高、价格高昂)的外部TCAMs.
能够有多种解析操作及搜索行为,不仅能够採用进入的port数目及头域的组合,还能够採用过去搜索过的数据。
一旦这一步完毕以后,分组数据包加上一系列基于PCE搜索结果创建的行为就传递给以对称的多处理器架构(WinComm)形式存放的一组处理单元。这些处理器单元运行数据通道软件,目的是实现与分组数据包相关的各种行为。当中不仅包含丢弃、转发给控制器、转发给特定port、測量等行为。还包含更加复杂的处理功能。如运行OAM状态机、分组数据包加密、策略及其它很多功能。这些动作能够只在软件层面运行。也能够在软件及硬件加速器的配合下运行。
这些动作完毕后。随即是(在软件控制下)在片上存储或外部DDR3存储上的分组数据包缓冲。分层流量调整,出口策略控制等等。
5.1 MPLS-TP OAM举例
第四部分描绘的实现方法自然而然地映射到WinPath架构上。
由解析器和分类引擎从MPLS-TP流中抽取出OAM分组数据包。将其送往数据通道软件以状态机形式实现的OAM进程。OAM进程再执行对应的OAM状态机,如Y.1731 CCM所述。
线路状态发生变化时,数据通道软件中的高速保护倒换进程启动并以远低于50ms的要求对流量进行又一次定向。
OAM分组以某一特定频率生成。并在专门的加速器的辅助下,由数据通道软件插入合适的MPLS-TP通道,从而满足严格的时序要求,如3.3ms的间隔要求等。
5.2 WinPath系列
WinPath系列产品中已经提供了充足的电信级以太网以及OpenFlow1.3.2的功能。在可编程数据通道硬件及相关的数据通道软件中实现。这与Asidua的WanStaX中提供的控制通道形成了互补。
此外,WinPath系列产品的可编程度也恰到优点,通过简单的软件升级就可以实现向电信级以太网OpenFlow的迁徙,而无需将商业部署推迟到标准完毕或届时再进行昂贵、耗时的硬件升级。WinPath系列产品的功能已经经过验证。能够支持软件而非硬件周期中新出现的协议。
WinPath系列中还包含针对某些訪问应用而优化的衍生产品。WinPath3SuperLite主要涵盖了client设备及其它低功耗、低设备成本、性能要求高达2-3Gbps的应用。WinPath4 则包含了须要较高性能(高达40Gbps)的汇聚应用。
全部这些衍生产品均採用同样的对象代码及功能集。使系统供应商能够用单项软件开发来覆盖多种应用。
PMC提供了能够直接量产的数据通道代码及API,全部的衍生产品中执行的都是同样的代码。
6. WinPath架构为运营商带来的优势
不论什么电信级OpenFlow的实现终于均需经过运营商的衡量。
表1中列出了几个实例,从中可见。基于WinPath的实现机制怎样帮助运营商实现了更加有效的业务分配及网络管理。
表1 运营商优势与WinPath架构
为运营商带来的优势 |
加在OpenFlow协议/控制器之上的需求 |
WinPath支持这些需求的优势所在 |
迅捷、便利、按需业务分配 |
端到端带宽控制;高速通道计算;精细粒度的SLA |
可以基于成千上万的队列实现复杂的SLA,可以单独、分层次地进行调整 |
智能 &优化的操作 |
很高效的控制器。带有全套电信级功能。控制器之间能够互通 |
可编程通道未对控制器进行不论什么限制或损碍其功能,控制器的效率因此能够达到最佳 |
通过NFV虚拟化IT业务 |
带有电信级安全及可靠性功能的控制器 |
针对安全性应用的内嵌加密引擎 |
本文前面的部分展示了怎样在OpenFlow环境下运用WinPath来实现低于50ms保护的端到端OAM。
与之相仿。WinPath架构的优化目标是可以实现全部其它电信级功能,而无需对SDN控制器的功能打不论什么折扣或进行不论什么限制。
其可编程数据通道的架构可以运行全部SDN控制器的命令,而没有不论什么其它基于数据通道的硬件实现的解决方式造成的限制。WinPath是一款真正互通的解决方式的基石,使运营商得以选择及部署最为高效、功能丰富而性价比优良的控制器。有须要时不必受到硬件设备的限制就可以进行更新换代。
WinPath基于其成千上万个能够独立、分层调节的队列来实现复杂SLA功能的能力也极其出众。因而可为用户提供差异化的服务。
此外,无需损失流量就可以变更流量整形及管制的參数。因此能够依据提前定义的计划或按需实现动态SLA,在用户须要高级业务时就可以及时得到满足,从而为运营商创造了额外的营收。
能够通过OpenFlow来控制流量參数的能力促成了如此动态的SLA的便利的端到端实现。
运用于client设备(CPE)时。WinPath还能够虚拟化一般位于CPE及用户之间的訪问路由器。该路由器的全部功能均可迁徙到位于运营商网络中最优位置的数据中心。数据再从此处通过终结于WinPath的IPSec隧道安全地传送到CPE。
为了提供更佳的管理功能,并支持端到端OAM。WinPath中包括了全部实现以太网上同步所需的基础设施。包括当前时间(ToD)等。
IEEE1588和同步以太网均在多种协议及封装上实现,使运营商无需因其有限的硬件能力而局限自己,而得以实现最合乎理想的业务及协议。并随着网络演进将之付诸实施。
7. 结论
为了加快OpenFlow在电信网络中的推广,须要有基于可编程数据通道的灵活解决方式,从而帮助运营商在标准完毕之前開始系统部署,也能够随着需求及实际部署的演进,通过软件更新来添加新的功能。
对实现电信级以太网性能的需求进行观察的结果。如3.3msCCM及50ms的保护倒换等要求,显然须要在OpenFlow标准中增加若干新的对象、协议及动作,并且转发平面须要足够灵活来容纳这些新的元素。也须要更为简便的分组解析及分类方法来替换昂贵而耗电的TCAMs。因此,数据平面的能力与灵活度将对决定这些新的扩展功能怎样实现及其效率怎样起到决定性的作用。
运营商为了改善CAPEX及OPEX须要部署SDN,WinPath在技术上的优势及其可编程数据平面不仅攻克了这一需求,还能够达到实时业务更新来满足客户的需求。
这一独特而灵活的架构能够实现对复杂參数的实时改动,从而实现动态SLA,并给与运营商通过OpenFlow来控制流量參数的能力。
而今。运营商有了一个能够实现创新的平台,得以实现崭新的网络范例,能够通过远程控制对客户需求进行预期与反应。从而提供定制化的服务并实现营收最大化。
PMC (www.pmcs.com) 的WinPath网络处理器已经包含了一切所需的资源。战略地位独特,可支持从现有网络模式向电信级OpenFlow的平滑演进。Asidua
(www.asidua.com) 的WanStaX则已提供了支持该演进的软件基础架构,包含线性保护、CFM和OpenFlow等。该综合解决方式为希望採用OpenFlow来部署MPLS-TP和其它电信级功能的运营商提供了全套的一揽子方案。
可编程数据平面将OpenFlow扩展至电信级应用(二)的更多相关文章
- 可编程数据平面将OpenFlow扩展至电信级应用(一)
可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang ...
- 阅读 用P4对数据平面进行编程
引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面.其转发平面在很大程度上受制于功能固定的包处理硬 ...
- 用P4对数据平面进行编程
引言 SDN架构强调了对控制平面的可编程,数据平面只负责转发,导致数据平面很大程度上受制于功能固定的包处理硬件. P4语言的特性: 目标无关性:P4语言不受制于具体设备,所有可编程芯片都可以使用P4编 ...
- 软件定义网络基础---SDN数据平面
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...
- 解析与动作联动得SDN数据平面
一种解析与执行联动的SDN可编程数据平面 现有问题和目标 在传统协议处理方式中,各层的协议类型和组合方式固定,使得添加或修改协议很困难(因为需要修改网络设备的解析模式) 基于解析和执行联动结构的可编程 ...
- 数据平面可编程与SDN关系理解,以及数据平面可编程的理解
数据平面可编程与SDN关系 狭义 广义 数据平面可编程的理解 狭义 广义
- 实验8:数据平面可编程实践——P4
一.实验目的 掌握V1Model框架下P4_16的程序结构和基本语法 能够运用 P4 进行简单数据平面编程 二.实验报告 在修改basic_tunnel.p4的内容之后输入make run 验证创建结 ...
- P4简介:数据平面的编程语言
15-05-29 http://p4.org/join-us/ 由两位SDN大师----来自普林斯顿的Jennifer Rexford和斯坦福的Nick McKeown---- 共同 ...
- 计算机网络自顶向下方法第4章 网络层:数据平面 (Network layer)
4.1 网络层概述 网络层主要功能为转发(将数据从路由器输入接口转移到合适的输出接口)和路由选择(端到端的路径选择),每台路由器都有一张转发表,用最长前缀匹配规则来转发. 4.1.1 转发和路由选择 ...
随机推荐
- [Pulgin] 利用swfupload实现java文件批量上传
URL:http://blog.csdn.net/xuweilinjijis/article/details/8876305 之前在网上找过很多相关资料,很多所谓的批量上传都是忽悠人的,真正的批量上传 ...
- 代理模式(Proxy)C++实现
代理模式 尽管Decorator的实现部分与代理相似,但Decorator的目的不一样.Decorator为对象添加一个或多个功能,而代理则控制对对象的访问. 意图: 为其他对象提供一种代理以控制对这 ...
- RAP、Mock.js、Vue.js、Webpack
最近做项目使用的是RAP1的接口,但是昨天开始,RAP1 出现了问题,接口都不能用了. 所以补充一下Mock.js的用法,以便在这种突发的情况时候时自己通过Mock的方式来处理接口. npm init ...
- js 找数组中的最值
背景: 2个数组以下 , 比如 [[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]] 找最值的时候, ...
- Charles设置抓取https请求
1.在手机上设置HTTP代理,将手机与电脑连接. 打开手机设置-WLAN,设置代理 2.(iPhone)使用iPhone自带的浏览器打开Safari,并输入地址:http://charlesproxy ...
- 修改织梦data目录名
1.修改include目录下的common.inc.php这个文件.打开文件,找到第24行: define('DEDEDATA', DEDEROOT.'/data'); 把data修改成为您要改的目录 ...
- 获取json的节点名称
好几次想取json的节点名称,今天搞定了. procedure GetJsonNames(o: ISuperObject; Strs: TStrings); var ite: TSuperAvlIte ...
- C++序列化使用
error C2248 无法访问私有成员 :原因 ifstream 作为参数必须传引用! (1):C++使用STL序列化:原文链接:http://blog.csdn.net/pandaxcl/arti ...
- poj 2955 Brackets 【 区间dp 】
话说这题自己折腾好久还是没有推出转移的公式来啊------------------ 只想出了dp[i][j]表示i到j的最大括号匹配的数目--ค(TㅅT)------------------- 后来搜 ...
- Postfix Self Expression
Postfix Self Expression A postfix self expression consists of an expression or the name of a type, i ...