TW201327394A - 網卡命名方法及系統 - Google Patents
網卡命名方法及系統 Download PDFInfo
- Publication number
- TW201327394A TW201327394A TW101100701A TW101100701A TW201327394A TW 201327394 A TW201327394 A TW 201327394A TW 101100701 A TW101100701 A TW 101100701A TW 101100701 A TW101100701 A TW 101100701A TW 201327394 A TW201327394 A TW 201327394A
- Authority
- TW
- Taiwan
- Prior art keywords
- network card
- naming
- order
- location
- busbar
- Prior art date
Links
Landscapes
- Small-Scale Networks (AREA)
- Bus Control (AREA)
Abstract
一種網卡命名方法及系統,該方法包括:在開機初始化BIOS時,獲取電腦中所有網卡的PCI匯流排位置的值;將每個網卡的PCI匯流排位置的值處理成一個無符號的整數;將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡的順序索引值;根據順序索引值對相應的網卡進行命名。利用本發明可以實現網卡在內核層的統一及固定命名。
Description
本發明涉及一種網卡命名方法及系統,尤其涉及一種在Linux系統中的網卡命名方法及系統。
在目前的Linux系統中,對網卡的命名都是統一由內核來做。在Linux系統中網卡驅動均是同時進行載入,此時由於網卡驅動處於併發性運行狀態,內核對網卡的命名就只好根據先到先得的原則來進行。這種命名規則就是先到先命名,是一種搶佔式法則,正因如此,導致網卡名稱會變動。
例如,某個主板上有6個網卡:eth0/eth1、eth2/eth3、eth4/eth5,這6個網卡分別由3個驅動控制。假設在理想情況下,網卡名稱和驅動對應如下:
名稱 驅動名
eth0/eth1 e1000e
eth2/eth3 bnx2
eth4/eth5 igbx。
這樣的排序比較符合我們使用習慣。但是事情總是不儘然,因為理想情況只有一種,不理想情況有很多種。比如:
名稱 驅動名
eth2/eth1 e1000e
eth4/eth0 bnx2
eth3/eth5 igbx。
這種情形就容易給用戶造成使用習慣上的混亂。針對這種問題,多數解決方案只是在應用層對網卡重命名,但是都只是修改網卡在應用層的名稱,而不能修改其在內核層的名稱。為了避免因網卡的名稱不同而產生的錯誤,需尋找一種在內核層對網卡進行統一、固定命名的方法。
鑒於以上內容,有必要提供一種網卡命名方法及系統,以實現網卡在內核層的統一及固定命名。
所述網卡命名方法,該方法包括以下步驟:獲取步驟:在開機初始化BIOS時,獲取電腦中所有網卡的PCI匯流排位置的值,所述PCI匯流排位置由網卡所處的匯流排位置、設備位置及功能位置決定;處理步驟:將每個網卡的PCI匯流排位置的值處理成一個無符號的整數;排序步驟:將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡的順序索引值;命名步驟:根據順序索引值對相應的網卡進行命名。
所述網卡命名系統,該系統包括:獲取模組,用於在開機初始化BIOS時,獲取電腦中所有網卡的PCI匯流排位置的值,所述PCI匯流排位置由網卡所處的匯流排位置、設備位置及功能位置決定;處理模組,用於將每個網卡的PCI匯流排位置的值處理成一個無符號的整數;排序模組,用於將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡的順序索引值;命名模組,用於根據順序索引值對相應的網卡進行命名。
相較於習知技術,本發明所述之網卡命名方法及系統,能夠根據網卡在Linux系統中的PCI(Peripheral Component Interconnect,外設部件互連標準)匯流排的位置,依據一定的命名規則,實現網卡在內核層的統一及固定命名,從而避免了在不同的運行環境中網卡名稱的變動問題。
如圖1所示,係為本發明網卡命名系統較佳實施例之架構圖。
網卡命名系統10運行於電腦1中,所述電腦1中還包括多個網卡11(圖中僅畫出一個)。所述網卡11為PCI設備,每個PCI設備在電腦系統(如Linux系統)中均佔據一個唯一的PCI匯流排位置。該PCI匯流排位置由網卡11所處的匯流排(bus)位置、設備(device)位置及功能(function)位置決定,所述匯流排位置、設備位置、功能位置相應的由匯流排號、設備號、功能號來進行標識。
所述PCI匯流排位置的表現形式為:bus位置:device位置.function位置,下文中將PCI匯流排位置簡稱為BDF。該BDF中,device位置.function位置不可更改,bus位置可能會因為BIOS(Basic Input Output System,基本輸入輸出系統)的改變而改變,因此在Linux系統的不同運行環境中,所有PCI設備的bus位置均可能會隨著BIOS的改變相應進行變化,但是對網卡命名系統10命名網卡11沒有影響。
既然每一個網卡11均有一個唯一的BDF,且這個BDF很容易被內核找到,因此網卡命名系統10利用BDF對網卡11進行編號從而確定網卡11的名稱。網卡設備並不會因為網卡驅動的不存在而無法被找到,所以是先存在設備,網卡命名系統10在內核層對網卡11的命名是在載入網卡驅動時進行。
所述網卡命名系統10包括獲取模組100、處理模組101、排序模組102及命名模組103。各模組的功能將結合圖2之流程圖進行詳細介紹。
如圖2所示,係為本發明網卡命名方法較佳實施例之流程圖。
步驟S10,在開機初始化BIOS時,所述獲取模組100獲取電腦1中所有網卡11的PCI匯流排位置的值。所述獲取網卡11的PCI匯流排位置的值,即獲取網卡11的BDF值。
步驟S11,所述處理模組101將每個網卡11的PCI匯流排位置BDF的值處理成一個無符號的整數。
在本較佳實施例中,處理模組101採取移位的方法,將每個網卡11的bus號左移12位、device號左移4位,並將左移12位後的bus號、左移4位後的device號及function號進行位或操作的方法將每個網卡的BDF處理成一個無符號的整數。在其他實施例中,也可以採取所有可能的方法將BDF處理成一個無符號的整數。
例如,有三個網卡11的BDF,假設為BDF0、BDF1和BDF2,BDF0為02:04.0,BDF1為02:03.1,BDF2為02:03.3。處理模組101將所有BDF進行移位和位或操作後,在將各BDF設置為16進制值的情況下,BDF0對應的無符號的整數為0X02040,BDF1對應的無符號的整數為0X02031,BDF2對應的無符號的整數為0X02033。
步驟S12,所述排序模組102將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡11的順序索引值。所述預設的順序可為將所有的無符號的整數按照從小到大的順序進行排列,或將所有的無符號的整數按照從大到小的順序進行排列。
需要說明的是,在Linux系統中,在內核層中對網卡11的命名均是從eth0開始,再順序地往下進行,命名為eth1、eth2等值。對應於內核層中對網卡11的命名方式,排序模組102的順序索引值從0開始,再依次為1、2等值。
例如,上述的BDF0、BDF1和BDF2對應的無符號的整數,若排序模組102將其按從小到大的順序進行排列,則排列後的順序為:0X02031、0X02033、0X02040。BDF0、BDF1和BDF2對應的網卡11的順序索引值分別為2、0、1。
步驟S13,所述命名模組103根據順序索引值對相應的網卡11進行命名。
例如,BDF0、BDF1和BDF2對應的網卡11,可分別命名為eth2、eth0和eth1。
然後當載入網卡驅動時,內核命名規則就可以根據這個“順序索引值”確定網卡11的名稱分別為:eth0、eth1、eth2等。
本發明對網卡11命名的方式是基於PCI設備中網卡11的BDF資料所決定,而BDF又是由BIOS所決定,因此有效地解決了網卡11的名稱變動的問題。
綜上所述,本發明符合發明專利要件,爰依法提出專利申請。惟,以上所述者僅爲本發明之較佳實施例,本發明之範圍並不以上述實施例爲限,舉凡熟悉本案技藝之人士援依本發明之精神所作之等效修飾或變化,皆應涵蓋於以下申請專利範圍內。
1...電腦
10...網卡命名系統
100...獲取模組
101...處理模組
102...排序模組
103...命名模組
11...網卡
S10...獲取電腦中所有網卡的PCI匯流排位置的值
S11...將每個網卡的PCI匯流排位置的值處理成一個無符號的整數
S12...將得到的無符號的整數按一個預設的順序進行排列,按排列的順序確定所有網卡的順序索引值
S13...根據順序索引值對相應的網卡進行命名
圖1係為本發明網卡命名系統較佳實施例之架構圖。
圖2係為本發明網卡命名方法較佳實施例之流程圖。
S10...獲取電腦中所有網卡的PCI匯流排位置的值
S11...將每個網卡的PC1匯流排位置的值處理成一個無符號的整數
S12...將得到的無符號的整數按一個預設的順序進行排列,按排列的順序確定所有網卡的順序索引值
S13...根據順序索引值對相應的網卡進行命名
Claims (10)
- 一種網卡命名方法,其中,該方法包括以下步驟:
獲取步驟:在開機初始化BIOS時,獲取電腦中所有網卡的PCI匯流排位置的值,所述PCI匯流排位置由網卡所處的匯流排位置、設備位置及功能位置決定;
處理步驟:將每個網卡的PCI匯流排位置的值處理成一個無符號的整數;
排序步驟:將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡的順序索引值;
命名步驟:根據順序索引值對相應的網卡進行命名。 - 如申請專利範圍第1項所述之網卡命名方法,其中,所述PCI匯流排位置的表現形式為匯流排位置:設備位置.功能位置。
- 如申請專利範圍第2項所述之網卡命名方法,其中,所述匯流排位置、設備位置、功能位置相應的分別由匯流排號、設備號、功能號進行標識。
- 如申請專利範圍第3項所述之網卡命名方法,其中,所述處理步驟通過以下步驟實現對網卡的PCI匯流排位置的值的處理:
採取移位的方法,將網卡的匯流排號左移12位、設備號左移4位;
將左移12位後的匯流排號、左移4位後的設備號及功能號進行位或操作,得到一個無符號的整數。 - 如申請專利範圍第1項所述之網卡命名方法,其中,所述預設的順序為將所有的無符號的整數按照從小到大的順序進行排列,或將所有的無符號的整數按照從大到小的順序進行排列。
- 一種網卡命名系統,其中,該系統包括:
獲取模組,用於在開機初始化BIOS時,獲取電腦中所有網卡的PCI匯流排位置的值,所述PCI匯流排位置由網卡所處的匯流排位置、設備位置及功能位置決定;
處理模組,用於將每個網卡的PCI匯流排位置的值處理成一個無符號的整數;
排序模組,用於將得到的所有無符號的整數按照一個預設的順序進行排列,並按排列的順序確定所有網卡的順序索引值;
命名模組,用於根據順序索引值對相應的網卡進行命名。 - 如申請專利範圍第6項所述之網卡命名系統,其中,所述PCI匯流排位置的表現形式為匯流排位置:設備位置.功能位置。
- 如申請專利範圍第7項所述之網卡命名系統,其中,所述匯流排位置、設備位置、功能位置相應的分別由匯流排號、設備號、功能號進行標識。
- 如申請專利範圍第8項所述之網卡命名系統,其中,所述處理模組通過以下步驟實現對網卡的PCI匯流排位置的值的處理:
採取移位的方法,將網卡的匯流排號左移12位、設備號左移4位;
將左移12位後的匯流排號、左移4位後的設備號及功能號進行位或操作,得到一個無符號的整數。 - 如申請專利範圍第6項所述之網卡命名系統,其中,所述預設的順序為將所有的無符號的整數按照從小到大的順序進行排列,或將所有的無符號的整數按照從大到小的順序進行排列。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110446812 CN103186484A (zh) | 2011-12-28 | 2011-12-28 | 网卡命名方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201327394A true TW201327394A (zh) | 2013-07-01 |
Family
ID=48677658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101100701A TW201327394A (zh) | 2011-12-28 | 2012-01-06 | 網卡命名方法及系統 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103186484A (zh) |
TW (1) | TW201327394A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10367688B2 (en) | 2016-08-17 | 2019-07-30 | Red Hat Israel, Ltd. | Discovering changes of network interface controller names |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111644A (zh) * | 2015-11-12 | 2017-08-29 | 华为技术有限公司 | 计算机设备及计算机设备的io设备注册方法 |
CN107135280A (zh) * | 2016-02-29 | 2017-09-05 | 上海格尔软件股份有限公司 | 基于Linux操作系统的多网卡设备调整网卡顺序的方法 |
CN107046469B (zh) * | 2017-05-11 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种用于服务器负载均衡网卡设备扩展的方法 |
CN107566189A (zh) * | 2017-09-29 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种服务器系统多网卡识别配置装置及方法 |
CN109412830B (zh) * | 2018-09-05 | 2022-05-06 | 广州视源电子科技股份有限公司 | 网卡名固化的方法、装置、计算机设备和存储介质 |
CN110943859B (zh) * | 2019-11-21 | 2022-09-30 | 深信服科技股份有限公司 | 一种网口序列调整方法、装置、设备及存储介质 |
CN113904930B (zh) * | 2021-09-27 | 2024-04-09 | 深信服科技股份有限公司 | 一种网口排序方法、装置、设备和存储介质 |
CN115337654A (zh) * | 2022-08-31 | 2022-11-15 | 上海布鲁可积木科技有限公司 | 可配对件积木配对中的定义方法和系统 |
-
2011
- 2011-12-28 CN CN 201110446812 patent/CN103186484A/zh active Pending
-
2012
- 2012-01-06 TW TW101100701A patent/TW201327394A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10367688B2 (en) | 2016-08-17 | 2019-07-30 | Red Hat Israel, Ltd. | Discovering changes of network interface controller names |
Also Published As
Publication number | Publication date |
---|---|
CN103186484A (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201327394A (zh) | 網卡命名方法及系統 | |
US10248468B2 (en) | Using hypervisor for PCI device memory mapping | |
US7913024B2 (en) | Differentiating traffic types in a multi-root PCI express environment | |
CN101036125A (zh) | 具有开发接口适用性的数据处理系统内的掩码 | |
TWI430102B (zh) | 網路卡資源配置方法、儲存媒體、及電腦 | |
US9135079B2 (en) | Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions | |
US7627706B2 (en) | Creation of logical APIC ID with cluster ID and intra-cluster ID | |
US8751713B2 (en) | Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment | |
KR101807310B1 (ko) | 호스트 usb 어댑터 가상화 | |
US9852087B2 (en) | Inline PCI-IOV adapter | |
TWI729019B (zh) | 處理裝置、系統單晶片、非暫時性機器可讀儲存媒體及用於排序之方法 | |
US8918568B2 (en) | PCI express SR-IOV/MR-IOV virtual function clusters | |
US20140006659A1 (en) | Driver-assisted base address register mapping | |
US8639850B1 (en) | Addressing scheme to allow flexible mapping of functions in a programmable logic array | |
US8495274B2 (en) | Address translation table to enable access to virtual functions | |
CN107957965B (zh) | 服务质量序数修改 | |
US20110202702A1 (en) | Method and system for pci hybrid function | |
US9146863B2 (en) | Address translation table to enable access to virtualized functions | |
US9218219B2 (en) | Managing virtual functions of an input/output adapter | |
US11392512B2 (en) | USB method and apparatus in a virtualization environment with multi-VM | |
WO2017071429A1 (zh) | 一种数据访问方法及总线 | |
CN105573671B (zh) | 一种获取虚拟机磁盘对应磁盘文件的方法 | |
CN107229793B (zh) | 一种高级可扩展接口总线平台的测试方法及装置 | |
US11675584B1 (en) | Visualizing dependent relationships in computer program analysis trace elements | |
CN112069113B (zh) | I2c设备配置方法和系统 |