在同一线程中收发OAM协议包的处理方法技术

技术编号:12530902 阅读:101 留言:0更新日期:2015-12-18 02:24
本发明专利技术涉及局端设备OLT对终端设备ONU的配置管理领域,尤其是一种在同一线程中收发OAM协议包的处理方法。其在同一线程中收发OAM协议包的处理方法,其在同一个线程中处理所有OAM协议包,包括构建发送OAM协议包和解析接收到的OAM协议包,且解析收到的OAM协议包的处理优先发送OAM协议包的构建等。本发明专利技术通过创建OAM协议包处理线程以及发送消息队列和接收消息队列,通过发送信号接口唤醒OAM协议包处理线程; OAM协议包处理线程根据发送消息队列或者接收消息队列中的请求消息,进行OAM协议包创建发送或者接收解析。

【技术实现步骤摘要】

本专利技术涉及局端设备OLT对终端设备ONU的配置管理领域,尤其是一种在同一线程中收发OAM协议包的处理方法
技术介绍
局端设备OLT配置管理终端设备ONU是通过交互OAM协议包实现的。发送OAM协议包和接收OAM协议包所走的路径和方向都是不同的。所以现有处理方法就是在不同的线程中分别处理发送OAM协议包的构建和接收OAM协议报文的解析。在不同线程中进行处理就存在对资源访问的竞争或冲突。为解决这个问题就需要增加使用同步与互斥资源。也将增加CPU资源的消耗。同时增加了处理的复杂度,降低了风险的可控度。局端设备OLT发送的OAM协议包与收到的OAM协议包之间具有较强的因果关联性,接收OAM协议包的缓冲总是有大小限制的。在不同线程中进行异步并发处理时会破坏这种因果关联性,可能导致因超出缓冲大小,本应收到的OAM协议包丢失。增加重传几率和更多资源消耗,效率降低。隐患增多,风险增大。图1是在两个不同线程中对OAM协议包进行分别处理的示意图。OAM协议包的构建与发送线程负责处理OLT设备向ONU设备进行信息获取或配置管理时OAM协议包的构建相关的包处理工作。OAM协议包解析线程负责处理OLT设备上接收到的来自ONU设备的OAM协议包的内容解析相关的包处理工作。从示意图中可看到。这两个线程都是独立运行的,都单独参与获取CPU运行机会。他们的运行关系是异步并发运行。并不能保证他们运行的顺序和完全均等的运行机会。这两个线程处理的OAM协议包都是关于管理配置ONU的。所以很有可能存在图1中所示的对共享资源的竞争,需要增加同步互斥机制来解决竞争的问题。这就增加了系统资源的消耗。在处理不当时,还有可能引入潜在未知问题。增加潜在的风险。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术存在的问题,提供一种在同一线程中收发OAM协议包的处理方法,其在同一个OAM协议包处理线程中处理所有OAM协议包,包括构建发送OAM协议包和解析接收到的OAM协议包,且解析收到的OAM协议包的处理优先发送OAM协议包的构建等。本专利技术采用的技术方案如下: 在同一线程中收发OAM协议包的处理方法包括: 步骤1:创建阻塞式信号可唤醒线程,作为OAM协议包处理线程;创建发送消息队列和接收消息队列,分别用于接收发送请求消息和接收请求消息; 步骤2:消息请求线程先将请求消息放入对应的消息队列中,然后向OAM协议包处理线程发送信号,唤醒OAM协议包处理线程。OAM协议包处理线程根据请求消息,进行OAM协议包创建发送或者接收解析,其中请求消息指的是发送消息队列中的消息,用于构建OAM协议包并发送给ONU设备或者接收消息队列中的消息,它们为ONU设备发给OLT设备的OAM协议包,请求OLT设备进行解析处理。所述步骤3中OAM协议包处理线程根据请求消息进行OAM协议包创建发送或者接收解析具体包括: 步骤21:当OAM协议包处理线程处理发送消息队列的请求消息时,先判断接收消息队列中是否有从ONU设备上接收来的OAM协议包;若有,则执行步骤22 ;否则,OAM协议包处理线程创建并发送OAM协议包给相应的ONU设备;当OAM协议包处理线程处理接收消息队列的请求消息时,则执行步骤22 ;其中发送消息队列的请求消息是由发送信息接口产生的消息;接收消息队列的请求消息是由ONU设备发送OAM数据包给OLT设备时,OLT设备底层驱动及接口产生的消息; 步骤22:0ΑΜ协议包处理线程解析接收到的所有OAM协议包。所述产生发送请求消息的发送信息接口是客户端。综上所述,由于采用了上述技术方案,本专利技术的有益效果是: 在同一个线程中处理收发OAM协议包,消除了对资源的竞争和访问冲突的问题。省去了同步互斥资源的使用,也降低了 CPU资源的损耗,能提高系统资源的效率。根据OAM协议包收发的因果关联性对收发包处理的顺序安排与保证,能极大的降低因本应接收的OAM协议包丢失导致的重传几率。从而提高了系统资源的利用率和效率。减少隐患,增加风险可控性。图2是在同一个线程中对OAM协议包进行处理的示意图。因为收发OAM包的处理都是在同一个线程中,就不存在两个线程异步并发处理的情况,不会存在对资源的竞争的问题,也就不用使用系统的同步互斥资源了,也免去了因使用这些资源消耗的CPU资源。从而可以一定程度上提高系统的资源使用率和效率。在一个线程中就能保证处理不同类型的OAM包处理的顺序:收到的OAM协议包优先于发送OAM协议包的处理。这种处理顺序的安排是根据收发OAM协议包间存在的因果关联性,发送一个OAM协议包,就会收到一个相对应的响应OAM协议包。抑制发送OAM协议包速度过快,降低接收到的OAM协议包数超出缓冲最大值而丢失的问题。提高可靠性和系统资源的利用率和效率。【附图说明】本专利技术将通过例子并参照附图的方式说明,其中: 图1是在两个不同线程中对OAM协议包进行分别处理的示意图。图2是一个线程中一个OLT设备对应一个ONU设备时OAM协议包处理示意图。【具体实施方式】本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。底层驱动及接口指的是底层驱动程序及硬件接口等。OAM协议包处理线程发送给ONU设备的OAM协议包和接收消息队列中接收到的ONU设备发送给OLT设备的OAM协议包,都是需要OLT设备的底层驱动接口参与的。一个OLT设备对应多个ONU设备时,OAM协议包处理过程是相同的。工作原理: 1、创建阻塞式信号可唤醒线程,作为OAM协议包处理线程。在该线程中采用接收OAM协议包处理总是优先于发送OAM协议报文的处理策略进行报文处理。2、创建发送信号接口,用于向OAM协议包处理线程发送信号,唤醒该线程。3、创建发送消息队列和接收消息队列,分别用于接收发送请求消息和接收请求消息。处理OAM协议包线程从这两个消息队列中获取消息,然后进行对应的处理。 4、消息请求线程先将请求消息放入对应的消息队列中,然后调用发送信号接口唤醒OAM协议包处理线程。具体实施例: 步骤1:创建阻塞式信号可唤醒线程,作为OAM协议包处理线程;创建发送信号接口,用于向OAM协议包处理线程发送信号,唤醒该线程;创建发送消息队列和接收消息队列,分别用于接收发送请求消息和接收请求消息; 步骤2:消息请求线程先将请求消息放入对应的消息队列中,然后调用发送信号接口唤醒OAM协议包处理线程; 步骤3:当OAM协议包处理线程接收到发送消息队列的请求消息时,先判断在接收消息队列中是否有从ONU设备上接收来的OAM协议包;若有,则OAM协议包处理线程解析接收到的所有OAM协议包;否则,OAM协议包处理线程创建并发送OAM协议包给相应的ONU设备;当OAM协议包处理线程处理接收消息队列的请求消息,则OAM协议包处理线程解析接收到的所有OAM协议包。其中OAM协议包处理线程检测到接收消息队列中有多个ONU设备发送的OAM数据包,则将所有接收到的OAM数据包全部处理完,本文档来自技高网
...
在同一线程中收发OAM协议包的处理方法

【技术保护点】
一种在同一线程中收发OAM协议包的处理方法,其特征在于包括:步骤1:创建阻塞式信号可唤醒线程,作为OAM协议包处理线程;创建发送消息队列和接收消息队列,分别用于接收发送请求消息和接收请求消息; 步骤2:消息请求线程先将请求消息放入对应的消息队列中,然后向OAM协议包处理线程发送信号,唤醒OAM协议包处理线程;OAM协议包处理线程根据请求消息,进行OAM协议包创建发送或者接收解析,其中请求消息指的是发送消息队列中的消息,它用于构建OAM协议包并发送给ONU设备或者接收消息队列中的消息,它为ONU设备发给OLT设备的OAM协议包;请求OLT设备进行解析处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:马丰玺
申请(专利权)人:成都广达新网科技股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1