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

一种报文处理方法、装置、电子设备及介质与流程

2022-02-21 09:07:46 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别是涉及一种报文处理方法、装置、电子设备及介质。


背景技术:

2.ipv6段路由(segment routing ipv6,srv6)是指基于ipv6转发平面实现段路由(segment routing,sr)。通过在ipv6报文中插入一个路由扩展头(segment routing header,srh),并在srh中添加段列表(segment list)指示报文的转发路径,sl中包括转发路径中各节点的段标识(segment identifier,sid)。
3.如图1所示,sid包括公共前缀(common prefix)、节点标识(node id)、功能(funtion)字段和可选参数段(arguments),arguments可简称为args。一个srv6域中的各sid具有相同的公共前缀,在目前的srv6优化方案中,可以压缩sid的公共前缀,在srh中携带sid的可变部分,即图1中的g-sid,g-sid包括sid中的node id和funtion部分。
4.srh中可以携带多个segment list,每个segment list包括4个g-sid,例如,若报文转发路径为节点7

节点6

节点5

节点4

节点3

节点2

节点1,如图2所示,segment list[2]中填充了节点7的srv6 sid,其他节点的g-sid在segment list中的编排方式为从右到左的连续填充,即segment list[1]中从右到左依次填充了节点6、节点5、节点4和节点3的g-sid,segment list[0]中从右到左依次填充了节点2和节点1的g-sid。
[0005]
在报文转发过程中,转发路径中的中间节点接收到报文后,可以将segment list中的下一个g-sid与当前报文的ipv6目的地址中的公共前缀拼接,形成128b的sid,将该sid作为报文的ipv6目的地址,然后查找路由表进行报文转发。如果当前场景支持psp,则转发路径上的倒数第二个节点需弹出报文中的srh。也就是说,当报文被转发到上述节点2时,节点2需弹出报文中的srh。
[0006]
然而,这种情况下,节点2可通过节点2的g-sid对应路由是否携带连续压缩(continue of compression,coc)来确定自身不是最后一个g-sid,如果携带了coc,则说明节点2不是最后一个g-sid。此时节点2还需判断自身是否为倒数第二个节点,但节点2无法获取到节点1的明细路由,进而无法确定节点1是否为最后一个g-sid,导致节点2无法判断自身是否为转发路径中倒数第二个节点,进而无法弹出srh。


技术实现要素:

[0007]
本技术实施例的目的在于提供一种报文处理方法、装置、电子设备及介质,以用以解决无法弹出srh的问题。具体技术方案如下:
[0008]
第一方面,本技术实施例提供一种报文处理方法,所述方法应用于srv6网络中的头节点,所述方法包括:
[0009]
确定报文转发路径中包括的各节点的g-sid;
[0010]
将所述报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中;
[0011]
将所述报文转发路径包括的倒数第二个节点至正数第二个节点的g-sid,按照填充位所对应si值从小到大的顺序,依次填充在sl=1指示的段列表至sl=n指示的段列表的各填充位;其中,每新增一个段列表,将sl的值加1,直至所述正数第二个节点的g-sid被填充;
[0012]
将所述报文转发路径中的第一个节点的srv6 sid填充在sl=n 1指示的段列表中;
[0013]
向中间节点转发srv6报文,所述srv6报文的srh中包括sl=0指示的段列表至sl=n 1指示的段列表。
[0014]
在一种可能的实现方式中,所述sid信息为g-sid;所述将所述报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中,包括:
[0015]
将所述报文转发路径中最后一个节点的g-sid填充在sl=0指示的段列表中的最高填充位。
[0016]
在一种可能的实现方式中,在将所述报文转发路径中的第一个节点的srv6sid填充在sl=n 1指示的段列表中之后,所述方法还包括:
[0017]
向所述头节点的转发面下发所述报文转发路径中第二个节点的g-sid在段列表中的初始si,以使得所述转发面在所述srv6报文的目的ipv6地址的最低两比特位处填充所述初始si,生成所述srv6报文。
[0018]
在一种可能的实现方式中,所述sid信息为未被压缩的srv6 sid;所述将所述报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中,包括:
[0019]
将所述报文转发路径中最后一个节点未压缩的srv6 sid填充在sl=0指示的段列表中。
[0020]
第二方面,本技术实施例提供一种报文处理方法,所述方法应用于srv6网络中的中间节点,所述方法包括:
[0021]
接收srv6报文,所述srv6报文的srh中包括多个段列表,其中,sl=0指示的段列表中仅填充有报文转发路径中最后一个节点的sid信息;
[0022]
若所述srv6报文的srh中携带的sl值为1,且所述srv6报文的目的ipv6地址携带的si值为0,则弹出所述srh,并将sl=0指示的段列表中的sid信息填充至所述srv6报文,得到ipv6报文;
[0023]
转发所述ipv6报文。
[0024]
在一种可能的实现方式中,所述sid信息为g-sid或未被压缩的srv6 sid。
[0025]
第三方面,本技术实施例提供一种报文处理装置,所述装置应用于srv6网络中的头节点,所述装置包括:
[0026]
确定模块,用于确定报文转发路径中包括的各节点的g-sid;
[0027]
填充模块,用于将所述报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中;以及将所述报文转发路径包括的倒数第二个节点至正数第二个节点的g-sid,按照填充位所对应si值从小到大的顺序,依次填充在sl=1指示的段列表至sl=n指示的段列表的各填充位;其中,每新增一个段列表,将sl的值加1,直至所述正数第二个节点的g-sid被填充;以及将所述报文转发路径中的第一个节点的srv6 sid填充在sl=n 1指示的段列表中;
[0028]
转发模块,用于向中间节点转发srv6报文,所述srv6报文的srh中包括sl=0指示的段列表至sl=n 1指示的段列表。
[0029]
在一种可能的实现方式中,所述sid信息为g-sid;所述填充模块,具体用于:
[0030]
将所述报文转发路径中最后一个节点的g-sid填充在sl=0指示的段列表中的最高填充位。
[0031]
在一种可能的实现方式中,所述装置还包括:
[0032]
下发模块,用于向所述头节点的转发面下发所述报文转发路径中第二个节点的g-sid在段列表中的初始si,以使得所述转发面在srv6报文的目的ipv6地址的最低两比特位处填充所述初始si,生成所述srv6报文。
[0033]
在一种可能的实现方式中,所述sid信息为未被压缩的srv6 sid;所述填充模块,具体用于:
[0034]
将所述报文转发路径中最后一个节点未压缩的srv6 sid填充在sl=0指示的段列表中。
[0035]
第四方面,本技术实施例提供一种报文处理装置,所述装置应用于srv6网络中的中间节点,所述装置包括:
[0036]
接收模块,用于接收srv6报文,所述srv6报文的srh中包括多个段列表,其中,sl=0指示的段列表中仅填充有报文转发路径中最后一个节点的sid信息;
[0037]
处理模块,用于若所述srv6报文的srh中携带的sl值为1,且所述srv6报文的目的ipv6地址携带的si值为0,则弹出所述srh,并将sl=0指示的段列表中的sid信息填充至所述srv6报文,得到ipv6报文;
[0038]
转发模块,用于转发所述ipv6报文。
[0039]
在一种可能的实现方式中,所述sid信息为g-sid或未被压缩的srv6 sid。
[0040]
第五方面,本技术实施例提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0041]
存储器,用于存放计算机程序;
[0042]
处理器,用于执行存储器上所存放的程序时,实现上述第一方面或第二方面任一所述的方法步骤。
[0043]
第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的方法步骤。
[0044]
第七方面,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
[0045]
本发明实施例有益效果:
[0046]
采用上述技术方案,可以保证srv6报文携带的srh中,sl=0指示的段列表中只包括报文转发路径中最后一个节点的sid信息,所以当报文转发路径中的中间节点接收到srv6报文后,只需根据自身的g-sid在sl=1指示的段列表中的位置,就可以确定自身是否为报文转发路径中的倒数第二个节点,无需判断sl=0指示的段列表中包括多少节点的g-sid,可以保证倒数第二个节点正确弹出srh。
[0047]
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优
点。
附图说明
[0048]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0049]
图1为背景技术提供的一种sid的示意图;
[0050]
图2为背景技术提供的一种段列表的示例性示意图;
[0051]
图3为本技术实施例提供的一种srh的示例性示意图;
[0052]
图4为本技术实施例提供的一种报文处理方法的流程图;
[0053]
图5为本技术实施例提供的另一种段列表的示例性示意图;
[0054]
图6为本技术实施例提供的另一种段列表的示例性示意图;
[0055]
图7为本技术实施例提供的另一种段列表的示例性示意图;
[0056]
图8为本技术实施例提供的另一种报文处理方法的流程图;
[0057]
图9为本技术实施例提供的一种报文处理装置的结构示意图;
[0058]
图10为本技术实施例提供的另一种报文处理装置的结构示意图;
[0059]
图11为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0060]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061]
为方便描述,对本技术实施例涉及到的相关概念进行解释说明。
[0062]
psp(penultimate segment pop of the srh),是指转发路径中的倒数第二个节点移除srv6报文中的srh。移除srh的操作也可称为“弹srh”。
[0063]
g-sid(generalized-sid)为压缩后的srv6 sid。
[0064]
coc是g-sid发布的一种flavor,用于在压缩sid的场景中,标识段列表中的下一个sid是否还是压缩的g-sid。
[0065]
段索引(segments left,sl)为下一个要处理的段列表的编号。
[0066]
segment list为sid列表,可称为段列表。按照报文转发路径上节点从远到近的顺序进行排列,也就是从传输路径的最后一段进行编码,segment list[0]表示报文转发路径的最后一个sid列表,segment list[1]表示报文转发路径的倒数第二个sid列表,以此类推。
[0067]
srv6报文的报头包括ipv6头和srh,如图3所示,ipv6头中包括版本号(version)、traffic class、流标签(flow label)、负载长度(payload length)、下一个报头(next header)、跳数限制(hop limit)、源地址(source address)、目的地址(destination address)。
[0068]
其中,目的地址包括公共前缀(common prefix)、g-sid、填充位和si((g-sid index))。si在目的地址的最后两个比特位,用于表示下一个需要处理的g-sid的编号,取值范围为0至3。
[0069]
srh为srv6报文中的路由扩展头,srh包括:下一个报文头(next header)、srh长度(hdr ext len)、路由类型(routing type)、段索引(segments left)、最后一跳(last entry)、flags、标记(tag)。
[0070]
其中,next header:8bits,用来标识下一个报文头的类型。
[0071]
hdr ext len:长度为8bits,表示以8个字节为单位的srh头的长度,不包括第一个8个字节。
[0072]
routing type:长度为8bits,为路由类型字段,取值为4,表示携带的是srh。
[0073]
last entry:长度为8bits,srh头中报文实际转发路径的第一个sid的编号。
[0074]
flags:长度为8bits,是标志位信息。
[0075]
tag:长度为16bits,用来标记具有相同特性的一组报文。
[0076]
segments left,长度为8bits,在下文中简称为sl,为下一个要处理的段列表的编号。
[0077]
srh中还包括多个段列表,图3中示例性地示出了三个段列表,其中sl=0指示的段列表中包括一个128bit的srv6 sid。sl=1指示的段列表中包括四个g-sid,分别为g-sid0、g-sid1、g-sid2、g-sid3。sl=2指示的段列表中包括一个128bit的srv6 sid。
[0078]
需要说明的是,图3仅为示意图,图3中的srv6 sid占16b(byte),每个g-sid占4b(byte),si可以指示g-sid在16b范围内的位置。例如,si=0用于表示图3中的g-sid0,si=1用于表示g-sid1,si=2用于表示g-sid2,si=3用于表示g-sid3。
[0079]
以下对本技术实施例的应用场景进行介绍。
[0080]
本技术实施例应用于支持psp的srv6网络中。
[0081]
在一些场景中,为了减轻srv6尾节点的负担,可以由srv6网络的报文转发路径中倒数第二个节点处移除srv6的srh。
[0082]
在另一些场景中,如果现网存量设备中存在不支持srv6的设备a,可以在该设备前部署一台支持srv6网络的设备b,从而该设备a可作为尾节点接入srv6网络,有利于增量部署。这种情况下,因设备a不具有处理srv6报文的能力,所以需要由设备b将srv6报文中的srh移除,将ipv6报文转发给设备a。
[0083]
本技术实施例中的所涉及的节点均为srv6网络中的网络设备,比如可以为路由器、交换机等。
[0084]
为了在转发srv6报文的过程中能够在倒数第二跳正常弹出srh,本技术实施例提供一种报文处理方法,该方法应用于srv6网络中的头节点,如图4所示,该方法包括:
[0085]
s401、确定报文转发路径中包括的各节点的g-sid。
[0086]
例如,报文转发路径为节点7

节点6

节点5

节点4

节点3

节点2

节点1,需确定节点1至节点7的g-sid。
[0087]
s402、将报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中。
[0088]
按照标准协议规定,段列表可以表示为segment list[0],segment list[1],
segment list[2],以此类推。其中,segment list[0]是最后一个需要被处理的段列表,segment list[1]为倒数第二个需要被处理的段列表,segment list[2]为倒数第三个需要被处理的段列表。
[0089]
sl=0用于指示segment list[0],sl=1用于指示segment list[1],sl=2用于指示segment list[2],以此类推。
[0090]
本步骤中,可以将报文转发路径中最后一个节点的sid信息填充在segment list[0]中。例如,将节点1的sid信息填充在segment list[0]中。
[0091]
s403、将报文转发路径包括的倒数第二个节点至正数第二个节点的g-sid,按照填充位所对应si值从小到大的顺序,依次填充在sl=1指示的段列表至sl=n指示的段列表的各填充位。
[0092]
其中,每新增一个段列表,将sl的值加1,直至正数第二个节点的g-sid被填充;
[0093]
sl=1指示的段列表为segment list[1],sl=2指示的段列表为segment list[2]。
[0094]
每个段列表包括四个填充位,段列表中包括的四个填充位从左到右的si值依次为0,1,2,3。
[0095]
本技术实施例中,可以从转发路径包括的倒数第二个节点的g-sid开始,将各g-sid按照填充位从低到高的顺序填充在sl=1指示的段列表中,在sl=1指示的段列表被填充满后,将sl 1,继续向sl=2指示的段列表中填充,直至报文转发路径中正数第二个节点的g-sid被填充,正数第二个节点的g-sid所在的段列表为sl=n指示的段列表。
[0096]
作为示例,如图5所示,可将节点1的sid信息填充在sl=0指示的段列表中,然后将节点2的g-sid填充在sl=1指示的段列表si=0的位置,将节点3的g-sid填充在sl=1指示的段列表si=1的位置,将节点4的g-sid填充在sl=1指示的段列表si=3的位置,将节点5的g-sid填充在sl=1指示的段列表si=4的位置。
[0097]
此时,节点6的g-sid还未被填充,所以将sl 1,得到sl=2。并将节点6的g-sid填充在sl=2指示的段列表si=1的位置,至此,节点1至节点6的g-sid已被全部填充,即上述n=2。
[0098]
s404、将报文转发路径中的第一个节点的srv6 sid填充在sl=n 1指示的段列表中。
[0099]
仍延续上一步骤中的举例,则节点7的未被压缩的srv6 sid被填充在sl=3指示的段列表中。
[0100]
s405、向中间节点转发srv6报文,srv6报文的srh中包括sl=0指示的段列表至sl=n 1指示的段列表。
[0101]
可以理解的,srv6报文的srh中包括s402-s404中填充的段列表,比如,可以包括图5所示的段列表。
[0102]
采用该方法,可以保证srv6报文携带的srh中,sl=0指示的段列表中只包括报文转发路径中最后一个节点的sid信息,所以当报文转发路径中的中间节点接收到srv6报文后,只需根据自身的g-sid在sl=1指示的段列表中的位置,就可以确定自身是否为报文转发路径中的倒数第二个节点,无需判断sl=0指示的段列表中包括多少节点的g-sid,可以保证倒数第二个节点正确弹出srh。
[0103]
在本技术的一个实施例中,上述s402、将报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中,包括以下两种实现方式:
[0104]
方式一、该sid信息为g-sid。
[0105]
头节点可以将报文转发路径中最后一个节点的g-sid填充在sl=0指示的段列表中的最高填充位。
[0106]
如图6所示,仍以报文转发路径为节点7

节点6

节点5

节点4

节点3

节点2

节点1为例,节点1的g-sid被填充在sl=0指示的段列表中si=4的位置。
[0107]
采用该方式,sl=0指示的段列表中只包括一个g-sid,所以sl=1指示的段列表中,si=0位置填充的g-sid所属节点必然是转发路径中倒数第二个节点,所以该节点可直接将srh弹出,无需进一步判断sl=0指示的段列表中有多少个g-sid,可以使得srh被正确弹出。
[0108]
方式二、sid信息为未被压缩的srv6 sid。
[0109]
头节点可以将报文转发路径中最后一个节点未压缩的srv6 sid填充在sl=0指示的段列表中。
[0110]
也就是说,可以规定转发路径中最后一个节点的srv6 sid不能被压缩,那么,sl=0指示的段列表中只能填充一个未压缩的srv6 sid。
[0111]
如图7所示,仍以报文转发路径为节点7

节点6

节点5

节点4

节点3

节点2

节点1为例,节点1的srv6 sid被填充在sl=0指示的段列表中。节点2、节点3、节点4、节点5的g-sid被填充在sl=1指示的段列表中,节点6的g-sid被填充在sl=2指示的段列表中,节点7的g-sid被填充在sl=3指示的段列表中。
[0112]
采用该方式,sl=0指示的段列表中只包括一个未压缩的srv6 sid,所以sl=1指示的段列表中,si=0位置填充的g-sid所属节点必然是转发路径中倒数第二个节点,所以该节点可直接将srh弹出,无需进一步判断sl=0指示的段列表中有多少个g-sid,可以使得srh被正确弹出。
[0113]
在本技术另一实施例中,在将报文转发路径中的第一个节点的srv6 sid填充在sl=n 1指示的段列表中之后,该方法还包括:
[0114]
向头节点的转发面下发报文转发路径中第一个节点的g-sid在段列表中的初始si,以使得转发面在srv6报文的目的ipv6地址的最低两比特位处填充初始si,生成srv6报文。
[0115]
头节点的转发面接收到该初始si后,在生成srv6报文时,可以将sl=n 1指示的段列表中的srv6 sid填充在ipv6头的目的地址部分,并将该初始si填充在ipv6头的目的地址最低两比特位的位置。
[0116]
进而,当中间节点接收到该srv6报文后,可基于srh中的sl值和目的地址的最低两比特位填充的初始si确定报文转发路径中的下一个节点的g-sid在段列表中的位置,从而从该位置处获取下一个节点的g-sid,将获取到的g-sid填充在在ipv6头的目的地址地址部分。
[0117]
其中,中间节点将该g-sid与公共前缀和args拼接,即可恢复出标准srv6 sid。另外,中间节点还需将目的地址的最低两比特位的si更新为该g-sid之后的下一个g-sid的si。
[0118]
以图7为例进行说明,头节点在srv6报文的ipv6头的目的地址处填充的是节点7的srv6 sid,且该目的地址的最低两比特位填充的是节点6的si,即si=0。并且,该srh中的segments left填充的值为2。
[0119]
因该srv6报文的目的地址是节点7的srv6 sid,所以头节点会将该srv6报文转发至节点7,节点7接收到该报文后,从sl=2,且si=0的位置可获取到节点6的g-sid。进而,节点7将节点6的g-sid填充在该srv6报文的目的地址处,并将目的地址中填充的si更新为4,将srh头中的segments left更新为1,并转发该srv6报文。
[0120]
本技术实施例中,报文转发路径中包括的各g-sid在段列表中的排列方式发生了变化,头节点的控制面可以向转发面下发报文转发路径中第一个节点的g-sid在段列表中的初始si,如此转发面就可以将该初始si填充在ipv6头的目的ipv6地址中,从而保证转发面正确生成srv6报文,且使得接收到该srv6报文的中间节点可以准确地获取下一个g-sid在段列表中的位置,使得srv6报文可以被正确转发。
[0121]
对应于上述方法实施例,本技术实施例还提供另一种报文处理方法,如图8所示,该方法包括:
[0122]
s801、接收srv6报文,srv6报文的srh中包括多个段列表,其中,sl=0指示的段列表中仅填充有报文转发路径中最后一个节点的sid信息。
[0123]
s802、若srv6报文的srh中携带的sl值为1,且srv6报文的目的ipv6地址携带的si值为0,则弹出srh,并将sl=0指示的段列表中的sid信息填充至srv6报文,得到ipv6报文。
[0124]
按照本技术实施例中的g-sid排列方式,因为sl=0指示的段列表中仅填充有报文转发路径中最后一个节点的sid信息,所以sl=1指示的段列表中,si=0的g-sid必然是报文转发路径中的倒数第二个节点,所以可在srh中携带的sl值为1,且srv6报文的目的ipv6地址携带的si值为0的情况下,弹出srh。
[0125]
s803、转发ipv6报文。
[0126]
采用该方法,因中间节点接收到的srv6报文的srh中,sl=0指示的段列表
[0127]
中只包括报文转发路径中最后一个节点的sid信息,所以当报文转发路径中的
[0128]
中间节点接收到srv6报文后,只需确定srv6报文的srh中携带的sl值为1,且
[0129]
srv6报文的目的ipv6地址携带的si值为0,就可确认自身为报文转发路径中的倒
[0130]
数第二个节点,无需判断sl=0指示的段列表中包括多少节点的g-sid,可以保证
[0131]
倒数第二个节点正确弹出srh。
[0132]
在一种实施方式中,上述g-sid信息为g-sid,在这种情况下,在sl=1,si=0位置填充的g-sid所属节点的coc=1,即报文转发路径的最后一个节点的g-sid也被压缩。
[0133]
在另一种实施方式中,上述g-sid信息为未被压缩的srv6 sid。在这种情况下,在sl=1,si=0位置填充的g-sid所属节点的coc=0,即报文转发路径的最后一个节点未被压缩。
[0134]
对应于上述方法实施例,本技术实施例还提供一种报文处理装置,该装置应用于srv6网络中的头节点,如图9所示,该装置包括:
[0135]
确定模块901,用于确定报文转发路径中包括的各节点的g-sid;
[0136]
填充模块902,用于将所述报文转发路径中的最后一个节点的sid信息填充在sl=0指示的段列表中;以及将所述报文转发路径包括的倒数第二个节点至正数第二个节点的
g-sid,按照填充位所对应si值从小到大的顺序,依次填充在sl=1指示的段列表至sl=n指示的段列表的各填充位;其中,每新增一个段列表,将sl的值加1,直至所述正数第二个节点的g-sid被填充;以及将所述报文转发路径中的第一个节点的srv6 sid填充在sl=n 1指示的段列表中;
[0137]
转发模块903,用于向中间节点转发srv6报文,所述srv6报文的srh中包括sl=0指示的段列表至sl=n 1指示的段列表。
[0138]
可选地,所述sid信息为g-sid;所述填充模块902,具体用于:
[0139]
将所述报文转发路径中最后一个节点的g-sid填充在sl=0指示的段列表中的最高填充位。
[0140]
可选地,该装置还包括:
[0141]
下发模块,用于向所述头节点的转发面下发所述报文转发路径中第二个节点的g-sid在段列表中的初始si,以使得所述转发面在srv6报文的目的ipv6地址的最低两比特位处填充所述初始si,生成所述srv6报文。
[0142]
可选地,所述sid信息为未被压缩的srv6 sid;所述填充模块902,具体用于:
[0143]
将所述报文转发路径中最后一个节点未压缩的srv6 sid填充在sl=0指示的列表中。
[0144]
对应于上述方法实施例,本技术实施例还提供另一种报文处理装置,该装置应用于srv6网络中的中间节点,如图10所示,该装置包括:
[0145]
接收模块1001,用于接收srv6报文,所述srv6报文的srh中包括多个段列表,其中,sl=0指示的段列表中仅填充有报文转发路径中最后一个节点的sid信息;
[0146]
处理模块1002,用于若所述srv6报文的srh中携带的sl值为1,且所述srv6报文的目的ipv6地址携带的si值为0,则弹出所述srh,并将sl=0指示的段列表中的sid信息填充至所述srv6报文,得到ipv6报文;
[0147]
转发模块1003,用于转发所述ipv6报文。
[0148]
可选地,所述sid信息为g-sid或未被压缩的srv6 sid。
[0149]
本发明实施例还提供了一种电子设备,该电子设备可以为上述实施例中的头节点,或者为中间节点。如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
[0150]
存储器1103,用于存放计算机程序;
[0151]
处理器1101,用于执行存储器1103上所存放的程序时,实现上述方法实施例中的方法步骤。
[0152]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0153]
通信接口用于上述电子设备与其他设备之间的通信。
[0154]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0155]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0156]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理方法的步骤。
[0157]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文处理方法。
[0158]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0159]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0160]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0161]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

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

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

相关文献