一种处理失效报文的方法、网络设备和处理器的制造方法

文档序号:6494511阅读:138来源:国知局
一种处理失效报文的方法、网络设备和处理器的制造方法
【专利摘要】本发明实施例提供一种处理失效报文的方法、网络设备和处理器,涉及计算机领域,能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。其方法为:通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,并将失效报文所在缓存重写,而后指示该缓存为空。本发明实施例用于处理失效报文。
【专利说明】一种处理失效报文的方法、网络设备和处理器
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种处理失效报文的方法、网络设备和处理器。【背景技术】
[0002]计算机系统通过网络设备发送和接收报文的方式跟外部其他设备进行通信。而报文的长度一般比较长并且是不固定的,因此,网络设备把一个报文从自己的缓存搬移到内存时,需要先将报文拆分成多个帧,然后再逐一搬移到内存中。
[0003]由于在将缓存中的数据搬移到内存之前,缓存器可能会失效。中央处理器与网络设备之间交互的报文的数据结构一般采用BD (Buffer Descriptor,缓存描述符)和Buffer两部分组成。Buffer是存放报文的内存块,BD是报文和内存块的描述符,有助于系统检测数据错误,BD —般包括内存块的指针(buffer pointer)、F标志(用来表示buffer中是否有报文)以及其他的一些状态位(报文校验错误、报文类型指示等)。
[0004]当检测到缓存中的数据有错误时,现有的一种技术是将错误的数据块标记为中毒数据,然后处理方式有两种,一是复位整个系统;二是把出错的数据当正常的数据进行处理,不在检测到错误数据后对错误数据做任何的标记。
[0005]但是在实现上述对存储器中失效数据的处理的过程中,至少存在如下问题:
[0006]若读取到失效数据后对系统进行复位,那么会导致系统上的业务中断;若把失效的数据当做正常的数据来处理则会导致一些不可预期的后果。

【发明内容】

