一种基于FC交换机的端口监控方法与流程

文档序号:15593956发布日期:2018-10-02 19:17阅读:744来源:国知局

本发明属于数据通信技术领域,涉及一种基于fc交换机的端口监控方法。



背景技术:

fc网络具备高带宽、低延迟和高可靠等特性,非常适合在对数据传输实时性有较高要求的分布式实时系统中使用,例如飞机航电通信系统等。

fc网络系统结构组件主要包括三大类,分别为网络交换机、节点机以及传输链路。交换机作为整个网络的核心部件,负责为网络中所有节点提供单播、组播和广播的数据交换支持。

fc网络在协议、规范等方面对监控的实现没有给出说明或定义,而在实际应用中,数据监控对于网络产品研发过程中问题的定位和排查,以及最终整个航电系统的数据的记录和分析都有着至关重要的作用。因此,作为fc网络系统核心部件的交换机,其数据监控是必须不可缺少的功能。

目前fc交换机只能对特定的某一个通信端口的输入数据或输出数据进行监控,无法满足系统监控需求。本发明提出一种端口监控方法,可以对任意一个或多个通信端口的输入数据和输出数据进行监控,提高了fc交换机端口数据的记录与分析能力,有利于问题的定位于排查。



技术实现要素:

本发明的目的是,提供一种基于fc交换机的端口监控方法,可以对任意一个或多个通信端口的输入和输出数据进行监控,能够提高对网络实时通信的数据进行记录和分析,为网络通信故障排查以及航电系统数据的综合分析提供依据和参考。

本发明的技术解决方案是,在fc交换机设计中,在不影响正常通信的情况下,为每个通信端口的输入和输出数据分别设置相应的监控缓冲区,监控端口调度逻辑根据监控配置信息,选择相应的监控缓冲区进行读取,读取的数据经缓存后发出。

一种基于fc交换机的端口监控方法,包括以下步骤:

(1)为各通信端口1-n的输入数据分别设置相应缓存i_1-i_n,分别用来缓存各端口接收到的数据帧;并且每个缓存至少能够存储1个最大帧;

(2)为各通信端口1-n的输出数据分别设置相应缓存o_1-o_n,分别用来缓存各端口发送的数据帧;并且每个缓存至少能够存储1个最大帧;

(3)设置端口输入监控配置寄存器,寄存器位宽为n位,分别对应端口1-n;数据位为1时表明该位对应端口接收到的数据帧需要被监控;

(4)设置端口输出监控配置寄存器,寄存器位宽为n位,分别对应端口1-n;数据位为1时表明该位对应端口发送的数据帧需要被监控;

(5)各通信端口的mac接收端接收到数据帧后,在将数据帧发送给交叉开关的同时,查询输入监控配置寄存器,如果该端口对应位为1,则将该端口数据帧写入到相应缓存;并且需要保证写入到缓存中的数据帧必须是完整的数据帧,不能出现半帧;当对应缓存满时,将数据帧丢弃,并对丢弃的数据帧进行计数;

(6)当数据帧经过交叉开关交换后,在将数据帧发送给各端口的mac接收端的同时,查询输出监控配置寄存器,如果端口对应位为1,则将该该端口数据帧写入到相应缓存;需要将数据帧写入到各自缓存o_1-o_n;并且需要保证写入到缓存中的数据帧必须是完整的数据帧,不能出现半帧;当对应缓存满时,将数据帧丢弃,并对丢弃的数据帧进行计数;

(7)当检测到任一输入数据帧缓存i_1-i_n非空时,根据round-robin轮询调度算法,从缓存i_1-i_n中选择一个缓存,然后从该缓存中读出数据帧,然后写入到输入缓存中;

(8)当检测到任一输出数据帧缓存o_1-o_n非空时,根据round-robin轮询调度算法,从缓存o_1-o_n中选择一个缓存,然后从该缓存中读出数据帧,然后写入到输出缓存中;

(9)当检测输入缓存或输出缓存非空时,轮流从输入缓存和输出缓存中读取数据帧,然后发送出去。

本发明的有益效果是:

可靠性高:采用该方法设计的fc交换机可以快速准确的定位航电系统实时通信中出现的问题,提高网络的可靠性;

独立性强:交换机的端口监控功能与正常的数据通信功能相互独立,互不影响;

