【技术实现步骤摘要】
一种报文处理方法、装置和网络设备
本申请涉及通信
,尤其涉及一种报文处理方法、装置和网络设备。
技术介绍
目前,网络设备在接收到报文时,根据报文所属的队列,将报文缓存到外部存储单元中。网络设备在需要发送报文时,根据报文所属的队列,从外部存储单元中读出报文并发送。在报文的存取过程中,会存在两个关键元素,分别为PKT(PACKET,报文实体)和PD(PacketDescription,报文描述符)。在传统方式中,网络设备会将PKT存储到DDRSDRAM(DualDataRateSynchronousDynamicRandomAccessMemory,双倍速率同步动态随机存取存储器,后续简称DDR),并将PD存储到QDRSRAM(QuadDataRateStaticRandomAccessMemory,四倍数据速率静态随机存取存储器,后续简称QDR)。但是,由于需要使用QDR存储PD,因此,提高了单板设计成本,增加布线压力。此外,在需要发送报文时,网络设备先从QDR读取PD,然后利用PD从DDR读取PKT,由于需要分两次,分别读取PD和PKT,因此读取效率很低。
技术实现思路
本申请提供一种报文处理方法,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述方法包括:获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块,生成该第二区块对应的报文描述符PD,并将所述PD存储到确定的第二区块的第二存储 ...
【技术保护点】
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.一种报文处理装置,其特征在于,内存被划分成多个第一区块,每个第一区块被划分成多个第二区块,每个第二区块均包括第一存储空间和第二存储空间,所述装置包括:写入模块,用于获得待存储的报文,并根据所述报文的长度和第一存储空间的长度,确定所述报文需要占用的第二区块,并将所述报文存储到确定的第二区块的第一存储空间;针对确定的每个第二区块...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。