[发明专利]报文保序的方法及装置有效
申请号: | 201210578439.3 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103067304A | 公开(公告)日: | 2013-04-24 |
发明(设计)人: | 赵桃李 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863;H04L12/883 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 谭磊 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报文 方法 装置 | ||
1.一种报文保序的方法,其特征在于,包括:
在中央处理器CPU接收报文,并将所述报文逐包分发到所述CPU的两个以上的核进行处理之后,所述CPU的第N核接收所述CPU分发的包括编号为M的第M个报文包;
所述第N核确定所述第M个报文包为组播报文的报文包之后,处理所述第M个报文包,并将处理后的所述第M个报文包按照所述编号M排列在报文入发送队列中;
所述第N核确定所述报文入发送队列中有当前直接发送的报文包,则确定处理后的第M个报文包对应的出接口是否是所述报文对应的所有出接口中的最后一个;
若不是,则所述第N核将所述报文入发送队列中当前直接发送的报文包发送,并向第P核发送通知消息,所述通知消息用于指示所述第P核处理所述第M个报文包;所述第P核为所述第N核按照预设算法算出的用于向另一个出接口发送报文包的核;以使所述第P核处理所述第N核处理后的第M个报文包,并重复确定所述第P核处理后的报文包对应的出接口是否是所有出接口中最后一个的过程,以及在所述第P核处理后的报文包对应的出接口不是最后一个时,重复向下一个出接口发送报文包的第Q核发送通知消息的过程,直至所述报文对应的所有出接口都依序发送有处理后的报文;
其中,所述N、M、P、Q为大于等于1的自然数。
2.根据权利要求1所述的方法,其特征在于,所述第N核确定所述第M个报文包为组播报文的报文包之后,处理第M个报文包,包括:
所述第N核确定所述第M个报文包为组播报文的报文包之后,查找所述第M个报文包对应的所有出接口的信息,将所有出接口的信息记录到所述第M个报文包中,且取出所有出接口中的第一个出接口,以及删除所述所有出接口中的第一个出接口;
所述第P核处理所述第N核处理后的第M个报文包,包括:
所述第P核将所述第N核处理后的第M个报文包中出接口的信息中的排在最前的出接口取出,以及在所述出接口的信息中删除第P核所取出的出接口。
3.根据权利要求1或2所述的方法,其特征在于,所述将处理后的所述第M个报文包按照所述编号M排列在报文入发送队列中的步骤之后,还包括:
所述第N核确定所述报文入发送队列中无当前直接发送的报文包,则等待所述报文入发送队列中排在编号M之前的能够直接发送的报文包。
4.根据权利要求1所述的方法,其特征在于,所述确定处理后的第M个报文包对应的出接口是否是所述报文对应的所有出接口中的最后一个的步骤之后,还包括:
若是,所述第N核将所述报文入发送队列中当前直接发送的报文包发送,并通知所述第N核所在的CPU回收所述报文占用的内存。
5.根据权利要求1所述的方法,其特征在于,所述第N核确定所述第M个报文包为组播报文的报文包,包括:
若所述报文为三层转发报文,则所述第N核确定所述第M个报文包所在的报文的目的IP地址为组播地址,获知所述第M个报文包为组播报文的报文包;
或者,
若所述报文为二层转发报文,则所述第N核确定所述第M个报文包所在的报文的目的MAC信息为组播MAC信息,获知所述第M个报文包为组播报文的报文包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210578439.3/1.html,转载请声明来源钻瓜专利网。