灵活高效:采用逻辑电路处理,软件只需简单的配置;可以实现对软件配置的任意一个或多个通信端口的输入数据和输出数据进行监控。

附图说明

图1fc交换机端口监控示意图。

具体实施方式

下面以包含32个通信端口和1个监控端口的fc交换机为例,对本发明的具体实施方式进行说明。

1、初始化设置

为实现对fc交换机通信端口的输入输出监控,需要对fc交换机进行初始化设置,包括以下内容:

(1)输入缓存

为了实现对fc交换机通信端口的输入监控,为32个通信端口分别设置输入缓存,共32个缓存,分别用来各个通信端口接收到的数据帧;每个缓存大小相同,宽度为36位,深度为4096,该缓存为循环缓冲区,可以使用fifo来实现,可以缓存7个最大帧;该缓存深度可以根据fpga内部bram数量而定,但至少能缓存1个最大帧。

(2)输出缓存

为了实现对fc交换机通信端口的输出监控,为32个通信端口分别设置输出缓存,共32个缓存,分别用来各个通信端口发送的数据帧;每个缓存大小相同,宽度为36位,深度为4096,该缓存为循环缓冲区,可以使用fifo来实现,可以缓存7个最大帧;该缓存深度可以根据fpga内部bram数量而定,但至少能缓存1个最大帧。

(3)输入监控配置寄存器

为了实现对fc交换机通信端口的输入监控,设置端口输入监控配置寄存器,寄存器位宽为32位,其中,第1位对应通信端口1,第2位对应通信端口1,以此类推,第32位对应通信端口32。

该寄存器的某位为1,代表该位对应的通信端口接收到数据帧需要被监控。例如,该寄存器的第1位为1,代表通信端口1接收到数据帧需要被监控;该寄存器的第5位和第6位为1,代表通信端口5和通信端口6接收到数据帧需要被监控;该寄存器的第1位至第32位均为1,代表通信端口1至通信端口32接收到数据帧均需被监控;

(4)输出监控配置寄存器

为了实现对fc交换机通信端口的输出监控,设置端口输出监控配置寄存器,寄存器位宽为32位,其中,第1位对应通信端口1,第2位对应通信端口1,以此类推,第32位对应通信端口32。

该寄存器的某位为1,代表该位对应的通信端口发送的数据帧需要被监控。例如,该寄存器的第1位为1,代表通信端口1发送的数据帧需要被监控;该寄存器的第5位和第6位为1,代表通信端口5和通信端口6发送的数据帧需要被监控;该寄存器的第1位至第32位均为1,代表通信端口1至通信端口32发送的数据帧均需被监控。

2、监控过程

(1)各通信端口将接收到的需要监控的数据帧写入相应缓存

各通信端口的mac接收端接收到数据帧后,在将数据帧发送给交叉开关的同时,查询输入监控配置寄存器:

如果该通信端口对应位为1,则将该通信端口接收到的数据帧写入到对应缓存,并且需要保证写入到缓存中的数据帧必须是完整的数据帧,不能出现半帧;当对应缓存满时,将数据帧丢弃,并对丢弃的数据帧进行计数;

如果该通信端口对应位为0,该通信端口接收到的数据帧只发送给交叉开关,不写入相应缓存。

(2)各通信端口将发送的需要监控的数据帧写入相应缓存

当数据帧经过交叉开关交换后,在将数据帧发送给各通信端口的mac接收端的同时,查询输出监控配置寄存器:

如果该通信端口对应位为1,则将该通信端口发送的数据帧写入到对应缓存,并且需要保证写入到缓存中的数据帧必须是完整的数据帧,不能出现半帧;当对应缓存满时,将数据帧丢弃,并对丢弃的数据帧进行计数;

如果该通信端口对应位为0,该通信端口发送的数据帧只发送给交叉开关,不写入相应缓存。

(3)当检测到步骤(1)中任一输入数据帧缓存非空时,根据round-robin轮询调度算法,从输入数据帧缓存中选择一个缓存,然后从该缓存中读出数据帧,然后写入到输入缓存中;

(4)当检测到步骤(2)中任一输出数据帧缓存非空时,根据round-robin轮询调度算法,从输出数据帧缓存中选择一个缓存,然后从该缓存中读出数据帧,然后写入到输出缓存中;

(5)当检测步骤(3)中输入缓存或步骤(4)中输出缓存非空时,轮流从输入缓存和输出缓存中读取数据帧,然后发送出去。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1