CN111787434A - 一种优化处理omci报文的方法 - Google Patents
一种优化处理omci报文的方法 Download PDFInfo
- Publication number
- CN111787434A CN111787434A CN202010531323.9A CN202010531323A CN111787434A CN 111787434 A CN111787434 A CN 111787434A CN 202010531323 A CN202010531323 A CN 202010531323A CN 111787434 A CN111787434 A CN 111787434A
- Authority
- CN
- China
- Prior art keywords
- event
- message
- omci
- configuration
- timer
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种优化处理OMCI报文的方法,OMCI主进程首先设置一个用于后续处理事件消息的线程;ONU在对每一个接收到的OMCI报文发送响应报文给OLT后,进入报文处理函数;报文处理函数处理完成后发送事件消息给线程告知要更新配置;线程在接收到更新配置事件消息后,在等待所有相关OMCI报文都接收到后,生成相应配置。本发明提出的方法可以确保ONU对OLT发送过来的每条OMCI报文及时回应,保证OLT下发配置不会中断;此外,本发明提出的方法在ONU接收到大量OMCI报文后进行解析,在不占用大量CPU资源的前提下能够保证配置生成的正确性和时效性。
Description
技术领域
本发明属于通信双向工作系统领域,特别是涉及一种优化处理OMCI报文的方法。
背景技术
OMCI是GPON(吉比特无源光网络)标准中定义的一种OLT(光线路终端)和ONU之间信息交互的协议。OMCI是一种主从式停等管理协议,其中OLT是主设备,ONU是从设备。它们的基本流程是:OLT下发OMCI管理配置报文,等待ONU应答,OLT得到应答后,才继续下发下一个报文。ME(Managed Entities,可管理对象)是对ONU的一种业务能力的抽象描述。根据ITU-T G.988规定,不同的ME由ME ID区分,不同的ME又包含不同的属性和方法。一个ONU所有可支持的ME组成了MIB(Management Information Base,管理信息库)。一条OMCI报文主要是由ME ID、方法、属性和属性值等构成。因此,OLT对一个ONU下发的管理配置信息,并不是单一的一条OMCI报文,而是大量不同的OMCI报文对ONU内的不同的ME分别进行操作,而且ONU必须对每条OLT下发的OMCI报文要及时回应。不同的ME中又存在内在的相应联系,所以ONU必须在接受完所有的OMCI报文后经过计算才能生成OLT要求的相应配置。
因此,对于ONU来说,接收来自OLT的OMCI报文,首先需要能够及时应答接收到的这些报文,并且在所有报文都接收完成后及时生成相应的配置。传统的设计架构会出现ONU在还没接收全所有OMCI报文后生成配置,导致配置出错。或者是在接收到所有OMCI报文后等待较长时间才生成配置,时效性不够。
现有申请号为201410466341.8的专利:一种ONU注册授权方法及系统,提出了一种优化处理OMCI报文的方法,是以回调函数以消息形式发送事件类型,回调函数实现模块接收消息,实现功能;但是这个专利中的ONU管理模块在接受第一条OMCI消息,回调函数发送消息,执行模块立刻生产配置,由于ONU配置管理参数不是单一的一条OMCI消息,是由很多消息组成,所以,此时的配置是不完整的。
本方法在OLT向ONU发送大量OMCI报文时,ONU能够保证及时回应接收到的每一条OMCI报文。与此同时,ONU会对接收到的大量OMCI报文进行解析,在不占用大量CPU资源的前提下能够保证配置生成的正确性和时效性。
发明内容
本发明所要解决的技术问题在于当ONU接收到大量OMCI报文后,ONU首先保证能够及时回应每一条接收到的OMCI报文。与此同时,ONU会对接收到的大量OMCI报文进行解析,在不占用大量CPU资源的前提下能够保证ONU配置生成的正确性和时效性。
为实现上述目的,本发明提供如下技术方案:
一种优化处理OMCI报文的方法,具体有以下步骤:
(1)OMCI主进程首先初始化一个用于接收事件消息的线程,优先级最高,并设置回调函数,用于事件消息的处理;接着,OMCI主进程对接收到的每一个OMCI报文首先生成一个相对应的响应报文,然后发送给OLT。之后再对该OMCI报文进行解析;这种方法能够使OLT及时收到ONU的响应,保证OLT配置下发不会被中断;随后,ONU根据接收到的OMCI报文内的MEID和方法,进入到相应的报文处理函数。
(2)ONU的配置需要多个相关的ME经过计算共同决定,任何一个ME属性值的改变都会影响当前ONU的配置;因此,当有一个与配置相关的ME属性值改变,在操作完该ME属性值之后,都要判断是否要把更新配置节点加入到操作链表中;如果操作链表中已经包含更新配置节点,则处理结束。如果操作链表中未包含更新配置节点,则加入该节点,随后向步骤(1)设置的线程发送更新配置的事件消息,并设置事件的定时器时间;定时器时间表示需要等待多少时间才会执行该事件。
(3)在步骤(1)线程设置的回调函数中,首先设置一个阻塞型的消息接收函数,判断事件链表中,接收到的事件消息中的该事件类型是否已经存在;如果已经存在,则更新定时器时间;如果不存在,则在事件链表中加入新的事件节点;对于步骤(2)这个阻塞型消息接收函数接收的是第一个事件消息,用于唤醒休眠中的线程。
(4)当事件链表中有事件节点存在后,遍历事件链表中的节点;遍历并不是马上执行节点中的事件,而是再次设置一个非阻塞型的消息接收函数;此接收函数的作用是,在等待的定时器时间内,仍然能够尽可能多的接收主进程处理OMCI报文发过来的其他事件消息;如果事件链表中已经存在该事件,则只更新定时器时间;如果事件不存在,则将其它事件节点加入到事件链表中。根据每个事件设置的定时器值,做等待操作;在遍历事件链表中的节点时,一边根据定时器值做等待,一边尽可能接收主进程发送过来的事件消息,及时加入到事件链表。
(5)在遍历事件链表时,如果定时器值为0,则执行事件链表中的事件;执行完成后将该事件从事件链表中去除;若执行的是更新配置事件,则会比较本地保存的ME操作次数和相关ME的属性值;如果相同,则表示OLT已下发完所有的ME操作,ONU可以根据现有的ME值经过计算生成相应配置。若不相同,则更新配置事件的定时器值,重新等待。
与现有技术相比,本发明具有以下有益效果:
1.本发明提出的方法可以确保ONU对OLT发送过来的每条OMCI报文及时回应,保证OLT下发配置不会中断。
2.本发明提出的方法在ONU接收到大量OMCI报文后进行解析,在不占用大量CPU资源的前提下能够保证配置生成的正确性和时效性。
附图说明
图1为本发明在接收到OMCI报文后解析并向线程发送事件消息的流程图。
图2为本发明的线程处理接收事件消息的流程图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
OLT通过OMCI报文对ONU中的MIB进行配置管理。MIB是由一系列的ME构成,一个ME代表ONU内的一个受控管理的对象。ITU-T G.988规范定义了不同的ME ID,以及各自的属性和方法。当OLT需要对ONU下发配置时,需要依次下发多条OMCI报文,对ONU的多个ME进行操作。
一种优化处理OMCI报文的方法包括:
步骤S1:如图1所示,OMCI主进程首先初始化一个用于接收事件消息的线程,该线程的调度策略为实时调度,优先级最高,设置回调函数为syncUpdateHandler。如下代码所示:
gcOmciCommon_CreateThread(&syncUpdate,GC_OMCI_THREAD_PRIORITY_HIGH,&syncU pdateHandler);
回调函数用于对接收到的OMCI报文的后续处理。接着,OMCI主进程会调用一个专门负责接收OMCI报文的函数;在对每一个接收的OMCI报文会立即先发送OMCI响应报文,保证回应的及时性,之后再进行OMCI报文的解析。
由于不同ME ID的属性和方法不同,所以需要不同的ME ID处理函数;例如ME ID为171(Extended VLAN tagging operation configuration data)的处理函数,ME ID为84(VLAN tagging filter data)的处理函数和ME ID为47(MAC bridge port configurationdata)的处理函数都互不相同。
步骤S2:当含有不同ME ID的OMCI报文进入到相应的处理函数后,再根据OMCI协议包内不同的方法执行相应的操作方法。每个ME都对应有不同的操作方法,其中主要的操作方法有:Set、Create、Get。Get方法只是取值,不会对ONU的当前配置产生影响,所以无需其它操作。而Set方法和Create方法是会改变ONU当前配置,所以需要继续执行gcOmci_SyncUpdateActionNodeAdd()函数。该函数会判断链表gcOmciActionList是否已经含有代表需要改变配置的节点:GC_OMCI_ACTION_FLOW。如果链表中已经含有该节点,则处理结束。如果链表中不含有该节点,则向链表中添加节点:GC_OMCI_ACTION_FLOW,即表示OLT要求改变该ONU的当前配置。最后,OMCI进程执行gcOmci_SyncUpdateEventSend(GC_OMCI_EVENT_ACTION_SYNC,1)函数,发出一条事件消息通知线程执行改变配置操作。第一个参数GC_OMCI_EVENT_ACTION_SYNC表示更新配置事件,第二个参数设置计时器时间,单位为秒,表示需要等待1秒后再执行该事件。
步骤S3:如图2所示,在回调函数syncUpdateHandler()中,首先设置一个阻塞型的事件消息接收函数,将步骤S2发送的GC_OMCI_EVENT_ACTION_SYNC和计时器时间加入到链表gcOmciEventTimerList。如果没接收到消息,由于该接收函数是阻塞型的,则该进程会进入睡眠状态,等待第一个事件的到来,节省CPU资源。只有接收到第一个事件消息才能将该线程唤醒。事件链表gcOmciEventTimerList储存节点的结构体类型如下:
typedef struct gcOmciEventTimerNode_s
{
struct gcOmciEventTimerNode_s*next;
gcOmciEventType eventId;
uint16_t waitTime;
}gcOmciEventTimerNode_t;
EventId代表事件类型,waitTime为定时器值,代表需要等待的时间。
步骤S4:当接收到第一个事件消息,即事件链表中有事件节点存在后,由于OLT对于ONU的配置需要多条ME共同实现,而ME是依次被发送到ONU,并不是一次性发送过来。所以更新配置事件并不会马上执行,而是根据该事件的定时器值做等待。在等待的这段时间可能也会有其他的事件消息会被发送过来,所以在阻塞型消息接收函数后面再设置一个非阻塞型消息接收函数,在等待过程中尽可能多的接收主进程发送过来的事件消息。因为在接收到所有ME消息之前是无法对ONU进行配置的,同时也避免遗漏其他的事件消息。如果接收到的事件消息已经存在事件链表中,则只更新该事件的定时器值,如果该事件消息不存在,则被加入到链表gcOmciEventTimerList中,等待被遍历。
步骤S5:在遍历事件链表gcOmciEventTimerList时,如果每个事件节点的定时器时间归为0,则执行相对应的事件处理函数。如果事件为GC_OMCI_EVENT_ACTION_SYNC,则本地的静态变量localDataSync会和ONU MIB中的MIBdatasync比较;如果这两个值相同,说明OLT已经发送完所有的OMCI报文,ONU可以进行配置操作了,执行gcOmci_FlowOperation()函数。如果这两个值不同,将MIBdatasync值赋给localDataSync,并将计时器重置,继续睡眠,直到localDataSync与MIBdatasync相等并且计时器为0后才会执行gcOmci_FlowOperation()函数更新当前ONU配置。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。
Claims (4)
1.一种优化处理OMCI报文的方法,其特征在于,包括以下步骤:
步骤(1),OMCI主进程首先初始化一个用于接收事件消息的线程,设置回调函数;接着,对每一条接收到的OMCI报文立即生成一个响应报文发送给OLT;再根据接收到的OMCI报文内的ME ID和方法进入相应的报文处理函数;
步骤(2),与配置相关的ME在处理完成后将更新配置节点加入到操作链表中,并向线程发送更新配置事件消息的类型和定时器值;
步骤(3),在线程中首先启用一个阻塞型事件消息接收函数,当有第一个事件消息发送过来时,唤醒处于休眠中的线程;
步骤(4),当收到第一个事件消息后,遍历事件链表,设置一个非阻塞型事件消息接收函数,一边根据每个事件定时器值做等待,一边尽可能接收主进程发送过来的其它事件消息,并及时加入到事件链表;
步骤(5),对于更新配置操作,如果定时器为0,并且本地保存的ME操作数和相关ME的属性值相同,则表示OLT已下发完所有ME的操作,ONU最终能够生成相应的配置;否则重置定时器,重新等待。
2.根据权利要求1所述的一种优化处理OMCI报文的方法,其特征在于,所述接收函数的参数除了事件id还有定时器时间,如果时间不为0,不会立即生成配置。
3.根据权利要求1所述的一种优化处理OMCI报文的方法,其特征在于,所述定时器时间其实是用于等待的时间。在等待的时间中还会有其他OMCI消息过来。
4.非阻塞模式的接收函数就是用于接收非第一条的OMCI消息。这个接收函数的参数除了事件id,也有定时器时间,只有判断MIBdatasync等于localDataSync,这两个值相等表示OLT配置下完,此时生成的配置才是完整的,不然重置计时器继续等待。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010531323.9A CN111787434B (zh) | 2020-06-11 | 2020-06-11 | 一种优化处理omci报文的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010531323.9A CN111787434B (zh) | 2020-06-11 | 2020-06-11 | 一种优化处理omci报文的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111787434A true CN111787434A (zh) | 2020-10-16 |
CN111787434B CN111787434B (zh) | 2022-07-01 |
Family
ID=72757427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010531323.9A Active CN111787434B (zh) | 2020-06-11 | 2020-06-11 | 一种优化处理omci报文的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111787434B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980308A (zh) * | 2015-07-29 | 2015-10-14 | 上海斐讯数据通信技术有限公司 | 一种omci协议报文封装方法及装置 |
-
2020
- 2020-06-11 CN CN202010531323.9A patent/CN111787434B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980308A (zh) * | 2015-07-29 | 2015-10-14 | 上海斐讯数据通信技术有限公司 | 一种omci协议报文封装方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111787434B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130117226A1 (en) | Method and A System for Synchronizing Data | |
CN112235130A (zh) | 一种实现基于sdn网络的运维自动化的方法和装置 | |
CN109639484B (zh) | 基于软件定义的工业融合网络管理方法及其网络管理器 | |
JP7281490B2 (ja) | 光ファイバカットオーバー方法、装置、sdnコントローラ、システム、及び記憶媒体 | |
CN111984561B (zh) | 一种bmc的ipmi命令处理方法、系统、设备以及介质 | |
EP4095685A1 (en) | State machine processing method and apparatus, state processing method and apparatus, electronic device, and storage medium | |
US20010052010A1 (en) | Method for controlling trap generation of SNMP | |
CN115996197B (zh) | 一种流量拥塞前置的分布式计算流量仿真系统与方法 | |
CN115150274A (zh) | 时间敏感网络设备的统一配置方法、系统及存储介质 | |
EP2925011B1 (en) | Apparatus and method for managing inner-network element transmission resources | |
CN106375103B (zh) | 一种告警数据采集和发送方法 | |
CN113658351B (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN111787434B (zh) | 一种优化处理omci报文的方法 | |
EP3637690A1 (en) | Service configuration-driven flow table method and device | |
CN111338580B (zh) | 一种磁盘性能优化的方法和设备 | |
CN114328638A (zh) | 一种基于数据库轮询的业务消息推送系统 | |
US8352592B2 (en) | Controlling emission of events from managed systems to external management systems | |
CN106789380A (zh) | 一种虚拟机网络一体化监管系统 | |
Drummond et al. | A distributed dual ascent algorithm for Steiner problems in multicast routing | |
CN112714035A (zh) | 监控方法及系统 | |
CN114640569A (zh) | 动态消息管理装置、设备、系统、方法及存储介质 | |
WO2012024917A1 (zh) | 一种综合网络管理数据上报的系统、方法及接口数据库 | |
CN104572266A (zh) | 制程变异下基于UPPAAL-SMC的MPSoC任务调度建模与评估方法 | |
CN113079183B (zh) | 一种分布式防火墙的板间通信系统及其通信方法 | |
US20060028985A1 (en) | Topology handler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |