一种报文处理方法、装置和网络设备制造方法及图纸

技术编号:18788746 阅读:51 留言:0更新日期:2018-08-29 09:22
本申请提供一种报文处理方法、装置和网络设备,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述方法包括:获得待存储的报文,并根据报文的长度和第一存储空间的长度,确定报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的PD,并将所述PD存储到确定的第二区块的第二存储空间;从第二区块的第一存储空间读取报文片段,从所述第二区块的第二存储空间读取PD,利用读取的PD将读取的报文片段组成报文,并发送组成的报文。通过本申请的技术方案,可以充分利用DDR资源,且读取效率很高。

【技术实现步骤摘要】
一种报文处理方法、装置和网络设备
本申请涉及通信
,尤其涉及一种报文处理方法、装置和网络设备。
技术介绍
目前,网络设备在接收到报文时,根据报文所属的队列,将报文缓存到外部存储单元中。网络设备在需要发送报文时,根据报文所属的队列,从外部存储单元中读出报文并发送。在报文的存取过程中,会存在两个关键元素,分别为PKT(PACKET,报文实体)和PD(PacketDescription,报文描述符)。在传统方式中,网络设备会将PKT存储到DDRSDRAM(DualDataRateSynchronousDynamicRandomAccessMemory,双倍速率同步动态随机存取存储器,后续简称DDR),并将PD存储到QDRSRAM(QuadDataRateStaticRandomAccessMemory,四倍数据速率静态随机存取存储器,后续简称QDR)。但是,由于需要使用QDR存储PD,因此,提高了单板设计成本,增加布线压力。此外,在需要发送报文时,网络设备先从QDR读取PD,然后利用PD从DDR读取PKT,由于需要分两次,分别读取PD和PKT,因此读取效率很低。
技术实现思路
本申请提供一种报文处理方法,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述方法包括:获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,并将所述PD存储到确定的第二区块的第二存储空间;从第二区块的第一存储空间读取报文片段,从所述第二区块的第二存储空间读取PD,利用读取的PD将读取的报文片段组成报文,并发送组成的报文。本申请提供一种报文处理装置,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述装置包括:写入模块,用于获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,并将所述PD存储到确定的第二区块的第二存储空间;读取模块,用于从第二区块的第一存储空间读取报文片段,并从所述第二区块的第二存储空间读取PD,并利用读取的PD将读取的报文片段组成报文,并发送组成的报文。本申请提供一种网络设备,所述网络设备包括转发芯片和外部存储单元,所述外部存储单元的内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间;其中:所述转发芯片,用于获得待存储的报文,根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到所述外部存储单元中的确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,将所述PD存储到所述外部存储单元中的确定的第二区块的第二存储空间;从所述外部存储单元中的第二区块的第一存储空间读取报文片段,从所述外部存储单元中的所述第二区块的第二存储空间读取PD,并利用读取的PD将读取的报文片段组成报文,并发送组成的报文。基于上述技术方案,本申请实施例中,内存(如DDR内存)被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,因此,可以将报文存储到第一存储空间,并将PD存储到第二存储空间,这样,可以将报文和PD存储到同一个内存,而不是将报文存储到DDR内存,并将PD存储到QDR内存。因此,不需要使用QDR存储PD,充分利用DDR资源,降低了单板设计成本,减少了布线压力。而且,由于将报文和PD存储到同一个内存,因此在需要发送报文时,可以从同一个内存中读取到报文和PD,而不用分两次分别读取PD和报文,这样读取效率很高。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1A-图1C是本申请一种实施方式中的应用场景示意图;图2是本申请一种实施方式中的报文处理方法的流程图;图3A-图3E是本申请另一种实施方式中的应用场景示意图;图4是本申请一种实施方式中的报文处理装置的结构图;图5A和图5B是本申请一种实施方式中的网络设备的硬件结构图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种报文处理方法,可以应用于网络设备,网络设备在处理报文时,会涉及报文存取(即存储和读取)过程,在报文的存取过程中,会存在两个关键元素,分别为报文和PD。报文也可以称为PKT,即报文实体,也就是待存储的报文本身,而PD用于记录报文的关键信息,如报文的长度、队列信息、存储地址等,且PD的长度远小于报文的长度,PD的信息量比较小。本申请实施例中,将报文和PD存储到同一个内存(如DDR内存),而不是将报文存储到DDR内存,将PD存储到QDR内存,从而不需要使用QDR存储PD,充分利用DDR内存资源,降低了单板设计成本,减少布线压力。而且,由于将报文和PD存储到同一个内存,因此在需要发送报文时,可以从同一个内存中读取到报文和PD,而不用分两次分别读取PD和报文,这样读取效率很高。本申请实施例中,内存(如DDR内存)被划分成多个第一区块(也可以称为大块内存),每个第一区块又被划分成多个第二区块(也可以称为小块内存,每个小块内存可以为一个burst)。每个第二区块又被划分成为大小不等的两段,较大的这段内存可以为第一存储空间,而较小的这段内存可以为第二存储空间,即第一存储空间可以大于第二存储空间。基于此,可以将报文存储到第一存储空间,将PD存储到第二存储空间,从而将报文和PD存储到同一个内存。在一个例子中,参见图1A所示,DDR内存可以被划分成了多个第一区块,每个第一区块为一个2K字节的大块内存。此外,每个第一区块可以被划分成32个第二区块,每个第二区块为一个64字节的小块内存,即每个2K字节的第一区块被划分成32个64字节的小块内存,每一个小块内存可以为一个burst。其中,上述2K字节、32个、64字节等,只是本申请的一个示例,对此数值不做限制,例如,上述第一区块为2K字节,第二区块为128本文档来自技高网...

【技术保护点】
1.一种报文处理方法,其特征在于,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述方法包括:获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,并将所述PD存储到确定的第二区块的第二存储空间;从第二区块的第一存储空间读取报文片段,从所述第二区块的第二存储空间读取PD,利用读取的PD将读取的报文片段组成报文,并发送组成的报文。

【技术特征摘要】
1.一种报文处理方法,其特征在于,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述方法包括:获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,并将所述PD存储到确定的第二区块的第二存储空间;从第二区块的第一存储空间读取报文片段,从所述第二区块的第二存储空间读取PD,利用读取的PD将读取的报文片段组成报文,并发送组成的报文。2.根据权利要求1所述的方法,其特征在于,所述确定所述报文需要占用的第二区块的过程,具体包括:确定所述报文对应的队列;若所述队列对应有尾指针,则从所述尾指针指向的第二区块开始,确定所述报文需要占用的第二区块;若所述队列没有对应尾指针,则选取空闲的第一区块,并从选取的第一区块中的首个第二区块开始,确定所述报文需要占用的第二区块。3.根据权利要求1所述的方法,其特征在于,所述生成该第二区块对应的PD的过程,具体包括:若该第二区块是所述报文需要占用的第一个第二区块,则确定该第二区块对应的PD为报文长度和第一标记,第一标记表示报文存储在第一个第二区块;若该第二区块是所述报文需要占用的最后一个第二区块,则确定该第二区块对应的PD为第二标记,所述第二标记表示报文存储在最后一个第二区块。4.根据权利要求1所述的方法,其特征在于,当所述报文需要占用的所有第二区块占用至少两个第一区块时,所述生成该第二区块对应的PD,还包括:若该第二区块是第一区块的最后一个第二区块,则确定该第二区块对应的PD为所述报文需要占用的所有第二区块占用的下一个第一区块的指针、所述报文需要占用的所有第二区块在下一个第一区块中的第二区块数量。5.根据权利要求1、或3、或4所述的方法,其特征在于,所述生成该第二区块对应的PD的过程,具体包括:获取与该第二区块对应的第一区块的反转标记,并确定该第二区块对应的PD包括所述反转标记;其中,第一区块连续两次被使用时的反转标记不同。6.根据权利要求1所述的方法,其特征在于,所述从第二区块的第一存储空间读取报文片段,从所述第二区块的第二存储空间读取PD,利用读取的PD将读取的报文片段组成报文,并发送组成的报文的过程,具体包括:从第一区块的每个第二区块的第二存储空间读取PD,并确定包括第一标记的PD,并将包括第一标记的PD对应的第二区块确定为起始第二区块;若读取的PD存在包括第二标记的PD,将包括第二标记的PD对应的第二区块确定为终止第二区块;若读取的PD不存在包括第二标记的PD,从所述第一区块的最后一个PD获取下一个第一区块的指针、下一个第一区块中的第二区块数量,根据所述指针和第二区块数量,从下一个第一区块的第二区块的第二存储空间读取PD,将包括第二标记的PD对应的第二区块确定为终止第二区块;从起始第二区块与终止第二区块之间的每个第二区块的第一存储空间中读取报文片段,并将读取的报文片段组成报文,并发送组成的报文。7.根据权利要求6所述的方法,其特征在于,所述从起始第二区块与终止第二区块之间的每个第二区块的第一存储空间中读取报文片段之后,还包括:释放读取的报文片段占用的第一存储空间;当第一区块中的每个第二区块的第一存储空间均被释放时,将所述第一区块回收为空闲的第一区块;在将所述第一区块回收为空闲的第一区块后,释放所述第一区块中的每个第二区块的第二存储空间;或者,在将所述第一区块回收为空闲的第一区块后,调整所述第一区块的反转标记。8.一种报文处理装置,其特征在于,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述装置包括:写入模块,用于获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块...

【专利技术属性】
技术研发人员:田浩
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1