一种碎报处理方法及装置的制造方法

文档序号:9828166阅读:255来源:国知局
一种碎报处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种碎报处理方法及装置。
【背景技术】
[0002]目前在部分路由器设备上,线卡板和接口所在的子卡已经形成比较成熟的分离模式,即线卡板上主要集中转发处理芯片进行报文的转发,子卡则将各类端口进行集成,用于处理报文收发,并负责将报文转换为线卡板可以处理的格式。为了更好的支持子卡的更替,子卡的热拔插技术就应用而生,从而可以实现不停止子卡工作的情况下,对子卡进行拔插和更替操作。
[0003]但是在子卡上正在转发流量时进行子卡热拔,会有一定的概率出现碎报的情况,即报文不完整。碎报会对线卡板上的转发处理芯片造成冲击,甚至造成转发处理芯片处理异常而挂死,影响线卡板上正常的业务处理。

【发明内容】

[0004]有鉴于此,本发明提供一种碎报处理方法及装置来解决子卡热插拔产生的碎报导致线卡板上转发处理芯片处理异常的问题。
[0005]具体地,本发明是通过如下技术方案实现的:
[0006]一种碎报处理方法,该方法应用于逻辑器件,该逻辑器件用于在子卡与转发处理芯片之间传输报文,该方法包括:
[0007]检测子卡发送的报文是否为碎报;
[0008]当该报文为碎报时,将该报文补充完整,并在该报文的预设字段中添加错报标记;
[0009]将补充完整的报文发送至转发处理芯片,以使该转发处理芯片通过该错报标记识别该报文为碎报后丢弃。
[0010]进一步的,该检测子卡发送的报文是否为碎报,包括:
[0011]判断该子卡发送的报文是否完整;
[0012]若不完整,则等待预设时间后再次判断该报文是否完整;
[0013]若不完整,则确认该报文为碎报。
[0014]进一步的,该预设时间大于该报文理论转发时间。
[0015]进一步的,判断该子卡发送的报文是否完整,包括:
[0016]解析该子卡发送的报文,获取报文中每个分片的分片信息,其中包括分片的片尾信息以及下个分片的片头信息;
[0017]根据该分片信息判断是否收到了该报文的所有分片并且每个分片是否完整;
[0018]若不完整,则确定该报文不完整。
[0019]进一步的,将该报文补充完整,并在该报文的预设字段中添加错报标记,包括:
[0020]将该报文按照预设的封装格式进行封装,并填充不完整的字段;
[0021]在封装中的预设字段中添加错报标记。
[0022]基于相同的构思,本发明还提供一种碎报处理装置,该装置应用于逻辑器件,该逻辑器件用于在子卡与转发处理芯片之间传输报文,该装置包括:
[0023]碎报检测单元,用于检测子卡发送的报文是否为碎报;
[0024]报文补充单元,用于在该报文为碎报时,将该报文补充完整,并在该报文的预设字段中添加错报标记;
[0025]报文转发单元,用于将补充完整的报文转发至转发处理芯片,以使该转发处理芯片通过该错报标记识别该报文为碎报后丢弃。
[0026]进一步的,该碎报检测单元,包括:
[0027]第一判断子单元,用于判断所述子卡发送的报文是否完整;
[0028]第二判断子单元,用于在报文不完整时,等待预设时间后再次判断该报文是否完整;
[0029]碎报判断子单元,用于在报文不完整时,确认该报文为碎报。
[0030]进一步的,该预设时间大于该报文理论转发时间。
[0031]进一步的,该第一判断子单元,具体用于解析该子卡发送的报文,获取报文中每个分片的分片信息,其中包括分片的片尾信息以及下个分片的片头信息,根据该分片信息判断是否收到了该报文的所有分片并且每个分片是否完整,若不完整,则确定该报文不完整。
[0032]进一步的,该报文补充单元,具体用于将该报文按照预设的封装格式进行封装,并填充不完整的字段,在封装中的预设字段中添加错报标记。
[0033]由此可见,本发明可以通过逻辑器件12检测碎报,并将碎报补充完整且添加错报标记后再发送到转发处理芯片11,因此转发处理芯片11可以根据错报标记迅速甄别碎报,并将碎报丢弃,从而避免碎报对转发处理芯片11造成冲击,保证转发处理芯片11的转发性會K。
【附图说明】
[0034]图1是一种示例性的线卡板逻辑结构图;
[0035]图2是本发明一种示例性实施方式中的一种碎报处理方法的处理流程图;
[0036]图3是本发明一种示例性实施方式中碎报处理流程图;
[0037]图4本发明一种示例性实施方式中的碎报处理装置所在的线卡板的硬件结构图;
[0038]图5本发明一种示例性实施方式中的一种碎报处理装置的逻辑结构图。
【具体实施方式】
[0039]请参考图1的线卡板I逻辑结构图,线卡板I上由上到下依次包括转发处理芯片
11、逻辑器件12和子卡13,由于子卡13与转发处理芯片11应用的接口不同,因此逻辑器件12主要用于将子卡13发送的报文封装替换成转发处理芯片11的接口对应封装,并进行报文传输。在子卡13热拔过程中,如果子卡13当前有报文正在转发,当该子卡13被热拔时,完整的报文会被分割,导致报文只有一部分被发到了逻辑器件12及转发处理芯片11。碎报会对转发处理芯片11造成冲击,甚至造成转发处理芯片11因处理异常而挂死。
[0040]由于目前逻辑器件12对碎报仅进行透传,而转发处理芯片11需要甄别碎报。一方面转发处理芯片11可能没有足够的容错考虑来处理各种碎报,另一方面转发处理芯片11甄别碎报会加剧资源的消耗,降低转发性能。
[0041]为了解决现有技术存在的问题,本发明提供一种碎报处理方法及装置,可以通过逻辑器件12检测碎报,并将碎报补充完整且添加错报标记后再发送到转发处理芯片11,因此转发处理芯片11可以根据错报标记迅速甄别碎报,并将碎报丢弃,从而避免碎报对转发处理芯片11造成冲击,保证转发处理芯片11的转发性能。
[0042]请参考图2,是本发明一种示例性实施方式中的一种碎报处理方法的处理流程图,其中该方法应用于逻辑器件12,该逻辑器件12用于在子卡13与转发处理芯片11之间传输报文,该方法包括:
[0043]步骤201、检测子卡13发送的报文是否为碎报;
[0044]在本实施例中,当逻辑器件12收到子卡13发送的报文后,可以检测该报文是否为碎报。
[0045]在本发明可选实施例中,逻辑器件12收到的报文不完整时,可以认为该报文是碎报。例如报文一共分为四片,当逻辑器件12只收到其中的三片时,则认为该报文不完整。具体来讲,逻辑器件12可以解析子卡13发送的报文,获取报文中每个分片的分片信息,其中每个分片的片头记录着该分片的片尾信息,片尾记录着下个分片的片头信息;逻辑器件12可以从片头找到记录的片尾信息,再从片尾找到片尾记录的下个分片的片头信息,以此类推,逻辑器件12可以依次找到每个分片。当逻辑器件12根据片尾信息找不到下个片头,或者找齐所有分片但有些分片不完整时,则可以确定该报文不完整。
[0046]上述逻辑器件12可以认为不完整的报文是碎报,但考虑到报文的转发时间等问题,为了降低碎报的误判率,在本发明优选的实施例中,当逻辑器件12收到子卡13发送的报文时,可以先通过上述方法判断该报文是否完整,如果报文不完整,则等待预设时间后再次判断该报文是否完整;如果还是不完整,则可以确认该报文为碎报。
[0047]需要说明的是,上述预设时间通常大于该报文理论转发时间。举例来讲,逻辑器件12上可以启动一个等待定时器,定时器的时间依据如下2个因素来判断:
[0048]—是当前子卡可以允许通过的最长报文的长度L ;
[0049]二是当前子卡将报文加封装后传递给该逻辑器件的速率V ;
[0050]可以认为理想状态下,最长的报文经过加封装后传递给逻辑器件12的理论转发时间为t = L/V,那么该定时器设置的时长可以大于t,例如t的2倍或者3倍,这样一来通过大于t时间的等待,逻辑器件12可以收到未传递完成的报文分片,从而降低误判率。
[0051]步骤202、当该报文为碎报时,将该报文补充完整,并在该报文的预设字段中添加错报标记;
[0052]在本实施例中,当逻辑器件12确定当前报文为碎报时,由于逻辑器件12没有丢弃报文的权利,因此可以将该碎报补充完整,并在该报文的预设字段中添加错报标记,以便于转发处理芯片11识别碎报。在本发明可选的实施例中,由于转发处理芯片11的接口与子卡13的接口类型不同,因此识别的报文封装也不同。逻辑器件12可以将子卡13发送的报文解封装后按照预设的封装格式,也就是转发处理芯片11的接口类型对应的封装格式进行封装,并将报文中不完整的字段进行填充,填充内容不做限定;之后在封装的预设字段中添加错报标记,以使转发处理芯片11通过该错报标记识别出该报文为碎报。
[0053]步骤203、将补充完整的报文发送至转发处理芯片11,以使该转发处理芯片11通过该错报标记识别该报文为碎报后丢弃。
[0054]在本实施例中,逻辑器件12可以将补充完整的报文发送至转发处理芯片11,当转发处理芯片11通过该错报标记识别出该报文为碎报时,可将该报文丢弃,从而节省转发处理芯片11识别碎报的时间,提高了报文处理效率。
[0055]由此可见,本发
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1