基于fc交換機的監(jiān)控方案切換方法
【專利摘要】本發(fā)明屬于計算機通信【技術(shù)領(lǐng)域】,具體涉及基于FC交換機的監(jiān)控方案切換方法。本發(fā)明通過設(shè)定一系列寄存器,尤其是用于檢測切換時當(dāng)前數(shù)據(jù)幀完整性的寄存器以及用于控制數(shù)據(jù)選通的寄存器,在數(shù)據(jù)幀是完整的情況下再進行切換,可以保證交換機監(jiān)控端口捕獲完整的數(shù)據(jù)幀。本發(fā)明控制簡單,易于硬件邏輯實現(xiàn);在監(jiān)控方案進行切換時,可以保證監(jiān)控數(shù)據(jù)幀的完整性;在監(jiān)控方案未進行切換時,不影響正常的監(jiān)控功能。
【專利說明】基于FC交換機的監(jiān)控方案切換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機通信【技術(shù)領(lǐng)域】,具體涉及基于FC交換機的監(jiān)控方案切換方法?!颈尘凹夹g(shù)】
[0002]FC網(wǎng)絡(luò)具備高帶寬、低延遲和高可靠等特性,非常適合在對數(shù)據(jù)傳輸實時性有較高要求的分布式實時系統(tǒng)中使用。
[0003]FC交換機作為整個FC網(wǎng)絡(luò)的核心部件,除具備單播、多播、廣播等數(shù)據(jù)通信功能外,還具備監(jiān)控功能,通過捕獲網(wǎng)絡(luò)傳輸數(shù)據(jù)來分析定位問題。FC交換機每個監(jiān)控端口都分別有四種工作模式,包括正常通信模式、輸入監(jiān)控模式、輸出監(jiān)控模式和消息監(jiān)控模式。在正常通信模式下,監(jiān)控端口作為普通的通信端口使用,不具備監(jiān)控功能;在輸入監(jiān)控和輸出監(jiān)控模式下,監(jiān)控端口可以分別對某個端口的輸入數(shù)據(jù)和某個端口的輸出數(shù)據(jù)進行監(jiān)控;在消息監(jiān)控模式下,監(jiān)控端口可以最多對256個消息ID進行監(jiān)控。
[0004]FC交換機的監(jiān)控方案通過網(wǎng)絡(luò)管理器對其進行配置。監(jiān)控方案是指對每個監(jiān)控端口的配置,包括監(jiān)控端口工作模式,在輸入監(jiān)控和輸出監(jiān)控模式下監(jiān)控的端口號,以及在消息監(jiān)控模式下監(jiān)控的消息ID。
[0005]為了分析定位FC網(wǎng)絡(luò)中的各種問題,F(xiàn)C交換機需要捕獲各種不同的網(wǎng)絡(luò)數(shù)據(jù),需要通過網(wǎng)絡(luò)管理器對FC交換機的監(jiān)控方案進行切換。由于FC交換機具有非常高的實時性,在監(jiān)控方案切換過程中,F(xiàn)C交換機的監(jiān)控端口有可能會捕獲到不完整的數(shù)據(jù)幀,不利于分析定位問題。
[0006]本發(fā)明創(chuàng)新地提出了一種監(jiān)控方案切換方法,可以保證交換機監(jiān)控端口捕獲完整的數(shù)據(jù)幀。`
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是:提供一種基于FC交換機的監(jiān)控方案切換方法,在監(jiān)控方案切換時,保證FC交換機監(jiān)控數(shù)據(jù)幀的完整性。
[0008]本發(fā)明的技術(shù)解決方案是:
[0009]基于FC交換機的監(jiān)控端口工作模式切換方法,其特殊之處在于:包括以下步驟,
[0010]I】定義寄存器cfg_mode,用于對主機配置的工作模式信號cfg_mode_i進行鎖存;
[0011]定義寄存器cfg_mode_change,用于鎖存寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i的匹配狀態(tài);
[0012]定義寄存器cfg_m0de_Sel,用于對當(dāng)前工作模式信號進行鎖存;
[0013]定義寄存器mux_disa,用于控制數(shù)據(jù)的選通;
[0014]定義寄存器framel,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸出;
[0015]定義寄存器frame2,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸入;
[0016]2】主機配置監(jiān)控端口的工作模式,產(chǎn)生信號cfg_mode_i ;
[0017]3】寄存器cfg_mode_change判斷寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i是否匹配;
[0018]若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i不匹配,寄存器cfg_mode_sel對寄存器cfg_mode信號進行鎖存;判斷寄存器framel的狀態(tài),若切換時監(jiān)控端口有有效數(shù)據(jù)幀正在輸出,等待該數(shù)據(jù)幀傳輸完成;根據(jù)寄存器Cfg_mode_sel的信息,判斷相應(yīng)工作模式下寄存器frame2的狀態(tài),若切換時監(jiān)控端口有有效數(shù)據(jù)幀正在輸入,寄存器muX_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)幀傳輸完成,寄存器muX_disa允許數(shù)據(jù)選通相應(yīng)模式下的數(shù)據(jù),此時工作模式切換完成;
[0019]若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i匹配,監(jiān)控端口工作模式不變。
[0020]上述工作模式包括正常通信模式、輸入監(jiān)控模式、輸出監(jiān)控模式消息監(jiān)控模式。
[0021]基于FC交換機的輸入監(jiān)控端口號的切換方法,其特殊之處在于:包括以下步驟,
[0022]I】定義寄存器cfg_imon_num,對主機配置的輸入監(jiān)控端口號cfg_imon_num_i進行鎖存;
[0023]定義寄存器cfg_imon_num_change,用于鎖存寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i的匹配狀態(tài);
[0024]定義寄存器cfg_imon_num_sel,用于對當(dāng)前輸入監(jiān)控端口號進行鎖存;
[0025]定義寄存器imon_mux_disa,用于控制數(shù)據(jù)的選通;
[0026]定義寄存器frame3,用于表示輸入監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)幀正在傳輸;
[0027]定義與輸入端口數(shù)量一致的寄存器frame4,用于表不輸入監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸;
[0028]2】主機配置輸入監(jiān)控端口號,產(chǎn)生端口號cfg_imon_num_i,
[0029]3】寄存器cfg_imon_num_change判斷寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i是否匹配;
[0030]若寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i不匹配,寄存器cfg_imon_num_sel對寄存器cfg_imon_num信號進行鎖存,并判斷寄存器frame3的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_imon_num_sel的信息,判斷重新配置的端口號對應(yīng)的寄存器frame4的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器imon_muX_diSa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器imon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù);
[0031]若寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i匹配,監(jiān)控端口的輸入監(jiān)控端口號不變。
[0032]基于FC交換機的輸出監(jiān)控端口號的切換方法,其特殊之處在于:包括以下步驟,
[0033]I】定義寄存器cfg_omon_num,對主機配置的輸出監(jiān)控端口號cfg_omon_num_i進行鎖存;
[0034]定義寄存器cfg_omon_num_change,用于鎖存寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i的匹配狀態(tài);
[0035]定義寄存器cfg_omon_num_sel,用于對當(dāng)前輸出監(jiān)控端口號進行鎖存;
[0036]定義寄存器omon_mux_disa,用于控制數(shù)據(jù)的選通;[0037]定義寄存器frame5,用于表示輸出監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)幀正在傳輸;
[0038]定義與輸出監(jiān)控數(shù)量一致的寄存器frame6,用于表不輸出監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸;
[0039]2】主機配置輸出監(jiān)控端口號,產(chǎn)生信號cfg_omon_num_i,
[0040]3】寄存器cfg_omon_num_change判斷寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i是否匹配;
[0041]若寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i不匹配,寄存器cfg_omon_num_sel對寄存器cfg_omon_num信號進行鎖存,并判斷寄存器frame5的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_omon_num_sel的信息,判斷重新配置的端口號對應(yīng)的寄存器frame6的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器0m0n_muX_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器omon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù);
[0042]若寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i匹配,監(jiān)控端口的輸出監(jiān)控端口號不變。
[0043]本發(fā)明具有的優(yōu)點是:
[0044]1)控制簡單,易于硬件邏輯實現(xiàn);
[0045]2)在監(jiān)控方案進行切換時,可以保證監(jiān)控數(shù)據(jù)幀的完整性;
[0046]3)在監(jiān)控方案未進行切換時,不影響正常的監(jiān)控功能。
【專利附圖】
【附圖說明】
[0047]圖1是監(jiān)控切換實現(xiàn)方案示意圖;
[0048]圖2是監(jiān)控端口工作模式切換控制狀態(tài)機示意圖;
[0049]圖3是輸入監(jiān)控模式下端口切換控制狀態(tài)機示意圖。
【具體實施方式】
[0050]監(jiān)控方案的切換包括監(jiān)控端口工作模式的切換、輸入監(jiān)控端口號的切換、輸出監(jiān)控端口號的切換。監(jiān)控切換實現(xiàn)方案如圖1所示,分別有三個獨立的控制狀態(tài)機和數(shù)據(jù)選通邏輯,數(shù)據(jù)選通邏輯在各自狀態(tài)機的控制下進行數(shù)據(jù)選通,同時保證數(shù)據(jù)幀的完整性。下面針對這三個方面,對相應(yīng)的實施方式分別進行說明。
[0051]1.監(jiān)控端口工作模式的切換
[0052]監(jiān)控端口有四種工作模式:正常通信模式(2’ h0)、輸入監(jiān)控模式(2’ hi)、輸出監(jiān)控模式(2’h2)和消息監(jiān)控模式(2’h3)。如圖1所示,在正常通信模式下,選擇正常通信數(shù)據(jù)進行輸出;在輸入監(jiān)控模式下,選擇輸入監(jiān)控數(shù)據(jù)進行輸出;在輸出監(jiān)控模式下,選擇輸出監(jiān)控數(shù)據(jù)進行輸出;在消息監(jiān)控模式下,選擇消息監(jiān)控數(shù)據(jù)進行輸出。
[0053]工作模式通過主機進行配置。當(dāng)工作模式切換時,通過工作模式切換狀態(tài)機對數(shù)據(jù)選通邏輯進行控制,保證切換時數(shù)據(jù)幀的完整性。
[0054]監(jiān)控端口進行工作模式切換的具體步驟是:
[0055]I】定義寄存器cfg_mode,用于對主機配置的工作模式信號cfg_mode_i進行鎖存;[0056]定義寄存器cfg_mode_change,用于鎖存寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i的匹配狀態(tài);
[0057]定義寄存器cfg_m0de_Sel,用于對當(dāng)前工作模式信號進行鎖存;
[0058]定義寄存器mux_disa,用于控制數(shù)據(jù)的選通;
[0059]定義寄存器framel,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸出;
[0060]定義寄存器frame2,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸入; [0061]2】主機配置監(jiān)控端口的工作模式,產(chǎn)生信號cfg_mode_i ;
[0062]3】寄存器cfg_mode_change判斷寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i是否匹配;
[0063]若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i不匹配,寄存器cfg_mode_sel對寄存器cfg_mode信號進行鎖存,判斷寄存器framel的狀態(tài),若切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸出,等待該數(shù)據(jù)幀傳輸完成;根據(jù)寄存器Cfg_mode_sel的信息,判斷相應(yīng)工作模式下寄存器frame2的狀態(tài),若切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸入,寄存器muX_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)幀傳輸完成,允許數(shù)據(jù)選通相應(yīng)模式下的數(shù)據(jù),此時工作模式切換完成;
[0064]若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i匹配,監(jiān)控端口工作模式不變。
[0065]1.1工作模式切換控制狀態(tài)機如圖2所示,具體狀態(tài)及遷移過程如下:
[0066]a)狀態(tài)O:該狀態(tài)為狀態(tài)機的初始狀態(tài)。復(fù)位時,狀態(tài)機進入該狀態(tài)。
[0067]在該狀態(tài)下,如果cfg_mode_change有效(配置的工作模式發(fā)生改變)并且cfg_mode_sel為2’ h0 (當(dāng)前工作模式為正常通信模式)時,狀態(tài)機進入狀態(tài)I ;
[0068]如果cfg_mode_change有效(配置的工作模式發(fā)生改變)并且cfg_mode_sel為2’ hi (當(dāng)前工作模式為輸入監(jiān)控模式)時,狀態(tài)機進入狀態(tài)2 ;
[0069]如果cfg_mode_change有效(配置的工作模式發(fā)生改變)并且cfg_mode_sel為2’ h2 (當(dāng)前工作模式為輸出監(jiān)控模式)時,狀態(tài)機進入狀態(tài)3 ;
[0070]如果cfg_mode_change有效(配置的工作模式發(fā)生改變)并且cfg_mode_sel為2’ h3 (當(dāng)前工作模式為消息監(jiān)控模式)時,狀態(tài)機進入狀態(tài)4 ;
[0071]否則,停留在狀態(tài)O;
[0072]b)狀態(tài)1:該狀態(tài)為cfg_mode_sel為2’hO (當(dāng)前工作模式為正常通信模式)并且cfg_mode_change有效(配置的工作模式發(fā)生改變)時的等待狀態(tài)。
[0073]在該狀態(tài)下,如果regular_frame有效(監(jiān)控端口正在輸出正常通信數(shù)據(jù)幀),狀態(tài)機停留在狀態(tài)I ;否則,跳轉(zhuǎn)到狀態(tài)5 ;
[0074]c)狀態(tài)2:該狀態(tài)為cfg_mode_sel為2’hl (當(dāng)前工作模式為輸入監(jiān)控模式)并且cfg_mode_change有效(配置的工作模式發(fā)生改變)時的等待狀態(tài)。
[0075]在該狀態(tài)下,如果imon_frame有效(監(jiān)控端口正在輸出輸入監(jiān)控數(shù)據(jù)幀),狀態(tài)機停留在狀態(tài)2 ;否則,跳轉(zhuǎn)到狀態(tài)5 ;
[0076]d)狀態(tài)3:該狀態(tài)為Cfg_m0de_Sel為2’h2 (當(dāng)前工作模式為輸出監(jiān)控模式)并且cfg_mode_change有效(配置的工作模式發(fā)生改變)時的等待狀態(tài)。
[0077]在該狀態(tài)下,如果emon_frame有效(監(jiān)控端口正在輸出輸出監(jiān)控數(shù)據(jù)幀),狀態(tài)機停留在狀態(tài)3 ;否則,跳轉(zhuǎn)到狀態(tài)5 ;
[0078]e)狀態(tài)4:該狀態(tài)為Cfg_m0de_Sel為2’h3 (當(dāng)前工作模式為消息監(jiān)控模式)并且cfg_mode_change有效(配置的工作模式發(fā)生改變)時的等待狀態(tài)。
[0079]在該狀態(tài)下,如果asm_frame有效(監(jiān)控端口正在輸出消息監(jiān)控數(shù)據(jù)巾貞),狀態(tài)機停留在狀態(tài)4 ;否則,跳轉(zhuǎn)到狀態(tài)5 ;
[0080]f)狀態(tài)5:該狀態(tài)為cfg_mode_sel (當(dāng)前工作模式)改變生效狀態(tài)。
[0081]在該狀態(tài)下,如果Cfg_m0de_Sel改變?yōu)?’ h0 (當(dāng)前工作模式改變?yōu)檎Mㄐ拍J?,狀態(tài)機進入狀態(tài)6 ;
[0082]如果cfg_mode_sel改變?yōu)?’ hi (當(dāng)前工作模式改變?yōu)檩斎氡O(jiān)控模式),狀態(tài)機進入狀態(tài)7 ;
[0083]如果Cfg_mode_Sel改變?yōu)?’ h2 (當(dāng)前工作模式改變?yōu)檩敵霰O(jiān)控模式),狀態(tài)機進入狀態(tài)8 ;
[0084]如果Cfg_mode_Sel改變?yōu)?’ h3 (當(dāng)前工作模式改變?yōu)橄⒈O(jiān)控模式),狀態(tài)機進入狀態(tài)9 ;
[0085]g)狀態(tài)6:該狀態(tài)為Cfg_m0de_Sel改變?yōu)?’ h0 (當(dāng)前工作模式改變?yōu)檎Mㄐ拍J?后的等待狀態(tài)。
[0086]在該狀態(tài)下,如果regular_frame_in有效(有正常通信數(shù)據(jù)巾貞進來),狀態(tài)機停留在狀態(tài)6 ;否則狀態(tài)機進入狀態(tài)10 ;
[0087]h)狀態(tài)7:該狀態(tài)為Cfg_m0de_Sel改變?yōu)?’ hi (當(dāng)前工作模式改變?yōu)檩斎氡O(jiān)控模式)后的等待狀態(tài)。
[0088]在該狀態(tài)下,如果imon_frame_in有效(有輸入監(jiān)控數(shù)據(jù)幀進來),狀態(tài)機停留在狀態(tài)7 ;否則狀態(tài)機進入狀態(tài)10 ;
[0089]i)狀態(tài)8:該狀態(tài)為Cfg_m0de_Sel改變?yōu)?’ h2 (當(dāng)前工作模式改變?yōu)檩敵霰O(jiān)控模式)后的等待狀態(tài)。
[0090]在該狀態(tài)下,如果emon_frame_in有效(有輸出監(jiān)控數(shù)據(jù)幀進來),狀態(tài)機停留在狀態(tài)8 ;否則狀態(tài)機進入狀態(tài)10 ;
[0091]j)狀態(tài)9:該狀態(tài)為Cfg_m0de_Sel改變?yōu)?’ h3 (當(dāng)前工作模式改變?yōu)橄⒈O(jiān)控模式)后的等待狀態(tài)。
[0092]在該狀態(tài)下,如果asm_frame_in有效(有消息監(jiān)控數(shù)據(jù)幀進來),狀態(tài)機停留在狀態(tài)9 ;否則狀態(tài)機進入狀態(tài)10 ;
[0093]k)狀態(tài)10:該狀態(tài)為工作模式切換完成狀態(tài)。在該狀態(tài)下,狀態(tài)機自動進入狀態(tài)
O0
[0094]1.2下面對工作模式切換控制狀態(tài)機中相關(guān)控制信號的檢測與生成邏輯進行說明:
[0095](I) cfg_mode_change (配置的工作模式發(fā)生改變)
[0096]首先用2位寄存器cfg_mode對主機配置的工作模式信號cfg_mode_i進行鎖存。當(dāng)寄存器cfg_mode值不等于cfg_mode_i值時,寄存器cfg_mode_change置I ;當(dāng)1.1狀態(tài)機下一狀態(tài)為狀態(tài)5時,寄存器cfg_mode_change清O ;否則寄存器cfg_mode_change值一直保持不變。[0097](2) cfg_mode_sel (當(dāng)前工作模式)
[0098]cfg_mode_sel為兩位寄存器,當(dāng)1.1狀態(tài)機下一狀態(tài)為狀態(tài)5時,對cfg_mode信號進行鎖存,然后保持不變。
[0099](3)regular_frame (監(jiān)控端口正在輸出正常通信數(shù)據(jù)中貞)
[0100]regular_frame為一位寄存器,當(dāng)cfg_mode_sel為2’hO (當(dāng)前工作模式為正常通信模式)并且檢測到正常通信數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到正常通信數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則該寄存器值一直保持不變。
[0101](4) imon_frame (監(jiān)控端口正在輸出輸入監(jiān)控數(shù)據(jù)中貞)
[0102]imon_frame為一位寄存器,當(dāng)cfg_mode_sel為2’ hi (當(dāng)前工作模式為輸入監(jiān)控模式)并且檢測到輸入監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到輸入監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則該寄存器值一直保持不變。
[0103](5) emon_frame (監(jiān)控端口正在輸出輸出監(jiān)控數(shù)據(jù)幀)
[0104]emon_frame為一位寄存器,當(dāng)cfg_mode_sel為2’ h2 (當(dāng)前工作模式為輸出監(jiān)控模式)并且檢測到輸出監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到輸出監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則該寄存器值一直保持不變。
[0105](6)asm_frame (監(jiān)控端口正在輸出消息監(jiān)控數(shù)據(jù)中貞)
[0106]asm_frame為一位寄存器,當(dāng)cfg_mode_sel為2’h3 (當(dāng)前工作模式為消息監(jiān)控模式)并且檢測到消息監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到消息監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則該寄存器值一直保持不變。
[0107](7) regular_frame_in (有正常通信數(shù)據(jù)巾貞進來)
[0108]regular_frame_in為一位寄存器,當(dāng)檢測到正常通信數(shù)據(jù)巾貞的巾貞頭后,該寄存器置I ;當(dāng)檢測到正常通信數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則,該寄存器值一直保持不變。
[0109](8) imon_frame_in (有輸入監(jiān)控數(shù)據(jù)巾貞進來)
[0110]imon_frame_in為一位寄存器,當(dāng)檢測到輸入監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到輸入監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則,該寄存器值一直保持不變。
[0111](9) emon_frame_in (有輸出監(jiān)控數(shù)據(jù)巾貞進來)
[0112]emon_frame_in為一位寄存器,當(dāng)檢測到輸出監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到輸出監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則,該寄存器值一直保持不變。
[0113](10)asm_frame_in (有消息監(jiān)控數(shù)據(jù)巾貞進來)
[0114]asm_frame_in為一位寄存器,當(dāng)檢測到消息監(jiān)控數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到消息監(jiān)控數(shù)據(jù)幀的幀尾后,該寄存器值清O ;否則,該寄存器值一直保持不變。
[0115](ll)mux_disa (數(shù)據(jù)選通禁止)
[0116]mux_disa為一位寄存器,用來控制數(shù)據(jù)的選通。當(dāng)工作模式切換控制狀態(tài)機下一狀態(tài)為狀態(tài)5時,該寄存器值置I ;當(dāng)工作模式切換控制狀態(tài)機下一狀態(tài)為狀態(tài)10時,該寄
存器值清O。
[0117]1.3數(shù)據(jù)選通邏輯
[0118](I)當(dāng)寄存器mux_disa值為I時,禁止數(shù)據(jù)選通;
[0119](2)當(dāng)寄存器mux_disa值為O時,允許數(shù)據(jù)選通:[0120]當(dāng)cfgjnode為2’ h0時,選擇正常通信數(shù)據(jù)幀;
[0121]當(dāng)cfg_mode為2’ hi時,選擇輸入監(jiān)控數(shù)據(jù)中貞;
[0122]當(dāng)cfgjnode為2’ h2時,選擇輸出監(jiān)控數(shù)據(jù)幀;
[0123]當(dāng)cfg_mode為2’ h3時,選擇消息監(jiān)控數(shù)據(jù)中貞。
[0124]2.輸入監(jiān)控端口號的切換
[0125]監(jiān)控端口通過主機配置的輸入監(jiān)控端口號,選擇相應(yīng)端口的輸入端數(shù)據(jù),輸出到輸入監(jiān)控數(shù)據(jù)總線上,如圖1所示。輸入監(jiān)控端口號切換時,通過輸入監(jiān)控端口切換控制狀態(tài)機對選通邏輯進行控制,來保證監(jiān)控數(shù)據(jù)幀的完整性,實現(xiàn)的具體步驟是:
[0126]I】定義寄存器cfg_imon_num,對主機配置的輸入監(jiān)控端口號cfg_imon_num_i進行鎖存;
[0127]定義寄存器cfg_imon_num_change,用于鎖存寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i的匹配狀態(tài);
[0128]定義寄存器cfg_imon_num_sel,用于對當(dāng)前輸入監(jiān)控端口號進行鎖存;
[0129]定義寄存器imon_mux_disa,用于控制數(shù)據(jù)的選通;
[0130]定義寄存器frame3,用于表示輸入監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)幀正在傳輸;
[0131]定義與輸入端口數(shù)`量一致的寄存器frame4,用于表不輸入監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸;
[0132]2】主機配置輸入監(jiān)控端口號,產(chǎn)生端口號cfg_imon_num_i,
[0133]3】寄存器cfg_imon_num_change判斷寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i是否匹配;
[0134]若寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i不匹配,寄存器cfg_imon_num_sel對寄存器cfg_imon_num信號進行鎖存,并判斷寄存器frame3的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_imon_num_sel的信息,判斷重新配置的端口號對應(yīng)的寄存器frame4的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器imon_muX_diSa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器imon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù);
[0135]若寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i匹配,監(jiān)控端口的輸入監(jiān)控端口號不變。
[0136]下面以32端口交換機為例來進行說明。
[0137]2.1輸入監(jiān)控端口切換控制狀態(tài)機
[0138]輸入監(jiān)控端口切換控制狀態(tài)機如圖3所示,包括以下狀態(tài):
[0139]a)狀態(tài)O:該狀態(tài)為狀態(tài)機的初始狀態(tài)。復(fù)位時,狀態(tài)機進入該狀態(tài)。
[0140]在該狀態(tài)下,如果cfg_imon_num_change有效(配置的輸入監(jiān)控端口號發(fā)生改變),狀態(tài)機進入狀態(tài)I ;否則,停留在狀態(tài)O ;
[0141]b)狀態(tài)1:該狀態(tài)為配置的輸入監(jiān)控端口號發(fā)生改變時的等待狀態(tài)。
[0142]在該狀態(tài)下,如果imon_mux_frame有效,狀態(tài)機停留在狀態(tài)I ;否則,狀態(tài)機進入狀態(tài)2 ;
[0143]c)狀態(tài)2:該狀態(tài)為cfg_imon_num_sel (當(dāng)前輸入監(jiān)控端口號)改變生效時的狀態(tài)。在該狀態(tài)下,狀態(tài)機自動進入狀態(tài)3 ;
[0144]d)狀態(tài)3:該狀態(tài)為cfg_imon_num_sel (當(dāng)前輸入監(jiān)控端口號)改變后等待狀態(tài)。
[0145]在該狀態(tài)下,如果imon_mux_frame有效,狀態(tài)機停留在狀態(tài)3 ;否則,狀態(tài)機跳轉(zhuǎn)到狀態(tài)4 ;
[0146]e)狀態(tài)4:該狀態(tài)為輸入監(jiān)控端口號切換完成狀態(tài)。在該狀態(tài)下,狀態(tài)機自動跳轉(zhuǎn)到狀態(tài)O。
[0147]2.2輸入監(jiān)控端口切換控制狀態(tài)機相關(guān)控制信號的檢測與生成邏輯
[0148]下面對輸入監(jiān)控端口切換控制狀態(tài)機中相關(guān)控制信號的檢測與生成邏輯進行說明。
[0149](1) cfg_imon_num_change (配置的輸入監(jiān)控端口號發(fā)生改變)
[0150]首先用5位寄存器cfg_imon_num對主機配置的輸入監(jiān)控端口號cfg_imon_num_i進行鎖存。當(dāng)寄存器cfg_imon_num值不等于cfg_imon_num_i值時,寄存器cfg_imon_num_change置I ;當(dāng)2.I狀態(tài)機下一狀態(tài)為狀態(tài)2時,寄存器cfg_imon_num_change清O ;否則寄存器cfg_imon_num_change值一直保持不變。
[0151](2) cfg_imon_num_sel (當(dāng)前輸入監(jiān)控端口號)
[0152]cfg_imon_num_sel為5位寄存器,當(dāng)2.1狀態(tài)機進入狀態(tài)2時,對cfg_imon_num進行鎖存,然后保持不變。
[0153](3) imon_mux_frame (當(dāng)前監(jiān)控的端口輸入端口有數(shù)據(jù)幀進來)
[0154]imon_mux_frame為I位寄存器,當(dāng)檢測到根據(jù)cfg_imon_num_sel選通的端口輸入端數(shù)據(jù)幀的幀頭后,該寄存器置I ;當(dāng)檢測到根據(jù)cfg_imon_num_sel選通的端口輸入端數(shù)據(jù)幀的幀尾后,該寄存器清O ;否則,寄存器值保持不變。
[0155](4) imon_mux_disa (數(shù)據(jù)選通禁止)
[0156]imon_mux_disa為一位寄存器,用來控制數(shù)據(jù)的選通。當(dāng)2.1狀態(tài)機下一狀態(tài)為狀態(tài)2時,該寄存器值置1 ;當(dāng)2.1狀態(tài)機下一狀態(tài)為狀態(tài)4時,該寄存器值清O。
[0157]2.3數(shù)據(jù)選通邏輯
[0158](1)當(dāng)寄存器imon_mux_disa值為I時,禁止數(shù)據(jù)選通;
[0159](2)當(dāng)寄存器imon_mux_disa值為O時,允許數(shù)據(jù)選通:根據(jù)寄存器cfg_imon_num_sel的值從32個端口輸入端中選擇一個端口輸入端的數(shù)據(jù),進行輸出。
[0160]3.輸出監(jiān)控端口號的切換
[0161]輸出監(jiān)控端口號發(fā)生改變時,也在輸出監(jiān)控端口切換控制狀態(tài)機的控制下進行切換,狀態(tài)機工作流程、狀態(tài)機控制信號的檢測及生成邏輯以及數(shù)據(jù)選通邏輯,與輸入監(jiān)控端口號切換類似,實現(xiàn)的具體步驟是:
[0162]1】定義寄存器cfg_omon_num,對主機配置的輸出監(jiān)控端口號cfg_omon_num_i進行鎖存;
[0163]定義寄存器cfg_omon_num_change,用于鎖存寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i的匹配狀態(tài);
[0164]定義寄存器cfg_omon_num_sel,用于對當(dāng)前輸出監(jiān)控端口號進行鎖存;
[0165]定義寄存器omon_mux_disa,用于控制數(shù)據(jù)的選通;
[0166]定義寄存器frame5,用于表示輸出監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)幀正在傳輸;
[0167]定義與輸出監(jiān)控數(shù)量一致的寄存器frame6,用于表不輸出監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸;
[0168]2】主機配置輸出監(jiān)控端口號,產(chǎn)生信號cfg_omon_num_i,
[0169]3】寄存器cfg_omon_num_change判斷寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i是否匹配;
[0170]若寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i不匹配,寄存器cfg_omon_num_sel對寄存器cfg_omon_num信號進行鎖存,并判斷寄存器frame5的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_omon_num_seI的信息,判斷重新配置的端口號對應(yīng)的寄存器frame6的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器0m0n_muX_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器omon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù);
[0171]若寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i匹配,監(jiān)控端口的輸出監(jiān)控端口號不變。
【權(quán)利要求】
1.基于FC交換機的監(jiān)控端口工作模式切換方法,其特征在于:包括以下步驟, I】定義寄存器cfg_mode,用于對主機配置的工作模式信號cfg_mode_i進行鎖存;定義寄存器cfg_mode_change,用于鎖存寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i的匹配狀態(tài); 定義寄存器cfg_mode_sel,用于對當(dāng)前工作模式信號進行鎖存; 定義寄存器mux_disa,用于控制數(shù)據(jù)的選通; 定義寄存器framel,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸出; 定義寄存器frame2,用于表示切換時監(jiān)控端口是否有有效數(shù)據(jù)幀正在輸入; 2】主機配置監(jiān)控端口的工作模式,產(chǎn)生信號cfg_mode_i ; 3】寄存器cfg_mode_change判斷寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i是否匹配; 若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i不匹配,寄存器cfg_mode_sel對寄存器cfgjnode信號進行鎖存;判斷寄存器framel的狀態(tài),若切換時監(jiān)控端口有有效數(shù)據(jù)幀正在輸出,等待該數(shù)據(jù)幀傳輸完成;根據(jù)寄存器cfg_mode_sel的信息,判斷相應(yīng)工作模式下寄存器frame2的狀態(tài),若切換時監(jiān)控端口有有效數(shù)據(jù)幀正在輸入,寄存器mux_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)幀傳輸完成,寄存器muX_disa允許數(shù)據(jù)選通相應(yīng)模式下的數(shù)據(jù),此時工作模式切換完成; 若寄存器cfg_mode與主機配置的工作模式信號cfg_mode_i匹配,監(jiān)控端口工作模式不變。`
2.根據(jù)權(quán)利要求1所述的基于FC交換機的監(jiān)控端口工作模式切換方法,其特征在于:所述工作模式包括正常通信模式、輸入監(jiān)控模式、輸出監(jiān)控模式以及消息監(jiān)控模式。
3.基于FC交換機的輸入監(jiān)控端口號的切換方法,其特征在于:包括以下步驟, I】定義寄存器cfg_imon_num,對主機配置的輸入監(jiān)控端口號cfg_imon_num_i進行鎖存; 定義寄存器cfg_imon_num_change,用于鎖存寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i的匹配狀態(tài); 定義寄存器cfg_imon_num_sel,用于對當(dāng)前輸入監(jiān)控端口號進行鎖存; 定義寄存器imon_mux_disa,用于控制數(shù)據(jù)的選通; 定義寄存器frame3,用于表示輸入監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)中貞正在傳輸; 定義與輸入端口數(shù)量一致的寄存器frame4,用于表示輸入監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸; 2】主機配置輸入監(jiān)控端口號,產(chǎn)生端口號cfg_imon_num_i, 3】寄存器cfg_imon_num_change判斷寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i是否匹配; 若寄存器cfg_imon_num與主機重新配置的輸入監(jiān)控端口號cfg_imon_num_i不匹配,寄存器cfg_imon_num_sel對寄存器cfg_imon_num信號進行鎖存,并判斷寄存器frame3的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_imon_num_sel的信息,判斷重新配置的端口號對應(yīng)的寄存器frame4的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器imon_muX_diSa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器imon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù); 若寄存器cfg_imon_num與主機配置的輸入監(jiān)控端口號cfg_imon_num_i匹配,監(jiān)控端口的輸入監(jiān)控端口號不變。
4.基于FC交換機的輸出監(jiān)控端口號的切換方法,其特征在于:包括以下步驟, I】定義寄存器cfg_omon_num,對主機配置的輸出監(jiān)控端口號cfg_omon_num_i進行鎖存; 定義寄存器cfg_omon_num_change,用于鎖存寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i的匹配狀態(tài); 定義寄存器cfg_omon_num_sel,用于對當(dāng)前輸出監(jiān)控端口號進行鎖存; 定義寄存器omon_mux_disa,用于控制數(shù)據(jù)的選通; 定義寄存器frame5,用于表示輸出監(jiān)控端口號切換時,監(jiān)控的當(dāng)前端口是否有效的數(shù)據(jù)中貞正在傳輸; 定義與輸出監(jiān)控數(shù)量一致的寄存器frame6,用于表示輸出監(jiān)控端口號切換時,新配置的端口是否有有效的數(shù)據(jù)幀正在傳輸; 2】主機配置輸出監(jiān)控端口 號,產(chǎn)生信號cfg_omon_num_i, 3】寄存器cfg_omon_num_change判斷寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i是否匹配; 若寄存器cfg_omon_num與主機重新配置的輸出監(jiān)控端口號cfg_omon_num_i不匹配,寄存器cfg_omon_num_sel對寄存器cfg_omon_num信號進行鎖存,并判斷寄存器frame5的狀態(tài),若監(jiān)控的當(dāng)前端口有有效的數(shù)據(jù)幀正在傳輸,等待該數(shù)據(jù)幀傳輸完成;再根據(jù)當(dāng)前cfg_omon_num_seI的信息,判斷重新配置的端口號對應(yīng)的寄存器frame6的狀態(tài),若重新配置的端口號有有效的數(shù)據(jù)幀正在傳輸,寄存器0m0n_muX_disa禁止數(shù)據(jù)選通,等待該數(shù)據(jù)中貞傳輸完成,寄存器omon_mux_disa允許數(shù)據(jù)選通相應(yīng)端口的數(shù)據(jù); 若寄存器cfg_omon_num與主機配置的輸出監(jiān)控端口號cfg_omon_num_i匹配,監(jiān)控端口的輸出監(jiān)控端口號不變。
【文檔編號】H04L12/935GK103560931SQ201310529989
【公開日】2014年2月5日 申請日期:2013年10月30日 優(yōu)先權(quán)日:2013年10月30日
【發(fā)明者】李玉發(fā), 李大鵬, 蒲愷, 田園, 雷宇宏, 何向棟 申請人:中國航空工業(yè)集團公司第六三一研究所