[0007]本发明的实施例提供一种处理失效报文的方法、网络设备和处理器,能够在缓存中的报文已经失效的情况下,指示所述失效的报文所在的缓存为空,以便丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0008]为达到上述目的,本发明的实施例采用如下技术方案:
[0009]第一方面,提供一种处理失效报文的方法,基于网络设备一侧,所述方法包括:
[0010]为计算机内存中的缓存设置对应的中毒指示标识;
[0011]在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
[0012]在第一种可能的实现方式中,结合第一方面,所述为计算机内存中的缓存设置对应的中毒指示标识包括:
[0013]在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或
[0014]在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或
[0015]在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或
[0016]在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0017]在第二种可能的实现方式中,结合第一方面或第一方面的第一种可能的实现方式,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒包括:
[0018]若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一中贞失效,则确定所述报文失效;
[0019]将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
[0020]第二方面,提供另一种处理失效报文的方法,基于处理器一侧,所述方法包括:
[0021]在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
[0022]在第一种可能的实现方式中,结合第二方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括:
[0023]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0024]将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
[0025]在第二种可能的实现方式中,结合第二方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括:
[0026]将所述中毒指示标识设置为中毒的对应的缓存重写,重新获取校验值;
[0027]将所述读索弓I指向下一个待读的缓存描述符。
[0028]在第三种可能的实现方式中,结合第二方面,当所述中毒指示标识设置在另一块内存中时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括:
[0029]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0030]将所述缓存描述符中的报文满标识设置为空,以指示所述缓存为空;
[0031 ] 其中,所述另一块内存独立于所述缓存描述符所在的内存。
[0032]在第四种可能的实现方式中,结合第二方面,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括:
[0033]将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值;
[0034]将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空;
[0035]其中,所述另一块内存独立于所述缓存描述符所在的内存。
[0036]在第五种可能的实现方式中,结合第二方面,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括:
[0037]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;
[0038]将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
[0039]在第五种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式至第五种可能的实现方式,所述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且所述缓存的基地址也为独立校验数据单元的整数倍。
[0040]第三方面,提供一种网络设备,所述网络设备包括:
[0041]中毒标识设置单元,用于为计算机内存中的缓存设置对应的中毒指示标识;
[0042]中毒标识管理单元,用于在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
[0043]在第一种可能的实现方式,结合第三方面,所述中毒标识设置单元具体用于:
[0044]在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或
[0045]在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或
[0046]在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或
[0047]在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0048]在第一种可能的实现方式,结合第三方面或第三方面的第一种可能的实现方式,所述中毒标识管理单元包括:
[0049]失效检测子单元,用于若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一巾贞失效,则确定所述报文失效;
[0050]中毒标记子单元,用于将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
[0051]第四方面,提供一种处理器,所述处理器包括:
[0052]缓存处理单元,用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
[0053]在第一种可能的实现方式中,结合第四方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述缓存处理单元具体用于:
[0054]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0055]将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
[0056]在第二种可能的实现方式中,结合第四方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述缓存处理单元具体用于:
[0057]将所述中毒指示标识设置为中毒的对应的缓存重写,重新获取校验值;
[0058]将所述读索弓I指向下一个待读的缓存描述符。
[0059]在第三种可能的实现方式中,结合第四方面,当所述中毒指示标识设置在另一块内存中时,所述缓存处理单元具体用于:
[0060]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0061]将所述缓存描述符中的报文满标识设置为空,以指示所述缓存为空;
[0062]其中,所述另一块内存独立于所述缓存描述符所在的内存。
[0063]在第四种可能的实现方式中,结合第四方面,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述缓存处理单元具体用于:
[0064]将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值;
[0065]将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空;
[0066]其中,所述另一块内存独立于所述缓存描述符所在的内存。
[0067]在第五种可能的实现方式中,结合第四方面,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述缓存处理单元具体用于:
[0068]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;
[0069]将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
[0070]第五方面,提供一种网络设备,包括接收器、发射器、存储器和总线,所述网络设备还包括:
[0071]处理器,用于为计算机内存中的缓存设置对应的中毒指示标识;
[0072]所述处理器还用于在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
[0073]在第一种可能的实现方式中,结合第五方面,所述处理器具体用于:
[0074]在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或
[0075]在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或
[0076]在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或
[0077]在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0078]在第一种可能的实现方式中,结合第五方面或第五方面的第一种可能的实现方式,所述处理器具体用于:
[0079]若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一中贞失效,则确定所述报文失效;
[0080]将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
[0081]第六方面,提供一种处理器,所述处理器用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
[0082]在第一种可能的实现方式中,结合第六方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述处理器具体用于:
[0083]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0084]将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
[0085]在第二种可能的实现方式中,结合第六方面,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述处理器具体用于:
[0086]将所述中毒指示标识设置为中毒的对应的缓存重写,重新获取校验值;
[0087]将所述读索弓I指向下一个待读的缓存描述符。
[0088]在第三种可能的实现方式中,结合第六方面,当所述中毒指示标识设置在另一块内存中时,所述处理器具体用于:
[0089]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0090]将所述缓存描述符中的报文满标识设置为空,以指示所述缓存为空;
[0091 ] 其中,所述另一块内存独立于所述缓存描述符所在的内存。
[0092]在第四种可能的实现方式中,结合第六方面,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述处理器具体用于:
[0093]将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值;
[0094]将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空。
[0095]在第五种可能的实现方式中,结合第六方面,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述处理器具体用于:
[0096]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;
[0097]将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
[0098]在第六种可能的实现方式中,结合第六方面或第六方面的第一种可能的实现方式至第六种可能的实现方式,所述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且所述缓存的基地址也为独立校验数据单元的整数倍。
[0099]本发明的实施例提供一种处理失效报文的方法、网络设备和处理器,通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,并将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
【专利附图】

【附图说明】
[0100]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0101]图1为本发明实施例提供的一种处理失效报文的方法流程示意图;
[0102]图2为本发明实施例提供的另一种处理失效报文的方法流程示意图;
[0103]图3为本发明另一实施例提供的一种处理失效报文的方法的流程示意图;
[0104]图4为本发明另一实施例提供的缓存描述符以及缓存的结构示意图一;
[0105]图5为本发明另一实施例提供的缓存描述符以及缓存的结构示意图二;
[0106]图6为本发明另一实施例提供的缓存描述符以及缓存的结构示意图三;
[0107]图7为本发明另一实施例提供的缓存描述符以及缓存的结构示意图四;
[0108]图8为本发明另一实施例提供的缓存描述符以及缓存的结构示意图五;
[0109]图9为本发明又一实施例提供的一种网络设备的结构示意图;
[0110]图10为本发明又一实施例提供的另一种网络设备结构不意图;
[0111]图11为本发明又一实施例提供的一种处理器的结构示意图;
[0112]图12为本发明又一实施例提供的另一种网络设备的结构示意图;
[0113]图13为本发明另一实施例提供的另一种处理器的示意图。
【具体实施方式】
[0114]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0115]首先,需要说明的是,处理器与网络设备之间的报文的交互结构一般包括缓存(Buffer)和缓存描述符(Buffer Descriptor, BD),该缓存指的是计算机内存中的缓存,即该缓存指的是计算机内存中存放报文的内存块,一般计算机的内存中可以划分出多个缓存。
[0116]本发明实施例提供一种处理失效报文的方法,基于网络设备一侧,如图1所示,所述方法包括:
[0117]S101、为计算机内存中的缓存设置对应的中毒指示标识。
[0118]其中,计算机内存中的缓存对应分配中毒指示标识空间,这个空间就用来设置中毒指示标识。系统完成初始化时,将各个缓存对应的中毒指示标识的初始值都为未中毒。
[0119]S102、网络设备在接收到报文后,若报文失效,则在将该失效报文搬移至计算机内存中的缓存后,将失效报文所在缓存对应的中毒指示标识标记为中毒,以表示缓存中的报文中毒。
[0120]本发明实施例还提供另一种处理失效报文的方法,基于处理器一侧,如图2所示,所述方法包括:
[0121]S201、处理器在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将缓存重写,重新获取校验值,并指示缓存为空。
[0122]本发明的实施例提供一种处理失效报文的方法,通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,并将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0123]本发明另一实施例提供一种处理失效报文的方法,如图3所示,该方法包括:
[0124]首先,需要说明的是,在本发明中计算机内存中的缓存的大小为独立校验数据单元的整数倍,且每个缓存的基地址也为独立校验数据单元的整数倍。
[0125]示例性的,在存储器中,数据都是按照固定大小的单元来进行校验的,例如32字节的数据会有额外的4个校验字节,在这里,存储器的独立校验数据单元大小就为32字节。假设内存中独立校验数据单元的大小为S,则缓存的基地址是S的整数倍即为M*S,缓存的大小也是S的整数倍,即为N*S,其中M、N都是任意正整数。这样的好处是,能够保证每一个独立校验单元的内存只会被一个报文使用,也就是说一个独立校验单元可以完整的位于一个缓存中,不会出现该独立校验单元的一部分在上一个缓存,另一部分在下一个缓存中的情况,从而避免了这种情况下校验复杂的问题。
[0126]S301、为计算机内存中的缓存设置对应的中毒指示标识。
[0127]具体的实现方式为,为各个计算机内存中的缓存对应分配中毒指示标识空间。并且在系统完成初始化时,各个计算机内存中的缓存对应设置好中毒指示标识的初始值都为未中毒。
[0128]其中,中毒指示标识可以设置在每个计算机内存中的缓存对应的缓存描述符中,或者也可以设置在每块计算机内存中的缓存中,还可以设置在另一块独立内存中,所述另一块内存独立于缓存描述符所在的内存。
[0129]具体的,可以分为以下几种方式,包括:
[0130]第一种,在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中计算机内存中的缓存对应的缓存描述符还包括报文满标识、缓存基地址指针。
[0131]示例性的,在该缓存描述符中设置中毒指示标识时,该缓存描述符的结构以及存放报文的计算机内存中的缓存如图4所示,每个计算机内存中的缓存对应的缓存描述符中包括一个报文中毒指示标志P、一个表示缓存中是否有报文满标志F、以及一个缓存基地址指针以及根据其他需要而设计的state。
[0132]第二种,在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中计算机内存中的缓存对应的缓存描述符还包括缓存描述符还包括读索引(Read Index)、写索引(Write Index)和缓存基地址指针。其中,在每搬移一个报文到计算机内存中的缓存后,都将写索引移至下一个待读的缓存描述符,在每接受处理完毕一个报文后,都将读索引移至下一个待读的缓存描述符。[0133]示例性的,在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识时,该缓存描述符的结构以及存放报文的计算机内存中的缓存如图5所示,缓存的缓存描述符中包括一个报文中毒指示标志P、一个缓存基地址指针以及根据其他需要而设计的state,除此之外还包括读索引和写索引。
[0134]第三种,在计算机内的另一块独立内存中,为缓存描述符对应设置中毒指示标识,其中缓存描述符包括报文满标识、缓存基地址指针,且所述另一块内存独立于缓存描述符所在的内存。
[0135]示例性的,在计算机内的另一块独立内存中,为缓存描述符对应设置中毒指示标识时,该缓存描述符的结构以及存放报文的计算机内存中的缓存如图6所示,该缓存描述符包括一个报文满标识F、一个缓存基地址指针以及根据其他需要而设计的state。而中毒指示标志P设置在计算机的另一块独立内存中,且每个中毒指示标志P与一个缓存描述符相对应。
[0136]第四种,在计算机的另一块独立内存中,为计算机内存中的所有缓存的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针。
[0137]示例性的,在所有缓存的缓存描述符设置有同一个中毒指示标识时,缓存描述符的结构以及存放报文的计算机内存中的缓存如图7所示,每个缓存描述符包括一个报文满标识F、一个缓存基地址指针以及根据其他需要而设计的state。而中毒指示标志P设置在网络设备的另一块独立内存中,且所有缓存描述符都共用这个中毒指示标志P。
[0138]第五种,在计算机内存中的缓存的起始位置前面设置中毒指示标识,计算机内存中的缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0139]示例性的,在计算机内存中的缓存的起始位置前面设置中毒指示标识时,该缓存描述符的结构以及存放报文的计算机内存中的缓存如图8所示,缓存描述符包括一个报文满标识F、一个缓存基地址指针以及根据其他需要而设计的state,但是每个缓存描述符的中毒指示标志P都对应设置在每个缓存起始位置的前面。
[0140]S302、对计算机内存中的缓存以及缓存对应的缓存描述符进行初始化。
[0141]具体的,在初始化时,将中毒指示标识P设置为未中毒,计算机内存中的缓存对应的缓存描述符中的报文满标识F设置为空,并将缓存描述符中的缓存基地址指针对应指向已分配好的缓存,而缓存描述符中的状态标志State可以根据相关情况进行初始化。
[0142]示例性的,将中毒指示标识P和报文满标识F进行设置具体可以通过二进制来表示,对于中毒指示标识P而言,可以用O表示未中毒,I表示中毒;对于报文满标识F而言,可以用O表示空,I表示满。
[0143]而在在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中计算机内存中的缓存对应的缓存描述符还包括缓存描述符还包括读索弓1、写索引和缓存基地址指针时,在进行初始化时,需要将读索引和写索引的值设置成相同的,即读索引和写索引指向同一个缓存描述符,以表示所有缓存中都没有报文。
[0144]S303、在网络设备接收到报文后,判断报文在网络设备的缓存中是否已经失效。
[0145]具体的,在将报文向计算机内存中的缓存搬移的过程中,若报文的任意一帧失效,则确定报文失效。
[0146]S304、若报文失效,则将该失效报文所在缓存对应的中毒指示标识设置为中毒,以表示该缓存中的报文已经中毒。
[0147]具体的,可以通过以下方式实现:
[0148]由于在对每个计算机内存中的缓存以及缓存对应的缓存描述符进行初始化时将每个缓存描述符中的P设置为未中毒、报文满标识F设置为空,若报文失效,则将该失效报文所在缓存对应的中毒指示标识P由未中毒改为中毒,例如将P的值由O变为I。
[0149]S305、若计算机内存中的缓存对应的中毒指示标识设置为中毒,则将该缓存重写,重新获取校验值,并指示该缓存为空。
[0150]由于为计算机内存中的缓存对应设置中毒指示标识可以通过S201中的五种方式实现,所以对应的,当中毒指示标识的位置不同时,处理方式也不尽相同,具体的可以通过以下几种方式实现:
[0151]第一种,当在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,且缓存描述符还包括报文满标识、缓存基地址指针时:
[0152]将中毒指示标识设置为中毒的缓存描述符对应的计算机内存中的缓存重写,重新获取校验值;
[0153]将缓存描述符中的报文满标识设置为空,以该缓存描述符对应的计算机内存中的缓存为空。
[0154]示例性的,当处理器从计算机内存中的缓存读取报文时,如果读到指向当前正在被处理的缓存所对应的缓存描述符中的报文满标识F标志为满,则再判断指向当前正在被处理的缓存描述符中的报文中毒指示标志P是否指示为中毒,若该中毒指示标志P标志指示为中毒,则将存储当前中毒报文的整个缓存空间重写一遍,让这一整段缓存重新计算校验值,并通过设置正在被处理的缓存所对应的缓存描述符中的报文满标识F标志为空来指示该缓存为空,以便把中毒的报文丢弃掉。
[0155]第二种,当在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识中,且缓存描述符还包括读索引、写索引和缓存基地址指针时:
[0156]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0157]将读索引指向下一个待读的缓存描述符。
[0158]示例性的,当处理器从计算机内存中的缓存读取报文时,先判断读索引和写索引是否指向同一个缓存描述符,如果指向不同的缓存描述符,则再判断指向当前正在被处理的缓存所对应的缓存描述符中的报文中毒指示标志P是否指示为中毒,若该中毒指示标志P标志指示为中毒,则将存储当前中毒报文的整个缓存空间重写一遍,让这一整段缓存重新计算校验值,并且此时将读索引直接指向下一个待读的缓存描述符。
[0159]第三种,当计算机的另一块独立内存中,为计算机内存中的缓存对应的缓存描述符设置的对应中毒指示标识时:
[0160]将中毒指示标识设置为中毒的缓存描述符对应的计算机内存中的缓存重写,重新获取校验值;
[0161]将缓存描述符中的报文满标识设置为空,以指示缓存描述符对应的计算机内存中的缓存为空。
[0162]示例性的,当处理器从计算机内存中的缓存读取报文时,如果处理器读到指向当前正在被处理的缓存对应的缓存描述符中的报文满标识F标志为满,则再判断指向当前正在被处理的缓存所对应的缓存描述符对应的报文中毒指示标志P是否指示为中毒,若该中毒指示标志P标志指示为中毒,则将存储当前中毒报文的整个缓存空间重写一遍,让这一整段缓存重新计算校验值,并通过设置正在被处理的缓存所对应的缓存描述符中的报文满标识F标志为空来指示该缓存为空,以便把中毒的报文丢弃掉。
[0163]第四种,当在计算机的另一块独立内存中时,为计算机内存中的所有缓存的缓存描述符设置同一个中毒指示标识时:
[0164]示例性的,当处理器从计算机内存中的缓存读取报文时,如果读到指向当前正在被处理的缓存所对应的缓存描述符中的报文满标识F标志为满,则再判断指向当前正在被处理的缓存所对应的缓存描述符中的报文中毒指示标志P是否指示为中毒,若该中毒指示标志P标志指示为中毒,则将P标志对应的所有缓存空间重写一遍,让所有缓存空间重新计算校验值,并通过设置P标志对应的所有缓存描述符中的F标志为空来指示该计算机内存中所有缓存为空,以便把中毒的报文丢弃掉。
[0165]第五种,当在计算机内存中的缓存的起始位置前面设置中毒指示标识时:
[0166]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;
[0167]将缓存对应的缓存描述符中的报文满标识设置为空,以指示缓存描述符对应的缓存为空。
[0168]示例性的,当处理器从计算机内存中的缓存读取报文时,如果读到指向当前正在被处理的缓存所对应的缓存描述符中的报文满标识F标志为满,则再判断指向当前正在被处理的缓存中的报文中毒指示标志P是否指示为中毒,若该中毒指示标志指示为中毒,则将存储当前中毒报文的整个缓存空间重写一遍,让这一整段缓存重新计算校验值,并通过设置指向当前正在被处理的缓存所对应的缓存描述符中的F标志为空来指示该缓存为空,以便把中毒的报文丢弃掉。
[0169]其中,上述通过把缓存描述符中的报文满标识F标志设置为空,或者将读索引移到下一个待读的缓存描述符来实现丢弃报文是通过处理器的驱动来处理的。
[0170]本发明的实施例提供一种处理失效报文的方法,通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,并将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0171]本发明又一实施例提供一种网络设备01,如图9所示,包括:
[0172]中毒标识设置单元011,用于为计算机内存中的缓存设置对应的中毒指示标识;
[0173]中毒标识管理单元012,用于在接收到报文后,若报文失效,则在将该失效报文搬移至计算机内存中的缓存后,将失效报文所在缓存对应的中毒指示标识标记为中毒,以表示缓存中的报文中毒。
[0174]进一步的,中毒标识设置单元011具体用于:
[0175]在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中缓存描述符还包括报文满标识、缓存基地址指针或者缓存描述符还包括读索引、写索引和缓存基地址指针;或
[0176]在计算机的另一块内存中,为缓存描述符对应设置中毒指示标识,其中缓存描述符包括报文满标识、缓存基地址指针;或
[0177]在计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,另一块内存独立于缓存描述符所在的内存;或
[0178]在计算机内存中的缓存的起始位置前面设置中毒指示标识,缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0179]再进一步的,如图10所示,中毒标识管理单元012还包括:
[0180]失效检测子单元0121,用于若在将报文向计算机内存中的缓存搬移的过程中,若报文的任意一巾贞失效,则确定报文失效;
[0181]中毒标记子单元0122,用于将失效报文所在缓存对应的中毒指示标识标记为中毒。
[0182]本发明的实施例提供一种网络设备,通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,以便处理器将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0183]本发明另一实施例提供一种处理器02,如图11所示,包括:
[0184]缓存处理单元021,用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将缓存重写,重新获取校验值,并指示缓存为空。
[0185]进一步的,缓存处理单元021具体用于:
[0186]当中毒指示标识设置在缓存对应的缓存描述符中,且缓存描述符还包括报文满标识、缓存基地址指针时:
[0187]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0188]将缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
[0189]或者,当中毒指示标识设置在缓存对应的缓存描述符中,且缓存描述符还包括读索引、与索引和缓存基地址指针时:
[0190]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0191]将读索引指向下一个待读的缓存描述符。
[0192]或者,当中毒指示标识设置在另一块内存中时:
[0193]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;
[0194]将缓存描述符中的报文满标识设置为空,以指示缓存为空;
[0195]其中,另一块内存独立于缓存描述符所在的内存。
[0196]或者,当中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时:
[0197]将同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值;
[0198]将同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示同一个中毒指示标识对应的所有缓存描述符对应的缓存为空;
[0199]其中,另一块内存独立于缓存描述符所在的内存。[0200]或者,当中毒指示标识设置在计算机内存中的缓存的起始位置前面时:
[0201]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;
[0202]将缓存对应的缓存描述符中的报文满标识设置为空,以指示缓存描述符对应的缓存为空。
[0203]另外,上述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且缓存的基地址也为独立校验数据单元的整数倍。
[0204]本发明的实施例提供一种处理器,在网络设备为计算机内存中的缓存对应设置的报文中毒指示标志,且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒后,该处理器将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0205]本发明另一实施例提供一种网络设备03,包括接收器031、发射器032、存储器033和总线034,如图12所示,网络设备03还包括:
[0206]处理器035,用于为计算机内存中的缓存设置对应的中毒指示标识;
[0207]还用于在接收到报文后,若报文失效,则在将该失效报文搬移至计算机内存中的缓存后,将失效报文所在缓存对应的中毒指示标识标记为中毒,以表示缓存中的报文中毒。
[0208]进一步的,处理器035具体用于:
[0209]在计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中缓存描述符还包括报文满标识、缓存基地址指针或者缓存描述符还包括读索引、写索引和缓存基地址指针;或
[0210]在计算机的另一块内存中,为缓存描述符对应设置中毒指示标识,其中缓存描述符包括报文满标识、缓存基地址指针;或
[0211]在计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,另一块内存独立于缓存描述符所在的内存;或
[0212]在计算机内存中的缓存的起始位置前面设置中毒指示标识,缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
[0213]更进一步的,处理器035还具体用于:
[0214]若在将报文向计算机内存中的缓存搬移的过程中,若报文的任意一帧失效,则确定报文失效;
[0215]将失效报文所在缓存对应的中毒指示标识标记为中毒。
[0216]本发明的实施例提供一种网络设备,通过为计算机内存中的缓存对应设置报文中毒指示标志,并且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示标识设置为中毒,以便处理器将失效报文所在缓存重写,而后指示该缓存为空,这样能够在缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。
[0217]本发明另一实施例提供一种处理器04,如图13所示,该处理器04可以设置在一个计算机O中,该计算机O还包括接收器041、发射器042、存储器043和总线044,且接收器041、发射器042、存储器043和处理器04通过总线044互联,其中:[0218]处理器04用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记 为中毒,则将缓存重写,重新获取校验值,并指示缓存为空。[0219]进一步的,处理器04具体用于:[0220]当中毒指示标识设置在缓存对应的缓存描述符中,且缓存描述符还包括报文满标 识、缓存基地址指针时:[0221]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;[0222]将缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。[0223]或着,当中毒指示标识设置在缓存对应的缓存描述符中,且缓存描述符还包括读 索引、与索引和缓存基地址指针时:[0224]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;[0225]将读索引指向下一个待读的缓存描述符。[0226]或者,当中毒指示标识设置在另一块内存中时:[0227]将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;[0228]将缓存描述符中的报文满标识设置为空,以指示缓存为空;[0229]其中,另一块内存独立于缓存描述符所在的内存。[0230]或者,当中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中 毒指示标识时:[0231]将同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校 验值;[0232]将同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指 示同一个中毒指示标识对应的所有缓存描述符对应的缓存为空;[0233]其中,另一块内存独立于缓存描述符所在的内存。[0234]或者,当中毒指示标识设置在计算机内存中的缓存的起始位置前面时:[0235]将中毒指示标识设置为中毒的缓存重写,重新获取校验值;[0236]将缓存对应的缓存描述符中的报文满标识设置为空,以指示缓存描述符对应的缓 存为空。[0237]另外,上述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且缓存的 基地址也为独立校验数据单元的整数倍。[0238]本发明的实施例提供一种处理器,在网络设备为计算机内存中的缓存对应设置的 报文中毒指示标志,且在网络设备接收到报文后,将失效报文所在的缓存对应的中毒指示 标识设置为中毒后,该处理器将失效报文所在缓存重写,而后指示该缓存为空,这样能够在 缓存中的报文已经失效的情况下,指示该报文已经失效,并丢弃失效的报文,从而避免了系 统的复位或将失效数据当做正常数据来处理带来的影响,提高了系统的可靠性。[0239]在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其 它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅 仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结 合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的 相互之间的通信连接可以是通过一些接口,装置或单元的连接,可以是电性,机械或其它的 形式。[0240]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。[0241]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的 部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称 ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储 程序代码的介质。[0242]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种处理失效报文的方法,其特征在于,所述方法包括: 为计算机内存中的缓存设置对应的中毒指示标识; 在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
2.根据权利要求1所述的方法,其特征在于,所述为计算机内存中的缓存设置对应的中毒指示标识包括: 在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或 在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或 在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或 在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
3.根据权利要求1或 2所述的方法,其特征在于,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒包括: 若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一帧失效,则确定所述报文失效; 将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
4.一种处理失效报文的方法,其特征在于,所述方法包括: 在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
5.根据权利要求4所述的方法,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
6.根据权利要求4所述的方法,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述读索引指向下一个待读的缓存描述符。
7.根据权利要求4所述的方法,其特征在于,当所述中毒指示标识设置在另一块内存中时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值;将所述缓存描述符中的报文满标识设置为空,以指示所述缓存为空; 其中,所述另一块内存独立于所述缓存描述符所在的内存。
8.根据权利要求4所述的方法,其特征在于,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括: 将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值; 将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空; 其中,所述另一块内存独立于所述缓存描述符所在的内存。
9.根据权利要求4所述的方法,其特征在于,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述将所述缓存重写,重新获取校验值,并指示所述缓存为空包括: 将中毒指示标识设置为中毒的缓存重写,重新获取校验值; 将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
10.根据权利要求4至9任意一项所述的方法,其特征在于,所述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且所述缓存的基地址也为独立校验数据单元的整数倍。
11.一种网络设备,其特征在于,所述网络设备包括: 中毒标识设置单元,用于为计算机内存中的缓存设置对应的中毒指示标识; 中毒标识管理单元,用于在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
12.根据权利要求11所述的网络设备,其特征在于,所述中毒标识设置单元具体用于: 在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或 在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或 在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或 在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
13.根据权利要求11或12所述的网络设备,其特征在于,所述中毒标识管理单元包括: 失效检测子单元,用于若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一帧失效,则确定所述报文失效;中毒标记子单元,用于将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
14.一种处理器,其特征在于,所述处理器包括: 缓存处理单元,用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
15.根据权利要求14所述的处理器,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述缓存处理单元具体用于: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
16.根据权利要求14所述的处理器,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述缓存处理单元具体用于: 将所述中毒指示标识设置为中毒的对应的缓存重写,重新获取校验值; 将所述读索引指向下一个待读的缓存描述符。
17.根据权利要求14所述的处理器,其特征在于,当所述中毒指示标识设置在另一块内存中时,所述缓存处理单元具体用于: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述缓存描述符中的报文`满标识设置为空,以指示所述缓存为空; 其中,所述另一块内存独立于所述缓存描述符所在的内存。
18.根据权利要求14所述的处理器,其特征在于,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述缓存处理单元具体用于: 将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值; 将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空; 其中,所述另一块内存独立于所述缓存描述符所在的内存。
19.根据权利要求14所述的处理器,其特征在于,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述缓存处理单元具体用于: 将中毒指示标识设置为中毒的缓存重写,重新获取校验值; 将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
20.根据权利要求14至19任意一项所述的处理器,其特征在于,所述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且所述缓存的基地址也为独立校验数据单元的整数倍。
21.—种网络设备,包括接收器、发射器、存储器和总线,其特征在于,所述网络设备还包括: 处理器,用于为计算机内存中的缓存设置对应的中毒指示标识; 所述处理器还用于在接收到报文后,若所述报文失效,则在将该失效报文搬移至所述计算机内存中的缓存后,将所述失效报文所在缓存对应的中毒指示标识标记为中毒,以表示所述缓存中的报文中毒。
22.根据权利要求21所述的网络设备,其特征在于,所述处理器具体用于: 在所述计算机内存中的缓存对应的缓存描述符中设置中毒指示标识,其中所述缓存描述符还包括报文满标识、缓存基地址指针或者所述缓存描述符还包括读索引、写索引和缓存基地址指针;或 在所述计算机的另一块内存中,为所述缓存描述符对应设置中毒指示标识,其中所述缓存描述符包括报文满标识、缓存基地址指针;或 在所述计算机的另一块内存中,为所有的缓存描述符设置有同一个中毒指示标识,其中每个缓存描述符包括报文满标识、缓存基地址指针其中,所述另一块内存独立于所述缓存描述符所在的内存;或 在所述计算机内存中的缓存的起始位置前面设置中毒指示标识,所述缓存对应的缓存描述符包括报文满标识、缓存基地址指针。
23.根据权利要求21或22所述的网络设备,其特征在于,所述处理器还具体用于: 若在将所述报文向所述计算机内存中的缓存搬移的过程中,若所述报文的任意一帧失效,则确定所述报文失效; 将所述失效报文所在缓存对应的中毒指示标识标记为中毒。
24.一种处理器,其 特征在于, 所述处理器用于在读取报文时,若计算机内存中的缓存对应的中毒指示标识标记为中毒,则将所述缓存重写,重新获取校验值,并指示所述缓存为空。
25.根据权利要求24所述的处理器,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括报文满标识、缓存基地址指针时,所述处理器具体用于: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述缓存描述符中的报文满标识设置为空,以指示描述符对应的缓存为空。
26.根据权利要求24所述的处理器,其特征在于,当所述中毒指示标识设置在所述缓存对应的缓存描述符中,且所述缓存描述符还包括读索引、写索引和缓存基地址指针时,所述处理器具体用于: 将所述中毒指示标识设置为中毒的对应的缓存重写,重新获取校验值; 将所述读索引指向下一个待读的缓存描述符。
27.根据权利要求24所述的处理器,其特征在于,当所述中毒指示标识设置在另一块内存中时,所述处理器具体用于: 将中毒指示标识设置为中毒的缓存描述符对应的缓存重写,重新获取校验值; 将所述缓存描述符中的报文满标识设置为空,以指示所述缓存为空; 其中,所述另一块内存独立于所述缓存描述符所在的内存。
28.根据权利要求24所述的处理器,其特征在于,当所述中毒指示标识设置在另一块内存中,且所有的缓存描述符对应同一个中毒指示标识时,所述处理器具体用于: 将所述同一个中毒指示标识对应的所有缓存描述符所对应的缓存都重写,重新获取校验值; 将所述同一个中毒指示标识对应的所有缓存描述符中的报文满标识都设置为空,以指示所述同一个中毒指示标识对应的所有缓存描述符对应的缓存为空。
29.根据权利要求24所述的处理器,其特征在于,当所述中毒指示标识设置在所述计算机内存中的缓存的起始位置前面时,所述处理器具体用于: 将中毒指示标识设置为中毒的缓存重写,重新获取校验值; 将所述缓存对应的缓存描述符中的报文满标识设置为空,以指示所述缓存描述符对应的缓存为空。
30.根据 权利要求24至29任意一项所述的处理器,其特征在于,所述计算机内存中的缓存的大小为独立校验数据单元的整数倍,且所述缓存的基地址也为独立校验数据单元的整数倍。
【文档编号】G06F21/55GK103534704SQ201280004493
【公开日】2014年1月22日 申请日期:2012年10月31日 优先权日:2012年10月31日
【发明者】康柏清 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1