一种硬件转发表项同步方法及设备

阅读: 评论:0

著录项
  • CN202011531121.0
  • 20201222
  • CN112637062A
  • 20210409
  • 新华三技术有限公司合肥分公司
  • 黄宏睿;薛梅;宋高
  • H04L12/721
  • H04L12/721 H04L12/755

  • 安徽省合肥市高新区创新大道2800号创新产业园二期J1楼A座5-9层
  • 安徽(34)
摘要
本申请提供了一种硬件转发表项同步方法及设备。其中,该方法包括:选择需要同步为硬件转发表项的段列表Segment List;在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。
权利要求

1.一种同步硬件转发表项的方法,其特征在于,所述方法包括:

在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;

在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;

将选择的Segment List和已同步Segment List划分为匹配段和不匹配段;

为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;

将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

2.根据权利要求1所述的方法,其特征在于,在Segment List软件表中识别能够共享硬件封装资源的已同步Segment List包括:

基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序,将选择的Segment List的最后一个下一跳封装信息与所述Segment List软件表中已同步SegmentList的最后一个硬件封装资源的下一跳封装信息进行比较;

识别具有相同下一跳封装信息的已同步Segment List。

3.根据权利要求1所述的方法,其特征在于,选择的Segment List和已同步SegmentList划分为匹配段包括相同隧道源地址的封装信息以及相同下一跳封装信息。

4.根据权利要求1所述的方法,其特征在于,选择的Segment List和已同步SegmentList划分为匹配段包括相同隧道源地址的封装信息、相同下一跳封装信息以及一个以上的相同段标识Segment Identifier。

5.一种同步硬件转发表项的设备,其特征在于,所述设备包括处理器以及存储器;所述存储器用于存储处理器可执行指令;其中,所述处理器通过运行所述存储器中的处理器可执行指令用以执行以下操作:

在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;

在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;

将选择的Segment List和已同步Segment List划分为匹配段和不匹配段;

为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;

将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

6.根据权利要求5所述的设备,其特征在于,所述处理器通过运行所述存储器中的处理器可执行指令,在Segment List软件表中识别能够共享硬件封装资源的已同步SegmentList包括执行以下操作::

基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序,将选择的Segment List的最后一个下一跳封装信息与所述Segment List软件表中已同步SegmentList的最后一个硬件封装资源的下一跳封装信息进行比较;

识别具有相同下一跳封装信息的已同步Segment List。

7.根据权利要求5所述的设备,其特征在于,选择的Segment List和已同步SegmentList划分为匹配段包括相同隧道源地址的封装信息以及相同下一跳封装信息。

8.根据权利要求5所述的设备,其特征在于,选择的Segment List和已同步SegmentList划分为匹配段包括相同隧道源地址的封装信息、相同下一跳封装信息以及一个以上的相同段标识Segment Identifier。

说明书
技术领域

本申请涉及通信技术,特别涉及一种硬件转发表项同步方法及设备。

SR(Segment Routing,段路由)采用源节点路径选择机制,预先在源节点封装好路径所要经过段的SID(Segment Identifier,段标识),当报文经过SR节点时,该节点根据报文的SID对报文进行转发。除源节点外,其它节点无需维护路径状态。IPv6 SR(SRv6)是指在IPv6网络中使用SR、将IPv6地址作为SID对报文进行转发。

支持IPv6 SR功能的设备被称为SR节点。SR节点中,源节点负责选择路径,并将路径转换成一个有序的SID列表封装到扩展报文头中,中间节点负责传输封装报文,尾结点负责剥离封装的扩展报文头、并将报文转发给目的网络。

作为首节点的交换机设备通过转发芯片存储的SID列表,即段列表(SegmentList)为收到的报文封装扩展报文头,但是交换芯片的硬件存储空间有限,难以大规模的SRv6转发。原因在于,一条Segment List的报文封装信息以链表的形式存储在交换芯片中。以一条包含3个SID的Segment List为例,每个SID占用一个封装信息,每个封装信息记录当前SID的IPv6地址封装信息,并指向下一跳封装信息,该Segment List完整的报文封装还包括位于3个SID之后的隧道封装信息以及邻接封装信息,在交换芯片中需要占用5个封装信息存储资源。如图1所示,首节点存储3个Segment List,交换芯片存储资源的13个硬件封装资源被占用。

本申请的目的在于提供同步硬件转发表项的方法及设备,减少硬件转发表项的封装信息占用的交换芯片的有限的存储资源。

为实现上述目的,本申请提供了一种同步硬件转发表项的方法,该方法包括:选择需要同步为硬件转发表项的段列表Segment List;在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

为实现上述目的,本申请还提供了一种同步硬件转发表项的设备,该设备包括处理器以及存储器;存储器用于存储处理器可执行指令在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;将选择的Segment List和已同步Segment List划分为匹配段和不匹配段;为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

本申请的有益效果在于,充分利用Segment List是有序的SID列表的特性,将封装顺序相同的封装信息的硬件封装资源在不同的Segment List之间共享,有效地充分地了交换芯片的硬件存储资源。

图1所示为现有的封装信息存储资源占用示意图;

图2所示为本申请的硬件转发表项同步方法实施例的流程图;

图3a-3d所示为本申请的同步的硬件转发表项实施例的封装信息存储资源占用示意图;

图4所示为本申请提供的硬件转发表项同步设备实施例的示意图。

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本申请的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

图2所示为本申请的硬件转发表项同步方法实施例的流程图,该方法包括以下步骤:

步骤201,选择需要同步为硬件转发表项的段列表Segment List;

步骤202,在Segment List软件表中选择需要同步为硬件转发表项的段列表Segment List;

步骤203,在已同步Segment List软件表中识别共享硬件封装资源的已同步Segment List;

步骤204,为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;

步骤205,将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

图2所示实施例的有益效果在于,充分利用Segment List是有序的SID列表的特性,将封装顺序相同的封装信息的硬件封装资源在不同的Segment List之间共享,有效地充分地了交换芯片的硬件存储资源。

交换机的Segment List软件表用于记录待同步至交换芯片的四个Segment List分别是:Segment List 1:SID1,SID2,SID3,Tunnel1,ADJ1;Segment List2:SID4,SID2,SID3,Tunnel1,ADJ1;Segment List3:SID1,SID5,SID3,Tunnel1,ADJ1;Segment List 4:SID4,SID2,SID5,Tunnel 1,ADJ 1。

交换机选择待同步的Segment List 2,查已同步Segment List软件表是否能够共享硬件存储资源的已同步的Segment List。

交换机选择需要同步到交换芯片的硬件转发表项的Segment List2,根据SegmentList 2的下一跳ADJ1在已同步Segment List软件表中未查到具有相同下一跳的SegmentList。下一跳封装信息的是在ND(Neighbor Discover,邻居发现)学习流程里申请的,向交换芯片同步Segment List时用到的下一跳封装信息的硬件封装资源已经完成申请,所以直接比较硬件封装资源的下一跳封装信息的值即可。

交换机按照Segment List 2的五个封装信息SID4、SID2、SID3、Tunnel1、ADJ1顺序逐一申请硬件封装资源Encap1、Encap2、Encap3、Encap4、Encap5,将每个封装信息写入申请每个硬件封装资源,每个硬件封装资源顺序指向写入了下一个封装信息的硬件封装资源,如图3a示。

交换机在已同步Segment List软件表中记录Segment List 2的SID4、SID2、SID3、Tunnel1、ADJ1及其硬件封装资源。

交换机从Segment List软件表选择需要同步到交换芯片的硬件转发表项的Segment List 1,交换机基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序比对是否可以与已同步的转发表项共享硬件封装资源。交换机根据Segment list 1的下一跳信息ADJ 1在已同步Segment List软件表中进行查,确定Segment List1的下一跳信息ADJ1与已同步的Segment List2的最后一个硬件封装资源Encap5记录的ADJ1相同。

交换机将Segment List1的隧道信息Tunnl1的源地址与Segment List2的倒数第二个硬件封装资源Encap4的Tunnel1的源地址比较,确定一致。

交换机将Segment List 1的最后一个SID3的IPv6地址与Segment List 2的最后一个SID3的IPv6地址比较,确定一致。然后,交换机将Segment List 1的第二个SID2的IPv6地址与已同步的Segment List2的第二个SID2的IPv6地址比较确定一致。交换机将SegmentList1的第一个SID1与已同步Segment List2的第一个SID4的IPv6比较,两者不一致。

交换机将Segment List1和Segment List 2分为不匹配段SID1以及匹配段SID2、SID3、Tunnel1以及ADJ1。

交换机为Segment List 1的不匹配段的封装信息SID1申请硬件封装资源Encap6,写入封装信息SID1,将Encap6指向匹配段的第一个硬件封装资源Encap2。如图3b所示。

交换机从Segment List软件表选择选择需要同步到交换芯片的硬件转发表项的Segment List3。交换机基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序比对是否可以共享转发表项的硬件封装资源。交换机根据Segment list 3的下一跳信息ADJ 1在已同步Segment List软件表中进行查,确定Segment List1的下一跳信息ADJ1与已同步的Segment List2的最后一个硬件封装资源Encap5记录的ADJ1相同。

交换机将Segment List3的隧道信息Tunnl1的源地址与Segment List2的倒数第二个硬件封装资源Encap4的Tunnel1的源地址比较,确定一致。

交换机将Segment List 3的最后一个SID3的IPv6地址与Segment List 2的最后一个SID3的IPv6地址比较,确定一致。

交换机将Segment List 3的倒数第二个SID5的IPv6地址与Segment List 2的倒数第二个SID2的IPv6地址比较,确定不一致。

交换机根据识别出的第一个不匹配的封装信息SID2,将Segment List3和SegmentList 2分为不匹配段SID1、SID5以及匹配段SID3、Tunnel1以及ADJ1。

交换机为Segment List 3的不匹配封装信息的SID1和SID5依序逐一分别申请硬件封装资源Encap7、Encap8,将不匹配段的最后一个硬件封装资源Encap8指向匹配段的第一个硬件封装资源Encap 3。如图3c所示。

交换机从Segment List软件表选择需要同步到交换芯片的硬件转发表项的Segment List 4。交换机基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序比对是否可以共享转发表项的硬件封装资源。交换机根据Segment list 4的下一跳信息ADJ 1在已同步Segment List软件表中进行查,确定Segment List4的下一跳信息ADJ1与已同步的Segment List2的最后一个硬件封装资源Encap5记录的ADJ1相同。

交换机将Segment List3的隧道信息Tunnl1的源地址与Segment List2的倒数第二个硬件封装资源Encap4的Tunnel1的源地址比较,确定一致。

交换机将Segment List 3的最后一个SID5的IPv6地址与Segment List 2的最后一个SID3的IPv6地址比较,确定不一致。

交换机根据识别出的第一个不匹配的封装信息SID5,将Segment List 4和Segment List 2分为不匹配段SID1、SID2和SID5,以及匹配段Tunnel1以及ADJ1。

交换机为Segment List 4的每个不匹配段的封装信息SID1、SID2、SID5依序分别逐一申请硬件封装资源Encap9、Encap10、Encap11,写入封装信息为SID1SID2、SID5,将不匹配段的最后一个硬件封装资源Encap11指向匹配段的第一个硬件封装资源Encap 4。如图3d所示。

本申请利用了Segment List是有序的SID列表的特性,通过将需要同步的硬件转发表项的封装信息与已同步的转发表项的封装信息共享硬件封装资源,图3a-3d所示,交换芯片的硬件存储资源能够得到更加充分的应用,有利于实现大规模的SRv6转发。

当交换机的Segment List软件表配置了Segment List5:SID1、SID2、SID3、Tunnel1以及ADJ2。交换机从Segment List软件表选择需要同步到交换芯片的硬件转发表项的Segment List 5。交换机基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序比对是否可以共享转发表项的硬件封装资源。交换机根据Segment list 5的下一跳信息ADJ 2在已同步Segment List软件表没有查到相同下一跳信息的已同步Segment List。交换机为Segment List 5的封装信息依序逐一分别申请硬件封装资源并写入每个封装信息。

图4所示为本申请提供的同步硬件表项的设备实施例,该设备40包括交换芯片,处理器以及作为存储器的机器可读存储介质。

交换芯片存储SID列表,即段列表(Segment List)为收到的报文封装扩展报文头。处理器从存储器中Segment List软件表选择选择需要同步到交换芯片的硬件转发表项的Segment List。处理器执行硬件表项同步时,通过运行存储器中的处理器可执行指令用以执行以下操作:选择需要同步为硬件转发表项的段列表Segment List;在Segment List软件表中识别共享硬件封装资源的已同步Segment List;将选择的Segment List和已同步Segment List划分为匹配段和不匹配段;为选择的Segment List的每个封装信息依序依次分别申请硬件封装资源并写入申请的对应的硬件封装资源;将为选择的Segment List申请的最后一个硬件封装资源指向已同步Segment List的匹配段的第一个硬件封装资源。

处理器通过运行存储器中的处理器可执行指令,在Segment List软件表中识别能够共享硬件封装资源的已同步Segment List包括执行以下操作:基于已同步Segment List软件表中与硬件封装资源指向顺序的相反顺序,将选择的Segment List的最后一个下一跳封装信息与Segment List软件表中已同步Segment List的最后一个硬件封装资源的下一跳封装信息进行比较;识别具有相同下一跳封装信息的已同步Segment List。

处理器选择的Segment List和已同步Segment List划分为匹配段包括相同隧道源地址的封装信息以及相同下一跳封装信息。

处理器选择的Segment List和已同步Segment List划分为匹配段包括相同隧道源地址的封装信息、相同下一跳封装信息以及一个以上的相同段标识SegmentIdentifier。

以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

本文发布于:2023-04-14 08:50:55,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86529.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图