1方案设计思路
FC-AE-ASM建立在以消息为基础的通信架构之上,每条消息携带了发送方ID、接收方ID、数据功能、数据内容等所有的关键信息,节点在收到消息之后,按照协议约定进行解读和判断,并以此决定下一步操作,如是否应该接收,接收后需要完成的任务等。在FC-AE-ASM网络中,一条消息可以以单帧或多帧方式传播,帧是数据传输的基本单元,要实现对FC网络传输“数据”的监控,其根本在于对“帧”的监控。帧头中各个字段分别代表了该消息的类型、优先级、服务类型、消息长度、消息发送方和接收方身份等个性信息,是实现网络节点间信息准确交互的保证,帧数据内容主要实现航电系统网络功能,是数据分析的主要对象。ASM帧通过FC帧格式的数据域封装ASM帧头实现协议映射。ELS帧通过FC帧格式的数据域封装ELS帧头实现协议映射。其中ASM非数据块帧为单帧单消息传输,消息量大;ASM数据块消息采用多帧发送的方式,到达目的节点后,基于消息ID和偏移量进行消息重组,多个分帧帧头相同,无需对所有分帧进行过滤;ELS帧主要用作网络管理,每帧的数据量小,处理速度快;此外,作为FC网络组成部分,监控卡自身需要ELS帧进行网络配置,因此,还需对所接收到的本地ELS帧和需监控的ELS帧进行鉴别、分流和处理。完成对FC网络数据的实时监控,应根据帧组织和帧功能的不同设计相应的监控方案。合理的存储机制是影响实时数据消化和处理速率最为重要的环节之一。FC网络通讯速率快,数据量大,为避免丢帧漏帧,监控方案必须保证较高的存储速率;海量的监控数据检索和筛选困难,监控数据的存储方式要考虑后期的数据处理,尽可能的减小后期数据分析难度;同时,监控卡存储空间有限,需要最大限度的提高存储区利用率,减少不必要的空间消耗。考虑如上因素,设计了一种帧压缩按序存储策略。这种方法由逻辑发起,将收到的监控帧不分类型地按序连续存储,提高了存储效率,并在存储前经过预处理和重组过程,增加了监控帧头,为后期数据处理提供了方便。由于FC是一种高速的传输网络,现有的FC网络已经达到了2G、4G的通信速率。一方面,实时的监控需要能实时分析、提取和处理海量的通信信息;另一方面,针对不断变化的监控需求,监控方案设计需要能满足灵活配置的要求。面对以上要求,采用软件监控方式的需要占用大量的主机资源,处理速度慢,效率低,难于达到实时监控的目的;而采用纯硬件方式则具有配置困难、监控方案更改不便、监控不灵活的缺点。针对监控效率和监控灵活性的要求,文章设计了硬件逻辑和软件相结合的监控方案。其中逻辑实现帧的接收、鉴别和分流,软件实现监控方案的配置、监控功能的使能和禁止。
2数据监控策略
图2为的系统数据监控架构。采用软硬件结合方式,按帧类型和功能区分进行监控。监控开始时,主机软件通过写过滤掩码寄存器(以表1为例)配置监控方案,选择需要监控的帧头或数据字段作为目标字段,并将过滤条件写入各字段对应CAM表中,完成监控设置,并通过PCIe接口函数开启监控功能。硬件逻辑利用FC-MAC接收到帧后,存放至接收缓冲区RX_BUFF,帧类别判断及分流系统对该帧进行协议分解,判断帧类型。当接收到ASM非数据块帧时,根据过滤掩码寄存器提供的方案,依次读取各目标字段的值并与对应CAM表的值进行对比,若相同,则提交数据到DMA引擎,并写入主机存储器,若不相同,则对比下一目标字段,若所有目标字段均与CAM表不符合,则直接丢弃。当接收到数据块消息帧时,由于所有分帧的帧头信息相同,因此在接收到数据块消息时,只需对第一帧帧头进行处理筛选,若符合,则后续帧全部提交至主机存储器,若不符合,则后续相同ID的帧全部丢弃。ELS帧主要用来进行网络管理,监控节点作为接入FC网络的一个对象,同样接收网络上发来ELS帧。因此,对监控节点而言,接收到的ELS分为两部分:发给监控卡的本地ELS帧和其余ELS帧,后者才是真正需要监控的ELS数据。因此,逻辑收到ELS帧时,根据帧头信息区分该帧是否为发给自己的本地ELS帧,若是,则提交到内嵌PPC协议处理器进行处理,否则将数据提交给MAC缓冲,依次读取各目标字段的值并对比CAM表,若相同,则提交DMA引擎,并写入主机存储器,否则直接丢弃。
3监控数据存储策略
数据监控机制完成了目的数据的获取,但是在航电通信网络中,通信数据量大,监控数据多,进一步的数据处理和存储仍然存在较多的问题需要解决。首先,FC传输速率快,数据量大,为避免丢帧漏帧,对存储速率要求很高;其次,海量的监控数据检索和筛选困难,需设计数据预处理和重组机制;此外,为提高后期网络故障诊断效率,需完成协议帧的快速提取和定位。为了更好的管理监控数据,我们设计了帧压缩按序连续存储方式。该方式利用逻辑对满足监控要求的ASM帧和ELS帧进行预处理后重新组包,将所有帧看做“数据”,在其前端增加监控帧头,组成新的“监控帧”,并按顺序由DMA引擎通过PCIe接口提交至主机存储区。连续存储减少了在缓冲区间来回切换的消耗,提高了存储效率,预处理主要检查帧的完整性和协议一致性,将结果记录在监控帧头的Flag字段中,将封装后的监控帧长度记录到Length字段中。增加监控帧头的存储方式可以在第一时间内获取监控数据的基本特性,如数据总量、数据的正确性等,在短时间内识别并提取出问题帧,大大缩短了数据分析周期,提高了后期网络故障诊断效率。采用逻辑硬件处理可以保证较高的预处理的速度,预处理过后的“监控帧”不再需要主机进行干预即可立即存储,大大提高了主机存储速率。每个监控帧的完整信息格式如图4所示。
4设计与验证
验证试验中,我们选用XILLIX公司V5FXT系列FPGA搭建监控卡。该系列FPGA具有高速的GTX串行IO接口,可支持多种FC通信速率,内嵌的PPC协处理器提供了强大的数据处理和控制能力,内嵌的PCIe硬核提供了高速的PCIe主机接口。将监控逻辑和驱动软件加载到监控卡上,用于监控一个模拟航电节点,该节点可以向外发送ASM消息及ELS帧。监控卡驱动软件设置几种不同的监控方案,并使能监控功能。采用虚拟FC协议节点制造超短帧、超长帧发送,采用故障注入方式产生CRC错、无效EOF及EOF缺失等协议错误帧。经过实际测试,FC监控策略可以实现正确的监控要求。验证时采取的拓扑结构如下:
5结束语
文章设计了一种针对ASM消息和ELS消息的FC网络实时数据监控策略。在深入分析FC协议及其帧组织结构基础上,实现了对ASM数据块消息、非数据块消息和ELS消息的正确监控,并设计出一种增加自定义监控帧头的帧压缩按序连续存储方式,大大提高了监控数据识别和浙江职称处理的效率,为FC网络系统数据监控提供了解决方案。
作者:杨媛媛 武健 武华 单位:中航工业西安航空计算技术研究所