介绍交换机RMON代理所需的底层硬件支持,看一看下面的交换机RMON代理所需要的底层硬件支持与操作系统,从下面的文章能够看到具体的运行所需的操作系统还有他的大小等等详细信息,希望感兴趣的人试一试吧。
底层硬件支持与操作系统
RFC1757定义了交换机RMON代理的九组功能及相应的MIB结构。本文设计的嵌入式交换机RMON代理实现统计、历史、警报和事件四组功能,是利用Galileo Techniology的千兆位以太网交换端口控制芯片GT-48320A,在嵌入式操作系统Nucleus Plus上开发的。
GT-48320A提供对交换机RMON代理这基本四组功能的支持,在它的以太网维护有一套32位MIB计数器,对经过该端口的以太网汉量进行统计。这些计数器在GT-48320A的只读寄存器PortCounterBlock中,地址为0x0100-0x0163。
可以根据地址通过芯片定义的LW-Wire消息向GT-48320A发出读取计数器请求,GT-48320A以Block-Write消息将所请求的计数器值返回。获取计数器值的具体操作由底层驱动程序实现。GT-48320A提供两种读取数据模式,通过芯片寄存器Global-Control的MIBCrMode位(Global-Control<23>)设定。
该位置0时,数据被读取后就被清零;置1时,数据被读取后不清除。考虑到计数器容量的限制,我们采用清零方式。这样,定时读取这些计数器的值,将它们累积起来,就可以得到实现统计、历史、事件、警报四组功能所需的数据。
Nucleus Plus是专门为嵌入式系统的开发而设计的多任务实时操作系统。除提供具有抢先机制的任务调度外,Nucleus Plus还提供任务间通信、任务同步、定时和内存管理。Nucleus Plus通常作为一个C的库,在它上面开发的实时应用程序与该库链接。
生成的对象下载到目标主机中成为嵌入式系统。从软件开发的角度来看,Nucleus Plus减少了任务的相互依赖,增强了模块性,缩短了开发时间,十分适合作为嵌入式交换机RMON代理的操作系统平台。交换机RMON代理的各组功能由若干Nucleus任务构成。各任务及其需要使用的系统资源,如事件组和消息队列等都在应用程序初始化时创建。
交换机RMON代理各组功能的实现
◆统计组
统计组的功能是维护代理监视的每一子网的基本统计信息,需要定时获取端口芯片寄存器的统计计数值。因此,统计组需用使用一个定时器和一个Nucleus事件组。定时器周期为读寄存器的周期。定时器计时到期时,执行定时器完成函数,使用系统函数NU-Set-Events向事件组发送一个事件,通知统计任务开始对这一周期的数据进行采集。
统计组任务执行以下操作:在任务初始化时,要将寄存器Global-Control置0,并执行一次对所有计数器的读操作以将它们清零。任务初始化时还要创建所需的定时器,创建定时器的系统函数为NU-CreateTimer()。然后循环执行以下操作:
◆调用系统的NU-Retrieve-Events()函数,从事件组接收事件。如果没有事件,任务将阻塞于该操作。
◆读取MIB统计表每一行的etherStatsDataSource值,获知要监视哪些端口。
◆调用底层驱动接口函数,读入所需的被监视端口寄存器中MIB计数器的值。
◆将数据累加写入MIB相应的统计组变量中。
由于GT-48320A的MIB计数器为32位,因此统计以太网流量的计数器只能统计232字节,即32Gbit。对于一个千兆位端口交换机RMON代理,若端口流量达到1Gbit/s,该计数器在32秒后就会溢出。因此可以将读取MIB计数器的间隔缺省值取为30秒。