[发明专利]一种基于Openflow的事件并行控制器及其事件并行处理方法有效

专利信息
申请号: 201310647876.0 申请日: 2013-12-04
公开(公告)号: CN103677760A 公开(公告)日: 2014-03-26
发明(设计)人: 刘轶;宋平;刘驰 申请(专利权)人: 北京航空航天大学
主分类号: G06F9/38 分类号: G06F9/38;G06F9/44
代理公司: 北京永创新实专利事务所 11121 代理人: 李有浩
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于Openflow的事件并行控制器及其事件并行处理方法,该方法将Openflow消息的收发与Openflow事件的处理相分离,利用额外的计算线程对Openflow事件处理进行加速。应用开启后的控制器将建立与交换机的链接,并将链接平均地分给多个I/O线程,每个链接上消息的收发由唯一的I/O线程处理。应用在接收Openflow消息后,触发对应的Openflow事件,并根据事件的类型产生对流对象和状态对象的处理任务,交由不同的线程进行处理。在流事件处理过程中,能够动态产生子任务,并由多个线程并行执行。对共享状态,使用唯一的状态线程进行处理。本发明方法相对于现有的Openflow事件的并行处理方法具有更好的性能可扩展性、以及更简单的数据访问方式。
搜索关键词: 一种 基于 openflow 事件 并行 控制器 及其 处理 方法
【主权项】:
1.一种基于Openflow的事件并行控制器,其特征在于:该控制器包括有流处理模块(1)、状态处理模块(2)和Openflow消息分配控制模块(3);Openflow消息分配控制模块(3)第一方面采用异步非阻塞IO模型从链接的接收缓冲区中接收Openflow交换机(4)发送的Openflow消息;所述Openflow消息中包括有Packet-in消息、Flow-Removed消息、Port-status消息和Error消息。Openflow消息分配控制模块(3)第二方面将流处理任务TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>发送到流处理模块(1)的主线程本地任务队列Qz中;所述流处理任务TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>的获取是:(A)首先依据Packet-in消息触发Packet-in事件;然后根据Packet-in事件生成Base_flow结构的流对象FLOWBase_flow={F1,F2,…,Ff};最后根据Base_flow结构中start方法生成所述Packet-in事件对应的流处理任务(B)首先依据Flow-Removed消息触发Flow-Removed事件;然后根据Flow-Removed事件生成如表1中Base_flow结构的流对象FLOWBase_flow={F1,F2,…,Ff};最后根据Base_flow结构中start方法生成所述Flow-Removed事件对应的流处理任务FAFlow-RemovedFLOWBase_flow.]]>Openflow消息分配控制模块(3)第三方面将状态处理任务TASK3-2={SAPort-statusSTATEBase_state,SAErrorSTATEBase_state}]]>发送到状态处理模块(2)的访问任务队列PstateSTATEBase_state={P1,P2,...,Ps}]]>中;所述状态处理任务TASK3-2={SAPort-statusSTATEBase_state,SAErrorSTATEBase_state}]]>的获取是:(A)首先依据Port-status消息触发Port-status事件;然后根据Port-status事件生成Base_state结构的状态对象STATEBase_state={S1,S2,…,Ss}的处理任务,即Port-status状态处理任务记为(B)首先依据Error消息触发Error事件;然后根据Error事件生成针对如表2中Base_state结构的状态对象STATEBase_state={S1,S2,…,Ss}的处理任务,即Error状态处理任务记为SAErrorSTATEBase_state.]]>Openflow消息分配控制模块(3)第四方面接收流处理模块(1)输出的controller-to-switch消息;Openflow消息分配控制模块(3)第五方面采用异步非阻塞IO模型从消息-线程TH3={C1,C2,…,Cc}中所属的链接的发送缓冲区中向Openflow交换机(4)输出controller-to-switch消息。流处理模块(1)第一方面用于接收Openflow消息分配控制模块(3)输出的流处理任务TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow};]]>流处理模块(1)第二方面将TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>保存到主线程本地任务队列Qz中;流处理模块(1)第三方面将TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>通过轮询的方式发送到计算线程本地任务队列中;流处理模块(1)第四方面执行TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>中的具体任务;并动态生成对流对象FLOWBase_flow={F1,F2,…,Ff}的处理任务,记为流对象子任务将所述添加到QTH1={Q1,Q2,...,Qa}]]>中;流处理模块(1)第五方面执行TASK3-1={FAPacket-inFLOWBase_flow,FAFlow-RemovedFLOWBase_flow}]]>中的具体任务;并动态生成对状态对象STATEBase_state={S1,S2,…,Ss}的处理任务,记为状态对象子任务根据所述的的global属性的值,进行判断;如果global为true,则表示该状态为全局共享状态,则将所述的给予状态处理模块(2),并等待状态处理模块(2)的任务完成消息STA2-1;反之,如果global不为true,则表示该状态为局部共享状态,则流处理模块(1)中的产生所述的线程直接执行;流处理模块(1)第六方面通过任务窃取的方式进行计算线程的任务负载均衡。流处理模块(1)第七方面输出controller-to-switch消息给Openflow消息分配模块(3)。计算线程将需要输出的controller-to-switch消息同步地写入到消息-线程TH3={C1,C2,…,Cc}中所属的链接的发送缓冲区中。状态处理模块(2)第一方面接收Openflow消息模块(3)发出的状态处理任务TASK3-2={SAPort-statusSTATEBase_state,SAErrorSTATEBase_state},]]>并将TASK3-2={SAPort-statusSTATEBase_state,SAErrorSTATEBase_state}]]>保存到状态对象STATEBase_state={S1,S2,…,Ss}的访问任务队列中;状态处理模块(2)第二方面接收流处理模块(1)发出的状态处理任务并将保存到状态对象STATEBase_state={S1,S2,…,Ss}的访问任务队列中;状态处理模块(2)第三方面状态-线程TH2={B1,B2,…,Bb}中的B1中提取出属于B1的访问任务队列PstateB1={P1,P2,...,Ps};]]>然后B1通过轮询的方式执行PstateB1={P1,P2,...,Ps}]]>中的任务;当执行完成后,向流处理模块1发送的任务完成消息状态-线程TH2={B1,B2,…,Bb}中的B2中提取出属于B2的访问任务队列然后B2通过轮询的方式执行中的任务;当执行完成后,向流处理模块(1)发送的任务完成消息状态-线程TH2={B1,B2,…,Bb}中的Bb中提取出属于Bb的访问任务队列然后Bb通过轮询的方式执行中的任务;当执行完成后,向流处理模块1发送的任务完成消息对于状态处理模块(2)第四方面向流处理模块(1)发送的任务完成消息集合记为STA2-1={STA2-1B1,STA2-1B2,...,STA2-1Bb}.]]>
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310647876.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top