10G EPON报文的捕获电路及写控制方法
技术领域
本发明涉及通信领域,特别是涉及一种10G EPON报文的捕获电路及写控制方法。
背景技术
10G EPON(10 Giga Ethernet Passive Optical Network,10吉比特以太网无源光网络)是一种近几年才出现的新的高速光纤接入方式。它采用点到多点结构的无源光纤传输,在以太网上承载高速的语音、视频、游戏、IPTV(Internet Protocol Television,交互式网络电视)等多种业务,并提供相当可靠的性能QoS(Quality of Service,服务质量)服务质量。10G EPON高速接入技术的出现,为物联网、云计算的实现和普及创造了条件。
在PON(Passive Optical Network,无源光网络)侧它采用了包括RS(255,223)前向纠错的PCS(Physical Coding Sublayer,以太网物理编码子层)技术,在链路层它采用了RS(Reconciliation Sublayer,协调子层)层技术,在MAC(Media Access Control,媒体访问控制层)层它采用了10G PON MAC技术,并用MPCP(Multiple Point Control Protocol,多点控制协议)技术实现了多个10G ONU(Optical Network Unit,光网络单元)在10G OLT(Optical Line Terminal,光线路终端)的接入。10G EPON***通过更精细的DBA(Dynamically Bandwidth Assignment,动态带宽分配)技术,完成OLT向多个ONU的上行动态带宽分配,实现OLT对物理距离不等的 多个ONU的远程调度及控制,最大限度提升10G EPON***的性能服务质量。
参见图1所示,10G EPON***下行方向采用广播方式向每个ONU发送10G流量;参见图2所示,上行方向采用TDMA(Time Division Multiple Access,时分多址)时分复用的方式接收每个ONU的上行流量。如果在一个DBA上行带宽的授权周期内,某个ONU向OLT发送的流量超过OLT通过DBA nomal GATE(普通授权)帧允许的带宽授权窗口,这个ONU的上行流量就会干扰其它ONU的上行流量,甚至出现频繁出现掉注册的现象。故障出现时,必须深入分析OLT下发的普通授权帧内部的授权起始时间和长度,以及ONU报告帧内部的队列长度报告,才能进一步定位问题,并采取正确的修改措施。
DBA通过交互循环的ONU的报告帧—OLT的普通授权帧—ONU的报告帧—OLT的普通授权帧,完成远程调度。OLT给每个ONU的带宽授权长度和起始时间在GATE(普通授权)帧中携带,ONU通过REPORT帧向OLT汇报,使OLT了解ONU本地的队列状态和业务流量大小。在保证全局公平的前提下,根据ONU每种业务的固定带宽、保证带宽、尽力而为带宽模式不同,OLT向每个ONU带宽授权由OLT的DBA调度算法得到,并由GATE帧消息携带至ONU。10G EPON***为节省GATE帧和REPORT帧交互浪费的带宽,常常使用多级调度的方式。OLT和ONU之间远程调度高效的带宽分配策略,可以使物理距离遥远的OLT和ONU之间的联系变得紧密。
OLT和ONU之间的动态带宽分配/远程调度,需要通过交互的MPCP协议完成。在DBA模式下,OLT根据不同ONU的队列报告,动态分配每一个ONU不同业务映射队列的带宽,可以通过授权帧和 报告帧的交互,观察动态带宽分配过程是否有异常。OLT和ONU进行远程调度,中间过程出现异常,或者需要优化远程调度器的性能,则必须分析局端OLT和用户侧ONU DBA过程之间的REPORT-GATE交互协议帧序列,此时需要在PON侧抓包进行分析。由于10G EPON***有着相对1G EPON***更高的带宽利用率,在实现远程调度时,需要比1G EPON***有更严格控制远程调度的带宽精度。这就要求用更严密地检测OLT和ONU之间的联系和交互,使OLT对ONU的上行带宽分配更精准。另外,ONU和OLT的MPCP/OAM(Operation Administration and Maintenance,操作、管理、维护)注册及去注册过程,也通过交互协议完成。加密解密进程的启动和停止,一样用到交互式协议。
目前10GE/POS(Packet Over SDH)有相应报文捕获装置,例如,申请号为200510011711.X的《10G网络性能测试仪流量接收、抓取和统计电路组件》有以太网报文抓取说明,其带有PON FEC(Forward Error Correction,前向纠错)功能。目前还没有前导码特殊的交互协议的10G PON测试***。
当前捕获帧的筛选和滤除,也只能筛选满足条件的帧,而不将满足条件的帧及其后若干帧数的其它帧,作为一个整体进行采样,周期性反复多次写入PON报文捕获缓存。
根据802.3AV协议,作为光纤接入的10G EPON的以太网帧和普通万兆以太网帧有较大区别。参见图3所示,EPON帧在前导码的定义上,和普通以太网帧有差异。首先,每一个EPON帧在前导码定义了16比特的llid字段,加密状态字段和前导码CRC(Cyclic Redundancy Check,循环冗余校验)字段;其次,由于10G OLT和ONU之间可能有较长的传输距离,这样高速长距离的传输,中间可 能会出现较多的误码;802.3AV协议规定的PHY(Physical Layer,物理层芯片)层的前向纠错算法是基于数据流方式的,而非基于单帧进行前向纠错,所以必须经过复杂的RS(255,223)前向纠错和64b/66b编解码,并通过昂贵的光器件收发10G EPON报文。
10G以上高速交互式PON报文,其捕获方法非常复杂,对设备商及运营商而言,一直是不可见的黑匣子,这给10G EPON技术的推广和应用带来了很大障碍。10G EPON***设备提出了更为苛刻的测试需求,当前10GE测试设备很难满足实际测试要求,无法捕捉并分析10G EPON报文;此外,当前通信交换速率越来越来越高,而抓包缓存相对有限,写入EPON帧时,设置相应的触发或筛选条件则越来越重要。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供10G EPON报文的捕获电路及写控制方法,能够实现满速率捕获和分析10G连续的EPON报文,并能通过特定触发或筛选条件,减少捕获报文存储的空间,提升远程调度器的性能和使用效率,充分挖掘EPON***的潜力,增强不同设备厂家之间的互通能力。
本发明提供的10G EPON报文的捕获电路包括:bit位调整电路、与bit位调整电路相连的数据预分析模块、定时装置、分别与定时装置相连的触发点生成模块、描述先入先出缓存和CPU、分别与CPU相连的帧捕获使能生成模块、模式选择器和缓存读写控制模块、以及与帧捕获使能生成模块相连的数据先入先出缓存;触发点生成模块分别与数据预分析模块、描述先入先出缓存、CPU相连,触发点生成模块接收CPU下发的帧匹配规则;bit位调整电路与数据先入先出缓存相连,帧捕获使能生成模块分别与描述先入先出缓存、数据先入先 出缓存、模式选择器相连;模式选择器与缓存读写控制模块相连;bit位调整电路还通过最简手动模式通道与模式选择器相连,最简手动模式通道还与定时装置相连,获得10G EPON报文到达捕获电路的时间。
在上述技术方案中,所述捕获电路采用FPGA实现,或采用专用集成电路ASIC方式在10G EPON芯片内部嵌入实现,捕获电路中用于储存数据的储存器采用DDR实现,或者在10G EPON ONU或OLT芯片内部采用大缓存实现。
在上述技术方案中,所述数据预分析模块包括分别与bit位调整电路相连的帧头内容匹配触发标志生成电路、帧长计算电路和CRC校验和本帧错误检测电路,用于对经过比特位调整电路后的数据帧进行帧长统计、CRC校验和帧头匹配;帧头内容匹配触发标志生成电路,用于生成帧头内容匹配触发标志;帧长计算电路,用于从帧头开始对当前帧长度进行计算,在帧尾得到帧长,并保存在帧长信息寄存器;CRC校验和本帧错误检测电路,用于检测本帧错误,在帧尾得到CRC校验结果,作为随帧携带的CRC校验错误指示信息,写入PON报文储存缓存描述格式内。
在上述技术方案中,所述触发点生成模块包括分别与帧头内容匹配触发标志生成电路和描述先入先出缓存相连的触发点标志产生电路、分别与帧长计算电路和触发点标志产生电路相连的帧长匹配电路、分别与CRC校验和本帧错误检测电路和触发点标志产生电路相连的帧错匹配电路;帧长匹配电路,用于将帧长计算电路得到的帧长保存在帧长信息寄存器内,在帧长匹配使能配置为高的情况下,与帧长匹配规则比对,得到帧长匹配标签;帧错匹配电路,用于将CRC校验和本帧错误检测电路得到的帧错指示与帧错匹配使能相与得到 帧错匹配标签;触发点标志产生电路,用于将帧头匹配标签、帧长匹配标签、帧错匹配标签以及开始捕获使能相与,得到此帧的触发点标志,表明此帧是否为捕获的开始点。
在上述技术方案中,所述帧捕获使能生成模块包括分别与描述先入先出缓存和模式选择器相连的帧捕获使能产生电路、分别与描述先入先出缓存和模式选择器相连的帧描述生成电路、分别与数据先入先出缓存和模式选择器相连的数据延迟电路;描述先入先出缓存,用于写入帧数据的相关描述信息;帧捕获使能产生电路,用于产生帧捕获使能;帧描述生成电路,用于生成帧描述,帧描述是帧能否写入捕获缓存的标志;数据先入先出缓存,用于缓存经bit位调整电路调整过的数据;数据延迟电路,用于将数据先入先出缓存缓存的数据延迟一段时间。
在上述技术方案中,所述缓存读写控制模块包括与模式选择器相连的缓存写控制电路、与缓存写控制电路相连的捕获缓存、分别与缓存写控制电路和捕获缓存相连的缓存管理电路、分别与捕获缓存、缓存管理电路和CPU相连的缓存读控制电路,CPU还连接有终端;缓存写控制电路,用于将模式选择器选择的数据写入捕获缓存;捕获缓存,用于存储捕获的10G EPON报文;缓存管理电路,用于管理写入的数据;缓存读控制电路,用于读取写入的缓存数据。
基于上述捕获电路,本发明还提供一种10G EPON报文的写控制方法,包括以下步骤:10G EPON OLT和ONU之间交互的EPON报文,经过光模块和10G SERDES接收,并在PCS子层完成解码后,根据10G EPON***时间或其它设定条件组合触发报文捕获;将捕获的10G EPON报文写入位于片内RAM或者外挂DDR内部的捕获缓存;每个捕获帧在文件内保存的步骤和格式如下:在帧包络有效时的 偶数时钟周期,写入128比特帧数据;在帧尾后一个时钟周期,写入本帧的帧头字节数、帧尾字节数、到达时间、本帧错误指示、CRC校验错误指示和帧分界符;捕获电路内部时钟工作在156.25MHz的10G PCS接收时钟频率。
在上述技术方案中,所述捕获缓存内存放数据帧FRAME、帧分界符HEADER和帧描述;FRAME是写入的帧内容,帧的包络有效时,每偶数时钟周期将64比特帧总线数据拼成128比特,写入抓包缓存,从8字节的前导码开始算起,一直到帧尾的CRC字段结束;HEADER是帧分界符,区分连续写入两个EPON帧的边界;帧描述包括到达时间、帧头无效字节数、帧尾无效字节数、本帧错误指示和CRC校验错误指示,到达时间表示帧到达10G EPON报文捕获电路的时间,时间精度以6.4纳秒、156.25MHz的时钟周期计算,与10GSERDES的数据恢复时钟同步;本帧错误指示表示本帧是否有经PCS解码发现的码字错误和极性错误;CRC校验错误指示表示二层CRC校验错误。
在上述技术方案中,存储10G EPON报文的捕获缓存使用先进先出缓存管理,捕获缓存宽度为128比特,在非帧尾处每个地址均为数据,若帧包络长度为偶数,帧尾所在地址均为数据;若帧包络长度为奇数,帧尾所在地址高64位为数据,低64位为空;帧尾数据下一个地址写入该帧的描述,高64位为帧分界符HEADER,低64位为帧描述;将帧数据和帧描述延迟1拍;设置一个奇偶寄存器,当遇到帧头时,奇偶寄存器置1,否则奇偶寄存器每个时钟上升沿取反;当先进先出缓存未满,帧捕获描述或帧捕获描述一拍时延为1,且奇偶寄存器、帧尾指示、帧尾一拍延迟指示三者至少一个为1,将先进先出缓存写使能置高;帧尾一拍延迟指示为1时,缓存输入数据为帧描 述;否则,奇偶寄存器为1时将上一个时钟64比特数据与当前64比特数据作为先进先出缓存输入数据;否则,帧尾指示有效时,将上一个时钟64比特数据和64比特的0送到缓存数据入口。
在上述技术方案中,所述捕获缓存的写操作流程如下:
步骤101:判断帧头标志为0还是1,若帧头标志为1,则转到步骤102;若帧头标志为0,则转到步骤103;
步骤102:奇偶标志置1;
步骤103:奇偶标志取反,再返回步骤101;
步骤104:写地址置0;
步骤101~103与步骤104两个进程并行;
步骤105:判断帧捕获描述或帧捕获描述1拍时延指示为0或1,若为0,则继续判断,直至为1时,转到步骤106;
步骤106:判断帧尾指示1拍时延指示为1还是0,若为1,则转到步骤107;若为0,则转到步骤108;
步骤107:写入描述{64′h0,dscp},再转到步骤112;
步骤108:判断奇偶标志为1还是0,若为1,则转到步骤109;若为0,则转到步骤110;
步骤109:写入数据{data_d1,data},再转到步骤112;
步骤110:判断帧尾指示为1还是0,若为1,则转到步骤111;若为0,则返回步骤105;
步骤111:写入数据{data,64′h0},再转到步骤112;
步骤112:写地址进位;
步骤113:判断缓存是否已满,若缓存未满,则返回步骤105,否则结束。
在上述技术方案中,所述捕获缓存读操作的过程为:将捕获缓 存的空状态发送到CPU,当开始读缓存时,CPU判断缓存的空状态为0还是1,如果为0,向捕获缓存发送读使能;如果为1,捕获缓存读空结束。
在上述技术方案中,所述帧头内容匹配触发标志生成电路通过至少4个滑动窗口选取特征字段,每个滑动窗口长度为T字节,1≤T≤4,且为整数,帧头大于等于64字节,根据配置的滑动窗口起点偏移量,每个滑动窗口选取帧头以内的任意T个连续字节作为特征字段,对帧头4T的字段进行匹配校验,当四个滑动窗口获取的特征字段与设置的四个匹配窗分别一样,且四个滑动窗口匹配使能均有效,则当前帧的帧头匹配正确。
在上述技术方案中,所述帧头内容匹配触发标志生成电路的具体实现过程如下:将原数据data_ini延迟一拍得到data_d1,将帧头指示sop_ini,延迟9拍依次得到sop_d1、sop_d2、……sop_d9,每个滑动窗口最大4字节,相应选取的4字节准特征字段在一拍数据中或跨越两拍数据,根据每个滑动窗的偏移量的不同,在特定的sop_dx处从data_ini和data_d1中获取4字节的准特征字段,偏移量为14时在sop_d2得到准特征字段,并锁存到帧头尾部sop_d8;四个滑动窗口并行等到4个独立的准特征字段,每个准特征字段4字节。根据每个滑动窗口的大小,从对应的准特征字段选取特征字段,并与设置的匹配窗口比对,如果比对正确或者该滑动窗口匹配使能无效,则此滑动窗口匹配正确,若四个滑动窗口均比对正确,则此帧帧头匹配标签置为1,否则为0。
在上述技术方案中,所述帧捕获使能生成模块设置一个窗口长度计数器,复位有效时窗口长度计数器置为设定的捕获窗口值,触发点标志为1时,窗口长度计数器清零;帧尾指示、包络为1时,窗口 长度计数器自加1;当窗口长度计数器等于设定的捕获窗口值时,窗口长度计数器保持;在帧头处,开始标志或触发点标志为1或窗口长度计数器不等于设定的捕获窗口值,拉高当前帧的帧捕获描述;并在帧尾拉低帧捕获描述;当帧尾窗口长度计数器等于设定的捕获窗口值时,帧捕获描述拉低;当前帧帧尾读出前一拍时,开始判断描述先进先出缓存是否非空,如果非空,则开始读下一个帧的描述和数据,并保证前后两个帧间隔最小为一拍开销。
在上述技术方案中,筛选捕获的触发窗口控制流程如下:
步骤201:判断复位标志为1还是0,若为0,则转到步骤202;若为1,则转到步骤203;
步骤202:窗口计数器置为设定捕获窗口,再返回步骤201;
步骤203:判断触发点标志为1还是0,若为1,则转到步骤204;若为0,则转到步骤205;
步骤204:窗口计数器清零,再返回步骤201;
步骤205:判断帧尾指示为1还是0,若为1,则转到步骤206;若为0,则返回步骤201;
步骤206:判断窗口计数器是否等于设定捕获窗口值,若是,则返回步骤201;否则转到步骤207;
步骤207:窗口计数器自加1;
步骤208:判断帧头指示为1还是0,若为0,则继续判断,直至为1,再转到步骤209或210;步骤207、208是两个并行独立的进程,步骤208由步骤201初始化复位进入;
步骤209:判断开始标志或触发点标志为1还是0,若为1,则转到步骤211;若为0,则返回步骤208;
步骤210:判断窗口计数器是否等于设定捕获窗口值,若是,则 返回步骤208;否则转到步骤211;
步骤211:帧捕获描述拉高;
步骤212:判断帧尾指示为1还是0,若为1,则转到步骤213;若为0,则继续判断,直至为1,再转到步骤213;
步骤213:帧捕获描述拉低。
与现有技术相比,本发明的优点如下:
(1)本发明参考802.3AV协议,对抓包方法进行改进,开发了一套让交互式PON报文对用户透明的方法。根据当前测试仪表的特点做出了一系列的改进,成功实现了一个成本低廉、易于实现的***设备,并在virtex 5 FPGA(Field Programmable Gate Array,现场可编程门阵列)试验平台上实现了对10G EPON***PON报文的高速自动捕获和分析,并在PC机上打印PON***内部报文。
(2)本发明能够精确(6.4纳秒的时间精度)捕获分析10G EPON OLT/ONU的注册、去注册过程的协议帧,通过判断故障时间,抓出包括OAM帧在内的EPON报文,查明ONU掉注册等原因,使10G EPON设备厂家和用户更好把握MPCP\OAM注册及去注册过程。
(3)由于10G PON***的带宽非常高,1G的这样高容量的存储空间也只能存储0.1秒的数据。在10G PON报文储存空间有限的条件下,通过设计合理的筛选条件,能够减少捕获报文存储的空间。
(4)本发明通过捕获的EPON协议帧,包括DBA上行动态带宽分配时OAM帧、OLT普通授权帧、ONU的队列报告帧,在不同的带宽分配模式下,如固定带宽、保证带宽、尽力而为带宽模式、全力而为带宽模式等,分析上行动态带宽的性能,能够提升远程调度器的性能和使用效率,提升优化OLT的DBA调度器的性能,充分挖掘EPON***的潜力。
(5)本发明通过捕获分析的10G EPON协议帧,使有如加解密交互等私有协议的不同厂家EPON***设备的能够完成互通,增强不同设备厂家之间的互通能力。
附图说明
图1是10G EPON下行报文的发送方式示意图。
图2是10G EPON上行报文的发送方式示意图。
图3是EPON协议帧的结构示意图。
图4是本发明实施例中10G PON报文捕获电路的结构框图。
图5是10G EPON测试***的下行光捕获在用户ONU侧的应用场景图。
图6是10G EPON测试***的上行光捕获在局端OLT侧的应用场景图。
图7是本发明实施例中捕获电路的结构框图。
图8是本发明实施例中帧头无效字节数、帧尾无效字节数的示意图。
图9是本发明实施例中捕获缓存写操作的流程图。
图10是本发明实施例中四个可变大小的4字节滑动窗的原理图。
图11是本发明实施例中筛选捕获的触发窗口控制的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图4所示,上/下行光接收光模块和10G上下行SERDES等***物理器件,即802.3AV标准规定的PHY上游接收物理器件的10GSERDES及光模块,作为外部接口,主要用于接收PON侧的上下行光。802.3FEC/PCS/RS/PON MAC,即802.3AV标准规定的PHY、 PON MAC及相应捕获接口电路,与10G上下行SERDES相连,用于将接收到的PON侧的上下行光经过10G上下行SERDES到802.3 FEC/PCS/RS/PON MAC中的OLT PCS模块完成FEC解码、带前导码的PON报文恢复。捕获电路通过总线与802.3 FEC/PCS/RS/PONMAC相连,用于捕获电路将PON报文按照本文规定的格式和原始帧序列的顺序采集到存储器内。
捕获电路可以采用FPGA(Field Programmable Gate Array,现场可编程门阵列)实现,也可采用ASIC(Application Specific Integrated Circuit,专用集成电路)方式在10G EPON芯片内部嵌入。本捕获电路储存数据的储存器可以采用DDR(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器)实现,也可在10G EPON ONU或者OLT芯片内部采用大缓存实现。本发明实施例中用到了含virtex5 330t FPGA和MT47H64M16HR-25E(DDR2-800内存)的FPGA测试板,virtex5 330t FPGA内部可以装两个缓存深度是32768,宽度是128比特的片内RAM(Random Access Memory,随机存储器),实现了10G高速EPON报文的抓取,工作频率可以达到156兆赫兹以上。
本发明实施例中10G EPON报文的捕获电路分为上行光捕获电路和下行光捕获电路两种,对10G EPON***的OLT/ONU PON口的EPON帧进行捕获和分析,可以独立于PHY或者MAC,或用于其它10G高速接入网***。10G EPON报文的捕获电路的应用分为用户ONU侧和局端OLT侧两类场景。
用户ONU侧的应用场景参见图5所示,在被测10G EPON***中,捕获电路的下行光接收光模块,连接无源光分路器(splitter)的与ONU平行的其它下联口,捕获电路收到来自OLT的10G下行PON 报文后,先通过10G下行SERDES(SERializer/DESerializer,串并化器),再到OLT PCS模块完成FEC解码,和带前导码的PON报文恢复。
局端OLT侧的应用场景参见图6所示,在被测10G EPON***中,捕获电路的上行光接收光模块连接无源光分路器(splitter)的与OLT平行的其它上联口,收到来自ONU的10G上行突发光,再经过10G上行SERDES到OLT PCS模块完成FEC解码、带前导码的PON报文恢复。
参见图7所示,本发明实施例中的捕获电路包括定时装置、分别与定时装置相连的数据预分析模块、触发点生成模块、描述先入先出缓存和CPU、与数据预分析模块相连的bit位调整电路、以及分别与CPU相连的帧捕获使能生成模块、模式选择器和缓存读写控制模块,触发点生成模块还与CPU相连,bit位调整电路与帧捕获使能生成模块之间还连接有数据先入先出缓存,bit位调整电路还通过最简手动模式通道与模式选择器相连,最简手动模式通道还与定时装置相连。
数据预分析模块包括分别与bit位调整电路相连的帧头内容匹配触发标志生成电路、帧长计算电路和CRC校验和本帧错误检测电路,用于对经过比特位调整电路后的数据帧进行帧长统计、CRC校验和帧头匹配。帧头内容匹配触发标志生成电路,用于生成帧头内容匹配触发标志。帧长计算电路,用于从帧头开始对当前帧长度进行计算,在帧尾得到帧长,并保存在帧长信息寄存器。CRC校验和本帧错误检测电路,用于检测本帧错误,及在帧尾得到CRC校验结果,作为随帧携带的CRC校验错误指示信息,写入PON报文储存缓存描述格式内。
触发点生成模块包括分别与帧头内容匹配触发标志生成电路和 描述先入先出缓存相连的触发点标志产生电路、分别与帧长计算电路和触发点标志产生电路相连的帧长匹配电路、分别与CRC校验和本帧错误检测电路和触发点标志产生电路相连的帧错匹配电路。帧长匹配电路,用于将帧长计算电路得到的帧长保存在帧长信息寄存器内,在帧长匹配使能配置为高的情况下,与帧长匹配规则比对,得到帧长匹配标签。帧错匹配电路,用于将CRC校验和本帧错误检测电路得到的帧错指示与帧错匹配使能相与得到帧错匹配标签,CRC校验另外用一个比特。触发点标志产生电路,用于将帧头匹配标签、帧长匹配标签、帧错匹配标签以及开始捕获使能相与,得到此帧的触发点标志,表明此帧是否为捕获的开始点。触发点标志表示对应的帧是捕获序列的开始点。
帧捕获使能生成模块包括分别与描述先入先出缓存和模式选择器相连的帧捕获使能产生电路、分别与描述先入先出缓存和模式选择器相连的帧描述生成电路、分别与数据先入先出缓存和模式选择器相连的数据延迟电路,描述先入先出缓存,用于写入帧数据的相关描述信息;帧捕获使能产生电路,用于产生帧捕获使能;帧描述生成电路,用于生成帧描述,帧描述是帧能否写入捕获缓存的标志,捕获缓存只写入帧捕获描述为1的报文;数据先入先出缓存,用于缓存经bit位调整电路调整过的数据;数据延迟电路,用于将数据先入先出缓存缓存的数据延迟一段时间。
缓存读写控制模块包括与模式选择器相连的缓存写控制电路、与缓存写控制电路相连的捕获缓存、分别与缓存写控制电路和捕获缓存相连的缓存管理电路、分别与捕获缓存、缓存管理电路和CPU相连的缓存读控制电路,CPU还连接有终端。缓存写控制电路,用于将模式选择器选择的数据写入捕获缓存;捕获缓存,用于存储捕获的 10G EPON报文;缓存管理电路,用于管理写入的数据;缓存读控制电路,用于读取写入的缓存数据。
参见图7所示,如果一开始捕获使能产生电路中启动了最简手动模式,经比特调整后的数据,在帧尾添加时戳信息并强制拉高帧捕获描述,经模式选择器传给10G EPON报文储存的缓存写控制电路,其他需要额外添加的描述信息全部置0;否则,将帧捕获使能产生电路的输出,作为PON报文储存的缓存写控制电路的输入。
在上述10G EPON报文的捕获电路基础上,本发明实施例还提供一种10G EPON报文的写控制方法,包括以下步骤:10G EPON OLT和ONU之间交互的EPON报文,经过光模块和10G SERDES接收,并在PCS子层完成解码后,根据10G EPON***时间或其它设定条件组合触发报文捕获;捕获报文写入位于片内RAM或者外挂DDR内部的捕获缓存。每个捕获帧在文件内保存的格式定义如下:在帧包络有效时的偶数时钟周期,写入128比特帧数据;在帧尾后一个时钟周期,写入本帧的帧头字节数、帧尾字节数、到达时间、本帧错误指示、CRC校验错误指示和帧分界符。
捕获核心***内部时钟工作在156.25MHz的10G PCS接收时钟频率。由于10G EPON ONU的时钟与10G EPON OLT的时钟同步,捕获***采用10G SERDES的恢复时钟,能严格与EPON OLT的时钟同步,所以写入内部PON报文存储器速率,可以满足最大净荷速率为10G的EPON***要求,用来捕获10G满速率EPON报文不会有丢包。根据802.3AV标准,10G PCS出口及PON MAC出口数据采用64比特接口。捕获电路的第二部分和第三部分内部接口采用64比特的数据线,再加上若干比特的信息描述。
下面详细说明本捕获电路的10G EPON报文及其描述在存储器 内保存的格式。
捕获缓存内存放数据帧FRAME、帧分界符HEADER和帧描述。FRAME是写入的帧内容,帧的包络有效时,每偶数时钟周期将64比特帧总线数据拼成128比特,写入抓包缓存,从8字节的前导码开始算起,一直到帧尾的CRC字段结束。HEADER是帧分界符,采用特殊定义的8字节的作为帧分界符,区分连续写入两个EPON帧的边界,特殊定义8字节的帧分界符一般不能与下一个帧的帧头内容冲突,否则就需要修改帧分界符内容;只要让帧分界符不与有多个55的八字节前导码相似,帧分界符就能严格作为前后两个帧的分界标志。捕获缓存存放的帧描述格式包括到达时间、帧头无效字节数、帧尾无效字节数、本帧错误指示和CRC校验错误指示。IPG帧间隔时钟周期写入本帧的帧头字节数、帧尾字节数、到达时间、本帧错误指示、CRC校验错误指示、帧分界符。10G EPON报文帧尾描述部分写入的格式参见表1所示。
表1、写入10G EPON报文的储存格式
表1中的“到达时间”表示帧到达10G EPON报文捕获电路的时间。10G EPON报文捕获电路的时间精度以6.4纳秒、156.25MHz的时钟周期计算,与10G SERDES的数据恢复时钟同步,到达时间字段用49个比特表示,全1表示3602879.7018963904秒=1000.8小时=41.7天。“本帧错误指示”表示本帧是否有错误,主要是经PCS解码发现的码字错误和极性错误。“CRC校验错误指示”表示二层CRC错误。
帧头无效字节数:用带RS(255,223)前向纠错功能的PCS电 路的帧头定界符,恢复出来的帧头包络使能,确定帧头的时钟周期的64比特数据总线内有多少字节是无效数据。无效字节数取值范围为0到7字节。帧头无效字节一般由本时钟周期的空闲码或特殊码组成。通常情况下,帧头无效字节数经过总线变换后变为0或者4字节。参见图8所示,帧头无效字节和上一时钟周期的空闲码无缝连接,帧头有效字节同净荷相无缝连接。第二部分的比特位调整电路将PON
MAC入口处的帧头第一个时钟无效字节去除,使帧头全为有效字节,并将后续有效字节提前,以支持后续模块的CRC检查电路,并简化帧内容匹配功能的实现。经过比特位调整电路将帧头第一个时钟全部变成有效字节后,帧头无效字节数可以固定为0。
帧尾无效字节数:用带RS(255,223)前向纠错功能的PCS电路的帧头定界符,恢复出来的帧头包络使能,确定帧尾的时钟周期的64比特数据总线内有多少字节是无效数据。帧尾无效字节一般由本时钟周期的空闲码或特殊码组成。帧尾无效字节数取值范围为0到7字节。帧尾无效字节和下一时钟周期的空闲码无缝连接,帧尾有效字节同上一个时钟周期的净荷相无缝连接,帧头无效字节数和帧尾无效字节数在帧序列内的位置参见图8所示。
用来存储10G EPON报文的捕获片内缓存使用先进先出缓存管理,本捕获***的捕获缓存宽度为128比特,在非帧尾处每个地址均为数据,在帧尾处分为两种情况:如果帧包络长度为偶数,帧尾所在地址均为数据;如果帧包络长度为奇数,高64位为数据,低64位为空。帧尾数据下一个地址写入该帧的描述,高64位为HEADER(帧分界符),低64位帧描述格式如表1所示。为了使打印出的数据查看顺序符合自左至右的习惯,每一拍帧数据高低字节需要做替换调整。
将帧数据和帧描述延迟1拍;设置一个奇偶寄存器,当遇到帧头 时,奇偶寄存器置1,否则奇偶寄存器每个时钟上升沿取反。当先进先出缓存未满,帧捕获描述(帧捕获描述和帧描述是两个不同概念:帧描述指的是帧长、帧错等特征信息,不能只用0、1表示;帧捕获描述是一个动作,表示是捕获还是不捕获,可以用0、1表示,0,表示不动作;1,表示动作)或帧捕获描述一拍时延为1,且奇偶寄存器、帧尾指示、帧尾一拍延迟指示三者至少一个为1,将先进先出缓存写使能置高。帧尾一拍延迟指示为1时,缓存输入数据为帧描述;否则,奇偶寄存器为1时将存数据{data_d1,data},即上一个时钟64比特数据与当前64比特数据作为先进先出缓存输入数据;否则,帧尾指示有效时,将{data_d1,64′h0}(奇数帧尾),即上一个时钟64比特数据和64比特的0送到缓存数据入口。
参见图9所示,捕获缓存的写操作流程如下:
步骤101:判断帧头标志为0还是1,若帧头标志为1,则转到步骤102;若帧头标志为0,则转到步骤103。
步骤102:奇偶标志置1。
步骤103:奇偶标志取反,再返回步骤101。
步骤104:写地址置0。
步骤101~103与步骤104这两个进程是并行的,步骤104将写地址初始化为0,步骤104后面的进程要用到步骤101~103中的奇偶标志,这样设计的好处,是能保证10G满速率的EPON数据流,加上到达时间等描述,能够无缝写入缓存。
步骤105:判断帧捕获描述或帧捕获描述1拍时延指示为0或1,若为0,则继续判断,直至为1时,转到步骤106。
步骤106:判断帧尾指示1拍时延指示为1还是0,若为1,则转到步骤107;若为0,则转到步骤108。
步骤107:写入描述{64′h0,dscp},再转到步骤112。
步骤108:判断奇偶标志为1还是0,若为1,则转到步骤109;若为0,则转到步骤110。
步骤109:写入数据{data_d1,data},再转到步骤112。
步骤110:判断帧尾指示为1还是0,若为1,则转到步骤111;若为0,则返回步骤105。
步骤111:写入数据{data,64′h0},再转到步骤112。
步骤112:写地址进位。
步骤113:判断缓存是否已满,若缓存未满,则返回步骤105,否则结束。
捕获缓存读操作的过程为:将捕获缓存的空状态发送到CPU,当开始读缓存时,CPU判断缓存的空状态为0还是1,如果为0,向捕获缓存发送读使能;如果为1,捕获缓存读空结束。
捕获开始后,需要检查帧序列中哪些帧需要写入10G EPON报文存储缓存,这一过程称为捕获筛选过程。开启捕获后,如果不要求将所有的EPON报文都写入缓存,可以设计相应带多个滑动窗的协议帧过滤。滑动窗从前导码开始,直到帧头2N(N≥6,且为整数)结束。这样可以筛选由帧头承载的任何协议帧。开启捕获后,补充特定帧捕获筛选窗口的功能。当捕获电路判断某10G EPON帧满足筛选条件时,将此帧及其后按照微机接口配置特定的帧数据写入缓存。可以通过解析帧头内容或者分析帧状态的方法来实现定时的启动,及定时完成后的帧捕获筛选。可用作捕获筛选条件的帧相关信息有:在10G速率EPON报文序列内部筛选用户要求的帧,例如MPCP帧、OAM帧,4个4字节滑动窗提取出来的帧内容;或发现CRC错误帧、帧长异常、码字错误、任意位置出现的帧错误等帧描述,或者发现以上 至少一种帧描述及至少一种帧内容的组合,则在帧尾给出一个标志,作为相对定时启动或者捕获筛选触发的条件之一。捕获后的10G
EPON报文经微机接口在PC机的终端软件打印或者保存为可读写的文件格式,最后由软件完成分析。
开启报文捕获以后,10G EPON数据流的所有帧及描述并不能全部写入存储器,必须通过用户定义的筛选过滤条件,将需要的帧,如MPCP/OAM帧,CRC错误帧从数据流中提取出来,再写入储存器。
帧头内容匹配触发标志生成电路的实现原理如下:为了增强帧内容匹配功能,帧头匹配通过n≥4个滑动窗口选取特征字段,每个滑动窗口长度为T(1-4字节,大小可设),1≤T≤4,且为整数,根据配置的偏移量(每个滑动窗口起点)每个滑动窗口可以选取帧头(≥64字节)以内的任意T个连续字节作为特征字段,这样可以对帧头4T的字段进行匹配校验。当四个滑动窗口获取的特征字段与设置的四个匹配窗分别一样,且四个滑动窗口匹配使能均有效(匹配使能无效的滑动窗口认为其匹配正确),则当前帧帧头匹配正确。
参见图10所示,帧头内容匹配触发标志生成电路的具体实现过程如下:将原数据data_ini延迟一拍得到data_d1,将帧头指示sop_ini,延迟9拍依次得到sop_d1、sop_d2、……sop_d9。每个滑动窗口最大4字节,相应选取的4字节准特征字段可能在一拍数据中,也可能跨越两拍数据,根据每个滑动窗的偏移量的不同,会在特定的sop_dx处从data_ini和data_d1中获取4字节的准特征字段,偏移量为14时在sop_d2得到准特征字段,并锁存到帧头尾部(sop_d8)。四个滑动窗口并行等到4个独立的准特征字段(每个准特征字段4字节)。根据每个滑动窗口的大小,从对应的准特征字段选取特征字段,并与设置的匹配窗口比对,如果比对正确或者该滑动窗口匹配使能无效,皆 认为此滑动窗口匹配正确,四个滑动窗口均比对正确,则此帧帧头匹配标签置为1,否则为0。
帧数据的相关描述信息包括以下几种:
1、帧长信息:帧长计算电路计算得到的帧长信息,写使能有效时锁存到帧描述先进先出缓存。
2、开始标志:触发点标志产生电路得到的定时捕获触发条件标签为1,则此帧需要写入捕获缓存。
3、帧错指示描述与CRC错误帧指示。
4、触发点标志:表明对应的帧是捕获序列的开始点。
5、49bit到达时间:帧到达捕获***时间信息,由定时***给出,帧描述写使能有效时,写到达时间入帧描述先进先出缓存。
以上描述信息全部准备好后,产生帧描述先进先出缓存写使能,一并写入帧描述先进先出缓存。帧描述先进先出缓存宽度68比特,深度为4k/64=64,缓存大小≥4352比特,深度根据帧捕获缓存确定。在数据使能有效时,将帧数据写入数据先入先出缓存,帧尾数据写入帧捕获缓存后的第三拍,当前帧的描述才会写入描述先入先出缓存。帧捕获缓存的规格:宽度64比特,深度512,共计32kb,支持最大长度≥4024字节的帧,根据支持的最大帧长,RAM深度可扩展。
在描述先进先出缓存的读端口,当描述先进先出缓存非空时,即读出帧描述,并同时开始持续读出对应的帧内容。根据帧描述中的帧长信息,解析出当前帧在帧捕获缓存中的深度以及帧尾无效字节数,进而确定当前帧帧尾在帧捕获缓存的位置。根据以上及其他信息确定当前帧的帧头指示、帧尾指示、包络、帧尾无效字节数、帧错指示、到达时间。
捕获窗口的原理如下:帧捕获使能生成模块设置一个窗口长度计 数器,复位有效时窗口长度计数器置为设定的捕获窗口值,触发点标志为1时,窗口长度计数器清零;帧尾指示、包络为1时,窗口长度计数器自加1;当窗口长度计数器等于设定的捕获窗口值时,窗口长度计数器保持。在帧头处,“开始标志”或触发点标志为1或窗口长度计数器不等于设定的捕获窗口值,拉高当前帧的帧捕获描述;并在帧尾拉低帧捕获描述。当帧尾窗口长度计数器等于设定的捕获窗口值时,帧捕获描述拉低。
为保证报文包络与帧捕获描述对齐,需要将读出的报文数据和其他描述信息延迟一拍。注意读下一帧描述和数据的时机是,当前帧帧尾读出前一拍即开始判断描述先进先出缓存是否非空,如果非空开始读下一个帧的描述和数据,并保证前后两个帧间隔最小为一拍开销。
参见图11所示,筛选捕获的触发窗口控制流程如下:
步骤201:判断复位标志为1还是0,若为0,则转到步骤202;若为1,则转到步骤203。
步骤202:窗口计数器置为设定捕获窗口,再返回步骤201。
步骤203:判断触发点标志为1还是0,若为1,则转到步骤204;若为0,则转到步骤205。
步骤204:窗口计数器清零,再返回步骤201。
步骤205:判断帧尾指示为1还是0,若为1,则转到步骤206;若为0,则返回步骤201。
步骤206:判断窗口计数器是否等于设定捕获窗口值,若是,则返回步骤201;否则转到步骤207。
步骤207:窗口计数器自加1。
步骤208:判断帧头指示为1还是0,若为0,则继续判断,直至为1,再转到步骤209或210。步骤207、208是两个并行独立的进 程,步骤208实际由步骤201初始化复位进入。
步骤209:判断开始标志或触发点标志为1还是0,若为1,则转到步骤211;若为0,则返回步骤208。
步骤210:判断窗口计数器是否等于设定捕获窗口值,若是,则返回步骤208;否则转到步骤211。
步骤211:帧捕获描述拉高。
步骤212:判断帧尾指示为1还是0,若为1,则转到步骤213;若为0,则继续判断,直至为1,再转到步骤213。
步骤213:帧捕获描述拉低。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。