一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多层SID报文终结方法及装置与流程

2022-09-08 00:56:25 来源:中国专利 TAG:

一种多层sid报文终结方法及装置
技术领域
1.本发明涉及通信技术领域,特别涉及一种多层sid报文终结方法及装置。


背景技术:

2.目前,在srv6(segment routing internet protocol version 6,基于第六版互联网协议的分段路由)网络中,传输的srv6报文的报文头中需要携带srh(segment routing header,分段路由头),该srh包括的segment list是由报文转发路径上各个节点的sid(segment identifier,分段标识)组成的路径序列。其中每个sid的标准字节长度为128比特(bit)。在基于srv6网络的路由规划中,存在一些需要在一个站上终结多层sid的场景,比如,约束路径中某个站需要先终结end类型,再终结endx类型找出口出去,因此需要单站连续终结2层sid。
3.相关技术中,基于srv6技术的多层sid报文终结时,每终结一层sid,sl(当前sid的下标位置指针)减1,然后替换ipv6报文头中目的ip;同时,每终结一层sid都需要在本地endpoint sid表中查询,导致耗时长,效率低,占用带宽的问题。此外,在一些应用场景中,需要单站终结多至七层以上的sid时,就需要走七次以上终结流程,导致耗时成倍增加,带宽成倍减少,极大的消耗了设备的资源。


技术实现要素:

4.本发明实施例提供一种多层sid报文终结方法及装置,以提高终结流程的效率、减少资源占用。
5.一方面,本发明实施例提供了一种多层sid报文终结方法,其特征在于,其包括步骤:
6.构建终结对信息并将其保存于报文中的保留字段,所述终结对信息包括需要终结的sid层数以及终结sid的sl起始值;
7.根据所述终结对信息进行查表并完成sid终结。
8.一些实施例中,所述保存于报文中的保留字段,包括步骤:
9.将所述需要终结的sid层数以及终结sid的sl起始值保存在srh头的tags字段。
10.一些实施例中,所述终结对信息还包括终结对索引和终结使能标志,其中,所述终结对索引用于指定预设的终结对,所述终结使能标志用于判断是否支持根据所述终结对信息进行sid终结;
11.所述保存于报文中的保留字段,还包括步骤:
12.将所述终结对索引和终结使能标志保存在srh头的flags字段。
13.一些实施例中,所述根据所述终结对信息进行sid终结,还包括步骤:
14.若终结使能标志不支持根据所述终结对信息进行sid终结,则根据标准的srv6终结sid流程进行sid终结。
15.一些实施例中,所述根据所述终结对信息进行查表并完成sid终结,包括步骤:
16.若所述终结对信息中的sl起始值与srh头中的sl值相同,则将所述终结对信息覆盖的sid计算成hash值,所述hash值用于进行sid终结时在本地endpoint表中查找。
17.一些实施例中,所述根据所述终结对信息进行查表并完成sid终结,还包括步骤:
18.若在所述在本地endpoint表中查找到相应的hash值,将srh头中的sl减去所述需要终结的sid层数以获取终结对信息覆盖的最后一层sid的ip地址并以所述最后一层sid的ip地址完成sid终结。
19.第二方面,本发明实施例提供了一种多层sid报文终结装置,其特征在于,其包括:
20.终结对信息构建模块,其用于构建终结对信息并将其保存于报文中的保留字段,所述终结对信息包括需要终结的sid层数以及终结sid的sl起始值;
21.sid终结模块,其用于根据所述终结对信息进行查表并完成sid终结。
22.一些实施例中,所述终结对信息构建模块还用于:
23.将所述需要终结的sid层数以及终结sid的sl起始值保存在srh头的tags字段。
24.一些实施例中,所述终结对信息包括终结对索引和终结使能标志,其中,所述终结对索引用于指定预设的终结对,所述终结使能标志用于判断是否支持根据所述终结对信息进行sid终结;
25.所述终结对信息构建模块还用于将所述终结对索引和终结使能标志保存在srh头的flags字段。
26.一些实施例中,所述sid终结模块还用于:
27.若所述终结对信息中的sl起始值与srh头中的sl值相同,则将所述终结对信息覆盖的sid计算成hash值,所述hash值用于进行sid终结时在本地endpoint表中查找;
28.若在所述在本地endpoint表中查找到相应的hash值,将srh头中的sl减去所述需要终结的sid层数以获取终结对信息覆盖的最后一层sid的ip地址并以所述最后一层sid的ip地址完成sid终结。
29.本发明提供的技术方案带来的有益效果包括:
30.本发明实施例提供了一种多层sid报文终结方法及装置,通过扩展srh头的保留字段标识出约束路径中需要终结的一段sid,解决了常规终结流程需要多次查询本地sid表造成流程复杂、耗时长、占带宽、效率低的问题,屏蔽了不同软硬件方案的实现差异,无需再关心需要被终结的sid层数,是一种易于推动落地的srv6多层sid报文快速终结的实现方案。
附图说明
31.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1为本发明实施例提供的一种多层sid报文终结方法的流程示意图;
33.图2为本发明实施例提供的srh头格式、字段示意图;
34.图3为本发明实施例提供的采用多层sid报文终结方法经过一段srv6 policy路径的示意图;
35.图4为本发明实施例提供的srv6 capabilities sub-tlv格式的示意图;
36.图5为本发明实施例提供的一种多层sid报文终结装置的结构示意图。
具体实施方式
37.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.如图1所示,一种多层sid报文终结方法,其包括步骤:
39.s100:构建终结对信息并将其保存于报文中的保留字段,所述终结对信息包括需要终结的sid层数以及终结sid的sl起始值;
40.s200:根据所述终结对信息进行sid终结以实现通过一次查表覆盖所有需要终结的sid。
41.可以理解的是,终结对信息用于反映需要终结的sid的信息,如需要终结的sid的层数和终结sid时的sl起始值。
42.本发明实施例提供了一种多层sid报文终结方法及装置,通过扩展srh头的保留字段标识出约束路径中需要终结的一段sid,解决了常规终结流程需要多次查询本地sid表造成流程复杂、耗时长、占带宽、效率低的问题,屏蔽了不同软硬件方案的实现差异,无需再关心需要被终结的sid层数,是一种易于推动落地的srv6多层sid报文快速终结的实现方案。
43.一些实施例中,保存于报文中的保留字段包括将所述需要终结的sid层数以及终结sid的sl起始值保存在srh头的tags字段。
44.可以理解的是,可在现有的srh头未使用的保留字段的基础上,利用当前暂未有具体用途的两字节tags字段,用于保存终结对信息。可优选地,在两字节的tags字段中,用一个字节保存一个终结对信息,比如前4bit保存需要终结的层数,后4bit保存终结sid时的sl起始值(当前需要执行终结的sl起始值)。由于tags字段只有2字节,因此最多可支持两组终结对(一个终结对可理解为一对数值,如图2所示,[2,5]是一对数值,表示一个终结对),且由于4bit可以表示的最大值为15,因此最多可支持终结的层数为15层,同样的sl起始值最大为15,足以支持目前现有的绝大多数实际应用场景。并且,本发明不排除采用其他保留字段以实现更多层数sid终结的方案。
[0045]
一些实施例中,终结对信息包括终结对索引和终结使能标志,其中,终结对索引用于指定预设的终结对,终结使能标志用于判断是否支持根据所述终结对信息进行sid终结;保存于报文中的保留字段还包括将所述终结对索引和终结使能标志保存在srh头的flags字段。
[0046]
可以理解的是,可在现有的srh头未使用的保留字段的基础上,利用srh头的flags字段中保留位的后2位保存终结对索引和终结使能标志。具体地,可将srh头的flags后2bit依次记作p和t,1bit p位保存终结对索引,p为0时表示第一组终结对,为1表示第二组终结对;1bit t位保存终结使能标志,其置1表示支持根据终结对进行sid终结。通常控制器可根据全局的拓扑来生成终结对信息并下发给首站。
[0047]
一些实施例中,s200包括:
[0048]
若终结使能标志判断为不支持根据所述终结对信息进行sid终结,则根据标准的
srv6终结sid流程进行sid终结。
[0049]
需要说明的是,标准的srv6流程是每终结一层sid,sl减1,然后替换ipv6头中目的ip,终结完成后需要将当前sl位置的sid拷贝到ipv6头的dip。
[0050]
需要说明的是,对应控制平面而言,可通过对is-is等igp协议进行扩展协议控制面报文,如增加t_flag,发布节点支持/不支持根据终结对进行sid终结(是否具备srv6快速终结能力);节点的支持与否可以通过bgp-ls上报给控制器,控制器在计算srv6 te路径时,根据节点的t_flag标识编辑srh头中的t位信息以及其他终结对信息,向头节点下发包含终结对信息的srv6 policy。若t_flag为不支持,则可将srv6 capabilities sub-tlv的t位设置为0,即不需要通过协议传达给拓扑中其他站。若拓扑中其他站收到srv6 capabilities sub-tlv不做快速终结处理,即不会去计算hash下发到endpoint表中。拓扑中其他站只有收到的srv6 capabilities sub-tlv的t置位,才会去计算hash下发endpoint。
[0051]
一些实施例中,s200包括:
[0052]
若所述终结对信息中的sl起始值与srh头中的sl值相同,则将所述终结对信息覆盖的sid计算成hash值,所述hash值用于进行sid终结时在本地endpoint表中查找。
[0053]
可以理解的是,当设备收到报文时,首先会检查终结对信息中的sl字段,将其与srh头中sl值比较,只有相等才会继续根据终结对进行终结。若不相同则表示没有匹配成功,则要走正常终结流程(标准的srv6流程),与现有的srv6流程兼容。
[0054]
可优选地,当收到报文时,检查srh头中的t字段,如果为1,再比对当前p位所指向的终结对中的sl起始值和srh头中的sl值,如果相等则将终结对覆盖的sid通过hash计算成128bit的值在本地endpoint表中查找。根据约束路径,控制面下配置时,设备会将带有t_flag的endpoint sid适配并计算出endpoint hash值下发到本地endpoint表中执行终结流程。将srh头中的sl直接减掉终结对中的层数,按照终结对覆盖的最外层sid的endpoint行为(取终结对中最后一个sid的行为)走接下来的流程(end/endx等)。因此,仅需要一次流程就可以完成常规方案需要多次流程完成的任务。
[0055]
如图2、3所示,在一个具体的实施例中,控制器下发包含两组终结对信息([2,5]、[2,1])的srv6 policy给头端pe1设备,并设置{sid[1],sid[2]}约束p2,{sid[5],sid[6]}约束pe2。
[0056]
srh头的flags字段最后一个bit用来标识是否支持根据终结对终结,记作t_flag,置位1表示支持;倒数第二个bit记作p位,表示终结对索引,p值为0或1。srh头中的2字节tags字段中第一个4it表示被终结的层数;第二个4bit表示终结的起始sl值。以第一个终结对为例,1字节为[0010,0101]即[2,5],表示当srh头中的sl为5时,终结2层sid。
[0057]
报文经过p1,查询到t_flag已置位,p=0,则比较pair[p].sl=5与srh头中的sl=6,不相等则走常规srv6终结流程(不根据终结对进行终结);
[0058]
报文经过p2,查询到t_flag已置位,p=0,则比较pair[p].sl=5与srh头中的sl=5,相等则走快速终结流程(根据终结对进行终结的流程);对{sid[1],sid[2]}终结对计算hash值。控制面下配置时,对带t标记的endpoint sid采用同样的hash算法计算出128bit sid下发到endpoint表中,因此在p2的endpoint表中查找,如果查到则sl减去pair[p].t;拷贝sid[2]到ipv6头目的ip,p (伪代码写法,意思为p位的值加1,p=0的位置的终结对信息已经处理完)。如果查不到则走正常srv6终结流程。
[0059]
p3,p4走的是正常srv6终结流程。
[0060]
当报文经过pe2(连接ce的设备,下一个站就是用户侧的vpn),查询到t_flag已置位,p=1,则比较pair[p].sl=1与srh头中的sl=1,相等则走快速终结流程,查表流程与上述p2处理流程相同;如果查到则sl减去pair[p].t,此时由于sl=1,减2需要特殊处理,表示连续弹出倒数第二跳sid和vpnsid,类似正常srv6终结流程的usd弹出,如果查不到则走正常srv6终结流程。
[0061]
关于p2和pe2上快速终结的endpoint sid表项的配置,可对控制平面下发的带t标记的endpoint sid进行计算hash值适配下发。endpoint的行为取终结对中最后一个sid对应的行为。
[0062]
如图4所示,控制平面上,通过扩展is-is等igp协议来通告支持快速终结的sid信息。以is-is为例,扩展srv6 capabilities sub-tlv,增加t_flag,通告节点支持快速终结能力。t_flag由本方案定义,当t_flag置位时,表示当前节点具备快速终结能力,用来标识节点的srv6快速终结能力(是否支持根据终结对进行终结)。
[0063]
另一方面,如图5所示,本发明实施例还提供一种多层sid报文终结装置,其特征在于,其包括:
[0064]
终结对信息构建模块,其用于构建终结对信息并将其保存于报文中的保留字段,所述终结对信息包括需要终结的sid层数以及终结sid的sl起始值;
[0065]
sid终结模块,其用于根据所述终结对信息进行sid终结以实现通过一次查表覆盖所有需要终结的sid。
[0066]
一些实施例中,终结对信息构建模块还用于:
[0067]
将所述需要终结的sid层数以及终结sid的sl起始值保存在srh头的tags字段。
[0068]
一些实施例中,终结对信息包括终结对索引和终结使能标志,其中,所述终结对索引用于指定预设的终结对,所述终结使能标志用于判断是否支持根据所述终结对信息进行sid终结;
[0069]
所述终结对信息构建模块还用于将所述终结对索引和终结使能标志保存在srh头的flags字段。
[0070]
一些实施例中,sid终结模块还用于若终结使能标志判断为不支持根据所述终结对信息进行sid终结,则根据标准的srv6终结sid流程进行sid终结。
[0071]
一些实施例中,sid终结模块还用于
[0072]
若所述终结对信息中的sl起始值与srh头中的sl值相同,则将所述终结对信息覆盖的sid计算成hash值,所述hash值用于进行sid终结时在本地endpoint表中查找。
[0073]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
[0074]
以上仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献