一种报文环回编辑的方法及装置与流程
未命名
10-26
阅读:93
评论:0
1.本发明涉及通信技术领域,且特别是有关于一种报文环回编辑的方法及装置。
背景技术:
2.基于ipv6转发平面的段路由(segment routing over ipv6 ,srv6)是新一代的ip承载协议,其采用现有的ipv6转发技术,通过灵活的ipv6扩展头实现网络的可编程。srv6具有网络路径、业务、转发行为三层可编程空间,使得其能支撑大量不同业务的不同诉求,契合了业务驱动网络的大潮流。段路由(sr)的核心思想是将报文转发路径切割为不同的分段,并在路径起始点往报文中插入分段信息,中间节点只需要按照报文里携带的分段信息转发,最终在报文路径的终点将分段信息剥除即可。这样的路径分段,称之为“segment”,并通过段标识(segment identifier,sid)来标识,但是这种报文封装方式使得在路径起始点封装报文和路径终点解封装报文都需要编辑大量的分段信息,导致对交换芯片编辑报文头信息的长度范围有很大的要求,因此,为了支持编辑srv6协议报文,需要拓宽芯片内部数据传输接口和模块间fifo缓存器的缓存宽度,最终导致交换芯片所需资源激增。
技术实现要素:
3.为解决上述问题,本发明提供一种报文环回编辑的方法及装置,能够很大程度上节约芯片的资源。
4.为达到上述目的,本发明技术方案是:一种报文环回编辑的方法,包括,步骤s11,srv6报文解析,识别srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记;步骤s12,srv6报文协议处理与srv6报文编辑,对于步骤s11中识别到的srv6报文,查找段标识表得到需要封装的srv6报文路径信息,执行段标识表对应的指令动作,即封装报文或解封装报文;封装报文时,完成本次查询到的srv6路径信息的编辑和报文内容的编辑,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后环回至步骤s11;当查询到的srv6报文路径信息没有超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后正常输出;解封装报文时,当不能一次完成所有内容的编辑时,将本次编辑后的报文头和报文有效载荷组装后环回至步骤s11;当能一次完成所有内容的编辑时,将编辑后的报文头和报文有效载荷组装后正常输出。
5.对于srv6报文环回封装,上述步骤s11包括,srv6报文解析,识别srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文的标记。
6.对于srv6报文环回封装,上述步骤s12包括,步骤s221,判断是否为srv6环回封装报文,若是,进入步骤s222;若否,进入步骤
s225;步骤s222,查询段标识表得到需要封装的srv6报文路径信息,所述路径信息包括段列表、段列表的有效个数、环回封装使能标记、环回封装查表索引;步骤s223,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s228;步骤s224,完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,将编辑后的报文头和报文有效载荷组装后发至环回口,再次环回到步骤s11;步骤s225,根据上一次查询段标识表得到的环回封装查表索引进行查表,得到srv6环回报文需要再一次封装的srv6报文路径信息;步骤s226,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s227;步骤s227,根据本次查询到的srv6报文路径信息再次编辑报文头,其他报文内容不做修改,转至步骤s228;步骤s228,完成本次查询到的srv6路径信息的编辑和报文内容的编辑,将编辑后的报文头和报文有效载荷组装后正常输出。
7.对于srv6报文环回解封装,上述步骤s11包括,srv6报文解析,识别出srv6报文以及对应报文头的长度;将来自环回口的报文打上环回解封装报文的标记。
8.对于srv6报文环回解封装,上述步骤s12包括,步骤s321,判断是否为srv6环回解封装报文,若是,进入步骤s325;若否,进入步骤s322;步骤s322,查询段标识表,执行段标识表对应的指令,解封装报文;步骤s323,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s327;否则,将环回解封装使能标记置位,进入步骤s324;步骤s324,编辑当前可编辑的所有信息,将编辑后的报文头和报文有效载荷组装后发至环回口,再次环回到步骤s11;步骤s325,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s326;否则,将环回解封装使能标记置位,进入步骤s324;步骤s326,编辑报文头的段列表部分,进入步骤s327;步骤s327,将编辑后的报文头和报文有效载荷组装后正常输出。
9.本发明还提供一种报文环回编辑的装置,执行上述一种报文环回编辑的方法,包括报文解析模块、协议处理模块与报文编辑模块,所述报文解析模块连接所述协议处理模块与所述报文编辑模块,所述协议处理模块连接所述报文编辑模块。
10.上述报文解析模块解析报文及对应报文头的长度,将来自环回口的报文打上环回
封装报文或环回解封装报文的标记。
11.上述协议处理模块查询段标识表,执行段标识表对应的指令动作,即封装报文或解封装报文。
12.封装时,所述报文编辑模块完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,对于环回封装使能标记置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后环回至所述报文解析模块;对于环回封装使能标记没有置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后正常输出。
13.解封装时,对于环回解封装使能标记置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后环回至所述报文解析模块;对于环回解封装使能标记没有置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后正常输出。
14.有益效果,本发明一种报文环回编辑的方法及装置,提供了一种环回的方式来完成对srv6报文封装和解封装场景下的编辑,使得想要支持srv6协议的交换芯片封装srv6报文时不再受限于段列表的长度,也可以使得解封装srv6报文时也不会因为段列表太长而无法解封装完全;同时使用环回的方式来编辑srv6报文,不用为了刻意支持较长的段列表来拓宽芯片内部数据传输接口的位宽和模块间fifo缓存器缓存的宽度,很大程度上节省了芯片资源。
15.为让发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
16.图1为本发明一种报文环回编辑的方法的流程图。
17.图2为封装报文时本发明一种报文环回编辑的方法的流程图。
18.图3为解封装报文时本发明一种报文环回编辑的方法的流程图。
19.图4为本发明一种报文环回编辑的装置的结构框图。
具体实施方式
20.为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.图1为本发明一种报文环回编辑的方法的流程图。如图1所示,本发明一种报文环回编辑的方法包括如下步骤。
22.步骤s11,srv6报文解析,更具体地,识别srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记。
23.步骤s12,srv6报文协议处理与srv6报文编辑,对于步骤s11中识别到的srv6报文,查找段标识表(sid表)得到需要封装的srv6报文路径信息,执行段标识表对应的指令动作,即封装报文或解封装报文,其中,段标识表存储本节点生成的srv6报文路径信息的段标识信息(sid信息)。
24.封装报文时,完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编
辑,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后环回至步骤s11;当查询到的srv6报文路径信息没有超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后正常输出。
25.解封装报文时,当不能一次完成所有内容的编辑时,将本次编辑后的报文头和报文有效载荷组装后环回至步骤s11;当能一次完成所有内容的编辑时,将编辑后的报文头和报文有效载荷组装后正常输出。
26.进一步地,查询需要封装的srv6路径信息为封装报文头(segment routing header,srh)做准备;在一具体实施例中,对于srv6报文环回封装,如图2所示,本发明一种报文环回编辑的方法具体包括如下步骤。
27.步骤s21,srv6报文解析,更具体地,识别芯片入口收到的srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文的标记。
28.步骤s22进一步包括如下步骤。
29.步骤s221,判断是否为srv6环回封装报文。若是,进入步骤s222;若否,进入步骤s225。
30.步骤s222,查询段标识表得到需要封装的srv6报文路径信息,所述路径信息具体包括段列表(segment list)、段列表的有效个数、环回封装使能标记(next_valid)、环回封装查表索引(next_segment_list_index)。
31.步骤s223,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s228。
32.步骤s224,完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,例如虚拟局域网标签(vlantag),mac地址等,将编辑后的报文头和报文有效载荷(payload)组装后发至环回口,再次环回到步骤s21。
33.步骤s225,根据上一次查询段标识表得到的环回封装查表索引进行查表,得到srv6环回报文需要再一次封装的srv6报文路径信息。
34.步骤s226,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s227。
35.步骤s227,根据本次查询到的srv6报文路径信息再次编辑报文头,其他报文内容不做修改,转至步骤s228。
36.步骤s228,完成本次查询到的srv6路径信息的编辑和报文内容的编辑,例如虚拟局域网标签(vlantag),mac地址等,将编辑后的报文头和报文有效载荷组装后正常输出。
37.在另一具体实施例中,对于srv6报文环回解封装,如图3所示,本发明一种报文环回编辑的方法具体包括如下步骤。
38.步骤s31,srv6报文解析,更具体地,识别出srv6报文以及对应报文头的长度;将来自环回口的报文打上环回解封装报文的标记。
39.步骤s32进一步包括如下步骤。
40.步骤s321,判断是否为srv6环回解封装报文。若是,进入步骤s325;若否,进入步骤s322。
41.步骤s322,查询段标识表,执行段标识表对应的指令,解封装报文。
42.步骤s323,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s327;否则,将环回解封装使能标记置位,进入步骤s324。
43.步骤s324,编辑当前可编辑的所有信息,将编辑后的报文头和报文有效载荷组装后发至环回口,再次环回到步骤s31。
44.步骤s325,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s326;否则,将环回解封装使能标记置位,进入步骤s324。
45.步骤s326,编辑报文头的段列表部分,进入步骤s327。
46.步骤s327,将编辑后的报文头和报文有效载荷组装后正常输出。
47.本发明还提供一种报文环回编辑的装置,用于执行上述一种报文环回编辑的方法。图4示出了本发明一种报文环回编辑的装置的结构框图,一种报文环回编辑的装置1,包括报文解析模块11、协议处理模块12与报文编辑模块13,报文解析模块11连接协议处理模块12与报文编辑模块13,协议处理模块12连接报文编辑模块13。
48.报文解析模块11解析报文及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记。
49.协议处理模块12查询段标识表,执行段标识表对应的指令动作,即封装报文或解封装报文。
50.封装时,报文编辑模块13完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,对于环回封装使能标记置位的报文,报文编辑模块13将编辑后的报文头和报文有效载荷组装后环回至报文解析模块11;对于环回封装使能标记没有置位的报文,报文编辑模块13将编辑后的报文头和报文有效载荷组装后正常输出。
51.解封装时,对于环回解封装使能标记置位的报文,报文编辑模块13将编辑后的报文头和报文有效载荷组装后环回至报文解析模块11;对于环回解封装使能标记没有置位的报文,报文编辑模块13将编辑后的报文头和报文有效载荷组装后正常输出。
52.进一步地,报文编辑模块13仅编辑报文头的段列表部分。
53.其中,协议处理模块12不处理解封装环回报文。
54.虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的申请专利范围所界定者为准。
技术特征:
1.一种报文环回编辑的方法,其特征在于,包括,步骤s11,srv6报文解析,识别srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记;步骤s12,srv6报文协议处理与srv6报文编辑,对于步骤s11中识别到的srv6报文,查找段标识表得到需要封装的srv6报文路径信息,执行段标识表对应的指令动作,即封装报文或解封装报文;封装报文时,完成本次查询到的srv6路径信息的编辑和报文内容的编辑,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后环回至步骤s11;当查询到的srv6报文路径信息没有超过一次报文编辑的范围时,将编辑后的报文头和报文有效载荷组装后正常输出;解封装报文时,当不能一次完成所有内容的编辑时,将本次编辑后的报文头和报文有效载荷组装后环回至步骤s11;当能一次完成所有内容的编辑时,将编辑后的报文头和报文有效载荷组装后正常输出。2.如权利要求1所述一种报文环回编辑的方法,其特征在于,对于srv6报文环回封装,所述步骤s11包括,srv6报文解析,识别srv6报文和普通ipv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文的标记。3.如权利要求2所述一种报文环回编辑的方法,其特征在于,所述步骤s12包括,步骤s221,判断是否为srv6环回封装报文,若是,进入步骤s222;若否,进入步骤s225;步骤s222,查询段标识表得到需要封装的srv6报文路径信息,所述路径信息包括段列表、段列表的有效个数、环回封装使能标记、环回封装查表索引;步骤s223,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s228;步骤s224,完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,将编辑后的报文头和报文有效载荷组装后发至环回口,再次环回到步骤s11;步骤s225,根据上一次查询段标识表得到的环回封装查表索引进行查表,得到srv6环回报文需要再一次封装的srv6报文路径信息;步骤s226,判断是否需要将环回封装使能标记置位,当查询到的srv6报文路径信息超过一次报文编辑的范围时,将环回封装使能标记置位,并给出下一次环回时查找srv6报文路径信息的索引,即环回封装查表索引,进入步骤s224;否则,不将环回封装使能标记置位,进入步骤s227;步骤s227,根据本次查询到的srv6报文路径信息再次编辑报文头,其他报文内容不做修改,转至步骤s228;步骤s228,完成本次查询到的srv6路径信息的编辑和报文内容的编辑,将编辑后的报文头和报文有效载荷组装后正常输出。4.如权利要求1所述一种报文环回编辑的方法,其特征在于,对于srv6报文环回解封装,所述步骤s11包括,srv6报文解析,识别出srv6报文以及对应报文头的长度;将来自环回口的报文打上环回解封装报文的标记。
5.如权利要求4所述一种报文环回编辑的方法,其特征在于,所述步骤s12包括,步骤s321,判断是否为srv6环回解封装报文,若是,进入步骤s325;若否,进入步骤s322;步骤s322,查询段标识表,执行段标识表对应的指令,解封装报文;步骤s323,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s327;否则,将环回解封装使能标记置位,进入步骤s324;步骤s324,编辑当前可编辑的所有信息,将编辑后的报文头和报文有效载荷组装后发至环回口,再次环回到步骤s11;步骤s325,判断是否需要将环回解封装使能标记置位,根据报文头长度判断,当能一次完成所有内容的编辑时,不将环回封装使能标记置位,进入步骤s326;否则,将环回解封装使能标记置位,进入步骤s324;步骤s326,编辑报文头的段列表部分,进入步骤s327;步骤s327,将编辑后的报文头和报文有效载荷组装后正常输出。6.一种报文环回编辑的装置,其特征在于,执行如权利要求1-5任一项所述一种报文环回编辑的方法,包括报文解析模块、协议处理模块与报文编辑模块,所述报文解析模块连接所述协议处理模块与所述报文编辑模块,所述协议处理模块连接所述报文编辑模块。7.如权利要求6所述一种报文环回编辑的装置,其特征在于,所述报文解析模块解析报文及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记。8.如权利要求7所述一种报文环回编辑的装置,其特征在于,所述协议处理模块查询段标识表,执行段标识表对应的指令动作,即封装报文或解封装报文。9.如权利要求8所述一种报文环回编辑的装置,其特征在于,封装时,所述报文编辑模块完成本次查询到的所有srv6路径信息的编辑和其余报文内容的编辑,对于环回封装使能标记置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后环回至所述报文解析模块;对于环回封装使能标记没有置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后正常输出。10.如权利要求8所述一种报文环回编辑的装置,其特征在于,解封装时,对于环回解封装使能标记置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后环回至所述报文解析模块;对于环回解封装使能标记没有置位的报文,所述报文编辑模块将编辑后的报文头和报文有效载荷组装后正常输出。
技术总结
本发明公开了一种报文环回编辑的方法及装置,属于通信技术领域,包括,SRv6报文解析,识别SRv6报文和普通IPv6报文以及对应报文头的长度,将来自环回口的报文打上环回封装报文或环回解封装报文的标记;SRv6报文协议处理与SRv6报文编辑,对于识别到的SRv6报文,查找段标识表得到需要封装的SRv6报文路径信息,执行段标识表对应的指令动作,即封装报文或解封装报文。本发明一种报文环回编辑的方法及装置,同时使用环回的方式来编辑SRv6报文,不用为了刻意支持较长的段列表来拓宽芯片内部数据传输接口的位宽和模块间fifo缓存器缓存的宽度,很大程度上节省了芯片资源。很大程度上节省了芯片资源。很大程度上节省了芯片资源。
技术研发人员:成玉娟 王岩 陈洋 邹震宇
受保护的技术使用者:常州楠菲微电子有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/