CN104468157B - 分发包方法 - Google Patents
分发包方法 Download PDFInfo
- Publication number
- CN104468157B CN104468157B CN201310421853.8A CN201310421853A CN104468157B CN 104468157 B CN104468157 B CN 104468157B CN 201310421853 A CN201310421853 A CN 201310421853A CN 104468157 B CN104468157 B CN 104468157B
- Authority
- CN
- China
- Prior art keywords
- node
- executing
- message
- judging whether
- functional module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分发包方法,其包括有:S1、创建含有节点的链表;S2、将各节点分别与功能模块映射;S3、接收报文;S4、判断顶端的节点所映射的功能模块是否可用,若是则执行S7,若否则执行S5;S5、判断是否还存在其他节点,若是则执行S6,否则结束流程;S6、判断下一节点所映射的功能模块是否可用,若是则执行S7,若否则返回执行S5;S7、判断是否需要报文,若是则执行S8,否则执行S5;S8、处理报文;S9、判断报文是否还用于其他功能模块,若是则返回执行S5,若否则结束流程。通过设置调试节点,使得调试、维护更为便利;通过功能模块挂接到链表上各个节点的方式,使得本发明易于移植。
Description
技术领域
本发明涉及一种分发包方法。
背景技术
现代通信设备中,尤其是大型机架、机框式的通信设备,往往是采用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之间还包括有:
S31、设置一全局调试节点,所述调试节点输出并显示全部或部分所述报文的信息、所述节点的状态、所述功能模块的状态。也就是说,设置全局调试节点从整体上对流程运行中的各种信息进行监控,以调试便利并在发送异常时可以迅速维护。
较佳的,所述S7为:判断所述功能模块是否需要所述报文,若是则执行S71,否则执行S5;
S71、设置一调试节点,所述调试节点输出并显示全部或部分进入所述功能模块的所述报文的信息、所述节点的状态、所述功能模块的状态。也就是说,设置调试节点对报文进入功能模块阶段的各种状态进行监控,使得调试进一步的便利。
较佳的,所述功能模块通过一注册接口挂接到所述节点,使得各个所述节点分别与所述功能模块映射。
本发明的积极进步效果在于:通过设置调试节点输出显示节点和功能模块的信息等,使得调试、维护更为便利;通过外部的功能模块挂接到链表上各个节点的方式,使得本发明有层次且易于移植。
附图说明
图1为本发明较佳实施例的分发包方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1:
图1为本实施例的分发包方法的流程图,如图1所示,本实施例涉及的分发包方法包括有以下步骤:
步骤1、创建链表,该链表包含有若干个节点(此处设定为包含有第一节点和第二节点,2个节点),各个节点按顺序排列,第一节点排在第二节点前,位于链表的顶端。
步骤2、将外部的若干个功能模块(此处设定为包含有第一功能模块和第二功能模块,2个功能模块,)调用注册接口挂接到各个节点,建立映射关系,即第一功能模块挂接到第一节点,第二功能模块挂接到第二节点。第一功能模块和第二功能模块具体可以为组播模块、DHCP(动态主机设置协议)线路标识模块、OSPF(Open Shortest Path First,开放式最短路径优先)模块等2层或3层协议模块。
步骤3、接收报文。
步骤31、设置全局调试节点,调试节点输出并显示全部或部分报文的信息、节点的状态、功能模块的状态,例如IP(Internet Protocol,互联协议)信息和MAC(Media AccessControl,媒体介入控制层)信息等等。
步骤4、判断链表顶端的节点(即第一节点)所映射的功能模块(即第一功能模块)是否可用,即判定处于,若是则执行步骤7,若否则执行步骤5。
步骤5、判断链表中是否还存在其他节点,若是则执行步骤6,否则结束流程。
步骤6、判断下一个节点(即第二节点)所映射的功能模块(即第二功能模块)是否可用,若是则执行步骤7,若否则返回执行步骤5。
步骤7、判断功能模块是否需要报文,若是则执行步骤71,否则执行步骤5。
步骤71、设置调试节点,调试节点输出并显示全部或部分进入功能模块的报文的信息、节点的状态、功能模块的状态。
步骤8、功能模块处理报文。
步骤9、判断报文是否还可以用于其他功能模块,若是则返回执行步骤5,若否则结束流程。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (3)
1.一种分发包方法,其特征在于,其包括有以下步骤:
S1、创建一包含有至少一节点的链表;
S2、将各个所述节点分别与外部的功能模块映射;
S3、接收一报文;
S31、设置一全局调试节点,所述调试节点输出并显示全部或部分所述报文的信息、所述节点的状态、所述功能模块的状态;
S4、判断所述链表顶端的节点所映射的所述功能模块是否可用,若是则执行S7,若否则执行S5;
S5、判断所述链表中是否还存在其他所述节点,若是则执行S6,否则结束流程;
S6、判断所述链表中下一个所述节点所映射的所述功能模块是否可用,若是则执行S7,若否则返回执行S5;
S7、判断所述功能模块是否需要所述报文,若是则执行S8,否则执行S5;
S8、所述功能模块处理所述报文;
S9、判断所述报文是否还用于其他功能模块,若是则返回执行S5,若否则结束流程。
2.如权利要求1所述的分发包方法,其特征在于,所述S7为:判断所述功能模块是否需要所述报文,若是则执行S71,否则执行S5;
S71、设置一调试节点,所述调试节点输出并显示全部或部分进入所述功能模块的所述报文的信息、所述节点的状态、所述功能模块的状态。
3.如权利要求2所述的分发包方法,其特征在于,所述功能模块通过一注册接口挂接到所述节点,使得各个所述节点分别与所述功能模块映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310421853.8A CN104468157B (zh) | 2013-09-16 | 2013-09-16 | 分发包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310421853.8A CN104468157B (zh) | 2013-09-16 | 2013-09-16 | 分发包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468157A CN104468157A (zh) | 2015-03-25 |
CN104468157B true CN104468157B (zh) | 2020-01-17 |
Family
ID=52913584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310421853.8A Active CN104468157B (zh) | 2013-09-16 | 2013-09-16 | 分发包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468157B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795866B1 (en) * | 1999-10-21 | 2004-09-21 | Sun Microsystems, Inc. | Method and apparatus for forwarding packet fragments |
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
CN1809019A (zh) * | 2005-01-18 | 2006-07-26 | 北京大学 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
CN1917468A (zh) * | 2005-08-19 | 2007-02-21 | 华为技术有限公司 | H.248报文的集中分发方法 |
US7346059B1 (en) * | 2003-09-08 | 2008-03-18 | Cisco Technology, Inc. | Header range check hash circuit |
CN101547156A (zh) * | 2009-05-04 | 2009-09-30 | 华为技术有限公司 | 报文解析方法和装置 |
CN103226504A (zh) * | 2013-04-19 | 2013-07-31 | 中国科学院自动化研究所 | 一种分布式片上调试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1190681C (zh) * | 1997-01-23 | 2005-02-23 | 大宇电子有限公司 | 光学投影系统中的薄膜驱动的反射镜组及其制造方法 |
-
2013
- 2013-09-16 CN CN201310421853.8A patent/CN104468157B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795866B1 (en) * | 1999-10-21 | 2004-09-21 | Sun Microsystems, Inc. | Method and apparatus for forwarding packet fragments |
US7346059B1 (en) * | 2003-09-08 | 2008-03-18 | Cisco Technology, Inc. | Header range check hash circuit |
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
CN1809019A (zh) * | 2005-01-18 | 2006-07-26 | 北京大学 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
CN1917468A (zh) * | 2005-08-19 | 2007-02-21 | 华为技术有限公司 | H.248报文的集中分发方法 |
CN101547156A (zh) * | 2009-05-04 | 2009-09-30 | 华为技术有限公司 | 报文解析方法和装置 |
CN103226504A (zh) * | 2013-04-19 | 2013-07-31 | 中国科学院自动化研究所 | 一种分布式片上调试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104468157A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5521620B2 (ja) | 中継装置、仮想マシンシステム及び中継方法 | |
US20170237655A1 (en) | Forwarding Data Packets In Software Defined Networks | |
US20190058613A1 (en) | Electronic control unit, frame generating method, and non-transitory computer-readable recording medium storing a program | |
JP2017212726A5 (zh) | ||
JP5565476B2 (ja) | ネットワークシステム、及びネットワークフロー追跡方法 | |
US10200204B2 (en) | Link state information advertisement method and device | |
CN104272684A (zh) | Fabric交换机中的动态服务插入 | |
CN105577545A (zh) | 具有独立于设备的标签的标签交换分组 | |
US10749738B2 (en) | Method and apparatus for diagnosing network | |
KR101855753B1 (ko) | 차량 진단 게이트웨이 장치 및 이를 포함하는 시스템 | |
CN101573913A (zh) | 用于多播路由选择的方法和设备 | |
JP2017005617A (ja) | 中継装置、電子装置および通信システム | |
WO2015184771A1 (zh) | 一种业务功能链操作、管理和维护方法及节点设备 | |
CN104660469A (zh) | 一种二层网络的连通性检测方法及相关设备 | |
CN108718269A (zh) | 报文处理方法及装置 | |
US10069641B2 (en) | Method for operating a communication network and communication network | |
CN104219149B (zh) | 一种基于虚连接的报文传输方法和设备 | |
CN107566238B (zh) | 一种用户态配置物理接口自动识别vlan帧和非vlan帧的方法 | |
CN106649186A (zh) | 应用程序与串口外设的通信方法及装置 | |
WO2019238002A1 (zh) | 传输报文的方法、网络边缘设备与报文传输系统 | |
JP6590545B2 (ja) | パケットからデータを抽出する方法およびその装置 | |
US11394666B2 (en) | Scalable communication with a packet processing unit | |
AU2010256230B2 (en) | Method and system for realizing transmission of message between an extended processor and a switch chip | |
US10831582B2 (en) | Systems and methods for an error logging mechanism at controller area network buses | |
CN105763411B (zh) | 一种建立组播隧道的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201116 Address after: 221700 4-1-110-shop, Nanyuan new town, Fengxian County, Xuzhou City, Jiangsu Province Patentee after: Song Yixiao Address before: 201616 Shanghai city Songjiang District Guangfulin Road No. 4855 Building No. 90 big industry territory Patentee before: Phicomm (Shanghai) Co.,Ltd. |
|
TR01 | Transfer of patent right |