System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种报文转发装置及方法、通信芯片及网络设备。
技术介绍
1、交换机是一种用于网络数据包转发的网络设备,能连接多台设备到计算机网络中,并通过数据包交换的方式,将数据转发到目的地。在数据转发过程中,交换机中的转发芯片起到了很关键的作用。但是,针对不需要片外缓存的转发场景,目前转发芯片中的网络处理器(networkprocessor,np)转发所处理的报文通常由网络处理器内部的缓存器单独缓存,流量管理器所处理的报文又由流量管理器(traffic manager,tm)内部的缓存器单独进行缓存,导致增加了缓存器访问所造成的功耗,同时也降低了缓存的利用率。因此,亟需提供一种方案以解决上述问题。
技术实现思路
1、本申请的目的在于提供一种报文转发装置及方法、通信芯片及网络设备,以解决转发芯片内部的网络处理器和流量管理器进行报文转发时,需要对同一个报文重复进行读写的问题,从而降低访问缓存器所造成的功耗,提高缓存的利用率。
2、为达到上述目的,本申请实施例提供如下技术方案:
3、第一方面,提供了一种报文转发装置,该报文转发装置包括网络处理器以及与该网络处理器连接的流量管理器,且网络处理器内部设置了缓存模块。其中,网络处理器被配置为向流量管理器发送至少一个描述符,该至少一个描述符用于指示至少一个报文在缓存模块中的存储地址。其次,流量管理器被配置为依据上述至少一个描述符向网络处理器发送待转发报文的第一信息。其中,待转发报文为至少一个报文中的一个;第一信息
4、在一种可能的实现方式中,上述至少一个描述符还用于指示至少一个报文的报文优先级和报文包长。流量管理器还被配置为依据上述报文优先级和报文包长确定待转发报文的第一标记;该第一标记用于指示待转发报文的转发顺序。流量管理器向网络处理器发送第一信息时,将该第一标记也携带在第一信息中。基于此,网络处理器能够依据该转发顺序依次读取待转发报文,提高了待转发报文读取的准确性和效率。
5、在一种可能的实现方式中,网络处理器在向流量管理器发送上述至少一个描述符之前,网络处理器还被配置为先将接收到的至少一个报文以信元为单位存入缓存模块。其中,该至少一个报文包括原始报文头、报文数据和报文结束符,每个信元对应缓存模块中的一个存储地址。然后,网络处理器从缓存模块读取该报文的原始报文头,并依据该原始报文头和预设的转发路由表生成新报文头。最后,网络处理器将新报文头写入缓存模块。基于此,网络处理模块只需要读取缓存模块中的原始报文头并生成新报文头,无需读取报文数据,也降低了功耗。
6、在一种可能的实现方式中,当该报文是单播报文、且新报文头的长度超过原始报文头的长度时,网络处理器被配置为将新报文头划分为第一部分和第二部分,并将原始报文头替换为第一部分,将第二部分存入报文结束符所在信元对应的存储地址的空闲部分。基于此,在新报文头的长度超过原始报文头的长度时,无需重新分配一遍存储地址,进一步降低了功耗。
7、在一种可能的实现方式中,当上述第二部分的长度超过了报文结束符所在信元对应的存储地址的空闲部分时,网络处理器还被配置为将上述第二部分划分为第一段和第二段,并将第一段存入报文结束符所在信元对应的存储地址的空闲部分,将第二段存入新增的存储地址中。基于此,可以对缓存空间进行充分的利用。
8、在一种可能的实现方式中,当该报文是单播报文、且新报文头的长度超过原始报文头的长度时,网络处理器还被配置为将新报文头划分为第一部分和第二部分,并将原始报文头替换为第一部分,将第二部分存入新增的存储地址中。基于此,网络处理器无需再将第二部分的长度与报文结束符所在信元对应的存储地址的空闲部分进行比较,降低了处理流程,提高了存储效率。
9、在一种可能的实现方式中,当该报文是组播报文时;网络处理器还被配置为将新报文头存入新增的存储地址中。基于此,可以避免改变组播报文的结构。
10、第二方面,提供了一种报文转发方法,该报文转发方法应用于包括了网络处理器和流量管理器的报文转发装置。该方法包括:首先,网络处理器向流量管理器发送至少一个描述符;该至少一个描述符用于指示至少一个报文在缓存模块中的存储地址。其次,流量管理器依据上述至少一个描述符向网络处理器发送待转发报文的第一信息;其中,待转发报文为至少一个报文中的一个;第一信息用于指示待转发报文在缓存模块中的存储地址。然后,网络处理器依据第一信息获取待转发报文,并将待转发报文发送给流量管理器。最后,流量管理器接收并转发待转发报文。
11、在一种可能的实现方式中,上述的至少一个描述符还用于指示至少一个报文的报文优先级和报文包长;流量管理器还可以依据上述报文优先级和报文包长确定第一标记,该第一标记用于指示待转发报文的转发顺序。流量管理器依据上述各个描述符向网络处理器发送待转发报文的第一信息时,也可以将第一标记携带于第一信息中一起发送给网络处理器。
12、在一种可能的实现方式中,网络处理器向流量管理器发送上述至少一个描述符之前,还可以先将接收到的至少一个报文以信元为单位存入缓存模块;其中,每个信元对应缓存模块中的一个存储地址;每个报文包括原始报文头、报文数据和报文结束符等。然后,网络处理器从缓存模块获取原始报文头。最后,网络处理器依据原始报文头和预设转发路由表生成新报文头并存入缓存模块。
13、在一种可能的实现方式中,网络处理器依据原始报文头和预设转发路由表生成新报文头并存入缓存模块的过程中,还可以确定该报文是否是单播报文。若该报文是单播报文、且新报文头的长度超过原始报文头的长度,则网络处理器将新报文头划分为第一部分和第二部分,并将原始报文头替换为第一部分,将第二部分存入报文结束符所在信元对应的存储地址的空闲部分。
14、在一种可能的实现方式中,网络处理器将上述第二部分存入报文结束符所在信元对应的存储地址的空闲部分的过程中,还可以确定上述第二部分的长度是否超过报文结束符所在信元对应的存储地址的空闲部分。若上述第二部分的长度是否超过报文结束符所在信元对应的存储地址的空闲部分,则网络处理器将第二部分划分为第一段和第二段,并将第一段存入报文结束符所在信元对应的存储地址的空闲部分,将第二段存入新增的存储地址中。
15、在一种可能的实现方式中,网络处理器依据原始报文头和预设转发路由表生成新报文头并存入缓存模块的过程中,若确定该报文是单播报文、且新报文头的长度超过原始报文头的长度,则网络处理器可以将新报文头划分为第一部分和第二部分,并将原始报文头替换为第一部分,将第二部分存入新增的存储地址中。
...【技术保护点】
1.一种报文转发装置,包括网络处理器以及与所述网络处理器连接的流量管理器,其特征在于,所述网络处理器包括缓存模块;
2.根据权利要求1所述的报文转发装置,其特征在于,所述至少一个描述符还用于指示所述至少一个报文的报文优先级和报文包长;
3.根据权利要求1或2所述的报文转发装置,其特征在于,所述网络处理器,还用于:
4.根据权利要求3所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成新报文头并存入所述缓存模块包括:
5.根据权利要求4所述的报文转发装置,其特征在于,所述网络处理器还用于将所述第二部分存入所述报文结束符所在信元对应的存储地址的空闲部分包括:
6.根据权利要求3所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成所述新报文头并存入所述缓存模块还包括:
7.根据权利要求3-6任一项所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成所述新报文头并存入所述缓存模块还包括:
9.根据权利要求8所述的方法,其特征在于,所述至少一个描述符还用于指示所述至少一个报文的报文优先级和报文包长;所述方法还包括:
10.根据权利要求8或9所述的方法,其特征在于,所述网络处理器向所述流量管理器发送至少一个描述符之前,所述方法还包括:
11.根据权利要求10所述的方法,其特征在于,依据所述原始报文头和预设转发路由表生成所述新报文头并存入所述缓存模块包括:
12.根据权利要求11所述的方法,其特征在于,将所述第二部分存入所述报文结束符所在信元对应的存储地址的空闲部分还包括:
13.根据权利要求10所述的方法,其特征在于,依据所述原始报文头和预设转发路由表生成所述新报文头并存入所述缓存模块还包括:
14.根据权利要求8-13任一项所述的方法,其特征在于,依据所述原始报文头和预设转发路由表生成所述新报文头并存入所述缓存模块还包括:
15.一种通信芯片,其特征在于,包括:处理器和存储器,其中,所述存储器用于存储程序指令,所述处理器用于执行所述存储器中的程序指令,以实现如权利要求8-14任一项所述的方法。
16.一种网络设备,其特征在于,所述网络设备包括权利要求1-7任一项所述的报文转发装置。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机可读的程序指令;所述程序指令在报文转发装置上运行时实现权利要求8-14任一项所述的方法。
...【技术特征摘要】
1.一种报文转发装置,包括网络处理器以及与所述网络处理器连接的流量管理器,其特征在于,所述网络处理器包括缓存模块;
2.根据权利要求1所述的报文转发装置,其特征在于,所述至少一个描述符还用于指示所述至少一个报文的报文优先级和报文包长;
3.根据权利要求1或2所述的报文转发装置,其特征在于,所述网络处理器,还用于:
4.根据权利要求3所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成新报文头并存入所述缓存模块包括:
5.根据权利要求4所述的报文转发装置,其特征在于,所述网络处理器还用于将所述第二部分存入所述报文结束符所在信元对应的存储地址的空闲部分包括:
6.根据权利要求3所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成所述新报文头并存入所述缓存模块还包括:
7.根据权利要求3-6任一项所述的报文转发装置,其特征在于,所述网络处理器还用于依据所述原始报文头和预设的转发路由表生成所述新报文头并存入所述缓存模块还包括:
8.一种报文转发方法,应用于报文转发装置,所述报文转发装置用于进行报文转发,所述报文转发装置包括网络处理器和流量管理器,其特征在于,所述方法包括:
9.根据权利要求8所述的方法,其特征在于,所述至少一个描述符...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。