CN105591914B - 一种openflow流表的查表方法和装置 - Google Patents
一种openflow流表的查表方法和装置 Download PDFInfo
- Publication number
- CN105591914B CN105591914B CN201410562760.1A CN201410562760A CN105591914B CN 105591914 B CN105591914 B CN 105591914B CN 201410562760 A CN201410562760 A CN 201410562760A CN 105591914 B CN105591914 B CN 105591914B
- Authority
- CN
- China
- Prior art keywords
- flow table
- entry
- flow
- matched
- configuration 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000032683 aging Effects 0.000 claims description 21
- 239000000284 extract Substances 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 43
- 230000008859 change Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7452—Multiple parallel or consecutive lookup operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种openflow流表的查表方法,控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中,转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理,本发明同时还公开了一种openflow流表的查表装置。
Description
技术领域
本发明涉及以太网数据通信领域,尤其涉及一种openflow流表的查表方法和装置。
背景技术
随着软件定义网络(SDN,Software Defined Network)的兴起,openflow作为其中一种主流的技术,得到了广泛的研究,标准日趋成熟,逐渐被各设备商和运营商接受和认可。但作为新兴技术,无论在转发层面还是控制层面,openflow技术也都遇到了巨大的挑战,在实现上也存在较多的技术瓶颈,阻碍openflow技术的进一步推广和应用。
从转发层面上来看,主要存在下面的问题:
1、为了涵盖更多的复杂业务和业务扩展的需要,openflow技术提出多级流表的概念,并没有限制流表的级数,每个报文可能采用不同的关键字多次查找流表,也可能利用上一级流表的查找结果作为关键字查找后续流表,这就带来了设计的复杂性和降低转发性能的问题。
2、OpenFlow标准中定义了一张流表可以使用任意的关键字字段组合去做查表,当前主流的方法是采用三态内容寻址存储器(TCAM)芯片实现流表,而openflow标准中定义的关键字字段很多,如果全部关键字都考虑进来的话,需要576比特(bit)的key表示一个表项,那么一个36Mbit的TCAM芯片,最大只能存储64K个表项,这个规格是很难满足业界需求的,而且TCAM芯片是昂贵的资源,纯粹通过TCAM芯片来实现流表不太现实。
发明内容
为解决现有存在的技术问题,本发明主要提供一种openflow流表的查表方法和装置。
本发明的技术方案是这样实现的:
本发明提供一种openflow流表的查表方法,该方法包括:
控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理。
上述方案中,所述至少一个分类匹配流表包括:二层(L2)流表、三层(L3)流表、多协议标签交换(MPLS)流表和模糊匹配(wildcard)流表。
上述方案中,所述按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中,包括:将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为L2流表的表项,下发到L2流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为L3流表和MPLS流表的表项下发到对应的L3流表和MPLS流表中,将其他的流表配置信息作为wildcard流表的表项下发到wildcard流表中。
上述方案中,所述根据查表的结果,动态建立精确匹配流表的表项,包括:将从分类匹配流表中查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间。
上述方案中,该方法还包括:对精确匹配流表的动态表项进行老化和更新。
本发明提供一种openflow流表的查表装置,该装置包括:控制平面模块、转发平面模块;其中,
控制平面模块,用于将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
转发平面模块,用于采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理。
上述方案中,所述至少一个分类匹配流表包括:L2流表、L3流表、MPLS流表和wildcard流表。
上述方案中,所述控制平面模块,具体用于将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为L2流表的表项,下发到L2流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为L3流表和MPLS流表的表项下发到对应的L3流表和MPLS流表中,将其他的流表配置信息作为wildcard流表的表项下发到wildcard流表中。
上述方案中,所述转发平面模块,具体用于在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,将查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间。
上述方案中,所述转发平面模块,还用于对精确匹配流表的动态表项进行老化和更新。
本发明提供了一种openflow流表的查表方法和装置,控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中,转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能(action)进行报文处理;如此,后续对所述报文转发时,直接查找精确匹配流表即可,实现了只查一次流表就可转发报文,而且精确匹配流表可以在动态随机存取存储器(DRAM)上实现,并不需要TCAM芯片实现,节省TCAM芯片资源。
附图说明
图1为本发明实施例实现openflow流表的查表方法的流程示意图;
图2为本发明实施例实现openflow流表的查表方法的平面示意图;
图3为本发明实施例步骤102的具体流程示意图;
图4为本发明实施例步骤103的具体流程示意图;
图5为本发明实施例实现openflow流表的查表装置的结构程示意图。
具体实施方式
本发明实施例中,控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中,转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理。
下面通过附图及具体实施例对本发明做进一步的详细说明。
本发明实施例实现一种openflow流表的查表方法,如图1、2所示,该方法包括以下几个步骤:
步骤101:控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表;
这里,所述至少一个分类匹配流表包括:L2流表、L3流表、MPLS流表和wildcard流表等;
其中,L2流表存储与二层基本业务相关的流表配置信息,表项的查找关键字为VLAN ID、源MAC和目的MAC等;
L3流表存储与三层基本业务相关的流表配置信息,表项的查找关键字为VLAN ID、源IP和目的IP等;
MPLS流表存储与MPLS业务相关的流表配置信息,表项的查找关键字为MPLS标签;
精确匹配流表存储所有精确匹配openflow 1.x协议定义的全部关键字表项的相关流表配置信息;
所述精确匹配流表同时保存下发的流表配置信息和动态建立的表项,采用HASH表的表项组织形式,存储在DRAM中,实际应用中,动态建立的表项的数量会很庞大,精确匹配流表通常需要定义4M或更大的表;
Wildcard流表存储非上述4种流表的其它流表配置信息,Wildcard流表采用openflow 1.x协议定义的全部关键字作为key,非精确匹配,标签(mask)可以配置在任意字段,采用TCAM进行存储。
步骤102:接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
具体的,openflow代理(agent)接收openflow控制器(controller)下发的流表配置信息,将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为L2流表的表项,下发到L2流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为L3流表和MPLS流表的表项下发到对应的L3流表和MPLS流表中,将其他的流表配置信息作为wildcard流表的表项下发到wildcard流表中。
如图3所示,本步骤具体包括:
步骤301:openflow代理接收openflow控制器下发的流表变更消息;
步骤302:openflow代理解析出所述流表变更消息中的关键字域;
步骤303:判断所述关键字域是否为只匹配二层基本业务,如果是,执行步骤304,否则,执行步骤305;
步骤304:将所述流表变更消息作为表项下发到L2流表中;
具体的,根据所述流表变更消息中的关键字域对L2流表进行查表,在L2流表中有匹配的表项时,根据所述流表变更消息中的功能操作查找到的表项,包括对查找到的表项进行添加或删除或修改操作,在L2流表中没有匹配的表项时,向openflow控制器反馈流表不存在消息。
步骤305:判断所述关键字域是否为只匹配三层基本业务,如果是,执行步骤306,否则,执行步骤307;
步骤306:将所述流表变更消息作为表项下发到L3流表中;
具体的,根据所述流表变更消息中的关键字域对L3流表进行查表,在L3流表中有匹配的表项时,根据所述流表变更消息中的功能操作查找到的表项,包括对查找到的表项进行添加或删除或修改操作,在L3流表中没有匹配的表项时,向openflow控制器反馈流表不存在消息。
步骤307:判断所述关键字域是否为只匹配MPLS业务,如果是,执行步骤308,否则,执行步骤309;
步骤308:将所述流表变更消息作为表项下发到MPLS流表中;
具体的,根据所述流表变更消息中的关键字域对MPLS流表进行查表,在MPLS流表中有匹配的表项时,根据所述流表变更消息中的功能操作查找到的表项,包括对查找到的表项进行添加或删除或修改操作,在MPLS流表中没有匹配的表项时,向openflow控制器反馈流表不存在消息。
步骤309:判断所述关键字域是否为精确匹配所有关键字,如果是,执行步骤310,否则,执行步骤311;
步骤310:将所述流表变更消息作为表项下发到精确匹配流表中;
具体的,根据所述流表变更消息中的关键字域对精确匹配流表进行查表,在精确匹配流表中有匹配的表项时,根据所述流表变更消息中的功能操作查找到的表项,包括对查找到的表项进行添加或删除或修改操作,在精确匹配流表中没有匹配的表项时,向openflow控制器反馈流表不存在消息。
步骤311:将所述流表变更消息作为表项下发到wildcard流表中;
具体的,根据所述流表变更消息中的关键字域对wildcard流表进行查表,在wildcard流表中有匹配的表项时,根据所述流表变更消息中的功能操作查找到的表项,包括对查找到的表项进行添加或删除或修改操作,在wildcard流表中没有匹配的表项时,向openflow控制器反馈流表不存在消息。
步骤103:转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理;
本步骤中,所述根据查表的结果,动态建立精确匹配流表的表项包括:将从分类匹配流表中查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间,所述表项的老化时间设置为查找过程中表项的最小老化时间。
本步骤具体如图4所示,包括:
步骤401:解析接收到的报文,按照openflow 1.x协议的定义提取报文的所有关键字;
步骤402:采用提取的所有关键字对表(Table)N(N=0)的精确匹配流表进行查表,在查找到匹配的表项时,执行步骤403,在没有查找到匹配的表项时,执行步骤404;
步骤403:判断所述表项是否为动态表项,如果是动态表项,执行步骤405,如果不是动态表项,执行步骤406;
步骤404:采用报文的二层关键字、三层关键字、MPLS关键字和所有关键字分别并行对Table N的L2流表、L3流表、MPLS流表和wildcard流表进行查表,之后执行步骤409;
步骤405:判断表项是否已经过期,如果过期,执行步骤404,如果没有过期,执行步骤407;
步骤406:判断表项中是否有跳转表N=N+1(goto Table N+1)的标志,如果没有,执行步骤407,否则,执行步骤408;
步骤407:根据表项的功能进行报文处理,这和openflow 1.x定义的规范完全一致,报文按照配置的功能进行修改,然后根据功能进行转发、丢弃或上送控制器等处理,流程结束;
步骤408:将表项的功能和元数据(metadata)保存并设置到流表转发流程的功能集中,根据所述表项的元数据和关键字,执行步骤404,继续下一级流表Table N=N+1进行查表;
步骤409:在查找到匹配的表项时,选择优先级最高的表项,将所述表项的功能设置到流表转发流程的功能集中,在没有查找到匹配的表项时,按照默认的功能进行报文处理;
步骤410:判断优先级最高的表项中是否有跳转表N=N+1(goto Table N+1)的标志,如果没有,执行步骤411,否则,执行步骤412;
步骤411:采用报文的所有关键字对当前Table N的精确匹配流表进行查表,在查找到匹配的表项时,执行步骤413,在没有查找到匹配的表项时,执行步骤414;
步骤412:将表项的功能和元数据(metadata)保存并设置到流表转发流程的功能集中,根据所述表项的元数据和关键字,执行步骤404,继续下一级流表Table N=N+1进行查表;
步骤413:为查找到的表项设置动态表项标志,记录表项生成时间戳,更新老化时间为查找过程中表项的最小老化时间,用流表转发流程的功能集更新原表项的功能,执行步骤415;
步骤414:将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间,所述表项的老化时间设置为查找过程中表项的最小老化时间,执行步骤415;
步骤415:根据更新或动态设置的精确匹配流表的表项中的功能,对报文进行处理。
此外,步骤103中,还包括精确匹配流表的动态表项的老化和更新:
报文转发设备的openflow Agent接收到openflow控制器下发的流表变更消息后,openflow Agent按照控制平面实施的方法更新流表的精确匹配流表和至少一个分类匹配流表,不必更新精确匹配流表中的动态表项。每个动态表项在转发平面创建时,都会记录创建时间戳,当接收到报文后,如果动态表项的当前时间戳和创建时间戳的差值大于超时时间,认为所述动态表项过期,重新触发动态表项的建立,从而达到动态表项更新的目的。为了提高更新响应速度,超时时间通常定义为秒级或百毫秒级。
动态表项的老化实现原理和普通openflow流表一致,不同的是,动态表项的老化时间不是通过openflow控制器配置的,而是在动态表项创建或更新时,采用整个查找过程中表项的最小老化时间作为动态表项的老化时间。
在经过步骤103之后,后续对所述报文转发时,直接查找精确匹配流表即可,实现了只查一次流表就可转发报文,而且精确匹配流表可以在DRAM上实现,并不需要TCAM芯片实现,能够节省TCAM芯片资源。
基于上述方法,本发明还提供一种openflow流表的查表装置,如图5所示,该装置包括:控制平面模块51、转发平面模块52;其中,
控制平面模块51,用于将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
转发平面模块52,用于采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理;
所述至少一个分类匹配流表包括:L2流表、L3流表、MPLS流表和wildcard流表等;
其中,L2流表存储与二层基本业务相关的流表配置信息,表项的查找关键字为VLAN ID、源MAC和目的MAC等;
L3流表存储与三层基本业务相关的流表配置信息,表项的查找关键字为VLAN ID、源IP和目的IP等;
MPLS流表存储与MPLS业务相关的流表配置信息,表项的查找关键字为MPLS标签;
精确匹配流表存储所有精确匹配openflow 1.x协议定义的全部关键字表项的相关流表配置信息;
所述精确匹配流表同时保存下发的流表配置信息和动态建立的表项,采用HASH表的表项组织形式,存储在DRAM中,实际应用中,动态建立的表项的数量会很庞大,精确匹配流表通常需要定义4M或更大的表;
Wildcard流表存储非上述4种流表的其它流表配置信息,Wildcard流表采用openflow 1.x协议定义的全部关键字作为key,非精确匹配,标签(mask)可以配置在任意字段,采用TCAM进行存储。
所述控制平面模块51中openflow代理接收openflow控制器下发的流表配置信息,将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为L2流表的表项,下发到L2流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为L3流表和MPLS流表的表项下发到对应的L3流表和MPLS流表中,将其他的流表配置信息作为wildcard流表的表项下发到wildcard流表中。
所述转发平面模块52在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,将查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间,所述表项的老化时间设置为查找过程中表项的最小老化时间。
此外,所述转发平面模块52还对精确匹配流表的动态表项进行老化和更新。
具体的,所述转发平面模块52接收到报文后,如果动态表项的当前时间戳和创建时间戳的差值大于超时时间,认为所述动态表项过期,重新触发动态表项的建立,从而达到动态表项更新的目的,并在动态表项创建或更新时,采用整个查找过程中表项的最小老化时间作为动态表项的老化时间。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种openflow流表的查表方法,其特征在于,该方法包括:
控制平面上,将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
转发平面上,采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理。
2.根据权利要求1所述的查表方法,其特征在于,所述至少一个分类匹配流表包括:二层(L2)流表、三层(L3)流表、多协议标签交换(MPLS)流表和模糊匹配(wildcard)流表。
3.根据权利要求2所述的查表方法,其特征在于,所述按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中,包括:将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为二层流表的表项,下发到二层流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为三层流表和多协议标签交换流表的表项下发到对应的三层流表和多协议标签交换流表中,将其他的流表配置信息作为模糊匹配流表的表项下发到模糊匹配流表中。
4.根据权利要求3所述的查表方法,其特征在于,所述根据查表的结果,动态建立精确匹配流表的表项,包括:将从分类匹配流表中查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间。
5.根据权利要求4所述的查表方法,其特征在于,该方法还包括:对精确匹配流表的动态表项进行老化和更新。
6.一种openflow流表的查表装置,其特征在于,该装置包括:控制平面模块、转发平面模块;其中,
控制平面模块,用于将各级openflow流表按照关键字域划分为精确匹配流表和至少一个分类匹配流表,接收openflow控制器下发的流表配置信息,按照流表配置信息的关键字域,将流表配置信息作为表项下发到精确匹配流表或分类匹配流表中;
转发平面模块,用于采用报文的所有关键字对精确匹配流表进行查表,在查找到匹配的表项时,按照所述表项的功能进行报文处理;在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,根据查表的结果,动态建立精确匹配流表的表项,并按照所述表项的功能进行报文处理。
7.根据权利要求6所述的查表装置,其特征在于,所述至少一个分类匹配流表包括:L2流表、L3流表、MPLS流表和wildcard流表。
8.根据权利要求7所述的查表装置,其特征在于,所述控制平面模块,具体用于将关键字域为精确匹配所有关键字的流表配置信息作为精确匹配流表的表项,下发到精确匹配流表中,将关键字域为只匹配二层基本业务的流表配置信息作为L2流表的表项,下发到L2流表中,将关键字域为只匹配三层基本业务和关键字域为只匹配MPLS业务的流表配置信息,分别作为L3流表和MPLS流表的表项下发到对应的L3流表和MPLS流表中,将其他的流表配置信息作为wildcard流表的表项下发到wildcard流表中。
9.根据权利要求8所述的查表装置,其特征在于,所述转发平面模块,具体用于在没有查找到匹配的表项时,提取报文的不同关键字域的关键字对所述至少一个分类匹配流表进行并行查表,将查找到的匹配的表项的功能设置到流表转发流程的功能集中,将流表转发流程的功能集与报文的所有关键字作为一个精确匹配流表的表项,并设置动态表项标志,记录表项生成时间戳,设置表项的老化时间。
10.根据权利要求9所述的查表装置,其特征在于,所述转发平面模块,还用于对精确匹配流表的动态表项进行老化和更新。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410562760.1A CN105591914B (zh) | 2014-10-21 | 2014-10-21 | 一种openflow流表的查表方法和装置 |
PCT/CN2015/076316 WO2016062031A1 (zh) | 2014-10-21 | 2015-04-10 | 一种openflow流表的查表方法和装置、存储介质 |
RU2017117502A RU2658889C1 (ru) | 2014-10-21 | 2015-04-10 | Способ и устройство табличного поиска для таблиц OpenFlow, а также носитель данных |
EP15852883.6A EP3211843A4 (en) | 2014-10-21 | 2015-04-10 | Table look-up method and device for openflow table, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410562760.1A CN105591914B (zh) | 2014-10-21 | 2014-10-21 | 一种openflow流表的查表方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105591914A CN105591914A (zh) | 2016-05-18 |
CN105591914B true CN105591914B (zh) | 2020-07-03 |
Family
ID=55760187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410562760.1A Active CN105591914B (zh) | 2014-10-21 | 2014-10-21 | 一种openflow流表的查表方法和装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3211843A4 (zh) |
CN (1) | CN105591914B (zh) |
RU (1) | RU2658889C1 (zh) |
WO (1) | WO2016062031A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330722B (zh) * | 2016-10-26 | 2019-11-12 | 杭州迪普科技股份有限公司 | 一种创建路由缓存项的方法、转发报文的方法及装置 |
CN106789733B (zh) * | 2016-12-01 | 2019-12-20 | 北京锐安科技有限公司 | 一种提高大规模网络流表查找效率的装置及方法 |
CN107276916B (zh) * | 2017-06-22 | 2020-05-12 | 中国科学技术大学 | 基于协议无感知转发技术的交换机流表管理方法 |
CN109347747B (zh) * | 2018-11-13 | 2021-12-17 | 锐捷网络股份有限公司 | 一种数据处理方法及装置 |
CN111343110B (zh) * | 2018-12-19 | 2022-03-29 | 中国电信股份有限公司 | 报文处理方法、sdn交换机及计算机可读存储介质 |
CN109921996B (zh) * | 2018-12-29 | 2021-11-09 | 长沙理工大学 | 一种高性能的OpenFlow虚拟流表查找方法 |
CN113347090B (zh) * | 2020-02-18 | 2023-06-20 | 华为技术有限公司 | 报文处理方法、转发设备以及报文处理*** |
CN111585903B (zh) * | 2020-04-13 | 2021-09-21 | 华南理工大学 | 一种OpenFlow流表项自适应超时的方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674557A (zh) * | 2005-04-01 | 2005-09-28 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
CN1819557A (zh) * | 2006-03-10 | 2006-08-16 | 四川南山之桥微电子有限公司 | 硬件建立tcp数据流连接的方法 |
CN1863142A (zh) * | 2005-08-19 | 2006-11-15 | 华为技术有限公司 | 给数据流提供不同的服务质量策略的方法 |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
CN101035059A (zh) * | 2006-03-08 | 2007-09-12 | 中兴通讯股份有限公司 | 一种提高三重内容可寻址存储器报文分类查找速度的方法 |
CN101651628A (zh) * | 2009-09-17 | 2010-02-17 | 杭州华三通信技术有限公司 | 一种三状态内容可寻址存储器实现方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2285348C2 (ru) * | 2001-12-31 | 2006-10-10 | ИСиАй ТЕЛЕКОМ ЛТД. | Способ поиска решений по возможности соединения сетевых элементов |
US8559332B2 (en) * | 2010-05-25 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method for enhancing table lookups with exact and wildcards matching for parallel environments |
CN102685006A (zh) * | 2012-05-03 | 2012-09-19 | 中兴通讯股份有限公司 | 一种转发数据报文的方法及装置 |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及*** |
CN103095583B (zh) * | 2012-11-09 | 2016-03-16 | 盛科网络(苏州)有限公司 | 通过芯片环回实现Openflow两级流表的方法及*** |
WO2014166073A1 (zh) * | 2013-04-09 | 2014-10-16 | 华为技术有限公司 | 报文转发方法和网络设备 |
CN103354522B (zh) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | 一种多级流表查找方法和装置 |
-
2014
- 2014-10-21 CN CN201410562760.1A patent/CN105591914B/zh active Active
-
2015
- 2015-04-10 WO PCT/CN2015/076316 patent/WO2016062031A1/zh active Application Filing
- 2015-04-10 RU RU2017117502A patent/RU2658889C1/ru active
- 2015-04-10 EP EP15852883.6A patent/EP3211843A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
CN1674557A (zh) * | 2005-04-01 | 2005-09-28 | 清华大学 | 基于tcam的解决范围匹配的并行ip包分类器及方法 |
CN1863142A (zh) * | 2005-08-19 | 2006-11-15 | 华为技术有限公司 | 给数据流提供不同的服务质量策略的方法 |
CN101035059A (zh) * | 2006-03-08 | 2007-09-12 | 中兴通讯股份有限公司 | 一种提高三重内容可寻址存储器报文分类查找速度的方法 |
CN1819557A (zh) * | 2006-03-10 | 2006-08-16 | 四川南山之桥微电子有限公司 | 硬件建立tcp数据流连接的方法 |
CN101651628A (zh) * | 2009-09-17 | 2010-02-17 | 杭州华三通信技术有限公司 | 一种三状态内容可寻址存储器实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3211843A4 (en) | 2017-12-06 |
WO2016062031A1 (zh) | 2016-04-28 |
CN105591914A (zh) | 2016-05-18 |
EP3211843A1 (en) | 2017-08-30 |
RU2658889C1 (ru) | 2018-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
US7349382B2 (en) | Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base | |
WO2015032333A1 (zh) | 一种数据报文转发方法及装置 | |
US11687594B2 (en) | Algorithmic TCAM based ternary lookup | |
US10313240B2 (en) | Technologies for efficient network flow classification with vector bloom filters | |
US20160277297A1 (en) | Sdn packet forwarding | |
US9906449B2 (en) | System and method for reduced forwarding information storage | |
CN105429879B (zh) | 流表项查询方法、设备及*** | |
CN103248573A (zh) | 面向OpenFlow的集中管理交换机及其数据处理方法 | |
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
CN109639451A (zh) | 端口配置方法、装置、存储介质及电子装置 | |
CN110035074A (zh) | 一种acl匹配udf报文的芯片实现方法及装置 | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
WO2015131720A1 (zh) | 报文处理方法及装置 | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
US20220231945A1 (en) | Message matching table lookup method, system, storage medium, and terminal | |
Lo et al. | Flow entry conflict detection scheme for software-defined network | |
US11689464B2 (en) | Optimizing entries in a content addressable memory of a network device | |
CN115834478A (zh) | 一种利用tcam实现pbr高速转发的方法 | |
US10205658B1 (en) | Reducing size of policy databases using bidirectional rules | |
US10389626B2 (en) | Transfer device | |
CN111163077A (zh) | 一种基于网络处理器实现多维连续掩码的***和方法 | |
CN109905322A (zh) | 一种报文匹配信息预处理的方法及装置 | |
CN110830375B (zh) | 基于tcam存储路由mac信息的方法及装置 | |
US7496035B1 (en) | Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |