CN107623635B - 一种网络交换芯片可识别流表的智能匹配方法 - Google Patents

一种网络交换芯片可识别流表的智能匹配方法 Download PDF

Info

Publication number
CN107623635B
CN107623635B CN201711029241.9A CN201711029241A CN107623635B CN 107623635 B CN107623635 B CN 107623635B CN 201711029241 A CN201711029241 A CN 201711029241A CN 107623635 B CN107623635 B CN 107623635B
Authority
CN
China
Prior art keywords
flow table
goto
tab
openflow
action information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711029241.9A
Other languages
English (en)
Other versions
CN107623635A (zh
Inventor
吴兵
王志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HUIZHOU DESAY INDUSTRY RESEARCH INSTITUTE CO., LTD.
Original Assignee
Huizhou Desay Industrial Research Institute Co ltd
Shenzhen Desay Microelectronic Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhou Desay Industrial Research Institute Co ltd, Shenzhen Desay Microelectronic Technology Co ltd filed Critical Huizhou Desay Industrial Research Institute Co ltd
Priority to CN201711029241.9A priority Critical patent/CN107623635B/zh
Publication of CN107623635A publication Critical patent/CN107623635A/zh
Application granted granted Critical
Publication of CN107623635B publication Critical patent/CN107623635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种网络交换芯片可识别流表的智能匹配方法,该方法是将Openflow控制器通过Openflow南向协议下发的多级流表与网络交换芯片支持的流表进行智能匹配,该匹配方法主要通过分析控制器下发的Openflow协议侧单个流表项的表ID,以及动作信息中的GOTO_TABLE跳转指令,来决定是否需要映射交换芯片侧流表处理,同时根据Openflow协议侧流表中匹配信息来决定映射到交换芯片侧哪些流表处理。本发明提供的匹配方法通用性强,使用户下发流表与芯片流表之间可智能匹配,实现了SDN架构中控制面与转发面之间的分离,利于Openflow流表实现硬件化。

Description

一种网络交换芯片可识别流表的智能匹配方法
技术领域
本发明涉及网络通信领域,特别涉及一种网络交换芯片可识别流表的智能匹配方法。
背景技术
SDN(软件定义网络)架构具有控制面与转发面分离、开放的可编程接口、集中化的网络控制及网络业务的自动化应用程序控制等特征,越来越受到行业所推崇。 其中,Openflow是SDN网络架构中标准化南向接口的一种。在Openflow协议中,Openflow控制器通过标准的消息接口与交换机通信,协议中定义了流表项中支持的各种match匹配字段以及actions动作字段,这些字段存在于流表中,当报文从不同的端口进来,设备需要查找对应的流表,匹配到流表项后便可执行该条流表项所指定的动作或指令,如从哪个口出去,是否需要丢弃或将报文送到控制器等。目前在实际应用中,由于交换芯片未实现流表统一的标准化的接口,从而导致用户下发的流表不能与芯片流表之间一一映射,常常出现芯片无法识别用户下发流表的表ID,即使表ID被识别了也会出现无法将匹配信息或动作信息对应至芯片流表的情况。
发明内容
本发明为了解决上述技术问题,提供了一种网络交换芯片可识别流表的智能匹配方法。
一种网络交换芯片可识别流表的智能匹配方法,所述方法应用于至少由控制器及网络设备交换机组成的Openflow网络中,具体包括如下步骤:
S1、网络设备交换机分析控制器下发的Openflow侧流表单个流表项的表ID,若表ID为0则进入步骤S2,若表ID不为0则进入步骤S5;
S2、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带GOTO_TABLE跳转指令则进入步骤S3,若流表动作信息不带GOTO_TABLE跳转指令 则进入步骤S4;
S3、保存当前流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则转入S2;
S4、判断流表的动作信息是否含有输出、丢弃或者上送控制器的指令; 若是则进入S9;若否则不处理,提示异常;
S5、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带 GOTO_TABLE跳转指令则进入步骤S7,若流表动作信息不带GOTO_TABLE跳转指令则进入步骤S6;
S6、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S6,若不存在则转至步骤S4;
S7、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S7,若不存在则进入S8;
S8、保存流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则进一步判断流表动作信息是否含有输出、丢弃或上送控制器的指令,若否则继续S8,若是则进入S9;
S9、根据流表链匹配信息的不同将流表匹配至具体的交换芯片侧流表,所述交换芯片侧流表为ASIC流表。
该匹配方法主要针对控制器下发的Openflow协议侧单个流表项的表ID,以及动作信息中的GOTO_TABLE跳转指令进行分析,从而决定是否需要映射交换芯片侧流表处理,一旦确定需要映射则根据Openflow协议侧流表中的匹配信息映射至对应的交换芯片侧流表处理。该匹配方法通用性强,使用户下发流表与交换芯片侧流表之间可智能匹配,有效避免了信息无法识别等情况的发生。
进一步的,步骤S9包括如下子步骤:
S91、获取流表链的所有的匹配信息和动作信息,若匹配信息只带有二层则进入S92;若匹配信息只带有三层则进入步骤S93;若匹配信息带隧道ID则进入步骤S94;若匹配信息带MPLS标签则进入步骤S95;若匹配信息均不符合上述几种情况则使用交换芯片VLAN/ACL流表进行处理,一般而言,交换芯片的ACL流表可以处理上述几种芯片流表无法处理的流表;
S92、可使用交换芯片VLAN/BRIDGE流表处理;
S93、可使用交换芯片VLAN/路由流表处理;
S94、可使用交换芯片Overlay流表处理;
S95、可使用交换芯片MPLS流表处理。
进一步的,步骤S3及步骤S8中通过正向查找Openflow侧流表,获取GOTO-TABLE跳转指令中的ID值对应的流表,来判断GOTO-TABLE跳转指令中的ID值对应的流表是否存在。若根据GOTO-TABLE跳转指令中的ID值找到对应的流表则判断GOTO-TABLE跳转指令中的ID值对应的流表存在,若未找到对应流表则判断GOTO-TABLE跳转指令中的ID值对应的流表不存在。
进一步的,步骤S6及步骤S7中通过反向查找Openflow侧流表,获取GOTO-TABLE跳转指令到当前表ID对应的流表,从而判断GOTO-TABLE跳转指令到当前表ID对应的流表是否存在。即先根据GOTO-TABLE跳转指令查找到GOTO-TABLE跳转指令中的ID值,再通过GOTO-TABLE跳转指令中的ID值查找表ID相符的流表
进一步的,所述流表由若干流表项组成,所述Openflow侧流表及流表项数据结构采用数组链表方式维护。
进一步的,所述交换芯片侧流表及其流表项数据结构采用平衡二叉查找树结构维护。
进一步的,所述表ID可以为0 也可以不为0,若无指定则默认为0。
进一步的,所述流表处理完成后需将匹配信息和动作信息进行清空处理。
上述技术方案中的流表项可以通过动作信息中的GOTO-TABLE跳转指令跳至下一条流表,但GOTO-TABLE跳转指令中的ID值必须大于表ID,当然也可以不通过GOTO-TABLE跳转指令转至其他流表。此外,维护一定的数据结构包括所有流表链中的匹配信息和动作信息以及匹配信息和动作信息使用的带有各类型的数据结构存储。
有益技术效果:
与现有技术相比较,本发明公开的一种网络交换芯片可识别流表的智能匹配方法涵盖了所有条件下的匹配情况,使用户下发流表与芯片流表之间可智能匹配,实现了SDN架构中控制面与转发面之间的分离,利于Openflow流表实现硬件化。
附图说明
图1为网络设备交换机与Openflow控制器的连接示意图。
图2为流表中table id为0的处理流程图。
图3为流表中table id不为0,且actions中不带goto table处理流程图。
图4为流表中table id 不为0,且actions带goto table处理流程图。
图5为流表匹配至具体交换芯片ASIC流表的实现方法流程图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征更易被本领域技术人员理解,从而对本发明的保护范围作出更为清楚的界定。
实施例1:
本实施例提供了一种网络交换芯片可识别流表的智能匹配方法,该方法应用于至少由控制器及网络设备交换机组成的Openflow网络中,具体包括如下步骤:
S1、网络设备交换机分析控制器下发的Openflow侧流表单个流表项的表ID,若表ID为0则进入步骤S2,若表ID不为0则进入步骤S5;
S2、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带GOTO_TABLE跳转指令则进入步骤S3,若流表动作信息不带GOTO_TABLE跳转指令 则进入步骤S4;
S3、保存当前流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则转入S2;
S4、判断流表的动作信息是否含有输出、丢弃或者上送控制器的指令; 若是则进入S9;若否则不处理,提示异常;
S5、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带 GOTO_TABLE跳转指令则进入步骤S7,若流表动作信息不带GOTO_TABLE跳转指令则进入步骤S6;
S6、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S6,若不存在则转至步骤S4;
S7、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S7,若不存在则进入S8;
S8、保存流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则进一步判断流表动作信息是否含有输出、丢弃或上送控制器的指令,若否则继续S8,若是则进入S9;
S9、根据流表链匹配信息的不同将流表匹配至具体的交换芯片侧流表,交换芯片侧流表为ASIC流表。
其中,步骤S9包括如下子步骤:
S91、获取流表链的所有的匹配信息和动作信息,若匹配信息只带有二层则进入S92;若匹配信息只带有三层则进入步骤S93;若匹配信息带隧道ID则进入步骤S94;若匹配信息带MPLS标签则进入步骤S95;若匹配信息均不符合上述几种情况则使用交换芯片VLAN/ACL流表进行处理,一般而言,交换芯片的ACL流表可以处理上述几种芯片流表无法处理的流表;
S92、可使用交换芯片VLAN/BRIDGE流表处理;
S93、可使用交换芯片VLAN/路由流表处理;
S94、可使用交换芯片Overlay流表处理;
S95、可使用交换芯片MPLS流表处理。
上述流表由若干流表项组成,流表项可以通过动作信息中的GOTO-TABLE跳转指令跳至下一条流表,但前提是GOTO-TABLE跳转指令中的ID值必须大于表ID,当然也可以不通过GOTO-TABLE跳转指令转至其他流表。一般而言,表ID可以为0 也可以不为0,若无指定则默认为0。 在上述流表匹配方法中,Openflow侧流表及其流表项数据结构采用数组链表方式维护,而交换芯片侧流表及其流表项数据结构采用平衡二叉查找树结构维护。维护一定的数据结构包括所有流表链中的匹配信息和动作信息以及匹配信息和动作信息使用的带有各类型的数据结构存储。上述流表处理完成后需将匹配信息和动作信息进行清空处理,方可进入下一流表的处理程序。
实施例2:
本实施例与实施例1类似,进一步的,步骤S3及步骤S8中均是通过正向查找Openflow侧流表,获取GOTO-TABLE跳转指令中的ID值对应的流表,来判断GOTO-TABLE跳转指令中的ID值对应的流表是否存在。若根据GOTO-TABLE跳转指令中的ID值找到对应的流表则判断GOTO-TABLE跳转指令中的ID值对应的流表存在,若未找到对应流表则判断GOTO-TABLE跳转指令中的ID值对应的流表不存在。
而步骤S6及步骤S7中均是通过反向查找Openflow侧流表,获取GOTO-TABLE跳转指令到当前表ID对应的流表,从而判断GOTO-TABLE跳转指令到当前表ID对应的流表是否存在。根据GOTO-TABLE跳转指令查找到GOTO-TABLE跳转指令中的ID值,再通过GOTO-TABLE跳转指令中的ID值查找表ID相符的流表。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (8)

1.一种网络交换芯片可识别流表的智能匹配方法,其特征在于,所述方法应用于至少由控制器及网络设备交换机组成的Openflow网络中,具体包括如下步骤:
S1、网络设备交换机分析控制器下发的Openflow侧流表单个流表项的表ID,若表ID为0则进入步骤S2,若表ID不为0则进入步骤S5;
S2、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带GOTO_TABLE跳转指令则进入步骤S3,若流表动作信息不带GOTO_TABLE跳转指令 则进入步骤S4;
S3、保存当前流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则转入S2;
S4、判断流表的动作信息是否含有输出、丢弃或者上送控制器的指令; 若是则进入S9;若否则不处理,提示异常;
S5、判断流表动作信息是否带GOTO_TABLE跳转指令,若流表动作信息带 GOTO_TABLE跳转指令则进入步骤S7,若流表动作信息不带GOTO_TABLE跳转指令则进入步骤S6;
S6、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S6,若不存在则转至步骤S4;
S7、保存流表的匹配信息和动作信息,反向查找Openflow侧流表,判断该流表是否存在,若存在则继续步骤S7,若不存在则进入S8;
S8、保存流表的匹配信息和动作信息,正向查找Openflow侧流表,判断该流表是否存在,若不存在则不处理,若存在则进一步判断流表动作信息是否含有输出、丢弃或上送控制器的指令,若否则继续S8,若是则进入S9;
S9、根据流表链匹配信息的不同将流表匹配至具体的交换芯片侧流表,所述交换芯片侧流表为ASIC流表。
2.如权利要求1所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,步骤S9包括如下子步骤:
S91、获取流表链的所有的匹配信息和动作信息,若匹配信息只带有二层则进入S92;若匹配信息只带有三层则进入步骤S93;若匹配信息带隧道ID则进入步骤S94;若匹配信息带MPLS标签则进入步骤S95;若匹配信息均不符合上述几种情况则使用交换芯片VLAN/ACL流表进行处理;
S92、可使用交换芯片VLAN/BRIDGE流表处理;
S93、可使用交换芯片VLAN/路由流表处理;
S94、可使用交换芯片Overlay流表处理;
S95、可使用交换芯片MPLS流表处理。
3.如权利要求1或2所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,步骤S3及步骤S8中通过正向查找Openflow侧流表,获取GOTO-TABLE跳转指令中的ID值对应的流表,来判断GOTO-TABLE跳转指令中的ID值对应的流表是否存在。
4.如权利要求1或2所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,步骤S6及步骤S7中通过反向查找Openflow侧流表,获取GOTO-TABLE跳转指令到当前表ID对应的流表,从而判断GOTO-TABLE跳转指令到当前表ID对应的流表是否存在。
5.如权利要求4所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,所述流表由若干流表项组成,所述Openflow侧流表及流表项数据结构采用数组链表方式维护。
6.如权利要求4所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,所述交换芯片侧流表及流表项数据结构采用平衡二叉查找树结构维护。
7.如权利要求1所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,所述表ID可以为0 也可以不为0,若无指定则默认为0。
8.如权利要求1所述一种网络交换芯片可识别流表的智能匹配方法,其特征在于,所述流表处理完成后需将匹配信息和动作信息进行清空处理。
CN201711029241.9A 2017-10-30 2017-10-30 一种网络交换芯片可识别流表的智能匹配方法 Active CN107623635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711029241.9A CN107623635B (zh) 2017-10-30 2017-10-30 一种网络交换芯片可识别流表的智能匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711029241.9A CN107623635B (zh) 2017-10-30 2017-10-30 一种网络交换芯片可识别流表的智能匹配方法

Publications (2)

Publication Number Publication Date
CN107623635A CN107623635A (zh) 2018-01-23
CN107623635B true CN107623635B (zh) 2020-07-21

Family

ID=61093615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711029241.9A Active CN107623635B (zh) 2017-10-30 2017-10-30 一种网络交换芯片可识别流表的智能匹配方法

Country Status (1)

Country Link
CN (1) CN107623635B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450811B (zh) * 2018-11-30 2022-08-12 新华三云计算技术有限公司 流量控制方法、装置及服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104821890A (zh) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 一种基于普通交换芯片的OpenFlow多级流表的实现方法
CN105745877A (zh) * 2014-10-28 2016-07-06 华为技术有限公司 交换机处理方法、控制器、交换机及交换机处理系统
CN106664261A (zh) * 2014-06-30 2017-05-10 华为技术有限公司 一种配置流表项的方法、装置和系统
CN106685689A (zh) * 2016-10-26 2017-05-17 浙江工商大学 一种基于深度学习的sdn流表冲突检测装置及方法
CN106888165A (zh) * 2015-12-15 2017-06-23 中国科学院沈阳自动化研究所 一种支持包头压缩的工业sdn网络数据传输方法与系统
CN107070693A (zh) * 2017-01-12 2017-08-18 烽火通信科技股份有限公司 基于OpenFlow流表的快速配置POTN业务的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140040459A1 (en) * 2012-08-01 2014-02-06 Hewlett-Packard Development Company, L.P. System and method for data communication using a classified flow table in openflow networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106664261A (zh) * 2014-06-30 2017-05-10 华为技术有限公司 一种配置流表项的方法、装置和系统
CN105745877A (zh) * 2014-10-28 2016-07-06 华为技术有限公司 交换机处理方法、控制器、交换机及交换机处理系统
CN104821890A (zh) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 一种基于普通交换芯片的OpenFlow多级流表的实现方法
CN106888165A (zh) * 2015-12-15 2017-06-23 中国科学院沈阳自动化研究所 一种支持包头压缩的工业sdn网络数据传输方法与系统
CN106685689A (zh) * 2016-10-26 2017-05-17 浙江工商大学 一种基于深度学习的sdn流表冲突检测装置及方法
CN107070693A (zh) * 2017-01-12 2017-08-18 烽火通信科技股份有限公司 基于OpenFlow流表的快速配置POTN业务的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
支持OpenFlow交换机的关键技术研究与实现;李向文;《中国优秀硕士学位论文全文数据库信息科技辑》;20140531;I136-134 *

Also Published As

Publication number Publication date
CN107623635A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
US9686137B2 (en) Method and system for identifying an outgoing interface using openflow protocol
US9667440B2 (en) Method and system for identifying an incoming interface using openflow protocol
US9509561B2 (en) System and method for determining the configuration of switches in virtual link trunking environments
US20080056260A1 (en) Private vlan edge across multiple switch modules
CN112511457B (zh) 一种数据流类型识别方法及相关设备
US10367686B2 (en) Automatically detecting roles of nodes in layered network topologies
JP6004079B2 (ja) スイッチ及びプログラム
CN107623635B (zh) 一种网络交换芯片可识别流表的智能匹配方法
US9363152B2 (en) Large-scale passive network monitoring using multiple tiers of ordinary network switches
US10326654B2 (en) Method and a device for optimizing a configuration system of a network element of a software-defined network
CN112702278A (zh) 一种负载均衡方法、汇聚分流器及存储介质
CN104954258B (zh) 数据报文处理方法、装置及开放流交换机
US11824720B2 (en) Automatic configuring of virtual networking based on information from a switch
US9674230B1 (en) Export operator for a streaming application that exports from multiple operators on multiple parallel connections
JP2019114233A (ja) 制御フローの処理方法、装置、電子設備及び記憶媒体
CN109644159B (zh) 数据传输网中的数据包转发单元
US20140269252A1 (en) Systems and methods for managing switching devices in an information handling system
CN110099006A (zh) 用于有状态的分组处理的系统和方法
US10708179B2 (en) Method of handling data packets through a conditional state transition table and apparatus using the same
US20170367166A1 (en) Control device and method for assigning id number
ZA200506289B (en) Method for determining the processing sequence of function blocks of an automated system and corresponding automated system
US20150263990A1 (en) Network device, control method, and program
CN108121221A (zh) 一种机器人命令接口控制系统及方法
JP2017229030A (ja) Vm切り替えプログラム、情報処理装置およびvm切り替え方法
US11009848B2 (en) Scalable intelligent query-based interface to navigate and find industrial information on a visual interface

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190103

Address after: 518000 Room 2303, 23rd Floor, Desai Science and Technology Building, 9789 Shennan Avenue, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Desay Microelectronic Technology Limited Company

Applicant after: HUIZHOU DESAY INDUSTRY RESEARCH INSTITUTE CO., LTD.

Address before: 518000 Room 2303, 23rd Floor, Desai Science and Technology Building, 9789 Shennan Avenue, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen Desay Microelectronic Technology Limited Company

GR01 Patent grant
GR01 Patent grant