CN112202670B - 一种SRv6段路由转发方法及装置 - Google Patents
一种SRv6段路由转发方法及装置 Download PDFInfo
- Publication number
- CN112202670B CN112202670B CN202010922718.1A CN202010922718A CN112202670B CN 112202670 B CN112202670 B CN 112202670B CN 202010922718 A CN202010922718 A CN 202010922718A CN 112202670 B CN112202670 B CN 112202670B
- Authority
- CN
- China
- Prior art keywords
- srv6
- pipeline
- action
- actions
- message
- 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
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/34—Source routing
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SRv6段路由转发方法及装置,涉及数据通信技术领域,本发明在原有的表项字段上新增了流水线号作为关键字,使得在表项查找匹配时,首先进行流水线号匹配,解决环回方式流水线方案出现的表项误匹配和匹配效率不高的问题。通过对SRv6标准表项动作的原子化拆分,使得芯片仅需支持拆分后的子动作即可,大大降低了芯片支持SRv6标准的难度,也使得支持SRv6技术新标准的可扩展性大大提高。同时通过在芯片内置头中设置环回标志和流水线编号,将流水线处理的逻辑长度进行了扩充,使得芯片支持功能灵活性有了极大的扩展。
Description
技术领域
本发明涉及数据通信技术领域,具体涉及一种SRv6段路由转发方法及装置。
背景技术
SR(Segment Routing,段路由)是一种段路由机制,使用路径列表(IPv4使用MPLS标签,IPv6使用路由首部的IPv6地址)来指定路由数据包的网络路径。数据包必须通过标签列表中的每个节点,也有可能会通过其他中间节点,这使得它的功能非常类似于IPv4的松散源路由机制。松散源路由机制减少了路由数据包到目的地所需的标签数量,网络沿着标签列表中节点之间的最短路径转发数据包。SR使用IGP替代RSVP/LDP进行标签的分发,同时利用了IGP FRR实现了节点间的可靠保护。SR还支持Anycast保护,便于实现路由域边界节点的保护以及路径负载分担保护。SR还支持绑定标签,可以很好的支持异构网络的互通。
SRv6技术是Native IPv6和源路由(Source Routing)的新一代IP承载网核心协议,是IPv6网络下的段路由实现,也是未来MPLS-SR技术的演进方案,用于满足未来5G和云时代的业务承载需求,是未来5G核心网建设的发展方向。SRv6作为一个新技术,相关的标准非常多且大部分还处于草案阶段,而SRv6作为段路由技术本身也在演进过程中,需要支持VPWS/VPLS/EVPN/MPLS/MPLS-SR等多种业务的叠加,对数据转发面的报文格式和报文处理动作提出了很高的要求,目前固化逻辑的ASIC芯片支持SRv6功能不够全面,存在以下问题:
一、采用可编程NP(Network Processor,网络处理器)实现SRv6功能对其它业务需要的硬件资源有较大影响,成本较高。
二、SRv6技术采用环回方式流水线方式进行路由转发,而环回方式流水线方式易出现表项误匹配和匹配效率不高的问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种SRv6段路由转发方法及装置,解决环回方式流水线易出现表项误匹配和匹配效率不高的问题。
为达到以上目的,本发明采取的技术方案是:一种SRv6段路由转发方法,包括以下步骤:
将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中;
根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
在上述技术方案的基础上,将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表,具体包括以下步骤:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
在上述技术方案的基础上,基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号时,按如下原则进行:
从第一个原子动作开始分配,流水线编号初始为1,逻辑单元从第一个支持该原子动作的逻辑单元开始分配;
在同一个流水线编号中分配尽可能多的逻辑处理单元;
如果存在原子动作间的条件/顺序依赖,则作为前置条件的原子动作或顺序靠前的原子动作所分配的同一流水线号的逻辑单元号较小,或不同流水线号的流水线号较小。
在上述技术方案的基础上,根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作,具体包括以下步骤:
判断报文是否带有IPv6 SRv6扩展头;
若是,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在Local SID表和路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
若否,根据报文叠加业务的场景,分别根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号或三层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表和三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
在上述技术方案的基础上,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在Local SID表和三层路由表中进行查找匹配项时,如果报文同时命中Local SID表和三层路由表,按LocalSID表定义的SRv6动作执行。
在上述技术方案的基础上,在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理,具体包括以下步骤:
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号;
如果该SRv6动作对应的所有原子动作的流水线编号存在不相同的值,则修改内置转发报文头中的环回标志为1,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为内部环回端口,对流水线号字段数值加1,在报文执行完本次流水线所有逻辑单元处理后通过内部环回端口,重新使报文进入报文解析单元;
如果该SRv6动作对应的所有原子动作的流水线编号均相同,则修改内置转发报文头中的环回标志为0,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为出方向业务口,在报文执行完本次流水线所有逻辑单元处理后,去掉转发内置报文头后转向出方向业务口。
本发明还提供一种SRv6段路由转发装置,包括:
分解映射模块,其用于:将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
报文解析模块,其用于:对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中;
业务查找模块,其用于:根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
SRv6动作分发模块,其用于:在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
在上述技术方案的基础上,所述分解映射模块具体用于:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
在上述技术方案的基础上,所述业务查找模块包括:
Local SID单元,其用于:存储SRv6标准中规定的本地SID值,根据报文中的LocalSID匹配字段+转发内置报文头中的流水线编号为关键字在Local SID表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L2业务单元,其用于:存储SRv6段路由基于二层业务封装时需要匹配的条目,根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L3业务单元,其用于:存储SRv6段路由基于三层业务封装时需要匹配的条目,根据报文中的三层业务匹配内容+转发内置报文头中的流水线编号为关键字在三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
在上述技术方案的基础上,所述SRv6段路由转发装置还包括SRv6报文封装模块和SRv6报文环回处理模块;
所述SRv6报文封装模块用于:完成符合SRv6标准协议规定的各种格式报文封装;
所述SRv6报文环回处理模块用于:根据转发内置报文头的环回控制标志位对流水线编号字段数值进行修改,并指定数据报文的转发;环回控制标志为1时,对流水线编号字段数值加1,修改报文出端口为内部环回端口,重新进入报文解析模块;环回控制标志为0时,去掉转发内置报文头后转向出方向业务口。
与现有技术相比,本发明的优点在于:
本发明在原有的表项字段上新增了流水线号作为关键字,使得在表项查找匹配时,首先进行流水线号匹配,解决环回方式流水线方案出现的表项误匹配和匹配效率不高的问题。通过对SRv6标准表项动作的原子化拆分,使得芯片仅需支持拆分后的子动作即可,大大降低了芯片支持SRv6标准的难度,也使得支持SRv6技术新标准的可扩展性大大提高。同时通过在芯片内置头中设置环回标志和流水线编号,将流水线处理的逻辑长度进行了扩充,使得芯片支持功能灵活性有了极大的扩展。
附图说明
图1为本发明实施例的SRv6段路由转发方法的流程示意图;
图2为本发明实施例的转发内置报文头格式示意图;
图3为本发明实施例的SRv6相关条目格式示意图;
图4为本发明实施例的SRv6动作分解示意图;
图5为本发明实施例的流水线映射示意图;
图6为本发明实施例的逻辑单元功能列表示意图;
图7为本发明实施例的SRv6流水线映射表示意图;
图8为本发明实施例的SRv6报文转发流程示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
参见图1所示,本发明实施例提供一种SRv6段路由转发方法,包括以下步骤:
S1、将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
S2、对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中,参见图2所示;
S3、根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
S4、在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
作为优选的实施方式,将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表,具体包括以下步骤:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
作为优选的实施方式,基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号时,按如下原则进行:
从第一个原子动作开始分配,流水线编号初始为1,逻辑单元从第一个支持该原子动作的逻辑单元开始分配;
在同一个流水线编号中分配尽可能多的逻辑处理单元;
如果存在原子动作间的条件/顺序依赖,则作为前置条件的原子动作或顺序靠前的原子动作所分配的同一流水线号的逻辑单元号较小,或不同流水线号的流水线号较小。
作为优选的实施方式,根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作,具体包括以下步骤:
判断报文是否带有IPv6 SRv6扩展头;
若是,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在Local SID表和路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
若否,根据报文叠加业务的场景,分别根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号或三层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表和三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
作为优选的实施方式,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在Local SID表和三层路由表中进行查找匹配项时,如果报文同时命中Local SID表和三层路由表,按Local SID表定义的SRv6动作执行。
作为优选的实施方式,在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理,具体包括以下步骤:
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号;
如果该SRv6动作对应的所有原子动作的流水线编号存在不相同的值,则修改内置转发报文头中的环回标志为1,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为内部环回端口,对流水线号字段数值加1,在报文执行完本次流水线所有逻辑单元处理后通过内部环回端口,重新使报文进入报文解析单元;
如果该SRv6动作对应的所有原子动作的流水线编号均相同,则修改内置转发报文头中的环回标志为0,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为出方向业务口,在报文执行完本次流水线所有逻辑单元处理后,去掉转发内置报文头后转向出方向业务口。
本发明实施例提供的SRv6段路由转发方法,具体包括以下步骤:
步骤101、SRv6标准动作分解。将转发面需支持的每个SRv6动作分解为相应的原子动作,原子动作基于能够被芯片流水线中的单个逻辑处理单元实现为原则分解,如图4所示。
步骤102、确定要实现SRv6功能的芯片型号,识别芯片流水线中的逻辑单元。为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作。建立逻辑单元功能列表,如图6所示。
步骤103、针对每个要实现的SRv6动作,在如图4所示的SRv6动作分解表中查询得到该SRv6动作所包含的原子动作和原子动作间的依赖关系(顺序/并行/条件等)。
步骤104、基于步骤103得到的SRv6动作的原子动作子集和原子动作间的依赖关系分配流水线号和逻辑单元号,如图5所示。分配按如下原则进行,从第一个原子动作开始分配,流水线编号初始为1,逻辑单元从第一个支持该原子动作的逻辑单元开始分配。在同一个流水线编号中分配尽可能多的逻辑处理单元。如果存在原子动作间的条件/顺序依赖,则作为前置条件的原子动作或者顺序靠前的原则动作所分配的同一流水线号的逻辑单元号较小,或不同流水线号的流水线号较小。
步骤105、重复步骤103~104,完成预计支持的所有SRv6动作的子动作流水线号和逻辑单元号分配,完成该芯片的SRv6流水线映射表并下发硬件。如图7所示。
步骤106、从业务口接收要执行SRv6逻辑的以太网报文。并通过报文解析单元对报文相关内容进行解析,并给报文附上转发内置报文头,流水线编号赋值为1,环回标志赋值为0,其它相关内容初始化为空。执行步骤107。对于从内部环回口进入的报文的转发内置报文头不进行初始化和修改。直接执行步骤107。
步骤107、对步骤106中的报文进行深度解析,判断报文是否带有IPv6 SRv6扩展头,如果带有IPv6 SRv6扩展头,该报文执行的是中间节点(P)动作。执行步骤108。如果没有带有IPv6 SRv6扩展头,则该报文执行的是PE节点动作,执行步骤109。
步骤108、对于步骤107中带有IPv6 SRv6扩展头的报文,依次查询Local SID处理单元和三层路由处理单元,并在其中根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在LocalSID表和路由表中进行查找匹配项,参见图3所示,并根据匹配项得到要执行的SRv6动作。执行步骤110。
步骤109、对于步骤107中没有IPv6 SRv6扩展头的报文,根据报文叠加业务的场景,分别根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号或三层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表和三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。执行步骤110。
步骤110、基于步骤108或者109中获取的SRv6动作,在已经下发硬件的该型芯片SRv6流水线映射表中查询该SRv6动作对应的原子动作/流水线编号/逻辑单元号,如果该SRv6动作对应的所有原子动作的流水线编号存在不相同的值,则表明该SRv6动作需要执行流水线环回,修改内置转发报文头中的环回标志为1,流水线编号置为SRv6动作的第一个原子动作的流水线编号。执行步骤111。如果该SRv6动作对应的所有原子动作的流水线编号均相同,则表明该SRv6动作无需执行流水线环回,修改内置转发报文头中的环回标志为0,流水线编号置为SRv6动作的第一个原子动作的流水线编号。执行步骤112。
步骤111、对于步骤110中内置转发报文头中的环回标志为1的报文,修改转发内置报文头的目的地址信息为内部环回端口,对流水线号字段数值加1,并在报文执行完本次流水线所有逻辑单元处理后通过内部环回端口,重新使报文进入报文解析单元。
步骤112、对于步骤110中内置转发报文头中的环回标志为0的报文,表明报文的SRv6动作执行的是最后一次流水线处理,转发内置报文头中的目的地址字段内容是内部环回口,则将其修改为出方向业务口。在报文执行完本次流水线所有逻辑单元处理后,报文去掉转发内置报文头(FPATH头)后转向目的出口。完成报文整个SRv6转发逻辑处理。其流程图和转发过程的内置报文头如图8所示。
图8中报文头定义如下:
ETH为以太网报头;
IP为IP报头;
PDU为有效数据载荷;
SRv6为SRv6报文头;
FPATH为芯片转发流水线内置头;
FPATH`和FPATH``表示环回标记位被修改。
本发明实施例还提供一种SRv6段路由转发装置,包括:
分解映射模块,其用于:将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
报文解析模块,其用于:对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中;
业务查找模块,其用于:根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
SRv6动作分发模块,其用于:在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
作为优选的实施方式,所述分解映射模块具体用于:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
作为优选的实施方式,所述业务查找模块包括:
Local SID单元,其用于:存储SRv6标准中规定的本地SID值,根据报文中的LocalSID匹配字段+转发内置报文头中的流水线编号为关键字在Local SID表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L2业务单元,其用于:存储SRv6段路由基于二层业务封装时需要匹配的条目,根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L3业务单元,其用于:存储SRv6段路由基于三层业务封装时需要匹配的条目,根据报文中的三层业务匹配内容+转发内置报文头中的流水线编号为关键字在三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
作为优选的实施方式,所述SRv6动作分发模块具体用于:
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号;
如果该SRv6动作对应的所有原子动作的流水线编号存在不相同的值,则修改内置转发报文头中的环回标志为1,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为内部环回端口,对流水线号字段数值加1,在报文执行完本次流水线所有逻辑单元处理后通过内部环回端口,重新使报文进入报文解析单元;
如果该SRv6动作对应的所有原子动作的流水线编号均相同,则修改内置转发报文头中的环回标志为0,流水线编号置为SRv6动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为出方向业务口,在报文执行完本次流水线所有逻辑单元处理后,去掉转发内置报文头后转向出方向业务口。
所述SRv6段路由转发装置还包括SRv6报文封装模块和SRv6报文环回处理模块。
SRv6报文封装模块用于完成符合SRv6标准协议规定的各种格式报文封装。
SRv6报文环回处理模块用于根据转发内置报文头(FPATH头)的环回控制标志位对流水线编号字段数值进行修改,同时指定数据报文的转发。环回控制标志为1时,对流水线编号字段数值加1,同时修改报文出端口为内部环回端口,重新进入报文解析模块。环回控制标志为0,报文去掉转发内置报文头(FPATH头)后转向目的出口。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种SRv6段路由转发方法,其特征在于,包括以下步骤:
将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中;
根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
2.如权利要求1所述的方法,其特征在于,将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表,具体包括以下步骤:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
3.如权利要求2所述的方法,其特征在于,
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号时,按如下原则进行:
从第一个原子动作开始分配,流水线编号初始为1,逻辑单元从第一个支持该原子动作的逻辑单元开始分配;
在同一个流水线编号中分配尽可能多的逻辑处理单元;
如果存在原子动作间的条件/顺序依赖,则作为前置条件的原子动作或顺序靠前的原子动作所分配的同一流水线号的逻辑单元号较小,或不同流水线号的流水线号较小。
4.如权利要求1所述的方法,其特征在于,根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作,具体包括以下步骤:
判断报文是否带有IPv6 SRv6扩展头;
若是,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在Local SID表和路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
若否,根据报文叠加业务的场景,分别根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号或三层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表和三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
5.如权利要求4所述的方法,其特征在于,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号或IPv6地址+转发内置报文头中的流水线编号为关键字在LocalSID表和三层路由表中进行查找匹配项时,如果报文同时命中Local SID表和三层路由表,按Local SID表定义的SRv6动作执行。
6.如权利要求1所述的方法,其特征在于,在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理,具体包括以下步骤:
在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号;
如果所述SRv6标准功能动作对应的所有原子动作的流水线编号存在不相同的值,则修改内置转发报文头中的环回标志为1,流水线编号置为所述SRv6标准功能动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为内部环回端口,对流水线号字段数值加1,在报文执行完本次流水线所有逻辑单元处理后通过内部环回端口,重新使报文进入报文解析单元;
如果所述SRv6标准功能动作对应的所有原子动作的流水线编号均相同,则修改内置转发报文头中的环回标志为0,流水线编号置为所述SRv6标准功能动作的第一个原子动作的流水线编号;将转发内置报文头的目的地址信息修改为出方向业务口,在报文执行完本次流水线所有逻辑单元处理后,去掉转发内置报文头后转向出方向业务口。
7.一种SRv6段路由转发装置,其特征在于,包括:
分解映射模块,其用于:将每个SRv6标准功能动作分解为若干个原子动作,对每个分解后的原子动作分配流水线号和逻辑单元号,生成流水线映射表;
报文解析模块,其用于:对报文入口收到的数据报文进行解析,将解析得到的源地址信息、业务字段、流水线编号和环回控制标志保存在转发内置报文头中;
业务查找模块,其用于:根据数据报文的转发内置报文头中的业务字段+流水线编号,在Local SID表和三层路由表,或二层业务表和三层路由表中查找匹配项,得到需要执行的SRv6标准功能动作;
SRv6动作分发模块,其用于:在流水线映射表中查询该需要执行的SRv6标准功能动作对应的原子动作、流水线编号和逻辑单元号,根据查询结果进行流水线处理。
8.如权利要求7所述的装置,其特征在于,所述分解映射模块具体用于:
基于能够被芯片流水线中的单个逻辑处理单元实现,将每个SRv6标准功能动作分解为若干个原子动作,结合原子动作间的依赖关系,生成SRv6动作分解表;
确定实现SRv6动作的芯片型号,识别芯片流水线中的逻辑单元,为每个逻辑单元进行编号,并列出每个逻辑单元所支持的SRv6动作的原子动作,生成逻辑单元功能列表;
针对每个需要实现的SRv6动作,在SRv6动作分解表中查询得到该SRv6动作所包含的原子动作以及原子动作间的依赖关系;
基于原子动作、原子动作间的依赖关系以及逻辑单元功能列表,为各个原子动作分配流水线号和逻辑单元号,生成流水线映射表。
9.如权利要求7所述的装置,其特征在于,所述业务查找模块包括:
Local SID单元,其用于:存储SRv6标准中规定的本地SID值,根据报文中的Local SID匹配字段+转发内置报文头中的流水线编号为关键字在Local SID表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L2业务单元,其用于:存储SRv6段路由基于二层业务封装时需要匹配的条目,根据报文中的二层业务匹配内容+转发内置报文头中的流水线编号为关键字在二层业务表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作;
L3业务单元,其用于:存储SRv6段路由基于三层业务封装时需要匹配的条目,根据报文中的三层业务匹配内容+转发内置报文头中的流水线编号为关键字在三层路由表中进行查找匹配项,并根据匹配项得到要执行的SRv6动作。
10.如权利要求7所述的装置,其特征在于,所述SRv6段路由转发装置还包括SRv6报文封装模块和SRv6报文环回处理模块;
所述SRv6报文封装模块用于:完成符合SRv6标准协议规定的各种格式报文封装;
所述SRv6报文环回处理模块用于:根据转发内置报文头的环回控制标志位对流水线编号字段数值进行修改,并指定数据报文的转发;环回控制标志为1时,对流水线编号字段数值加1,修改报文出端口为内部环回端口,重新进入报文解析模块;环回控制标志为0时,去掉转发内置报文头后转向出方向业务口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922718.1A CN112202670B (zh) | 2020-09-04 | 2020-09-04 | 一种SRv6段路由转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922718.1A CN112202670B (zh) | 2020-09-04 | 2020-09-04 | 一种SRv6段路由转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202670A CN112202670A (zh) | 2021-01-08 |
CN112202670B true CN112202670B (zh) | 2022-08-30 |
Family
ID=74006322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010922718.1A Active CN112202670B (zh) | 2020-09-04 | 2020-09-04 | 一种SRv6段路由转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202670B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995032B (zh) * | 2021-05-20 | 2021-08-24 | 中国人民解放军国防科技大学 | 一种基于受限最宽路径的段路由流量工程方法及装置 |
CN113655767B (zh) * | 2021-10-15 | 2022-02-08 | 格创东智(深圳)科技有限公司 | 生产线控制方法、装置、设备和计算机可读存储介质 |
CN116915702B (zh) * | 2023-09-12 | 2023-11-28 | 常州楠菲微电子有限公司 | 一种报文环回编辑的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516022A (zh) * | 2016-01-27 | 2016-04-20 | 盛科网络(苏州)有限公司 | 在芯片中实现802.11 QoS优先级值灵活映射的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09106344A (ja) * | 1995-10-12 | 1997-04-22 | Hitachi Ltd | パイプライン処理装置 |
US20020144092A1 (en) * | 2001-01-31 | 2002-10-03 | Siroyan Limited. | Handling of loops in processors |
US8553686B2 (en) * | 2010-04-28 | 2013-10-08 | Broadcom Corporation | Performing actions on frame entries in response to receiving bulk instruction |
CN102624611B (zh) * | 2011-12-31 | 2015-01-21 | 华为数字技术(成都)有限公司 | 报文分流方法、装置、处理器和网络设备 |
CN104426761B (zh) * | 2013-08-23 | 2019-02-26 | 中兴通讯股份有限公司 | 报文处理方法和装置 |
CN104579940B (zh) * | 2013-10-10 | 2017-08-11 | 新华三技术有限公司 | 查找访问控制列表的方法及装置 |
CN104008130B (zh) * | 2014-04-28 | 2017-07-14 | 开网科技(北京)有限公司 | 一种基于混合计算硬件的网络报文分类系统和方法 |
CN106549817A (zh) * | 2015-09-21 | 2017-03-29 | 深圳市中兴微电子技术有限公司 | 报文识别方法及装置 |
CN107707548B (zh) * | 2017-09-30 | 2020-06-23 | 北京东土军悦科技有限公司 | Tlv报文解析方法、装置、电子设备及存储介质 |
CN111131159A (zh) * | 2019-11-22 | 2020-05-08 | 中国人民解放军国防科技大学 | 一种报文解析器及其设计方法 |
-
2020
- 2020-09-04 CN CN202010922718.1A patent/CN112202670B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516022A (zh) * | 2016-01-27 | 2016-04-20 | 盛科网络(苏州)有限公司 | 在芯片中实现802.11 QoS优先级值灵活映射的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112202670A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112202670B (zh) | 一种SRv6段路由转发方法及装置 | |
WO2015192501A1 (zh) | 地址信息的发布方法及装置 | |
US20080317032A1 (en) | Methods for using a translation/instruction system to redirect a multiprotocol label switching (mpls) packet | |
CN112019433B (zh) | 一种报文转发方法和装置 | |
US9088498B2 (en) | Communication networks that provide a common transport domain for use by multiple service domains and methods and computer program products for using the same | |
CN111010329B (zh) | 一种报文传输方法及装置 | |
US11991081B1 (en) | Micro SID packet processing | |
CN113411258A (zh) | 报文处理方法及装置 | |
CN102474451B (zh) | 连接内层和外层mpls标签 | |
CN101083598A (zh) | 一种虚拟私有网的路由引入方法、系统和运营商边缘设备 | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN102368726A (zh) | 一种应用于l2vpn的转发方法及装置 | |
US20240106751A1 (en) | Method and apparatus for processing detnet data packet | |
CN107547399A (zh) | 一种组播转发表项的处理方法和pe设备 | |
CN113726653B (zh) | 报文处理方法及装置 | |
US7742471B2 (en) | Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine | |
CN112437008B (zh) | 网络路由收敛处理和报文处理方法、装置及设备 | |
CN111371686B (zh) | 一种报文转发方法及装置 | |
US20230081052A1 (en) | Method and apparatus for sending multicast packet | |
CN116319553A (zh) | 一种表项查找方法以及网络设备 | |
CN113542126B (zh) | 广义SRv6全路径压缩方法及装置 | |
CN111865805B (zh) | 一种组播gre报文处理方法及系统 | |
WO2024012316A1 (zh) | 报文处理方法、装置、网络节点及存储介质 | |
WO2023050981A1 (zh) | 虚拟专用网络业务标识的分配方法、报文处理方法及装置 | |
WO2023051179A1 (zh) | 边界网关协议路由的接收、发送方法及装置和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |