随着网络技术的快速发展,FC 交换机对网络协议的分析、故障的定位等功能提出新的挑战。首先提出基于 FC 交换机协议处理芯片的监控端口(Monitor Port, MT)软核的工作原理;然后对监控端口软核进行了设计与实现;最后在虚拟仿真平台和 FPGA 验证平台下对 MT 端口的功能和性能分别进行仿真和测试。结果表明,这种新的智能监控模式不仅能够用于网络监管和故障排除,而且可用于流量统计。
 
0  引言
美国国家标准委员会的 X3T11 工作组于 1988 年开始制定了一种高速串行通信协议——光纤通道(Fibre Channel,FC)协议[1]。1997 年,光纤通道协议标准首次面世,速度为 1 Gb/s,现在已发展到第六代,速度为 32 Gb/s。光纤通道具有高带宽、高可靠性、通用性强以及连接距离远等优点[2]。光纤通道主要在两大领域中应用,一是存储区域网络,二是航空电子环境。目前,国内外学者对交换结构及其调度算法进行了大量的研究,根据研究方法的不同,交换结构调度算法整体上可以分为纯理论分析法和快速启发式调度算法。
 
纯理论分析法主要探讨调度算法的理论基础,例如吞吐量、时延、服务质量保证等性能。国外学者提出利用高性能核心交换和路由器来确保吞吐量、速率和时延,并且这种算法在输入和输出端口上的并行执行具有扩展性[3]。国内学者提出一种保证速率的优先级实时调度算法[4]。
 
快速启发式调度算法是一种易于硬件实现的调度算法,主要从其实用性出发,以交叉点小缓存、高效、低复杂度、硬件易实现作为性能评价指标。CARVAJAL G 等人提出了在数据链路层之上添加实时层以支持 EDF(Earliest Deadline First)调度机制,实时数据包无需按照以太网协议架构的标准在通道内实时调度传输[5]。
 
1  FC 交换机芯片的体系结构
FC 交换机芯片集成了嵌入式片上处理器,可提供多路线卡端口、MT 端口之间数据交换,且包含 FC MAC 控制器、Timer 等片上资源,以及交换机域 ID 标识接口、链路状态指示接口和多路多种速率下全双工高速串行 SerDes 接口。该芯片用于 FC 交换机中,完成 FC 网络高速无阻交换、数据监控、通信配置、时钟同步及网络管理等功能。使用该芯片可以方便地构建 FC 光纤通道交换网,以此为基础可以快速实现用于各任务子系统间的光纤通道高速互联。FC 交换机芯片的体系结构如图 1 所示。
 
 
如图 2 所示,交换机芯片的监控功能包括以下几个方面:
(1)支持监控输入端口的数据功能;
(2)支持监控输出端口的数据功能;
(3)支持监控含有特殊字段帧的数据功能;图 1FC 交换机芯片体系结构
 
 
 
(4)支持与网络管理节点(CPU)之间的帧收发功能;
(5)支持监控、路由方案的在线动态加载,用以完成相应的芯片内部寄存器配置。
 
2  FC 交换机 MT 端口工作原理
FC 交换机芯片 MT 端口模块中包含以下子模块:监控数据缓冲区写控制模块、信息 ID 查询控制模块、监控数据缓冲区、监控数据调度模块、监控数据发送控制模块、网络管理节点数据发送处理模块以及网络管理节点数据接收处理模块。其工作原理如图 3 所示。
 
MT 端口模块与线卡端口以及网络管理节点相连。MT 端口只能被动接收来自线卡端口的数据帧,而监控模式分为输入监控、输出监控和信息 ID 监控。网络管理节点可与 MT 端口互相通信,MT 端口可以转发来自网络管理节点的帧,或者将接收到的 ELS 帧转发给网络管理节点。寄存器配置有时标插入设置、监控功能设置以及信息 ID 缓冲区配置等功能。
 
3  FC 交换机 MT 端口设计实现
FC 交换机 MT 端口设计包含信息 ID 查询控制模块设计、监控数据缓冲区写控制模块设计、监控数据调度模块设计、监控数据发送控制模块设计、网络管理节点数据发送处理模块设计以及网络管理节点数据接收处理模块设计。下面将分别对子模块设计进行详细描述。
 
3.1 信息 ID 查询控制模块的设计
该模块的设计思路是将来自 F 端口的特殊帧信息的信息 ID 输出到 CAM 表中,进行信息 ID 的合法性检测。同时,将信息 ID 合法的 CAM 表查询的结果与 MT 端口信息数目寄存器的值进行比较,判断被监控帧的有效性。
 
3.2 监控数据缓冲区写控制模块的设计
该模块的设计思路是根据监控模式、时标使能等相关信号的设置,将来自 F 端口 MAC 客户端口的信号时序转化为标准的 FIFO 接口时序,同时,对帧进行时标插入或产生特殊帧信息 ID 查询请求等操作。
 
本模块设计了对 FC 帧的接收处理状态机,根据接收到的帧内容及帧标识信号,将帧进行相应处理操作,并将处理后的帧输出至对应缓冲区,其状态机如图 4 所示。
 
 
3.3 监控数据调度模块的设计
数据调度模块实现了线卡端口和网络管理节点的 FC 数据帧输出请求之间的优先级调度,设计中采用轮询优先图 6 信息 ID 监控仿真波形级调度策略。
 
图 7MT 端口 FPGA 平台验证环境线卡端口及网络管理节点的帧输出优先级调度用状态机来完成。数据调度模块状态机如图 5 所示。状态机有 N+3 个状态,分别为 Idle 状态、P_0 状态~P_N+1 状态;P_0~P_N 状态对应 N+1 路线卡端口,P_N+1 对应 1 路网络管理节点。
 
 
3.4 监控数据发送控制模块的设计
MT 端口 MAC 帧发送控制模块实现了将监控数据 FIFO 中的 FIFO 接口的数据信号转换为 MAC 客户端发送接口的时序,将帧发送到 MT 端口 MAC 中。
 
3.5MT 端口帧发送处理模块设计
网络管理节点到 MT 端口帧发送数据处理模块完成对来自网络管理节点待发送数据帧的存储操作。
 
3.6MT 端口帧接收处理模块设计
MT 端口帧接收控制模块实现了数据帧的筛选、接收存储功能,并能识别和指示非 ELS 帧丢弃等。本模块功能为对 MT 端口接收到的 ELS 帧进行控制,根据接收到的帧内容及帧类型标识信号,将数据帧存入相应缓冲区或丢弃(非 ELS 帧)。
 

 

4  FC 交换机 MT 端口仿真验证
4.1MT 端口虚拟平台仿真
由于篇幅有限,以下只对信息 ID 监控情景得到的虚拟仿真波形进行分析说明。
 
网络管理节点配置监控模式寄存器值为 0x3,表示为信息 ID 监控模式;配置 CAM 表中需要被监控的特殊字段值。往线卡端口输入不同的 FC 帧,帧内容中特殊字段有能被匹配到的,也有不能被匹配到的。仿真结果如图 6 所示。
 
从图 6 中看到配置 CAM 表的最后一个特殊字段值为 0x100,则在 MT 端口监控到的数据帧中也包含该特殊字段信息。
 
 
4.2FC 交换机 MT 端口 FPGA 平台验证
4.2.1FPGA 验证平台的环境
FPGA 原型验证板是整个原型验证系统的核心,FC 交换机协议处理芯片的原型验证板可以完成对交换机芯片 FPGA 原型所有基本功能和系统功能的测试验证。交换机芯片系统集成后的 RTL 级代码,经 FPGA 工具综合、实现,下载到 FPGA 芯片中,实现真实交换机芯片的功能。本研究搭建的 MT 端口 FPGA 平台验证环境如图 7 所示。
 
 
4.2.2FPGA 验证平台测试
在 MT 端口的光纤链路上接入 Finisar 测试仪,用以监测光纤链路上的 FC 帧传输。光纤链路上线后,在 Finisar 测试仪上可以对抓到的数据包进行解析,解析结果如图 8 所示。
 
 
图 8 表示 MT 端口在信息 ID 监控模式下监测到从线卡端口 0 发往线卡端口 1 的数据,其中 CAM 表配置的值从 16’h1 到 16’h100,符合逻辑设计中 CAM 表深度 256。该帧的 MSGID 值为 4,属于监测范围,所以在 MT 端口能够正确监控。TYPE 字段为 0x49 且 CSCTL 字段为 0x04,表明该帧为 ASM 帧且优先级为 4。信息数据长度值为 16’h5F3,换算到十进制时值为 1523,表明 MT 监控到的帧为超长帧。
 
输入数据监控模式是 MT 端口只对一个线卡端口进行监控,而信息 ID 监控模式是特殊的输入数据监控模式,可以对线卡端口的输入数据与 CAM 表配置的敏感信息进行 MSGID 查询控制,只要 CAM 表查询匹配成功,该帧就会被镜像到 MT 端口。由上述结果分析可知,MT 端口能够在 FPGA 原型验证板上正确工作。
 
4.2.3 监控流量统计
FC 帧最短帧为 9 个字段,最长帧为 537 字段,其中 1 字段等于 4 B,FC 对应的数据范围是 36 B~2148 B。为了便于对监控的流量进行统计,验证时 FC 帧长度取 256 个字段,即 1 KB 数据。假设 FC 链路的速率为 2 Gb/s,即带宽为 2 Gb/s,那么用户独享带宽时流量应为 200 MB/s。计算方法如下:
 
流量=带宽×1 000×0.8/8
 
其中编码因子 0.8 为 8b/10b 转换时带宽利用率,假如数据为 8 位,经过 8b/10b 编码之后数据扩展为 10 位数据,带宽利用率为 80%。转换因子 8 代表 8 位数据转化成 1 B 数据。
 
本文中用户最高独享带宽的流量为 212.5 MB/s,在 FPGA 验证平台上做全双工无误码率的测试,其中线卡端口注入的数据包含有特殊字段的帧数据,如表 1 所示。
 
 
下面给出一种特殊的数据传输方式,线卡输入端口唯一,目的端口分别为 0、1,且数据帧发往目的端口的比重分别约占 20%和 80%,则 MT 端口监控流量如表 2 所示。由监控流量统计表分析可得,输入数据端口唯一时,将数据 20%和 80%比例输出到线卡端口 0 和 1,端口速率分别为 41 MB/s 和 169 MB/s。信息 ID 监控只是监控所有数据中存在特殊字段的帧信息,在此不做详细分析。全双工无阻交换模式下,端口吞吐量为 425 MB。
 
 
5  结论
目前这款 FC 交换机协议处理芯片的 MT 端口软核虚拟验证工作已经完成,FPGA 平台上的测试证明该芯片运行良好。从 MT 端口软核设计和实现上来说,可对下一个版本以及其他相关芯片的研发提供一定的借鉴,并且该智能监控技术具有广泛的应用前景。