也相等時,說明該網(wǎng)卡是可以加載或者是不加載的,也就是說只要滿足了條件的網(wǎng)卡才會進(jìn)行相應(yīng)的動作(加載或者不加載),動作的判斷有g(shù)_act1n來做,當(dāng)g_act1n為I時進(jìn)行加載,ig_act1n為O時不加載。
[0066]2.用戶態(tài)程序
[0067]用戶態(tài)程序通過命令I(lǐng)spciI grep‘0200’獲取設(shè)備的所有網(wǎng)卡的PCI信息,得到的內(nèi)容類似如下內(nèi)容
[0068]01:00.0Class 0200:0806:10d3,其中01就是總線號,01d3就是設(shè)備ID,當(dāng)需要控制某個網(wǎng)卡加載(或者不加載)時,需要將總線號和設(shè)備ID通知內(nèi)核。
[0069]3.為內(nèi)核添加一個proc文件,proc文件是內(nèi)核與用戶態(tài)程序相互通信的一種常用方法,用戶態(tài)可以對proc文件進(jìn)行讀寫操作。當(dāng)用戶態(tài)程序要對某個網(wǎng)卡進(jìn)行控制時(加載或者不加載),那么就將該網(wǎng)卡的總線號,設(shè)備ID,以及需要的動作(加載或者不加載)寫入該proc文件。用戶態(tài)寫proc文件,就會觸發(fā)內(nèi)核的相關(guān)函數(shù),內(nèi)核就會讀取到用戶態(tài)程序?qū)懭氲目偩€號、設(shè)備ID以及動作,并將它們賦值給8_131181'|1皿,8_(16¥;[0610和8_301:;[011。
[0070]4.當(dāng)通過insmod加載內(nèi)核模塊時,內(nèi)核會執(zhí)行probe函數(shù),對于elOOOe網(wǎng)卡來說就是el000e_probe,由于在代碼中已經(jīng)添加了相關(guān)的控制代碼,因此通過對g_busNum,g_deviceID,g_act1n進(jìn)行判斷和比較就可以選擇性的加載或者不加載某個網(wǎng)卡了。
[0071]綜上所述,本發(fā)明通過向內(nèi)核寫入待控制網(wǎng)卡的第一PCI信息和控制指令,以使內(nèi)核能根據(jù)第一PCI信息對內(nèi)核讀取的設(shè)備的所有網(wǎng)卡進(jìn)行識別,進(jìn)而選擇性地加載網(wǎng)卡。
[0072]對于方法實(shí)施方式,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施方式并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施方式,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施方式均屬于優(yōu)選實(shí)施方式,所涉及的動作并不一定是本發(fā)明實(shí)施方式所必須的。
[0073]圖2為本發(fā)明一實(shí)施例提出的一種網(wǎng)卡的加載系統(tǒng)的結(jié)構(gòu)示意圖,參照圖2,該網(wǎng)卡的加載系統(tǒng),包括:
[0074]第一獲取模塊210,用于獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一 PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息;
[0075]第二獲取模塊220,用于根據(jù)所述第一PCI信息和所述第二PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡;
[0076]記載模塊230,用于根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。
[0077]該系統(tǒng)通過用戶態(tài)程序向內(nèi)核寫入待控制網(wǎng)卡的第一PCI信息和控制指令,以使內(nèi)核能根據(jù)第一 PCI信息對內(nèi)核讀取的設(shè)備的所有網(wǎng)卡進(jìn)行識別,進(jìn)而選擇性地加載網(wǎng)卡。
[0078]本實(shí)施例中待控制網(wǎng)卡包括:待加載網(wǎng)卡或不加載網(wǎng)卡;
[0079]相應(yīng)地,
[0080]第一獲取模塊210具體用于獲取待加載網(wǎng)卡或不加載網(wǎng)卡的第一PCI信息和與所述第一 PCI信息對應(yīng)的加載控制指令。
[0081 ]本實(shí)施例中,第二獲取模塊220具體用于對待加載網(wǎng)卡或不加載網(wǎng)卡的第一 PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。
[0082]需要說明的是,若用戶態(tài)程序發(fā)送的是待加載網(wǎng)卡的第一PCI信息,則判斷內(nèi)核讀取的設(shè)備的所有網(wǎng)卡中是否存在有與第一 PCI信息相匹配的網(wǎng)卡,若是,則將該網(wǎng)卡進(jìn)行加載處理;
[0083]若用戶態(tài)程序發(fā)送的不加載網(wǎng)卡的第一PCI信息,則判斷內(nèi)核讀取的設(shè)備的所有網(wǎng)卡中是否存在有與第一 PCI信息不匹配的網(wǎng)卡,若是,則將該網(wǎng)卡進(jìn)行加載處理;
[0084]本實(shí)施例中,第一獲取模塊210具體用于接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一PCI信息為所述用戶態(tài)程序通過命令I(lǐng)spci I grep‘0200’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。
[0085]本發(fā)明優(yōu)選的第一PCI信息和所述第二 PCI信息均包括:總線號和設(shè)備編號ID;
[0086]可理解是,PCI信息在本發(fā)明中屬于標(biāo)識性的信息,若網(wǎng)卡中還存在能與其他網(wǎng)卡區(qū)別的信息,則也是可以作為標(biāo)識性信息的,也處于本方案的保護(hù)范圍。
[0087]對于裝置實(shí)施方式而言,由于其與方法實(shí)施方式基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施方式的部分說明即可。
[0088]應(yīng)當(dāng)注意的是,在本發(fā)明的裝置的各個部件中,根據(jù)其要實(shí)現(xiàn)的功能而對其中的部件進(jìn)行了邏輯劃分,但是,本發(fā)明不受限于此,可以根據(jù)需要對各個部件進(jìn)行重新劃分或者組合,例如,可以將一些部件組合為單個部件,或者可以將一些部件進(jìn)一步分解為更多的子部件。
[0089]本發(fā)明的各個部件實(shí)施方式可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施方式的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0090]應(yīng)該注意的是上述實(shí)施方式對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施方式。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0091]雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種網(wǎng)卡的加載方法,其特征在于,包括: 獲取設(shè)備中待控制網(wǎng)卡的第一 PCI信息、與所述第一 PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息; 根據(jù)所述第一 PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡; 根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待控制網(wǎng)卡包括:待加載網(wǎng)卡或不加載網(wǎng)卡; 相應(yīng)地,所述獲取設(shè)備中待控制網(wǎng)卡的第一 PCI信息、與所述第一 PCI信息對應(yīng)的控制指令包括: 獲取待加載網(wǎng)卡或不加載網(wǎng)卡的第一 PCI信息和與所述第一 PCI信息對應(yīng)的控制指令。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述第一PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡,具體包括: 對待加載網(wǎng)卡或不加載網(wǎng)卡的第一 PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果; 根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息,具體包括: 接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一PCI信息為所述用戶態(tài)程序通過命令I(lǐng)spci I grep ‘ 0200 ’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述第一PCI信息和所述第二 PCI信息均包括:總線號和設(shè)備編號ID。6.一種網(wǎng)卡的加載系統(tǒng),其特征在于,包括: 第一獲取模塊,用于獲取設(shè)備中待控制網(wǎng)卡的第一 PCI信息、與所述第一 PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二 PCI信息; 第二獲取模塊,用于根據(jù)所述第一 PCI信息和所述第二 PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡; 記載模塊,用于根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述待控制網(wǎng)卡包括:待加載網(wǎng)卡或不加載網(wǎng)卡; 相應(yīng)地, 所述第一獲取模塊,具體用于獲取待加載網(wǎng)卡或不加載網(wǎng)卡的第一 PCI信息和與所述第一 PCI信息對應(yīng)的加載控制指令。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述第二獲取模塊,具體用于對待加載網(wǎng)卡或不加載網(wǎng)卡的第一 PCI信息和所述第二 PCI信息進(jìn)行匹配,獲取匹配結(jié)果;根據(jù)所述匹配結(jié)果從各網(wǎng)卡中獲取所述待加載網(wǎng)卡。9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一獲取模塊,具體用于接收用戶態(tài)程序發(fā)送的第一PCI信息,所述第一PCI信息為所述用戶態(tài)程序通過命令I(lǐng)spci I grep‘0200’獲取的所述設(shè)備的待控制網(wǎng)卡的PCI信息。10.根據(jù)權(quán)利要求6-9任一項(xiàng)所述的系統(tǒng),其特征在于,所述第一PCI信息和所述第二 PCI信息均包括:總線號和設(shè)備編號ID。
【專利摘要】本發(fā)明公開了一種網(wǎng)卡的加載方法及系統(tǒng)。該網(wǎng)卡的加載方法包括:獲取設(shè)備中待控制網(wǎng)卡的第一PCI信息、與所述第一PCI信息對應(yīng)的控制指令以及該設(shè)備中各網(wǎng)卡的第二PCI信息;根據(jù)所述第一PCI信息和所述第二PCI信息從各網(wǎng)卡中獲取待加載網(wǎng)卡;根據(jù)所述控制指令對所述待加載網(wǎng)卡進(jìn)行加載。本發(fā)明通過向內(nèi)核寫入待控制網(wǎng)卡的第一PCI信息和控制指令,以使內(nèi)核能根據(jù)第一PCI信息對內(nèi)核讀取的設(shè)備的所有網(wǎng)卡進(jìn)行識別,進(jìn)而選擇性地加載網(wǎng)卡。
【IPC分類】G06F9/44
【公開號】CN105718258
【申請?zhí)枴緾N201610024857
【發(fā)明人】李鵬
【申請人】漢柏科技有限公司
【公開日】2016年6月29日
【申請日】2016年1月14日