介紹交換機(jī)RMON代理所需的底層硬件支持
介紹交換機(jī)RMON代理所需的底層硬件支持,看一看下面的交換機(jī)RMON代理所需要的底層硬件支持與操作系統(tǒng),從下面的文章能夠看到具體的運(yùn)行所需的操作系統(tǒng)還有他的大小等等詳細(xì)信息,希望感興趣的人試一試吧。
底層硬件支持與操作系統(tǒng)
RFC1757定義了交換機(jī)RMON代理的九組功能及相應(yīng)的MIB結(jié)構(gòu)。本文設(shè)計(jì)的嵌入式交換機(jī)RMON代理實(shí)現(xiàn)統(tǒng)計(jì)、歷史、警報(bào)和事件四組功能,是利用Galileo Techniology的千兆位以太網(wǎng)交換端口控制芯片GT-48320A,在嵌入式操作系統(tǒng)Nucleus Plus上開發(fā)的。
GT-48320A提供對交換機(jī)RMON代理這基本四組功能的支持,在它的以太網(wǎng)維護(hù)有一套32位MIB計(jì)數(shù)器,對經(jīng)過該端口的以太網(wǎng)漢量進(jìn)行統(tǒng)計(jì)。這些計(jì)數(shù)器在GT-48320A的只讀寄存器PortCounterBlock中,地址為0x0100-0x0163。
可以根據(jù)地址通過芯片定義的LW-Wire消息向GT-48320A發(fā)出讀取計(jì)數(shù)器請求,GT-48320A以Block-Write消息將所請求的計(jì)數(shù)器值返回。獲取計(jì)數(shù)器值的具體操作由底層驅(qū)動程序?qū)崿F(xiàn)。GT-48320A提供兩種讀取數(shù)據(jù)模式,通過芯片寄存器Global-Control的MIBCrMode位(Global-Control<23>)設(shè)定。
該位置0時(shí),數(shù)據(jù)被讀取后就被清零;置1時(shí),數(shù)據(jù)被讀取后不清除。考慮到計(jì)數(shù)器容量的限制,我們采用清零方式。這樣,定時(shí)讀取這些計(jì)數(shù)器的值,將它們累積起來,就可以得到實(shí)現(xiàn)統(tǒng)計(jì)、歷史、事件、警報(bào)四組功能所需的數(shù)據(jù)。
Nucleus Plus是專門為嵌入式系統(tǒng)的開發(fā)而設(shè)計(jì)的多任務(wù)實(shí)時(shí)操作系統(tǒng)。除提供具有搶先機(jī)制的任務(wù)調(diào)度外,Nucleus Plus還提供任務(wù)間通信、任務(wù)同步、定時(shí)和內(nèi)存管理。Nucleus Plus通常作為一個(gè)C的庫,在它上面開發(fā)的實(shí)時(shí)應(yīng)用程序與該庫鏈接。
生成的對象下載到目標(biāo)主機(jī)中成為嵌入式系統(tǒng)。從軟件開發(fā)的角度來看,Nucleus Plus減少了任務(wù)的相互依賴,增強(qiáng)了模塊性,縮短了開發(fā)時(shí)間,十分適合作為嵌入式交換機(jī)RMON代理的操作系統(tǒng)平臺。交換機(jī)RMON代理的各組功能由若干Nucleus任務(wù)構(gòu)成。各任務(wù)及其需要使用的系統(tǒng)資源,如事件組和消息隊(duì)列等都在應(yīng)用程序初始化時(shí)創(chuàng)建。
交換機(jī)RMON代理各組功能的實(shí)現(xiàn)
◆統(tǒng)計(jì)組
統(tǒng)計(jì)組的功能是維護(hù)代理監(jiān)視的每一子網(wǎng)的基本統(tǒng)計(jì)信息,需要定時(shí)獲取端口芯片寄存器的統(tǒng)計(jì)計(jì)數(shù)值。因此,統(tǒng)計(jì)組需用使用一個(gè)定時(shí)器和一個(gè)Nucleus事件組。定時(shí)器周期為讀寄存器的周期。定時(shí)器計(jì)時(shí)到期時(shí),執(zhí)行定時(shí)器完成函數(shù),使用系統(tǒng)函數(shù)NU-Set-Events向事件組發(fā)送一個(gè)事件,通知統(tǒng)計(jì)任務(wù)開始對這一周期的數(shù)據(jù)進(jìn)行采集。
統(tǒng)計(jì)組任務(wù)執(zhí)行以下操作:在任務(wù)初始化時(shí),要將寄存器Global-Control置0,并執(zhí)行一次對所有計(jì)數(shù)器的讀操作以將它們清零。任務(wù)初始化時(shí)還要?jiǎng)?chuàng)建所需的定時(shí)器,創(chuàng)建定時(shí)器的系統(tǒng)函數(shù)為NU-CreateTimer()。然后循環(huán)執(zhí)行以下操作:
◆調(diào)用系統(tǒng)的NU-Retrieve-Events()函數(shù),從事件組接收事件。如果沒有事件,任務(wù)將阻塞于該操作。
◆讀取MIB統(tǒng)計(jì)表每一行的etherStatsDataSource值,獲知要監(jiān)視哪些端口。
◆調(diào)用底層驅(qū)動接口函數(shù),讀入所需的被監(jiān)視端口寄存器中MIB計(jì)數(shù)器的值。
◆將數(shù)據(jù)累加寫入MIB相應(yīng)的統(tǒng)計(jì)組變量中。
由于GT-48320A的MIB計(jì)數(shù)器為32位,因此統(tǒng)計(jì)以太網(wǎng)流量的計(jì)數(shù)器只能統(tǒng)計(jì)232字節(jié),即32Gbit。對于一個(gè)千兆位端口交換機(jī)RMON代理,若端口流量達(dá)到1Gbit/s,該計(jì)數(shù)器在32秒后就會溢出。因此可以將讀取MIB計(jì)數(shù)器的間隔缺省值取為30秒。