專利名稱:一種診斷信息的獲取方法及裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及通信領域中的診斷技術。
背景技術:
通信設備包括主控單板、以及一塊或多個業(yè)務單板,例如,路由器包括主控單板、 以及交換網(wǎng)板、網(wǎng)絡處理板等業(yè)務單板。傳統(tǒng)的對通信設備的診斷信息的獲取方法為在主 控單板、各業(yè)務單板上的業(yè)務模塊中插入用于獲取診斷信息的代碼,業(yè)務模塊工作時,其中 的用于獲取診斷信息的代碼也運行,記錄該業(yè)務模塊的收發(fā)報文數(shù)量、丟包數(shù)量等診斷信 息,并將記錄的信息存儲在該業(yè)務模塊所屬的主控單板或業(yè)務單板上。此診斷信息的獲取 方法存在以下缺點 通信設備故障時,通過主控單板、各業(yè)務單板上供調(diào)試用的串口登陸主控單板或 各業(yè)務單板,讀取其上當前的診斷信息進行故障定位,無法遠程操作;進行故障定位時,能 夠獲取到的診斷信息為當前的診斷信息,不能獲取發(fā)生故障的時刻的診斷信息,不利于故 障定位。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種診斷信息的獲取方法及裝置,能夠解 決無法通過遠程操作獲取通信設備的診斷信息以及不能獲取發(fā)生故障的時刻的診斷信息 的問題。 為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的 —種診斷信息的獲取方法,分別在各業(yè)務單板的各業(yè)務模塊中插入診斷點;該方 法還包括 通信設備初始化時,主控單板、各業(yè)務單板分別創(chuàng)建診斷進程,并生成相應的診斷 進程號; 通過主控單板的操作管理維護(0AM)界面登陸主控單板,輸入診斷命令時,主控 單板的診斷進程將該診斷命令下發(fā)至該診斷命令攜帶的各CPU節(jié)點號所標識的各業(yè)務單 板的診斷進程; 所述各業(yè)務單板的診斷進程,配置并開啟相應的診斷點,獲取診斷信息并通過主 控單板的診斷進程進行相應處理。 進一步地,進行故障定位時,該方法進一步包括 登陸主控單板的OAM界面,輸入診斷查詢命令,主控單板的診斷進程查詢主控單 板上存儲的符合該診斷查詢命令的診斷信息并通過0AM界面輸出。
進一步地,所述分別在各業(yè)務模塊中插入診斷點包括
在各業(yè)務模塊中分別設置回調(diào)函數(shù); 在各業(yè)務模塊中選擇一個或多個插入點,在各插入點插入診斷點;所述診斷點包 括回調(diào)函數(shù)的調(diào)用程序。
進一步地,在通信設備初始化時,該方法進一步包括各業(yè)務模塊的各診斷點分別 向自身所屬業(yè)務單板的診斷進程注冊,具體為 各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程發(fā)送注冊請求;
所述診斷進程為發(fā)來注冊請求的診斷點分配診斷點ID、結構空間、以及該診斷點 所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址; 將所述診斷點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址存儲在為該診斷點 分配的結構空間中。 進一步地,所述診斷命令攜帶有診斷進程號、CPU節(jié)點號、配置信息、以及診斷點開 關指示; 所述診斷點開關指示包括開啟指示或關閉指示; 相應的,所述各診斷進程分別根據(jù)自身接收到的診斷命令,配置并開啟相應的診
斷點、獲取診斷信息并通過主控單板的診斷進程進行診斷信息的存儲、實時顯示; 各診斷進程接收到的診斷命令攜帶關閉指示時,關閉相應的診斷點。 進一步地,所述配置信息為測試用例數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,
或者,條件參數(shù)、過濾條件和診斷信息類型; 相應的,接收到的診斷命令中配置信息包括測試用例數(shù)據(jù)時,所述配置并開啟相 應的診斷點前,該方法還包括 各診斷進程將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊;
所述配置相應的診斷點為 根據(jù)相應的診斷點的結構空間中所存儲的回調(diào)函數(shù)的地址,得到該診斷點所處業(yè) 務模塊上設置的回調(diào)函數(shù)并調(diào)用; 取配置信息中該診斷點的條件參數(shù)、過濾條件和診斷信息類型,將所取的條件參 數(shù)代入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾函數(shù);根據(jù)診斷信息類型配置數(shù)據(jù) 抓取函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息。 進一步地,所述配置并開啟相應的診斷點后,所述獲取診斷信息并通過主控單板 的診斷進程存儲包括 業(yè)務進程將該診斷點的調(diào)用程序作為其所處業(yè)務模塊的一部分,隨同其所屬的業(yè) 務模塊運行該診斷點的調(diào)用程序,獲取診斷信息并與該診斷點的ID—起發(fā)至開啟該診斷 點的診斷進程;所述診斷進程將接收到的診斷點的ID和診斷信息對應緩存至該診斷進程 所述的業(yè)務單板上; 各業(yè)務單板的診斷進程將該業(yè)務單板上對應緩存的診斷點的ID和診斷信息上報 給主控單板的診斷進程;主控單板的診斷進程將接收到的診斷點的ID和診斷信息存儲在 主控單板上。 進一步地,所述各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程注冊 后,該方法還包括 為通信設備的各業(yè)務流程對應配置診斷組,在各業(yè)務流程對應的診斷組中寫入實 現(xiàn)該業(yè)務流程的各業(yè)務模塊中的診斷點的ID ; 所述開啟指示包括開啟診斷組指示,或者,診斷組設置指示和一個或多個診斷點 的ID ;關閉指示包括關閉診斷組指示;
相應的,接收到的診斷命令的診斷點開關指示為開啟指示時,所述配置并開啟相 應的診斷點具體為 為開啟診斷組指示時,配置并開啟所指示的診斷組包含的各診斷點; 為診斷組設置指示和一個或多個診斷點的ID時,配置診斷組,將該一個或多個診
斷點的ID寫入設置的診斷組,配置并開啟設置的診斷組包含的各診斷點; 在所接收到的診斷命令的診斷點開關指示為關閉指示時,所述關閉相應的診斷點
具體為關閉所指示的診斷組包含的各診斷點。 本發(fā)明還提供一種診斷信息的獲取裝置,該裝置包括創(chuàng)建模塊、主控單板和業(yè)務 單板;其中, 創(chuàng)建模塊,用于分別在主控單板和各業(yè)務單板的各業(yè)務模塊中插入診斷點;
主控單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號;
業(yè)務單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號;
其中, 主控單板上設置有OAM界面,用于提供登陸主控單板的界面,接收用戶輸入的診 斷命令; 主控單板的診斷進程,用于將主控單板的OAM界面接收到的診斷命令下發(fā)至該診 斷命令攜帶的各CPU節(jié)點號所標識的各業(yè)務單板的診斷進程; 業(yè)務單板的診斷進程,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點,獲 取診斷信息并通過主控單板的診斷進程進行相應處理。
進一步地,所述主控單板的診斷進程包括主控收發(fā)模塊和主控存儲模塊;其中, 主控收發(fā)模塊,用于將所述診斷命令下發(fā)至該診斷命令攜帶的各CPU節(jié)點號所標
識的各業(yè)務單板的診斷進程;并接收業(yè)務單板的診斷進程發(fā)來的診斷信息; 主控存儲模塊,用于存儲業(yè)務單板的診斷進程發(fā)來的診斷信息。 進一步地,所述0AM界面,還用于接收用戶輸入的診斷查詢命令;輸出符合所述診
斷查詢命令的診斷信息; 所述主控單板的診斷進程還包括查詢模塊,用于查詢主控單板上存儲的符合所述 診斷查詢命令的診斷信息并發(fā)至0AM界面。
進一步地,所述創(chuàng)建模塊包括設置模塊和輸入模塊;其中,
設置模塊,用于在各業(yè)務模塊中分別設置回調(diào)函數(shù); 輸入模塊,用于在各業(yè)務模塊中選擇的一個或多個插入點插入診斷點;所述診斷 點包括回調(diào)函數(shù)的調(diào)用程序。
進一步地,所述業(yè)務單板的診斷進程包括業(yè)務接收模塊和業(yè)務管理模塊;其中,
業(yè)務接收模塊,用于將獲取的診斷信息發(fā)至主控單板的診斷進程;
業(yè)務管理模塊,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點、獲取診斷 信息并發(fā)至主控單板的診斷進程,或者,關閉相應的診斷點。 進一步地,所述診斷點,用于向自身所屬業(yè)務單板的診斷進程發(fā)送注冊請求;
所述業(yè)務單板的診斷進程還包括業(yè)務注冊模塊,用于分別為發(fā)來注冊請求的診斷 點分配診斷點ID和結構空間、以及該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址;將 各診斷點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址存儲在為該診斷點分配的結構空間。 進一步地,所述診斷命令攜帶有診斷進程號、CPU節(jié)點號、配置信息、以及診斷點開 關指示; 所述診斷點開關指示包括開啟指示或關閉指示; 所述配置信息為測試用例數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,或者,條件 參數(shù)、過濾條件和診斷信息類型; 所述業(yè)務管理模塊包括業(yè)務解析模塊、業(yè)務配置模塊、業(yè)務獲取模塊、業(yè)務發(fā)送模 塊和業(yè)務關閉模塊;其中, 業(yè)務解析模塊,用于解析到接收到的診斷命令攜帶開啟指示時,觸發(fā)業(yè)務配置模 塊;解析到接收到的診斷命令攜帶關閉指示時,觸發(fā)業(yè)務關閉模塊; 業(yè)務配置模塊,用于調(diào)用回調(diào)函數(shù);取配置信息中該診斷點的條件參數(shù)、過濾條件 和診斷信息類型,將所取的條件參數(shù)代入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾 函數(shù);根據(jù)診斷信息類型配置數(shù)據(jù)抓取函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息;并在接收到 的診斷命令中配置信息包括測試用例數(shù)據(jù)時,將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊;之 后,開啟相應的診斷點; 業(yè)務獲取模塊,用于獲取診斷信息; 業(yè)務發(fā)送模塊,用于發(fā)送所述業(yè)務獲取模塊獲取的診斷信息;
業(yè)務關閉模塊,用于關閉相應的診斷點。 進一步地,該裝置還包括業(yè)務進程,用于將該診斷點的調(diào)用程序作為其所處業(yè)務
模塊的一部分,隨同其所屬的業(yè)務模塊運行該診斷點的調(diào)用程序,獲取診斷信息并與該診
斷點的ID —起發(fā)至開啟該診斷點的業(yè)務單板的診斷進程; 所述業(yè)務獲取模塊包括業(yè)務接收模塊和業(yè)務緩存模塊;其中, 業(yè)務接收模塊,用于接收自身所屬業(yè)務單板上的業(yè)務進程發(fā)來的診斷信息和診斷 點的ID ; 業(yè)務緩存模塊,用于將所述業(yè)務接收模塊接收到的診斷點的ID和診斷信息對應 緩存至自身所屬的業(yè)務單板上。 進一步地,所述業(yè)務管理模塊還包括業(yè)務診斷組設置模塊,用于為業(yè)務板上的各 業(yè)務流程對應配置診斷組,并在業(yè)務板上的各業(yè)務流程對應的診斷組中寫入實現(xiàn)該業(yè)務流 程的各業(yè)務模塊中的診斷點的ID。 本發(fā)明所提供的診斷信息的獲取方法及裝置,主控單板、各業(yè)務單板上分別創(chuàng)建 診斷進程,通過診斷進程間的通信實現(xiàn)主控單板、各業(yè)務單板間診斷命令和診斷信息的交 互,進而實現(xiàn)通過登陸主控單板上的OAM界面統(tǒng)一管理主控單板、各業(yè)務單板上的診斷點、 以及診斷信息,解決了無法通過遠程操作獲取通信設備的診斷信息以及不能獲取發(fā)生故障 的時刻的診斷信息的問題。
圖1為本發(fā)明實施例診斷信息的獲取方法的實現(xiàn)流程圖;
圖2為本發(fā)明實施例診斷信息的獲取裝置的結構示意圖;
圖3為本發(fā)明實施例業(yè)務單板的診斷進程的結構示意圖。
具體實施方式
本發(fā)明實施例診斷信息的獲取方法的實現(xiàn)流程如圖1所示,包括以下步驟
步驟101 :用戶分別在各業(yè)務模塊中插入診斷點;
這里,所述插入診斷點具體為
步驟al、用戶在各業(yè)務模塊中分別設置回調(diào)函數(shù);
步驟bl、用戶在各業(yè)務模塊中選擇一個或多個插入點,在各插入點插入診斷點; 所述診斷點包括回調(diào)函數(shù)的調(diào)用程序,用于調(diào)用該診斷點所處的業(yè)務節(jié)點上設置的回調(diào)函 數(shù);其中,
所述插入點可以在實現(xiàn)業(yè)務模塊的程序的開始、結尾、以及開始和結尾間的任意 處,一般選擇程序中實現(xiàn)業(yè)務流程的關鍵點作為插入點,例如,轉發(fā)流程中,選擇用于接收 報文的程序段后作為一個插入點,選擇用于轉發(fā)報文的程序段前作為另一個插入點;
所述回調(diào)函數(shù)包括條件參數(shù)提取函數(shù)、過濾函數(shù)、數(shù)據(jù)抓取函數(shù)、調(diào)試信息獲取 函數(shù);其中,
條件參數(shù)提取函數(shù)用于提取流經(jīng)自身所處插入點的符合條件參數(shù)的報文,例如, 條件參數(shù)為目的地址000001,則條件參數(shù)提取函數(shù)提取流經(jīng)其自身所處插入點的目的地址 為000001的報文;
過濾函數(shù),用于依據(jù)過濾條件,過濾所述條件參數(shù)提取函數(shù)提取的報文;
數(shù)據(jù)抓取函數(shù),在過濾函數(shù)過濾得到符合過濾條件的報文時,抓取該報文;
調(diào)試信息獲取函數(shù),在過濾函數(shù)過濾得到符合過濾條件的報文時,獲取自身所處 插入點當前的調(diào)試信息。
步驟102 :通信設備初始化時,主控單板、各業(yè)務單板分別創(chuàng)建診斷進程,并生成 相應的診斷進程號;各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程注冊。其 中,診斷進程號用于標識診斷進程;
其中,所述各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程注冊具體 為
步驟a2、各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程發(fā)送注冊請 求;
步驟b2、所述診斷進程為發(fā)來注冊請求的診斷點分配診斷點ID、結構空間、以及 該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址;
其中,所述回調(diào)函數(shù)的地址,用于指示所述回調(diào)函數(shù)的位置;一個業(yè)務單板的CPU 節(jié)點號+ —個診斷點的ID可唯一確定一個診斷點,所述一個CPU節(jié)點號唯一標識一個主控 單板或業(yè)務單板。
步驟c2、所述診斷進程將各診斷點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地 址存儲在為該診斷點分配的結構空間中。
本發(fā)明實施例中,步驟102還可以包括各診斷進程為通信設備的各業(yè)務流程對 應配置診斷組,在各業(yè)務流程對應的診斷組中寫入實現(xiàn)該業(yè)務流程的各業(yè)務模塊中的診斷 點的ID,S卩,為每個業(yè)務流程配置一個診斷組,該診斷組中的各診斷點的ID為實現(xiàn)該業(yè)務 流程的各業(yè)務模塊中的診斷點的ID。
步驟103 :通過主控單板的操作管理維護(OAM, Operation Administrationand Maintenance)界面登陸主控單板,輸入診斷命令;主控單板的診斷進程解析診斷命令,得 到該診斷命令攜帶的各CPU節(jié)點號,將該診斷命令下發(fā)至得到的各CPU節(jié)點號所標識的各 業(yè)務單板的診斷進程; 其中,所述診斷命令攜帶有診斷進程號、CPU節(jié)點號、配置信息、以及診斷點開關指 示; 所述診斷進程號用于指示將該診斷命令發(fā)至診斷進程,而非發(fā)至除診斷進程外的 其它進程,例如,業(yè)務進程等。 所述配置信息為測試用例數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,或者,條件 參數(shù)、過濾條件和診斷信息類型;其中, 所述診斷點開關指示包括開啟指示或關閉指示;其中,開啟指示具體為開啟診 斷組指示,或者,診斷組設置指示和一個或多個診斷點的ID,或者,開啟診斷點指示;關閉 指示具體為關閉診斷組指示,或者,關閉診斷點指示。 進一步地,診斷進程間交互通過通信設備上進程間的通信渠道實現(xiàn),即以板間消 息的形式交互信息,這里,將該診斷命令下發(fā)至得到的各診斷進程號標識的除自身外的其 它診斷進程具體為 將所述其它診斷進程的進程號和該診斷進程所屬業(yè)務單板的CPU節(jié)點號寫入板 間消息的消息頭,將所述板間消息寫入該板間消息的消息體,發(fā)送該板間消息至相應單板 的所述其它診斷進程。
步驟104 :接收到診斷命令的各診斷進程分別根據(jù)自身接收到的診斷命令,配置
并開啟相應的診斷點、獲取診斷信息并通過主控單板的診斷進程進行相應處理。 具體為 各診斷進程接收到的診斷命令攜帶開啟指示時,配置并開啟相應的診斷點;各診 斷進程接收到的診斷命令攜帶關閉指示時,關閉相應的診斷點。 這里,在所接收到的診斷命令的診斷點開關指示為開啟指示時,所述配置并開啟 相應的診斷點具體為 為開啟診斷組指示時,配置并開啟所指示的診斷組包含的全部診斷點,即所指示 的診斷組中各診斷點的ID標識的診斷點; 為診斷組設置指示和一個或多個診斷點的ID時,配置診斷組,將該一個或多個診 斷點的ID寫入設置的診斷組,并配置并開啟設置的診斷組包含的全部診斷點;
為開啟診斷點指示時,配置并開啟所指示的診斷點。 在所接收到的診斷命令的診斷點開關指示為關閉指示時,所述關閉相應的診斷點 具體為 為關閉診斷組指示時,關閉所指示的診斷組包含的全部診斷點;為關閉診斷點指 示時,關閉所指示的診斷點。 進一步地,接收到的診斷命令中配置信息包括測試用例數(shù)據(jù)時,所述配置并開啟 相應的診斷點前,步驟104還包括 各診斷進程將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊;這里,一般待測業(yè)務模塊當 前未運行時,診斷命令中配置信息包括測試用例數(shù)據(jù),用于模擬業(yè)務模塊的運行環(huán)境。
進一步地,所述配置相應的診斷點為 步驟a3、根據(jù)相應的診斷點的結構空間中所存儲的回調(diào)函數(shù)的地址,得到該診斷 點所處業(yè)務模塊上設置的回調(diào)函數(shù)并調(diào)用; 步驟b3、取配置信息中該診斷點的條件參數(shù)、過濾條件和診斷信息類型,將所取的 條件參數(shù)代入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾函數(shù);根據(jù)診斷信息類型配 置數(shù)據(jù)抓取函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息。
進一步地,所述獲取診斷信息并通過主控單板的診斷進程存儲包括
步驟a4、業(yè)務進程將該診斷點的調(diào)用程序作為其所處業(yè)務模塊的一部分,隨同其 所屬的業(yè)務模塊運行該診斷點的調(diào)用程序,獲取診斷信息并與該診斷點的ID —起發(fā)至開 啟該診斷點的診斷進程;所述診斷進程將接收到的診斷點的ID和診斷信息對應緩存至該 診斷進程所屬的業(yè)務單板上; 其中,所述隨同其所屬的業(yè)務模塊運行該診斷點的調(diào)用程序具體為 業(yè)務進程運行其所屬的業(yè)務模塊至該診斷點所處的插入點時,運行該診斷點的調(diào)
用程序,之后,接著運行插入點后的業(yè)務模塊的程序。 其中,所述接收到的診斷點的ID和診斷信息對應緩存在各主控單板或業(yè)務單板 的高端內(nèi)存,以保證通信設備重啟后,緩存的所述診斷信息不會丟失; 相應的,本發(fā)明實施例還包括采用最優(yōu)適應法分別管理各業(yè)務單板的高端內(nèi)存, 管理某業(yè)務單板的高端內(nèi)存的具體為 步驟a41、將高端內(nèi)存中的空閑塊按照從小到大的順序鏈接起來,得到空閑塊鏈;
步驟a42、運行診斷點的調(diào)用程序,獲取到診斷信息時,將該診斷點的ID和所獲 取的診斷信息作為一條記錄,遍歷所述空閑塊鏈,直到找到第一個不小于該條記錄長度的 空閑塊,從所述空閑塊鏈中刪除所找到的空閑塊,將該條記錄寫入所找到的空閑塊,此時, 如果所找到的空閑塊還有空閑空間,則將該空閑空間作為一個空閑塊鏈接到所述空閑塊鏈 中; 步驟a43、將緩存的記錄上報給主控單板的診斷進程、或存儲在主控單板上時,釋 放該記錄占用的內(nèi)存空間得到空閑空間,查詢與該空閑空間物理地址相鄰的內(nèi)存空間是否 空閑,如果是,將該空閑空間和與之相鄰的內(nèi)存空間合并后,作為一個空閑塊并鏈接到所述 空閑塊鏈中,以避免產(chǎn)生內(nèi)存碎片,提高高端內(nèi)存使用率;如果不是,將該空閑空間作為一 個空閑塊鏈接到所述空閑塊鏈中。 步驟b4、各業(yè)務單板的診斷進程將該業(yè)務單板上對應緩存的診斷點的ID和診斷 信息上報給主控單板的診斷進程;主控單板的診斷進程將接收到的診斷點的ID和診斷信 息、以及自身緩存的診斷點的ID和診斷信息存儲在主控單板上。 這里,所述將該業(yè)務單板上緩存的診斷信息上報給主控單板的診斷進程失敗后, 步驟b4還包括重新上報,直到重新上報的次數(shù)超出預先設定的重傳閾值,仍未上報成功, 則結束本次上報流程,等待緩存新的診斷信息,返回執(zhí)行所述將該業(yè)務單板上緩存的診斷 信息上報給主控單板的診斷進程的操作。
其中,所述將緩存的診斷信息發(fā)送至主控單板的診斷進程具體為 將主控單板的診斷進程的進程號和主控單板的CPU節(jié)點號寫入板間消息的消息
頭,將緩存的記錄寫入該板間消息的消息體,發(fā)送該板間消息至主控單板的診斷進程。
這里,所述將診斷信息存儲在主控單板上具體為 步驟b41、在單板索引表中查詢發(fā)來診斷信息的業(yè)務單板的CPU節(jié)點號; 步驟b42、查詢在單板索引表中檢索到的CPU節(jié)點號所對應指針指向的診斷點索
引表; 步驟b43、在診斷點索引表中查詢診斷信息對應的診斷點的ID ;查詢在診斷點索 引表中查詢到的ID對應的指針; 步驟b44、將所述診斷信息存儲至所述ID對應的指針指向的診斷信息表中。
故障診斷時,執(zhí)行步驟105 : 步驟105 :登陸主控單板的OAM界面,輸入診斷查詢命令,主控單板的診斷進程查
詢主控單板上存儲的符合該診斷查詢命令的診斷信息并通過0AM界面輸出。 本發(fā)明實施例診斷信息的獲取裝置的結構如圖2所示,包括創(chuàng)建模塊、主控單板
和業(yè)務單板;其中, 創(chuàng)建模塊,用于分別在主控單板和各業(yè)務單板的各業(yè)務模塊中插入診斷點;
主控單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號;
業(yè)務單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號;
其中, 主控單板上設置有OAM界面,用于提供登陸主控單板的界面,接收用戶輸入的診 斷命令; 主控單板的診斷進程,用于將主控單板的OAM界面接收到的診斷命令下發(fā)至該診 斷命令攜帶的各CPU節(jié)點號所標識的各業(yè)務單板的診斷進程; 業(yè)務單板的診斷進程,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點,獲 取診斷信息并通過主控單板的診斷進程進行相應處理。
進一步地,所述主控單板的診斷進程包括主控收發(fā)模塊和主控存儲模塊;其中, 主控收發(fā)模塊,用于將所述診斷命令下發(fā)至該診斷命令攜帶的各CPU節(jié)點號所標
識的各業(yè)務單板的診斷進程;并接收業(yè)務單板的診斷進程發(fā)來的診斷信息; 主控存儲模塊,用于存儲業(yè)務單板的診斷進程發(fā)來的診斷信息。 進一步地,所述OAM界面,還用于接收用戶輸入的診斷查詢命令;輸出符合所述診
斷查詢命令的診斷信息; 所述主控單板的診斷進程還包括查詢模塊,用于查詢主控單板上存儲的符合所述 診斷查詢命令的診斷信息并發(fā)至0AM界面。
進一步地,所述創(chuàng)建模塊包括設置模塊和輸入模塊;其中,
設置模塊,用于在各業(yè)務模塊中分別設置回調(diào)函數(shù); 輸入模塊,用于在各業(yè)務模塊中選擇的一個或多個插入點插入診斷點;所述診斷 點包括回調(diào)函數(shù)的調(diào)用程序。 進一步地,所述業(yè)務單板的診斷進程的結構如圖3所示,包括業(yè)務接收模塊和業(yè) 務管理模塊;其中, 業(yè)務接收模塊,用于將獲取的診斷信息發(fā)至主控單板的診斷進程; 業(yè)務管理模塊,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點、獲取診斷
信息并發(fā)至主控單板的診斷進程,或者,關閉相應的診斷點。
進一步地,所述診斷點,用于向自身所屬業(yè)務單板的診斷進程發(fā)送注冊請求;
所述業(yè)務單板的診斷進程還包括業(yè)務注冊模塊,用于分別為發(fā)來注冊請求的診斷 點分配診斷點ID和結構空間、以及該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址;將 各診斷點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址存儲在為該診斷點分配的結構空 間。 進一步地,所述診斷命令攜帶有診斷進程號、CPU節(jié)點號、配置信息、以及診斷點開 關指示; 所述診斷點開關指示包括開啟指示或關閉指示; 所述配置信息為測試用例數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,或者,條件 參數(shù)、過濾條件和診斷信息類型; 所述業(yè)務管理模塊包括業(yè)務解析模塊、業(yè)務配置模塊、業(yè)務獲取模塊、業(yè)務發(fā)送模 塊和業(yè)務關閉模塊;其中, 業(yè)務解析模塊,用于解析到接收到的診斷命令攜帶開啟指示時,觸發(fā)業(yè)務配置模 塊;解析到接收到的診斷命令攜帶關閉指示時,觸發(fā)業(yè)務關閉模塊; 業(yè)務配置模塊,用于調(diào)用回調(diào)函數(shù);取配置信息中該診斷點的條件參數(shù)、過濾條件 和診斷信息類型,將所取的條件參數(shù)代入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾 函數(shù);根據(jù)診斷信息類型配置數(shù)據(jù)抓取函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息;并在接收到 的診斷命令中配置信息包括測試用例數(shù)據(jù)時,將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊;之 后,開啟相應的診斷點; 業(yè)務獲取模塊,用于獲取診斷信息; 業(yè)務發(fā)送模塊,用于發(fā)送所述業(yè)務獲取模塊獲取的診斷信息;
業(yè)務關閉模塊,用于關閉相應的診斷點。 進一步地,本發(fā)明實施例所述裝置還包括業(yè)務進程,用于將該診斷點的調(diào)用程序
作為其所處業(yè)務模塊的一部分,隨同其所屬的業(yè)務模塊運行該診斷點的調(diào)用程序,獲取診
斷信息并與該診斷點的ID—起發(fā)至開啟該診斷點的業(yè)務單板的診斷進程; 相應的,所述業(yè)務獲取模塊包括業(yè)務接收模塊和業(yè)務緩存模塊;其中, 業(yè)務接收模塊,用于接收自身所屬業(yè)務單板上的業(yè)務進程發(fā)來的診斷信息和診斷
點的ID ; 業(yè)務緩存模塊,用于將所述業(yè)務接收模塊接收到的診斷點的ID和診斷信息對應 緩存至自身所屬的業(yè)務單板上。 進一步地,所述業(yè)務管理模塊還包括業(yè)務診斷組設置模塊,用于為業(yè)務板上的各 業(yè)務流程對應配置診斷組,并在業(yè)務板上的各業(yè)務流程對應的診斷組中寫入實現(xiàn)該業(yè)務流 程的各業(yè)務模塊中的診斷點的ID。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
1權利要求
一種診斷信息的獲取方法,其特征在于,分別在各業(yè)務單板的各業(yè)務模塊中插入診斷點;該方法還包括通信設備初始化時,主控單板、各業(yè)務單板分別創(chuàng)建診斷進程,并生成相應的診斷進程號;通過主控單板的操作管理維護(OAM)界面登陸主控單板,輸入診斷命令時,主控單板的診斷進程將該診斷命令下發(fā)至該診斷命令攜帶的各CPU節(jié)點號所標識的各業(yè)務單板的診斷進程;所述各業(yè)務單板的診斷進程,配置并開啟相應的診斷點,獲取診斷信息并通過主控單板的診斷進程進行相應處理。
2. 根據(jù)權利要求1所述診斷信息的獲取方法,其特征在于,進行故障定位時,該方法進 一步包括登陸主控單板的0AM界面,輸入診斷查詢命令,主控單板的診斷進程查詢主控單板上 存儲的符合該診斷查詢命令的診斷信息并通過0AM界面輸出。
3. 根據(jù)權利要求1或2所述診斷信息的獲取方法,其特征在于,所述分別在各業(yè)務模塊 中插入診斷點包括在各業(yè)務模塊中分別設置回調(diào)函數(shù);在各業(yè)務模塊中選擇一個或多個插入點,在各插入點插入診斷點;所述診斷點包括回 調(diào)函數(shù)的調(diào)用程序。
4. 根據(jù)權利要求3所述診斷信息的獲取方法,其特征在于,在通信設備初始化時,該 方法進一步包括各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程注冊,具體 為各業(yè)務模塊的各診斷點分別向自身所屬業(yè)務單板的診斷進程發(fā)送注冊請求; 所述診斷進程為發(fā)來注冊請求的診斷點分配診斷點ID、結構空間、以及該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址;將所述診斷點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址存儲在為該診斷點分配的結構空間中。
5. 根據(jù)權利要求4所述診斷信息的獲取方法,其特征在于,所述診斷命令攜帶有診斷 進程號、CPU節(jié)點號、配置信息、以及診斷點開關指示;所述診斷點開關指示包括開啟指示或關閉指示;相應的,所述各診斷進程分別根據(jù)自身接收到的診斷命令,配置并開啟相應的診斷點、 獲取診斷信息并通過主控單板的診斷進程進行診斷信息的存儲、實時顯示; 各診斷進程接收到的診斷命令攜帶關閉指示時,關閉相應的診斷點。
6. 根據(jù)權利要求5所述診斷信息的獲取方法,其特征在于,所述配置信息為測試用例 數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,或者,條件參數(shù)、過濾條件和診斷信息類型;相應的,接收到的診斷命令中配置信息包括測試用例數(shù)據(jù)時,所述配置并開啟相應的 診斷點前,該方法還包括各診斷進程將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊; 所述配置相應的診斷點為根據(jù)相應的診斷點的結構空間中所存儲的回調(diào)函數(shù)的地址,得到該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)并調(diào)用;取配置信息中該診斷點的條件參數(shù)、過濾條件和診斷信息類型,將所取的條件參數(shù)代 入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾函數(shù);根據(jù)診斷信息類型配置數(shù)據(jù)抓取 函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息。
7. 根據(jù)權利要求6所述診斷信息的獲取方法,其特征在于,所述配置并開啟相應的診 斷點后,所述獲取診斷信息并通過主控單板的診斷進程存儲包括業(yè)務進程將該診斷點的調(diào)用程序作為其所處業(yè)務模塊的一部分,隨同其所屬的業(yè)務模 塊運行該診斷點的調(diào)用程序,獲取診斷信息并與該診斷點的ID —起發(fā)至開啟該診斷點的 診斷進程;所述診斷進程將接收到的診斷點的ID和診斷信息對應緩存至該診斷進程所述 的業(yè)務單板上;各業(yè)務單板的診斷進程將該業(yè)務單板上對應緩存的診斷點的ID和診斷信息上報給主 控單板的診斷進程;主控單板的診斷進程將接收到的診斷點的ID和診斷信息存儲在主控 單板上。
8. 根據(jù)權利要求4所述診斷信息的獲取方法,其特征在于,所述各業(yè)務模塊的各診斷 點分別向自身所屬業(yè)務單板的診斷進程注冊后,該方法還包括為通信設備的各業(yè)務流程對應配置診斷組,在各業(yè)務流程對應的診斷組中寫入實現(xiàn)該 業(yè)務流程的各業(yè)務模塊中的診斷點的ID ;所述開啟指示包括開啟診斷組指示,或者,診斷組設置指示和一個或多個診斷點的 ID ;關閉指示包括關閉診斷組指示;相應的,接收到的診斷命令的診斷點開關指示為開啟指示時,所述配置并開啟相應的 診斷點具體為為開啟診斷組指示時,配置并開啟所指示的診斷組包含的各診斷點;為診斷組設置指示和一個或多個診斷點的ID時,配置診斷組,將該一個或多個診斷點 的ID寫入設置的診斷組,配置并開啟設置的診斷組包含的各診斷點;在所接收到的診斷命令的診斷點開關指示為關閉指示時,所述關閉相應的診斷點具體 為關閉所指示的診斷組包含的各診斷點。
9. 一種診斷信息的獲取裝置,其特征在于,該裝置包括創(chuàng)建模塊、主控單板和業(yè)務單 板;其中,創(chuàng)建模塊,用于分別在主控單板和各業(yè)務單板的各業(yè)務模塊中插入診斷點; 主控單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號; 業(yè)務單板,用于初始化時,用于創(chuàng)建自身的診斷進程,并生成相應的診斷進程號; 其中,主控單板上設置有OAM界面,用于提供登陸主控單板的界面,接收用戶輸入的診斷命令;主控單板的診斷進程,用于將主控單板的0AM界面接收到的診斷命令下發(fā)至該診斷命 令攜帶的各CPU節(jié)點號所標識的各業(yè)務單板的診斷進程;業(yè)務單板的診斷進程,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點,獲取診 斷信息并通過主控單板的診斷進程進行相應處理。
10. 根據(jù)權利要求9所述診斷信息的獲取裝置,其特征在于,所述主控單板的診斷進程包括主控收發(fā)模塊和主控存儲模塊;其中,主控收發(fā)模塊,用于將所述診斷命令下發(fā)至該診斷命令攜帶的各CPU節(jié)點號所標識的 各業(yè)務單板的診斷進程;并接收業(yè)務單板的診斷進程發(fā)來的診斷信息;主控存儲模塊,用于存儲業(yè)務單板的診斷進程發(fā)來的診斷信息。
11. 根據(jù)權利要求10所述診斷信息的獲取裝置,其特征在于,所述0AM界面,還用于接 收用戶輸入的診斷查詢命令;輸出符合所述診斷查詢命令的診斷信息;所述主控單板的診斷進程還包括查詢模塊,用于查詢主控單板上存儲的符合所述診斷 查詢命令的診斷信息并發(fā)至0AM界面。
12. 根據(jù)權利要求9、或10、或11所述診斷信息的獲取裝置,其特征在于,所述創(chuàng)建模塊 包括設置模塊和輸入模塊;其中,設置模塊,用于在各業(yè)務模塊中分別設置回調(diào)函數(shù);輸入模塊,用于在各業(yè)務模塊中選擇的一個或多個插入點插入診斷點;所述診斷點包 括回調(diào)函數(shù)的調(diào)用程序。
13. 根據(jù)權利要求9、或10、或11所述診斷信息的獲取裝置,其特征在于,所述業(yè)務單板 的診斷進程包括業(yè)務接收模塊和業(yè)務管理模塊;其中,業(yè)務接收模塊,用于將獲取的診斷信息發(fā)至主控單板的診斷進程; 業(yè)務管理模塊,用于根據(jù)接收到的診斷命令,配置并開啟相應的診斷點、獲取診斷信息 并發(fā)至主控單板的診斷進程,或者,關閉相應的診斷點。
14. 根據(jù)權利要求13所述診斷信息的獲取裝置,其特征在于,所述診斷點,用于向自身 所屬業(yè)務單板的診斷進程發(fā)送注冊請求;所述業(yè)務單板的診斷進程還包括業(yè)務注冊模塊,用于分別為發(fā)來注冊請求的診斷點分 配診斷點ID和結構空間、以及該診斷點所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址;將各診斷 點的ID和所處業(yè)務模塊上設置的回調(diào)函數(shù)的地址存儲在為該診斷點分配的結構空間。
15. 根據(jù)權利要求14所述診斷信息的獲取裝置,其特征在于,所述診斷命令攜帶有診 斷進程號、CPU節(jié)點號、配置信息、以及診斷點開關指示;所述診斷點開關指示包括開啟指示或關閉指示;所述配置信息為測試用例數(shù)據(jù)、條件參數(shù)、過濾條件和診斷信息類型,或者,條件參 數(shù)、過濾條件和診斷信息類型;所述業(yè)務管理模塊包括業(yè)務解析模塊、業(yè)務配置模塊、業(yè)務獲取模塊、業(yè)務發(fā)送模塊和 業(yè)務關閉模塊;其中,業(yè)務解析模塊,用于解析到接收到的診斷命令攜帶開啟指示時,觸發(fā)業(yè)務配置模塊;解 析到接收到的診斷命令攜帶關閉指示時,觸發(fā)業(yè)務關閉模塊;業(yè)務配置模塊,用于調(diào)用回調(diào)函數(shù);取配置信息中該診斷點的條件參數(shù)、過濾條件和診 斷信息類型,將所取的條件參數(shù)代入條件參數(shù)提取函數(shù),將所取得過濾條件代入過濾函數(shù); 根據(jù)診斷信息類型配置數(shù)據(jù)抓取函數(shù)、調(diào)試信息獲取函數(shù)的輸出信息;并在接收到的診斷 命令中配置信息包括測試用例數(shù)據(jù)時,將測試用例數(shù)據(jù)代入相應的各業(yè)務模塊;之后,開啟 相應的診斷點;業(yè)務獲取模塊,用于獲取診斷信息;業(yè)務發(fā)送模塊,用于發(fā)送所述業(yè)務獲取模塊獲取的診斷信息;業(yè)務關閉模塊,用于關閉相應的診斷點。
16. 根據(jù)權利要求15所述診斷信息的獲取裝置,其特征在于,該裝置還包括業(yè)務進程, 用于將該診斷點的調(diào)用程序作為其所處業(yè)務模塊的一部分,隨同其所屬的業(yè)務模塊運行該 診斷點的調(diào)用程序,獲取診斷信息并與該診斷點的ID —起發(fā)至開啟該診斷點的業(yè)務單板 的診斷進程;所述業(yè)務獲取模塊包括業(yè)務接收模塊和業(yè)務緩存模塊;其中,業(yè)務接收模塊,用于接收自身所屬業(yè)務單板上的業(yè)務進程發(fā)來的診斷信息和診斷點的ID ;業(yè)務緩存模塊,用于將所述業(yè)務接收模塊接收到的診斷點的ID和診斷信息對應緩存 至自身所屬的業(yè)務單板上。
17. 根據(jù)權利要求15所述診斷信息的獲取裝置,其特征在于,所述業(yè)務管理模塊還包 括業(yè)務診斷組設置模塊,用于為業(yè)務板上的各業(yè)務流程對應配置診斷組,并在業(yè)務板上的 各業(yè)務流程對應的診斷組中寫入實現(xiàn)該業(yè)務流程的各業(yè)務模塊中的診斷點的ID。
全文摘要
本發(fā)明公開了一種診斷信息的獲取方法,該方法包括主控單板、各業(yè)務單板上分別創(chuàng)建診斷進程,通過診斷進程間的通信實現(xiàn)主控單板、各業(yè)務單板間診斷命令和診斷信息的交互,進而實現(xiàn)通過登陸主控單板上的OAM界面統(tǒng)一管理主控單板、各業(yè)務單板上的診斷點、以及診斷信息。本發(fā)明同時還公開了一種診斷信息的獲取裝置,包括創(chuàng)建模塊、主控單板和業(yè)務單板。采用本發(fā)明所述的方法和裝置,能夠解決無法通過遠程操作獲取通信設備的診斷信息以及不能獲取發(fā)生故障的時刻的診斷信息的問題。
文檔編號H04L12/26GK101702661SQ20091023841
公開日2010年5月5日 申請日期2009年11月19日 優(yōu)先權日2009年11月19日
發(fā)明者周波, 段威, 蔣嵩 申請人:中興通訊股份有限公司