專利名稱:一種ipmi通訊系統(tǒng)及其可靠通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高級(jí)電信計(jì)算架構(gòu)領(lǐng)域,主要涉及物理單板上面一種HOST 與IPMC之間的通信子系統(tǒng)以及在該系統(tǒng)上凈荷payload接口實(shí)現(xiàn)可靠通信 的一種方法。。
背景技術(shù):
隨著電信技術(shù)的不斷發(fā)展,電信網(wǎng)絡(luò)產(chǎn)品也不斷成熟,在社會(huì)生產(chǎn)和生 活中起到了越來越重要的作用。并且各種應(yīng)用對(duì)電信產(chǎn)品的性能,操作維護(hù) 的功能,也提出了更高的要求。
為了更好的實(shí)現(xiàn)對(duì)電信產(chǎn)品的維護(hù)與管理,各個(gè)電信廠商都有自己的維 護(hù)合管理系統(tǒng)。通過這些管理系統(tǒng)實(shí)現(xiàn)了對(duì)電信產(chǎn)品的日常管理維護(hù),提高 了產(chǎn)品運(yùn)行的穩(wěn)定性能。針對(duì)目前的情況,INTEL等國際大公司提出了智能 平臺(tái)管理接口 IPMI (Intelligent PlatForm ManageMent Interface)等相關(guān)的一 系列接口標(biāo)準(zhǔn)。PICMG(外圍設(shè)備接口 PCI工業(yè)計(jì)算機(jī)制造組織)以IPMI 為基礎(chǔ),提出了 PICMG3.X系列規(guī)范。先進(jìn)的電信計(jì)算平臺(tái)ATCA( Advanced Telco腿unication Comput Architecture)就是以PICMG3.X關(guān)見范為基礎(chǔ)建立 的。
在目前ATCA的規(guī)范PICMG3.X系列中,定義了前臺(tái)單板的HOST (指 各個(gè)單板上面的主CPU側(cè))與智能平臺(tái)管理中心IPMC (Intelligent PlatForm ManageMent Center)之間相互通信的payload 4妄口 ,該payload 4妄口的主要 作用就是完成IPMC和HOST之間的消息交互,使IPMC可以方便地對(duì)前臺(tái) 單板進(jìn)行管理。如圖l所示,在應(yīng)用中,通過在payload接口實(shí)現(xiàn)IPMC和 HOST之間的通信通道,IPMC可以直接獲取其需要關(guān)心的上層業(yè)務(wù)信息, 從而使IPMC可以更加準(zhǔn)確地判斷當(dāng)前前臺(tái)單板的運(yùn)行狀態(tài),提高整個(gè)運(yùn)行 系統(tǒng)地可監(jiān)控性,信息的實(shí)時(shí)性,以及通信的靈活性,對(duì)提高整個(gè)基于ATCA框架下系統(tǒng)的各種性能都會(huì)啟到很大的作用?,F(xiàn)有的專利文獻(xiàn)包括國內(nèi)的專利,專利號(hào)是CN200610007771的"IPMI 子系統(tǒng)及單板上電的方法",該專利主要是描述的基于高級(jí)電信計(jì)算架構(gòu)下 機(jī)框管理(ShMC)與ATCA單板IPMC之間的一種單板上電管理方法,并 沒有對(duì)單板內(nèi)部上面高級(jí)電信計(jì)算架構(gòu)上的payload接口通信作出相關(guān)的說 明,存在不足。在PICMG規(guī)范中,雖然定義了 payload接口,但是在該接口上面具體 的通信怎么實(shí)現(xiàn),從硬件以及通信的格式上面并沒有做相關(guān)的規(guī)定,在該接 口上面并沒有一個(gè)完全的標(biāo)準(zhǔn),但是在PICMG在相關(guān)的文檔中規(guī)定了目前 payload接口上面規(guī)定了必須要實(shí)現(xiàn)的命令,以及可選的命令,按照PICMG 規(guī)范,實(shí)際上在該接口上傳輸?shù)臄?shù)據(jù)也應(yīng)該滿足IPMI命令的格式。發(fā)明內(nèi)容本發(fā)明需要解決的技術(shù)問題是如何提供一種IPMI通訊系統(tǒng)及其可靠通 信方法,能基于可靠傳輸?shù)男畔鬟f機(jī)制實(shí)現(xiàn)一種信息傳輸系統(tǒng),從而達(dá)到 使IPMC和前臺(tái)單板之間交互雙方信息,進(jìn)一步完成以下事項(xiàng)①首先完成 對(duì)前臺(tái)單板的上電的操作,②在上電完成后,IPMC通過該接口上面的通信 通道向前臺(tái)單板提供必要的系統(tǒng)運(yùn)行信息,包括電子開關(guān),傳感器溫度,后 插卡信息,單板上面子卡運(yùn)行信息等;從而保證整個(gè)由各種不同功能單板構(gòu) 成的前臺(tái)系統(tǒng)正確穩(wěn)定的運(yùn)行。本發(fā)明的上述第一個(gè)技術(shù)問題這樣解決,提供一種IPMI通訊系統(tǒng),利 用payload接口實(shí)現(xiàn)前臺(tái)單板HOST側(cè)與單板上IPMC的相互通信,如圖8 所示,包括物理層81、中間層82和應(yīng)用層83;所述中間層82這樣工作 采用IPMI消息格式和請(qǐng)求/響應(yīng)模式并在得到接收錯(cuò)誤響應(yīng)或超時(shí)沒有應(yīng)答 情況下重新發(fā)送請(qǐng)求消息。按照本發(fā)明提供的IPMI通訊系統(tǒng),如圖2所示,所述物理層81即IPMI 消息物理通信傳輸模塊201,所述中間層82包括IPMI通信可靠傳輸模塊205 及其與所述物理層之間的IPMI消息接收處理模塊204和IPMI消息發(fā)送處 理模塊203,該中間層也稱為可靠傳輸層。按照本發(fā)明提供的IPMI通訊系統(tǒng),所述IPMI消息格式包括消息頭和 消息體,其中消息頭包括但不限制于目的地址、功能命令集合字段和消息 頭校驗(yàn)字段;消息體包括但不限制于源地址、消息序列號(hào)、消息的命令字、 有效數(shù)據(jù)凈荷和消息體校驗(yàn)字段。
按照本發(fā)明提供的IPMI通訊系統(tǒng),所述物理層的具體傳輸方式包括但 不限制于是I2C協(xié)i義或串口 。
按照本發(fā)明提供的IPMI通訊系統(tǒng),所述物理層信息傳輸采用求余校驗(yàn) 的算法或CRC校驗(yàn)算法。
按照本發(fā)明提供的IPMI通訊系統(tǒng),所述重新發(fā)送是定時(shí)重傳。
本發(fā)明的上述另一個(gè)技術(shù)問題這樣解決,提供一種IPMI通訊系統(tǒng)可靠 通信方法,該通訊方法這才羊發(fā)送IPMI消息,具體包"fe:
5.1) IPMI通訊系統(tǒng)中間層在請(qǐng)求隊(duì)列中保存每個(gè)正在發(fā)送的IPMI請(qǐng)求 消息和發(fā)送者的"爭一標(biāo)識(shí);
5.2) 該中間層發(fā)送者在發(fā)送IPMI請(qǐng)求消息后,對(duì)于發(fā)送失敗或者沒有 應(yīng)答的消息都會(huì)進(jìn)行重傳。
按照本發(fā)明提供的通信方法,所述唯一標(biāo)識(shí)是消息發(fā)送進(jìn)程的進(jìn)程號(hào)。
按照本發(fā)明提供的通信方法,該通訊方法這樣接收IPMI消息,包括
7.1) IPMI通訊系統(tǒng)物理層采用阻塞式機(jī)制實(shí)現(xiàn)消息接收接口 ;
7.2) IPMI通訊系統(tǒng)中間層從所述消息接收接口實(shí)時(shí)提取IPMI消息并處理。
按照本發(fā)明提供的通信方法,該通訊方法這樣控制單板上電
8.1) 單板HOST —側(cè)主動(dòng)向IPMC發(fā)送IPMI格式上電消息通知IPMC 單板開始上電并根據(jù)需要進(jìn)行重新發(fā)送;
8.2) 單板HOST根據(jù)IPMC應(yīng)答進(jìn)行上電并調(diào)用通信接口收發(fā)IPMI格 式消息。
按照本發(fā)明提供的通信方法,該通訊方法這樣控制單板下電
9. l)IPMC檢測(cè)單板下電請(qǐng)求并向單板HOST —側(cè)發(fā)送IPMI格式下電消息通知單板HOST單板開始下電;
9.1)IPMC根據(jù)單板HOST應(yīng)答控制單板正常下電,否則強(qiáng)制下電。 按照本發(fā)明提供的通信方法,所述下電請(qǐng)求是打開前臺(tái)單板的撥手開關(guān)。
本發(fā)明提供的一種IPMI通訊系統(tǒng)及其可靠通信方法,具體可靠地實(shí)現(xiàn) 了 payload接口,從而通過該接口能夠準(zhǔn)確高效ATCA前臺(tái)系統(tǒng)各個(gè)物理單 板上HOST側(cè)與IPMC之間的通信,并且通過已經(jīng)實(shí)現(xiàn)的IPMI通信通道, IPMC可以獲取到單板上各類業(yè)務(wù)的運(yùn)行情況,使IPMC上對(duì)整個(gè)單板運(yùn)行 狀況的信息有比較全面的了解,使IPMC對(duì)整個(gè)單板的控制更加準(zhǔn)確和有 效。同時(shí)單板的HOST側(cè)也可以從IPMC獲取更多的信息,保證了整個(gè)單板 上系統(tǒng)運(yùn)行的穩(wěn)定可靠。
下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對(duì)本發(fā)明進(jìn)^f亍詳細(xì)i兌明。
圖1是PAYLOAD接口在ATCA單板中的位置;
圖2是本發(fā)明IPMI通信系統(tǒng)整體架構(gòu)示意圖3是本發(fā)明通信系統(tǒng)中單板上電流程示意圖4是本發(fā)明通信系統(tǒng)中單板下電流程示意圖5是本發(fā)明通信系統(tǒng)中可靠傳輸各個(gè)控制模塊示意圖6是本發(fā)明通信系統(tǒng)數(shù)據(jù)接收處理流程示意圖7是本發(fā)明通信系統(tǒng)數(shù)據(jù)發(fā)送處理流程示意圖8是本發(fā)明通信系統(tǒng)分層結(jié)構(gòu)模型示意圖。
具體實(shí)施例方式
首先,說明本發(fā)明實(shí)質(zhì)是一套可靠通信機(jī)制和實(shí)現(xiàn)方法,是實(shí)現(xiàn)前臺(tái) 單板上面HOST側(cè)(指單板上面的主CPU側(cè))與單板上IPMC通信的一種 通信模式以及按照IPMI消息格式進(jìn)行可靠通信的方法。(-)系統(tǒng)分層結(jié)構(gòu)本發(fā)明分為三個(gè)層次,如圖8所示,最下面的一層為物理層81,中間 層為可靠傳輸層82),上層為應(yīng)用層83。物理層的主要功能如下實(shí)現(xiàn)對(duì)硬件驅(qū)動(dòng),根據(jù)不同的硬件提供可靠的 底層通信,將硬件的信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并同時(shí)向可靠傳輸層提供屏蔽了 硬件差異的可靠的物理通信傳輸通道,以及實(shí)現(xiàn)提供給上層的通信接口。上 層可以直接調(diào)用該接口獲取物理層的通信信息??煽總鬏攲拥闹饕δ苋缦驴煽總鬏攲邮紫纫WC正確的接收物理層 消息,并對(duì)接收上來的物理層消息進(jìn)行解析,判斷是否接收正確,如果接收 超時(shí)或者接收的數(shù)據(jù)解析出來有錯(cuò)誤就將當(dāng)前的通信消息進(jìn)行重傳。與此同 時(shí),可靠通信傳輸層還要向應(yīng)用層提供消息接收和發(fā)送的接口以供應(yīng)用層來 調(diào)用。應(yīng)用層的主要功能如下應(yīng)用層是具體的業(yè)務(wù)層,應(yīng)用層的功能是通過 可靠傳輸層的接口,實(shí)現(xiàn)具體的應(yīng)用,獲取到IPMC上面的相關(guān)信息。例如 獲取當(dāng)前CPU的溫度,后插卡的狀態(tài)等等信息。(二)通信系統(tǒng)的三種通信狀態(tài)狀態(tài)一 上電狀態(tài)。ATCA前臺(tái)單板上電必須要有對(duì)應(yīng)單板的物理信息。 在ATCA框架下,所有前臺(tái)單板的上電是受到IPMC控制的,所以要實(shí)現(xiàn)上 電必須通過IPMC給單板提供必須的物理信息,包括當(dāng)前單板所在的機(jī)架信 息,槽位信息,機(jī)框信息等。步驟如下1. ATCA單板上電開始,HOST主動(dòng)向IPMC發(fā)送獲取單板物理信息 的消息。2. IPMC收到消息后,根據(jù)消息的具體數(shù)據(jù)判斷當(dāng)前的消息的內(nèi)容, 如果是單板獲取物理消息的請(qǐng)求,就從CMM獲取當(dāng)前物理單板的物理信息。3. IPMC獲取到物理信息并發(fā)送到單板的HOST —側(cè),HOST收到數(shù)據(jù),根據(jù)物理地址信息計(jì)算出單板的IP和MAC地址等信息。并執(zhí)行其它的 一些硬件初始化步驟后上電成功。狀態(tài)二正常通信狀態(tài)。在單板上電后,通信系統(tǒng)處于正常工作狀態(tài),
可以實(shí)現(xiàn)payload接口上正常通信。根據(jù)應(yīng)用層的需求,通信系統(tǒng)可以正常 發(fā)送和接收信息,此時(shí)應(yīng)用層可以調(diào)用發(fā)送接口發(fā)送消息到IPMC,同時(shí)啟 動(dòng)接收任務(wù)以判斷當(dāng)前IPMC是否有消息發(fā)送到HOST。對(duì)于用戶來說,消 息的發(fā)送和接收是雙向的,是全雙工的方式。用戶(一般指應(yīng)用層)可以在 調(diào)用發(fā)送接口發(fā)送消息的同時(shí),調(diào)用接收接口接收消息。在該狀態(tài)通信步驟 如下
1.可靠傳輸層調(diào)用物理層的初始化接口 ,對(duì)硬件進(jìn)行初始化。
2 .應(yīng)用層調(diào)用可靠傳輸層的消息發(fā)送函數(shù)發(fā)送消息??煽總鬏攲诱{(diào)用 物理層的消息發(fā)送接口發(fā)送消息到具體的硬件設(shè)備,硬件設(shè)備將數(shù)字信號(hào)轉(zhuǎn) 化成模擬信號(hào)發(fā)送。
3.可靠傳輸層啟動(dòng)數(shù)據(jù)接收任務(wù),開始接收IPMC是否有應(yīng)答消息, 如果有應(yīng)答消息就對(duì)消息進(jìn)行判斷,判斷是否是正確的應(yīng)答消息,是就把消 息發(fā)送給應(yīng)用層,如果超時(shí)沒有應(yīng)答或者接收錯(cuò)誤就重新發(fā)送請(qǐng)求消息。如 果接收消息不正確就重復(fù)發(fā)送。
狀態(tài)三單板下電狀態(tài),在單板下電,首先要打開單板上面的撥手開關(guān), 開關(guān)打開后IPMC檢測(cè)到開關(guān)已經(jīng)打開的狀態(tài),并發(fā)消息通知給單板的 HOST, HOST收到消息后發(fā)送應(yīng)答消息給IPMC,然后由IPMC控制單板下 電。
曰本通信系統(tǒng)的通信規(guī)則與特點(diǎn)
1. 在整個(gè)通信系統(tǒng)中,每一次消息的交互都采用請(qǐng)求/響應(yīng)的模式,對(duì) 于整個(gè)通信系統(tǒng)而言,沒有主從的關(guān)系,在通信開始時(shí),無論是payload接 口上面的HOST—側(cè),還是IPMC—側(cè)都可以主動(dòng)發(fā)起通信的流程,但是對(duì) 于通信的任何一方,發(fā)送的請(qǐng)求消息,對(duì)方都必須要有響應(yīng)消息,通過這種 握手的機(jī)制, 一方面可以在響應(yīng)消息中將通信雙方各自的消息進(jìn)行了有效的 傳輸,另 一方面又通過這種必須要有響應(yīng)的通信機(jī)制保證了通信雙方在通信 過程中消息的準(zhǔn)確性和可靠性。
2. 在本發(fā)明的通信系統(tǒng)中,IPMI消息的格式完全按照PICMG的相關(guān) 規(guī)范實(shí)現(xiàn)。這種命令的格式在整體上面主要包括兩個(gè)部分,消息頭和消息體。消息頭中主要包括了目的地址,功能命令集合字段,消息頭校驗(yàn)字段。 目的地址表示的是接收該條消息的地址,對(duì)于不同硬件實(shí)現(xiàn),這個(gè)地址是不
同,例如通過I2C總線實(shí)現(xiàn),則該地址就是I2C控制器的地址。功能命令集 合字段表示該條命令是屬于PICMG規(guī)范中規(guī)定的哪一類命令,在PICMG 的相關(guān)規(guī)范中,規(guī)定了多類功能來區(qū)分IPMI消息的種類,這些分類包括應(yīng) 用層的IPMI消息,傳感器事件的請(qǐng)求和響應(yīng)的IPMI消息,固件傳輸?shù)恼?qǐng) 求和響應(yīng)IPMI消息等。根據(jù)PICMG的相關(guān)規(guī)范,不同的事件通過不同的 數(shù)值來標(biāo)示,取值從0x00至0x3F不等,例如對(duì)于應(yīng)用類的IPMI請(qǐng)求響應(yīng) 類消息,取值分別為0x06和0x07。消息頭校驗(yàn)字段是對(duì)消息頭中前面兩個(gè) 字段的一種校驗(yàn),可以通過不同的算法來實(shí)現(xiàn),目前通用的CRC校驗(yàn)算法, 還有一種就是通過對(duì)前面兩個(gè)字段之和求余的算法。
消息體主要包括了源地址,消息序列號(hào),消息的命令字,有效數(shù)據(jù)凈荷 和消息體校驗(yàn)字段。源地址就是表示發(fā)送該消息的單元的地址,這和具體的 物理通信實(shí)現(xiàn)有關(guān),例如如果是采用12C通信的方式,這個(gè)地址就是I2C控 制器的地址。消息的序列號(hào)表示的是該消息的編號(hào),這個(gè)編號(hào)對(duì)于通信雙方 對(duì)消息的判斷極其重要,通信的雙方就是通過這個(gè)字段來判斷是否收到了對(duì) 方的響應(yīng),是否需要重傳等。消息的命令字段是通信雙方按照PICMG的相 關(guān)規(guī)范確定的,它和網(wǎng)絡(luò)功能字段相關(guān),同一個(gè)網(wǎng)絡(luò)命令字段包含了不同的 各種命令。在通信過程中需要將網(wǎng)絡(luò)功能字段和命令字段結(jié)合起來判斷。有 效數(shù)據(jù)凈荷表示的是整個(gè)IPMI消息中攜帶的有效數(shù)據(jù),它不能超過25個(gè)字 節(jié)。消息體校驗(yàn)字段是對(duì)整個(gè)消息體的校驗(yàn),和消息體一樣,采用相同的求 余算法。
3.在本發(fā)明中采用了多種物理信息傳輸?shù)姆椒?,?shí)現(xiàn)方式靈活多樣, 但是對(duì)于整個(gè)通信的上層機(jī)制而言,這種差異只是在物理傳輸?shù)臅r(shí)候才會(huì)存 在,對(duì)于業(yè)務(wù)與應(yīng)用層而言,這種傳輸是透明的傳輸,在本發(fā)明中物理層上 面的實(shí)現(xiàn)采用了兩種方式 一是同過單板上面的12C控制器,實(shí)現(xiàn)同IPMC 之間按照I2C協(xié)議的物理傳輸,另外一種方式是通過單板上面的串口實(shí)現(xiàn)信 息的傳輸。在底層采用不同的硬件實(shí)現(xiàn)方式,在物理層上對(duì)消息的進(jìn)行封裝 的處理方式,保證消息對(duì)于物理層以上而言的通信是完全透明的可靠的傳 輸。4. 本發(fā)明的最終目的是實(shí)現(xiàn)可靠的信息傳輸,物理層根據(jù)傳輸方式的不同分別采用了求余校驗(yàn)的算法和CRC校驗(yàn)算法,通過這兩種算法首先保 證了物理信道上信息的可靠。5. 同時(shí)在物理層上增加了對(duì)傳輸信息的解析,通過解析的結(jié)果判斷是 否雙方是否正確的收到了交互信息。實(shí)現(xiàn)了一層可靠消息傳輸層,在該層上 通過定時(shí)重傳等機(jī)制保證消息在對(duì)方?jīng)]有及時(shí)響應(yīng)的情況下的傳輸?shù)目煽俊5诙?,結(jié)合具體實(shí)現(xiàn)進(jìn)一步說明本發(fā)明 H硬件架構(gòu)本發(fā)明的通信系統(tǒng)中根據(jù)實(shí)現(xiàn)的層次不同,在具體實(shí)現(xiàn)中將物理層和中 間層分成了四個(gè)不同的模塊,如圖2所示,包括1. IPMI通信可靠傳輸模塊205,該模塊的主要作用是用來保證消息的 可靠傳輸,對(duì)消息傳輸?shù)母袷竭M(jìn)行解析,并維護(hù)業(yè)務(wù)層需要從IPMC獲取的 相關(guān)消息,保證消息的準(zhǔn)確與可靠2. IPMI消息物理通訊傳輸模塊201,該模塊的具體功能就是根據(jù)實(shí)際 的各種硬件器件的不同來實(shí)現(xiàn)HOST與IPMC之間的信息傳輸。該模塊是整 個(gè)通信模塊的基礎(chǔ),根據(jù)不同的硬件實(shí)現(xiàn)不同,該模塊實(shí)現(xiàn)也相應(yīng)采取不同的實(shí)現(xiàn)方式。。3. IPMI消息接收處理模塊203,該模塊的主要功能是根據(jù)底層提供的 消息接收接口,并通過實(shí)現(xiàn)操作系統(tǒng)信號(hào)量機(jī)制,實(shí)現(xiàn)上層阻塞接收IPMI 的消息,該接收消息模塊是阻塞調(diào)用的,只要物理通道上面有消息收到,消 息接收模塊就會(huì)收到該消息并能及時(shí)的處理,保證了消息的實(shí)時(shí)性。4. IPMI消息發(fā)送處理模塊204,該模塊的主要功能是根據(jù)消息傳輸控 制模塊上面的消息傳輸隊(duì)列來實(shí)現(xiàn)消息的正確發(fā)送,該模塊在發(fā)送消息的時(shí) 候需要物理傳輸通信模塊提供具體的物理傳輸通道。以上四個(gè)模塊是從整個(gè)通信系統(tǒng)上面各個(gè)簡單的處理單元上進(jìn)行劃分 的,它主要是對(duì)應(yīng)了整個(gè)通信系統(tǒng)的物理層和中間層,首先是中間層,包括 IPMI通信可靠傳輸^^莫塊205、 IPMI消息接收處理模塊203和IPMI消息發(fā)送 處理模塊204。這三個(gè)模塊是中間層實(shí)現(xiàn),其次是物理層實(shí)現(xiàn),對(duì)應(yīng)的是IPMI消息物理通訊傳輸才莫塊201 。 仁)詳細(xì)流程① 上電在上電狀態(tài)下ATCA單板上電步驟,如圖3所示,包括步驟31單板接通電源,開始上電,執(zhí)行步驟32。步驟32單板在電源已經(jīng)接通的情況下,完成單板上IPMI硬件的初始 化,使硬件處于正常工作狀態(tài),執(zhí)行步驟33。步驟33單板上的HOST —側(cè)主動(dòng)向IPMC發(fā)送如圖4所示的IPMI格 式的消息,通知IPMC單板上電開始,需要IPMC將單板上電所需要的信息 通知單板的HOST —側(cè)。執(zhí)行步驟34。步驟34單板的HOST在等待IPMC發(fā)送回單板所需要的消息的時(shí)候設(shè) 置定時(shí)器,開始對(duì)IPMC的應(yīng)答進(jìn)行監(jiān)控,并不斷掃描IPMC是否有應(yīng)答消 息,執(zhí)行步驟35。步驟35判斷單板上IPMC是否有應(yīng)答消息發(fā)送到HOST —側(cè),如果有 應(yīng)答消息,執(zhí)行步驟37。如果沒有應(yīng)答消息,執(zhí)行步驟36。步驟36判斷HOST —側(cè)設(shè)置的等待IPMC應(yīng)答的定時(shí)器是否已經(jīng)超時(shí), 如果超時(shí)執(zhí)行步驟31,否則執(zhí)行步驟35。步驟37單板正常上電完成,可以進(jìn)行正常的通信,相關(guān)的應(yīng)用開始調(diào) 用通信接口收發(fā)數(shù)據(jù)。② 正常工作上電完成后,單板處于正常工作狀態(tài)下該狀態(tài)下,通信系統(tǒng)的消息發(fā) 送和接收是同時(shí)進(jìn)行的。在該狀態(tài)下IPMI通信可靠傳輸模塊205, IPMI消 息發(fā)送模塊204, IPMI消息接收模塊203,提供一套完整的消息傳輸機(jī)制來 保證IPMI消息的可靠傳輸。它具體實(shí)現(xiàn),如圖5所示,包括重發(fā)定時(shí)器501, IPMI消息請(qǐng)求隊(duì)列502和協(xié)議處理任務(wù)503、發(fā)送任務(wù)504和接收任務(wù)505 等部分組成。請(qǐng)求隊(duì)列502保存每個(gè)正在發(fā)送的IPMI請(qǐng)求消息和發(fā)送者的唯一標(biāo)識(shí), 在本發(fā)明的通信系統(tǒng)中,通過消息發(fā)送進(jìn)程的進(jìn)程號(hào)來作為發(fā)送請(qǐng)求消息的發(fā)送者的進(jìn)程號(hào),除了保存發(fā)送相關(guān)的消息外,在請(qǐng)求對(duì)列中還有重傳信息。 發(fā)送者發(fā)送相關(guān)的IPMI請(qǐng)求消息后,對(duì)于發(fā)送失敗或者沒有應(yīng)答的消息都 會(huì)通過重傳的機(jī)制保證消息能再次發(fā)送。協(xié)議處理任務(wù)503根據(jù)它進(jìn)行請(qǐng)求的重傳與把響應(yīng)返回給請(qǐng)求者,發(fā)送 任務(wù)也可以看作是協(xié)議處理的一部分,它是根據(jù)協(xié)議處理任務(wù)的處理結(jié)果通 過物理層提供的透明消息發(fā)送的接口發(fā)送IPMI消息。接收任務(wù)505從就是從物理層提供的消息接收接口中接收IPMI消息, 并將該消息轉(zhuǎn)發(fā)給協(xié)議處理任務(wù)處理。在本發(fā)明中,為了保證消息的實(shí)時(shí)性, 物理層實(shí)現(xiàn)的消息接收接口是阻塞式接口的機(jī)制,當(dāng)物理層沒有消息上報(bào)的 時(shí)候,接收任務(wù)一直處于等待狀態(tài),而一旦有消息上報(bào),接收任務(wù)就可以立 刻將消息轉(zhuǎn)發(fā)給協(xié)議處理任務(wù)進(jìn)行處理。這樣對(duì)于ATCA單板上的一些實(shí) 時(shí)消息,例如E-Keying消息等就可以準(zhǔn)確的上4良并處理。下面是這些任務(wù)的具體實(shí)現(xiàn)協(xié)議處理任務(wù)處理發(fā)送IPMI消息事件、IPMI請(qǐng)求定時(shí)重發(fā)事件、接收 到IPMI消息事件。I )如圖6所示,接收IPMI消息具體包括步驟61單板上電后,操作系統(tǒng)以及單板上的版本程序開始運(yùn)行,接收 任務(wù)處于運(yùn)行狀態(tài),開始通過物理層提供IPMI消息接收接口接收數(shù)據(jù)。步驟62接收任務(wù)接收數(shù)據(jù)的時(shí)候,首先判斷當(dāng)前物理層的狀態(tài)是否 處于初始化完成,已經(jīng)處于數(shù)據(jù)收發(fā)的狀態(tài),如果物理層狀態(tài)沒有處于數(shù)據(jù) 的收發(fā)狀態(tài),則接收任務(wù)休眠5秒鐘后重新開始接收數(shù)據(jù)。步驟63接收任務(wù)等待5秒被喚醒,轉(zhuǎn)移到步驟62。步驟64接收任務(wù)沒有從物理層接收到數(shù)據(jù),或接收超時(shí),將出錯(cuò)信息提 交給協(xié)議處理任務(wù)進(jìn)行處理,轉(zhuǎn)移到步驟65,同時(shí)如果接收任務(wù)已經(jīng)成功 接收數(shù)據(jù),就將數(shù)據(jù)提交給協(xié)議處理任務(wù)進(jìn)行處理步驟65,同時(shí)重新仍然 處于接收數(shù)據(jù)狀態(tài),轉(zhuǎn)移到步驟64。步驟65 IPMI消息轉(zhuǎn)移到接收任務(wù)處理。II)通信協(xié)議處理任務(wù)的主要作用是通過超時(shí)重傳與對(duì)接收與發(fā)送的據(jù)內(nèi)容解析,判斷IPMI消息的正確與否,并根據(jù)解析的結(jié)果發(fā)送請(qǐng)求或應(yīng)答消息,主要流程如圖7所示,具體包括步驟71初始化請(qǐng)求隊(duì)列502,如果請(qǐng)求對(duì)列初始化失敗,i正明通信不 能正常進(jìn)行,則轉(zhuǎn)入步驟72,如果初始化是成功的就轉(zhuǎn)入步驟73。步驟72結(jié)束此處通信,釋放已經(jīng)申請(qǐng)的通信資源,以便系統(tǒng)下次正常 運(yùn)行。步驟73通信系統(tǒng)的初始化隊(duì)列申請(qǐng)成功,此時(shí)系統(tǒng)處于等待狀態(tài),等 待消息接收事件的產(chǎn)生或消息發(fā)送事件的產(chǎn)生。如果有相應(yīng)的事件驅(qū)動(dòng)產(chǎn) 生,則轉(zhuǎn)入步驟74。步驟74判斷當(dāng)前通信系統(tǒng)中產(chǎn)生的事件是什么事件,如果是發(fā)送IPMI 消息事件,則轉(zhuǎn)入步驟75,如果是定時(shí)器501的定時(shí)時(shí)間到的事件,則轉(zhuǎn) 入到步驟76,如果是接收到IPMI消息的事件,則轉(zhuǎn)入到步驟77。步驟75執(zhí)行步驟751步驟751判斷當(dāng)前需要發(fā)送的消息的事件類型,如果是該消息是響應(yīng)消 息,則轉(zhuǎn)入到步驟752。否則轉(zhuǎn)入到步驟753。步驟752通過物理層的消息發(fā)送接口 ,將消息發(fā)送出去。步驟753在當(dāng)前通信系統(tǒng)的請(qǐng)求隊(duì)列502中查找一個(gè)空余的表項(xiàng),如 果當(dāng)前隊(duì)列中不存在空余的項(xiàng)則則轉(zhuǎn)入到步驟754,否則轉(zhuǎn)入到步驟755。步驟754向消息的請(qǐng)求者發(fā)送消息隊(duì)列滿,消息無法發(fā)送的通知,轉(zhuǎn) 入到步驟756。步驟755對(duì)可以發(fā)送的消息中按照IPMI消息的格式,分配一個(gè)新的序 列號(hào),將發(fā)送該條請(qǐng)求消息的請(qǐng)求者相關(guān)信息保存在請(qǐng)求對(duì)列中,設(shè)置本條 請(qǐng)求消息的最大重傳次數(shù)。轉(zhuǎn)入到步驟756。步驟756對(duì)本條消息創(chuàng)建重傳定時(shí)器501,如果定時(shí)器創(chuàng)建失敗,釋放 本請(qǐng)求消息,將該條消息在請(qǐng)求隊(duì)列上面的消息清除,通知消息請(qǐng)求者通知 消息的定時(shí)器創(chuàng)建失敗。轉(zhuǎn)入到步驟757。如果創(chuàng)建成功,則轉(zhuǎn)入到步驟752。步驟757轉(zhuǎn)入到步驟73。步驟76轉(zhuǎn)入到步驟761步驟761根據(jù)定時(shí)器到時(shí)事件的參數(shù)(該參數(shù)實(shí)際上與請(qǐng)求隊(duì)列502 上的表項(xiàng)是一一對(duì)應(yīng)的)找到相應(yīng)的請(qǐng)求隊(duì)列表項(xiàng)。如果找到相應(yīng)的表項(xiàng)轉(zhuǎn) 到步驟763,如果沒有找到該表項(xiàng),執(zhí)行步驟762。步驟762釋放定時(shí)器,轉(zhuǎn)到步驟764。步驟763釋放定時(shí)器,判斷消息的重傳次數(shù),如果該條消息的重傳次 數(shù)已經(jīng)超過了系統(tǒng)重規(guī)定的最大重傳次數(shù),根據(jù)請(qǐng)求隊(duì)列502中保存的請(qǐng)求 者信息,向請(qǐng)求發(fā)送重傳超時(shí)的通知,并執(zhí)行步驟765。如果本條消息沒有 超過最大的重傳次數(shù),執(zhí)行步驟764步驟764將該條消息重新發(fā)送,消息重傳記數(shù)器加一。步驟765執(zhí)行步驟73。步驟77轉(zhuǎn)入到執(zhí)行步驟771。步驟771首先判斷該條消息是否ee是請(qǐng)求消息,如杲不是IPMI的請(qǐng)求 消息,執(zhí)行步驟772,否則執(zhí)行步驟773。步驟772根據(jù)IPMI消息中的序列號(hào)在請(qǐng)求隊(duì)列中查找該條IPMI響應(yīng) 響應(yīng)消息對(duì)應(yīng)的請(qǐng)求者,如果找到請(qǐng)求者,則將該條IPMI消息轉(zhuǎn)發(fā)給請(qǐng)求 者。執(zhí)行步驟777。步驟773根據(jù)該條IPMI消息的命令字段查找當(dāng)前通信系統(tǒng)中是否支持 該命令,如果支持該命令,執(zhí)行步驟774,如果不支持執(zhí)行步驟775。步驟774將該條IPMI請(qǐng)求消息轉(zhuǎn)發(fā)給本系統(tǒng)中所有接收者,并同時(shí)生 成對(duì)該條請(qǐng)求消息的響應(yīng)消息。4丸行步驟776。步驟775生成默認(rèn)的IPMI響應(yīng)消息,執(zhí)行步驟776。步驟776發(fā)送生成IPMI響應(yīng)消息,執(zhí)行步驟777。步驟777執(zhí)行步驟73。③下電如圖4所示,單板的下電狀態(tài)下處理步驟步驟41 IPMC檢測(cè)到前臺(tái)單板的撥手開關(guān)打開。轉(zhuǎn)移到步驟42。 步驟42IPMC發(fā)送消息到HOST,通知HOST單板要開始下電。HOST收到IPMC消息后轉(zhuǎn)移到步驟43。步驟43向IPMC發(fā)送應(yīng)答消息,IPMC收到應(yīng)答消息則IPMC開始控 制單纟反正常下電45。否則轉(zhuǎn)移到步驟44。步驟44 HOST與IPMC通信故障,單板強(qiáng)制下電。 步驟45單板正常下電。以上是在payload接口具體實(shí)現(xiàn)IPMI通信的四個(gè)主要的模塊,以及實(shí) 現(xiàn)的三個(gè)不同過程的處理狀態(tài),整個(gè)通信系統(tǒng)以這四個(gè)模塊為基礎(chǔ),來實(shí)現(xiàn) 對(duì)單板三個(gè)不同狀態(tài)下HOST與IPMC之間消息的可靠傳輸。
權(quán)利要求
1、一種IPMI通訊系統(tǒng),利用payload接口實(shí)現(xiàn)前臺(tái)單板HOST側(cè)與單板上IPMC的相互通信,包括物理層(81)、中間層(82)和應(yīng)用層(83),其特征在于,所述中間層(82)采用IPMI消息格式和請(qǐng)求/響應(yīng)模式并在得到接收錯(cuò)誤響應(yīng)或超時(shí)沒有應(yīng)答時(shí)重新發(fā)送請(qǐng)求消息。
2、 根據(jù)權(quán)利要求1所述通訊系統(tǒng),其特征在于,所述中間層包括IPMI 通信可靠傳輸模塊(205)及中間層與所述物理層之間的IPMI消息接收處理模 塊和IPMI消息發(fā)送處理才莫塊。
3、 根據(jù)權(quán)利要求1所述通訊系統(tǒng),其特征在于,所述IPMI消息格式 包括消息頭和消息體,其中消息頭包括目的地址、功能命令集合字段和消 息頭校驗(yàn)字段;消息體包括源地址、消息序列號(hào)、消息的命令字、有效數(shù)據(jù) 凈荷和消息體校驗(yàn)字段。
4、 根據(jù)權(quán)利要求1所述通訊系統(tǒng),其特征在于,所述物理層信息傳 輸采用求余校驗(yàn)的算法或CRC校驗(yàn)算法。
5、 一種IPMI通訊系統(tǒng)通訊方法,其特征在于,所述方法發(fā)送IPMI 消息包括5.1) IPMI通訊系統(tǒng)中間層在請(qǐng)求隊(duì)列中保存每個(gè)正在發(fā)送的IPMI請(qǐng) 求消息和發(fā)送者的唯一標(biāo)識(shí);5.2) 該中間層發(fā)送者在發(fā)送IPMI請(qǐng)求消息后,對(duì)于發(fā)送失敗或者沒 有應(yīng)答的消息都會(huì)進(jìn)行重傳。
6、 根據(jù)權(quán)利要求5所述通訊方法,其特征在于,所述唯一標(biāo)識(shí)是消 息發(fā)送進(jìn)程的進(jìn)程號(hào)。
7、 根據(jù)權(quán)利要求5所述通訊方法,其特征在于,所述方法進(jìn)一步包 括接收IPMI消息7.1) IPMI通訊系統(tǒng)物理層采用阻塞式機(jī)制實(shí)現(xiàn)消息接收接口 ;7.2) IPMI通訊系統(tǒng)中間層從所述消息接收接口實(shí)時(shí)提取IPMI消息并處理。
8. 根據(jù)權(quán)利要求7所述可靠通訊方法,其特征在于,所述方法進(jìn)一 步包括控制單板上電 8.1) 單板HOST —側(cè)主動(dòng)向IPMC發(fā)送IPMI格式上電消息通知IPMC 單板開始上電并根據(jù)需要進(jìn)行重新發(fā)送; 8.2) 單板HOST才艮據(jù)IPMC應(yīng)答進(jìn)行上電并調(diào)用通信接口收發(fā)IPMI 格式消息。
9. 根據(jù)權(quán)利要求6所述可靠通訊方法,其特征在于,該通訊方法這 樣控制單板下電 9.1) IPMC檢測(cè)單板HOST下電請(qǐng)求并向單板HOST —側(cè)發(fā)送IPMI 格式下電消息通知單板HOST開始下電; 9.2) IPMC根據(jù)單板HOST應(yīng)答控制單板HOST正常下電,否則強(qiáng)制 下電。
全文摘要
本發(fā)明涉及一種IPMI通訊系統(tǒng)及其可靠通信方法,其中系統(tǒng)包括物理層(81)、中間層(82)和應(yīng)用層(83),所述中間層(82)這樣工作采用IPMI消息格式和請(qǐng)求/響應(yīng)模式并在得到接收錯(cuò)誤響應(yīng)或超時(shí)沒有應(yīng)答情況下重新發(fā)送請(qǐng)求消息,方法采用重傳發(fā)送和阻塞式接收。這種系統(tǒng)及其方法能可靠地實(shí)現(xiàn)了payload接口,準(zhǔn)確高效完成ATCA單板上HOST側(cè)與IPMC之間的通信,從而通過已經(jīng)實(shí)現(xiàn)的IPMI通信通道獲取到單板上各類業(yè)務(wù)的運(yùn)行情況,使IPMC對(duì)整個(gè)單板運(yùn)行狀況能有比較全面了解,對(duì)單板的控制更加準(zhǔn)確和有效;同時(shí)單板的HOST側(cè)也可以從IPMC獲取更多的信息,保證了整個(gè)單板上系統(tǒng)運(yùn)行的穩(wěn)定可靠。
文檔編號(hào)H04L12/24GK101227328SQ200810007168
公開日2008年7月23日 申請(qǐng)日期2008年2月2日 優(yōu)先權(quán)日2008年2月2日
發(fā)明者張生東, 林永春 申請(qǐng)人:中興通訊股份有限公司