[发明专利]分发包方法有效
申请号: | 201310421853.8 | 申请日: | 2013-09-16 |
公开(公告)号: | CN104468157B | 公开(公告)日: | 2020-01-17 |
发明(设计)人: | 吴晓宇 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26 |
代理公司: | 33246 浙江千克知识产权代理有限公司 | 代理人: | 周希良 |
地址: | 201616 上海市松江*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 发包 方法 | ||
本发明公开了一种分发包方法,其包括有:S1、创建含有节点的链表;S2、将各节点分别与功能模块映射;S3、接收报文;S4、判断顶端的节点所映射的功能模块是否可用,若是则执行S7,若否则执行S5;S5、判断是否还存在其他节点,若是则执行S6,否则结束流程;S6、判断下一节点所映射的功能模块是否可用,若是则执行S7,若否则返回执行S5;S7、判断是否需要报文,若是则执行S8,否则执行S5;S8、处理报文;S9、判断报文是否还用于其他功能模块,若是则返回执行S5,若否则结束流程。通过设置调试节点,使得调试、维护更为便利;通过功能模块挂接到链表上各个节点的方式,使得本发明易于移植。
技术领域
本发明涉及一种分发包方法。
背景技术
现代通信设备中,尤其是大型机架、机框式的通信设备,往往是采用CPU(中央处理器)结合ASIC(Application Specific Integrated Circuits,专用集成电路)的硬件设计方案。ASIC通信芯片负责硬件转发,而CPU负责协议层面的处理,这个处理过程主要依赖于ASIC芯片传向CPU的报文来完成。
CPU上运行的很多应用程序来进行包处理,包括二层的协议模块,三层协议模块等等,一个好的分发包机制能够最大程度上让各个应用程序专注于各自的实现保持其各自的内聚性。以往的通信设备(包括某些线卡单盘)中,运行在CPU上的软件往往需要处理一些来自于通信芯片的以太报文,例如RSTP(rapid spanning Tree Protocol,快速生成树协议)报文、DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)报文以及需要送往协议栈处理的IP层报文等。
传统的设计中,往往直接在通信芯片的驱动中调用各个应用程序(如RSTP,DHCP)的处理接口,处理完毕后送往协议栈,这种处理方式的弊端在于:耦合度极高,在有新的需要处理报文的应用程序被添加时,往往需要修改驱动层的代码,不符合驱动层应该稳定的原则;难以维护和调试,在系统的收包过程出现故障时,每个模块都需要维护有自己的调试代码,杂乱而难以实施;没有完整的独立性,难以移植并重新使用。
发明内容
本发明要解决的技术问题是为了克服现有技术中未对软件分层设计导致耦合度高、分发报文过程中的异常难以定位、设计缺乏独立性而难以移植的缺陷,提供一种分层设计、易于移植的分发包方法。
本发明是通过下述技术方案来解决上述技术问题:
一种分发包方法,其特点在于,其包括有以下步骤:
S1、创建一包含有至少一节点的链表;
S2、将各个所述节点分别与外部的功能模块映射;
S3、接收一报文;
S4、判断所述链表顶端的节点所映射的所述功能模块是否可用,若是则执行S7,若否则执行S5,此处,由于链表本身的全部节点都是按照一定顺序排列的,链表顶端的节点也就是该顺序的第一个节点;
S5、判断所述链表中是否还存在其他所述节点,若是则执行S6,否则结束流程;
S6、判断所述链表中下一个所述节点所映射的所述功能模块是否可用,若是则执行S7,若否则返回执行S5,此处,下一个节点为按照链表上节点顺序,相对于已处理或者已判断过的上一顺位的节点的下一顺位的节点;
S7、判断所述功能模块是否需要所述报文,若是则执行S8,否则执行S5;
S8、所述功能模块处理所述报文;
S9、判断所述报文是否还可以用于其他功能模块,若是则返回执行S5,若否则结束流程。
较佳的,所述S3与所述S4之间还包括有:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310421853.8/2.html,转载请声明来源钻瓜专利网。