刘 宇,金 鑫,周治国
(中国电子科技集团公司第三十二研究所,上海 201808)
随着航空电子的快速发展,在MIL-STD系列、ARINC-429和ARINC-629数据通讯方式之后,基于ARINC-664的AFDX网络凭借吞吐量大、时间确定性高以及与以太网兼容性好等优势,逐渐成为航空电子设备之间数据传输的主要方式。AFDX是航空用全双工交换式网络(Avionics Full Duplex Switched Ethernet)的简称,是一个用来定义在航空电子系统之间进行数据交换所应遵循的电气要求和协议规范(IEEE802.3和ARINC 664的第7部分)的标准[1]。该标准定义了端系统和交换机在链路层、网络层等网络体系结构上的功能、性能和互操作性,定义了虚拟链路、带宽分配、冗余管理、帧完整性过滤、流量管制、交换机静态路由配置等机制[2]。AFDX在IEEE802.3协议的基础上引入了虚拟链路的概念,每条虚拟链路都有间隔、抖动以及延迟等参数,保证虚拟链路上的数据流传输的可靠性。
AFDX网络管理包括对网络中交换机、端系统及软件系统的数据管理,如图1所示,管理信息通过SNMP协议[3]进行交互。SNMP作为一组为实现网络自动化管理任务而制定的一系列通行标准,被广泛应用于计算机网络管理活动中。现有的AFDX网络管理也采用SNMP协议通过AFDX网络发送查询命令以及相应回复,以此来实现对综合任务处理系统的监控与管理。
AFDX交换机是AFDX网络的核心设备,支持10 BaseT和100 BaseT的以太网数据传输[4],几乎所有的数据流都会通过交换机进行传输,所以为了维护AFDX网络的安全,监控网络中每个交换机的数据流信息尤为重要,网络数据的流量、错误统计需要及时上报,所以在ARINC 664的第7部分中规定每100 ms更新一次数据库[2]。本文介绍了AFDX交换机中MIB信息管理库的主要特点和具体内容,分析了MIB的组织架构,给出了MIB系统结构与设计的方法,并在基于自主研发的AFDX的真实网络环境下实现了AFDX交换机的数据管理,每10 ms更新一次数据库,达到了实时性的要求。
图1 AFDX网络管理的结构图
基于AFDX的MIB管理数据库存储着所有端口和虚拟链路VL上传输的数据信息,主要包括基于端口和基于VL的各种数据类型的统计值,主要类型如表1所示。
AFDX交换机基于端口的数据类型主要指每个端口内MAC层各种状态的统计,它能反映交换机每个端口接收和发送数据的工作情况。而基于VL的数据类型主要指每条虚拟链路各种状态的统计,它能反映该VL在交换机中的数据处理情况。
各种数据类型的统计值随着AFDX交换机的数据通讯状态实时进行变化,然后定时把状态值通知给网络管理主机,网络管理主机则通过监视和分析网络中所有系统的管理数据库信息,发现是否有异常信息,及时对整个网络系统进行修复。
表1 AFDX交换机MIB管理数据的主要类型
根据AFDX交换机的MIB管理数据库的特点,MIB引擎应包含两部分功能:基于端口的数据信息管理和基于VL的数据信息管理。MIB引擎管理的端口共24个,VL共4096条。端口类数据信息存储在寄存器里,而VL类数据信息因数据量巨大,所以存储在RAM里。MIB引擎的功能结构如图2所示。
图2 AFDX交换机MIB引擎的功能结构图
基于端口的数据信息处理模块主要负责收集端口类的数据信息,存储在相应的寄存器里,然后根据基于端口的MIB帧格式组成MIB帧送给MAC层转发出去。按照24个端口、每个端口有11种数据类型统计,共264个统计值,装载到一个1404 B的MIB帧内。基于端口的MIB帧格式如表2所示。
表2 基于端口的MIB帧格式
基于VL的数据信息处理模块主要负责收集VL类的数据信息,存储在RAM里,然后根据基于VL的MIB帧格式组成MIB帧送给MAC层转发出去。按照4096条VL、每条VL有6种数据类型统计,可根据single或burst模式,以1条VL为1组或32条VL为1组,装载到一个76 B或820 B的MIB帧内。Burst模式下基于VL的MIB帧格式如表3所示。
表3 Burst模式下基于VL的MIB帧格式
基于端口和VL的数据信息处理模块主要包括更新、数据信息储存单元和MIB帧生成这三部分功能模块。更新数据信息主要来自MAC层的各端口或VL的计数器,数据信息存储单元由寄存器或RAM实现,而不同类型MIB帧按照表2和表3的格式进行构建。
组成基于端口的MIB帧采用状态机来实现,包括16个状态:空闲、发送MIB帧头0、发送MIB帧头1、发送MIB帧头2、发送MIB帧头3、发送MIB帧头4、发送MIB帧头5、发送MIB帧头6、发送Port_Status、发送 TxOctets、发送 TxDropPkts&RxDropPkts、发送RxOctets、发送 RxUnderSizePkts&RxExcessSizeDisc 、发送RxSymbolErrors&RxJabbers、发送RxAlignment Errors&RxFcsErrors、发送RxFragments、等待MAC空闲。这16个状态的跳转如图3所示。
组成基于VL的MIB帧包括11个状态:空闲、等待MAC空闲、发送MIB帧头0、发送MIB帧头1、发送MIB帧头2、发送MIB帧头3、发送MIB帧头4、发送MIB帧头5、发送MIB统计0、发送MIB统计1、发送MIB统计2。这11个状态的跳转如图4所示。
图3 基于端口的MIB帧状态机跳转图
图4 基于VL的MIB帧状态跳转图
在ARM开发板的VxWorks操作系统下开发MIB数据管理软件,对来自AFDX交换芯片的MIB帧进行解析。多个端系统与AFDX交换机构成AFDX网络,端系统通过交换机进行相互通讯,然后通过ARM开发板上的MIB数据管理软件对交换机上的数据统计信息进行分析。图5是根据典型应用环境搭建的MIB数据管理验证平台。
通过搭建的MIB数据管理验证平台模拟了实际应用情况,在测试环境中模拟了多个端系统共15条VL的数据传输,根据测试点不同,每条VL数据的功能属性也不同,基于VL的采集数据统计如图6所示。
图6 基于VL的MIB数据管理示意图
在图6的测试数据中,VL0~1是100 Mbps速率下VL过滤丢弃和MAC层丢弃的统计,VL2是警管功能下帧丢弃的统计,VL3~10是不同BAG属性的帧传输的统计,VL11~VL14是超时丢弃的统计。
测试结果表明MIB数据管理软件实时监视交换机的每个端口及每条VL的统计信息,每10 ms系统就能更新所有端口和VL的信息,远超过ARINC 664的第7部分中规定的100 ms更新一次的要求。
本文根据AFDX网络的主要特点,分析了AFDX网络的MIB管理数据库的组织架构,提出了适用于AFDX交换机的MIB帧结构和对应的MIB管理数据库的设计方法,最后模拟AFDX网络的典型工作环境,测试了MIB数据管理功能的正确性。使用MIB帧携带管理信息的方法,实现简单、移植性强,可应用于其他网络管理中。