本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤具體地說是一種實用性強(qiáng)、在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法。
背景技術(shù):
隨著云計算、大數(shù)據(jù)等技術(shù)的日益成熟和廣泛應(yīng)用,對網(wǎng)絡(luò)處理性能要求的日益提高,powerpc由于采用dpaa技術(shù),即數(shù)據(jù)路徑加速架構(gòu),能夠大幅度提升網(wǎng)絡(luò)處理性能,在云平臺接入、大數(shù)據(jù)分布式存儲領(lǐng)域應(yīng)用日益廣泛。但由于dpaa底層技術(shù)采用硬件實現(xiàn),對于變化的網(wǎng)絡(luò)接口環(huán)境,powerpc在dpaa模式下還不具備網(wǎng)絡(luò)接口自適應(yīng)的功能,只能通過手動配置實現(xiàn),無法滿足靈活部署的要求。
基于此,本發(fā)明提出了一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種實用性強(qiáng)、在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法。
一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法,應(yīng)用于powerpc架構(gòu)的dpaa模式下,powerpc硬件架構(gòu)采用powerpc多核網(wǎng)絡(luò)處理器,配置千兆phy芯片,并采用dpaa模式,其實現(xiàn)過程為:
首先獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)數(shù)據(jù);
然后將讀取到的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)配置到powerpc網(wǎng)絡(luò)接口下的相關(guān)寄存器中,實現(xiàn)接口模式的配置,最終實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)。
其具體實現(xiàn)過程為:
獲取狀態(tài)數(shù)據(jù):首先讀取千兆phy芯片的模式狀態(tài)寄存器,獲取當(dāng)前的網(wǎng)絡(luò)接口速度狀態(tài)以及網(wǎng)絡(luò)連接狀態(tài);
配置寄存器:將讀取到的網(wǎng)絡(luò)接口速度以及連接狀態(tài)進(jìn)行配置以太網(wǎng)控制寄存器和mac配置寄存器,從而實現(xiàn)了接口模式的配置,最終可實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)。
所述狀態(tài)數(shù)據(jù)通過mdio內(nèi)核驅(qū)動模塊讀取獲得,具體為:
1)內(nèi)核模塊與用戶空間的網(wǎng)絡(luò)通信程序通過netlink機(jī)制進(jìn)行通信的;當(dāng)內(nèi)核模塊被加載后,運(yùn)行用戶空間程序,由用戶空間發(fā)起netlink會話,和內(nèi)核模塊進(jìn)行數(shù)據(jù)交換,該內(nèi)核模塊的數(shù)據(jù)交換是在多核處理器中的一個核中開辟一個進(jìn)程來實現(xiàn);
2)通過mdio的內(nèi)核驅(qū)動模塊對千兆phy設(shè)備進(jìn)行打開并對其模式狀態(tài)寄存器進(jìn)行讀取。
在獲取當(dāng)前網(wǎng)絡(luò)接口狀態(tài)后,對powerpc的網(wǎng)絡(luò)接口ecntrl寄存器的接口模式控制位、maccfg2寄存器的i/f模式位進(jìn)行配置。
在配置寄存器的過程中,還包括配置狀態(tài)變化標(biāo)志位的步驟,通過檢測該變量的狀態(tài)來判斷是否重新讀取phy芯片的模式狀態(tài)寄存器,減少對千兆phy芯片的狀態(tài)寄存器的讀取次數(shù)。
狀態(tài)變化標(biāo)志位的具體配置過程為:首先設(shè)置網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量,由此來記錄上次的網(wǎng)絡(luò)狀態(tài);通過檢測該變量的狀態(tài)來判斷是否重新讀取phy的模式狀態(tài)寄存器而不是直接再次讀取phy的模式狀態(tài)寄存器;根據(jù)判斷的結(jié)果,進(jìn)行網(wǎng)絡(luò)狀態(tài)的配置或者保持原來的配置,并對狀態(tài)標(biāo)志變量根據(jù)當(dāng)前的網(wǎng)絡(luò)設(shè)置進(jìn)行重新賦值歸位。
網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量分別為flag_1g、flag_100、flag_10,其中,
flag_1g用于確定上次狀態(tài)是否為千兆速度,當(dāng)flag_1g=0時表示上次狀態(tài)不是千兆速度;
flag_100用于確定上次狀態(tài)是否為百兆速度,當(dāng)flag_100=0時表示上次狀態(tài)不是百兆速度;
flag_10用于確定上次狀態(tài)是否為十兆速度,當(dāng)flag_10=0時表示上次狀態(tài)不是十兆速度。
根據(jù)獲取的狀態(tài)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量的配置過程為,
根據(jù)獲取的狀態(tài)數(shù)據(jù),首先查看網(wǎng)絡(luò)中是否為千兆速度且flag_1g=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行千兆設(shè)置,使flag_1g=1、flag_100=0、flag_10=0;
當(dāng)不是千兆速度時,則查看網(wǎng)絡(luò)中是否為百兆速度且flag_100=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行百兆設(shè)置,使flag_1g=0、flag_100=1、flag_10=0;
當(dāng)也不是百兆速度時,則查看網(wǎng)絡(luò)中是否為十兆速度且flag_10=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行十兆設(shè)置,使flag_1g=0、flag_100=0、flag_10=1。
本發(fā)明的一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法,具有以下優(yōu)點:
本發(fā)明的一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法,通過mdio內(nèi)核驅(qū)動模塊讀取千兆phy的模式狀態(tài)寄存器獲取速度狀態(tài),依次對以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行相應(yīng)配置,實現(xiàn)了網(wǎng)口自適應(yīng),節(jié)約系統(tǒng)資源,實現(xiàn)靈活部署,自動完成配置過程,配置效率高,實用性強(qiáng),適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發(fā)明的實現(xiàn)流程圖。
附圖2為本發(fā)明的實現(xiàn)框圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明。
如附圖1、圖2所示,一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法,對于在網(wǎng)絡(luò)加速模式下不支持網(wǎng)絡(luò)接口自適應(yīng)的powerpc若要實現(xiàn)不同網(wǎng)絡(luò)接口速度的切換,傳統(tǒng)的方法是通過手動配置以太網(wǎng)控制寄存器和mac配置寄存器實現(xiàn)的,而本方法可以實現(xiàn)網(wǎng)絡(luò)接口的自適應(yīng)。本方法通過mdio內(nèi)核驅(qū)動模塊讀取千兆phy的模式狀態(tài)寄存器獲取速度狀態(tài),依次對以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行相應(yīng)配置,實現(xiàn)了網(wǎng)口自適應(yīng)。
本發(fā)明應(yīng)用于powerpc架構(gòu)的dpaa模式下,powerpc硬件架構(gòu)采用powerpc多核網(wǎng)絡(luò)處理器,配置千兆phy芯片,并采用dpaa模式,其實現(xiàn)過程為:
首先獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)數(shù)據(jù);
然后將讀取到的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)配置到powerpc網(wǎng)絡(luò)接口下的相關(guān)寄存器中,實現(xiàn)接口模式的配置,最終實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)。
其具體實現(xiàn)過程為:
獲取狀態(tài)數(shù)據(jù):首先讀取千兆phy芯片的模式狀態(tài)寄存器,獲取當(dāng)前的網(wǎng)絡(luò)接口速度狀態(tài)以及網(wǎng)絡(luò)連接狀態(tài);
配置寄存器:將讀取到的網(wǎng)絡(luò)接口速度以及連接狀態(tài)進(jìn)行配置以太網(wǎng)控制寄存器和mac配置寄存器,從而實現(xiàn)了接口模式的配置,最終可實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)。
所述狀態(tài)數(shù)據(jù)通過mdio內(nèi)核驅(qū)動模塊讀取獲得,具體為:
1)內(nèi)核模塊與用戶空間的網(wǎng)絡(luò)通信程序通過netlink機(jī)制進(jìn)行通信的;當(dāng)內(nèi)核模塊被加載后,運(yùn)行用戶空間程序,由用戶空間發(fā)起netlink會話,和內(nèi)核模塊進(jìn)行數(shù)據(jù)交換,該內(nèi)核模塊的數(shù)據(jù)交換是在多核處理器中的一個核中開辟一個進(jìn)程來實現(xiàn);
2)通過mdio的內(nèi)核驅(qū)動模塊對千兆phy設(shè)備進(jìn)行打開并對其模式狀態(tài)寄存器進(jìn)行讀取。
在通信程序中,根據(jù)網(wǎng)絡(luò)狀態(tài)對powerpc的dtsec(datapaththree-speedethernetcontroller)接口的以太網(wǎng)控制寄存器ecntrl的接口模式控制位和maccfg2的i/f模式位進(jìn)行相應(yīng)的配置。
在上述技術(shù)中,maccfg2和ecntrl兩個寄存器非常重要,它們主要是用來是配置mac對phy的接口,且ecntrl用于復(fù)位、配置和初始化tsec,由于兩個寄存器都屬于現(xiàn)有技術(shù)內(nèi)容,故在此不再贅述。
在配置寄存器的過程中,還包括配置狀態(tài)變化標(biāo)志位的步驟,由于網(wǎng)絡(luò)接口環(huán)境變量的隨機(jī)性,同時考慮到一直連續(xù)通過mdio讀取phy的模式狀態(tài)寄存器比較占用系統(tǒng)資源,本方法設(shè)立了狀態(tài)變化標(biāo)志變量,通過檢測該變量的狀態(tài)來判斷是否重新讀取phy的模式狀態(tài)寄存器,不直接再次讀取phy的模式狀態(tài)寄存器,有效節(jié)約了系統(tǒng)資源。
狀態(tài)變化標(biāo)志位的具體配置過程為:首先設(shè)置網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量,由此來記錄上次的網(wǎng)絡(luò)狀態(tài);通過檢測該變量的狀態(tài)來判斷是否重新讀取phy的模式狀態(tài)寄存器而不是直接再次讀取phy的模式狀態(tài)寄存器;根據(jù)判斷的結(jié)果,進(jìn)行網(wǎng)絡(luò)狀態(tài)的配置或者保持原來的配置,并對狀態(tài)標(biāo)志變量根據(jù)當(dāng)前的網(wǎng)絡(luò)設(shè)置進(jìn)行重新賦值歸位。
網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量分別為flag_1g、flag_100、flag_10,其中,
flag_1g用于確定上次狀態(tài)是否為千兆速度,當(dāng)flag_1g=0時表示上次狀態(tài)不是千兆速度;
flag_100用于確定上次狀態(tài)是否為百兆速度,當(dāng)flag_100=0時表示上次狀態(tài)不是百兆速度;
flag_10用于確定上次狀態(tài)是否為十兆速度,當(dāng)flag_10=0時表示上次狀態(tài)不是十兆速度。
根據(jù)獲取的狀態(tài)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)速度狀態(tài)變化標(biāo)志變量的配置過程為,
根據(jù)獲取的狀態(tài)數(shù)據(jù),首先查看網(wǎng)絡(luò)中是否為千兆速度且flag_1g=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行千兆設(shè)置,使flag_1g=1、flag_100=0、flag_10=0;
當(dāng)不是千兆速度時,則查看網(wǎng)絡(luò)中是否為百兆速度且flag_100=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行百兆設(shè)置,使flag_1g=0、flag_100=1、flag_10=0;
當(dāng)也不是百兆速度時,則查看網(wǎng)絡(luò)中是否為十兆速度且flag_10=0,是則將以太網(wǎng)控制寄存器和mac配置寄存器進(jìn)行十兆設(shè)置,使flag_1g=0、flag_100=0、flag_10=1。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的一種在powerpcdpaa模式下實現(xiàn)網(wǎng)絡(luò)接口自適應(yīng)的方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。