1. 程式人生 > >使用的 ixgbe 基礎驅動程式 , 適用於 10 千兆位英特爾®網路連線

使用的 ixgbe 基礎驅動程式 , 適用於 10 千兆位英特爾®網路連線

概述

Linux* 基礎驅動程式支援 2.6.x 核心 , 並且包括對任何受 Linux 支援系統 , 包括 Itanium ® 2 、 x86_64 、 i686, 和 PPC

這些驅動程式僅作為可載入模組支援。 英特爾不對核心源提供進行驅動程式靜態連結的補丁程式。 驅動程式的一個版本 , 通過您的分發和 / 或 kernel.org 核心可能已經包含。 有關硬體要求的問題 , 參閱英特爾介面卡的隨附文件。 所有列出的硬體要求均適用於 Linux 。

以下功能現在兩種支援的核心中可用 ::

  • 本地 VLAN
  • 通道結合 ( 分組 )
  • SNMP
  • 通用接收分載
  • 資料中心橋接

通道結合文件可以在 Linux 核心原始碼中找到 :/Documentation/networking/bonding.txt

驅動程式資訊以前顯示在 /proc 檔案系統中 , 在該版本中不支援。 此外 , 您可以使用 ethtool( 版本 1.6 或以後版本 ) 、 lspci 和 ifconfig 獲取相同的資訊。 有關更新 ethtool 的說明可以在 " 節中找到的其他配置本說明檔案後面的 " 。

在本發行版中的驅動程式相容基於 82598 和 82599 的英特爾 (R) 網路連線。

有關識別介面卡的更多資訊 , 請轉到網路介面卡及驅動程式識別指南 , 位於 :

有關最新的用於 Linux 的英特爾網路驅動程式 , 請參考以下網站 : 選擇該介面卡的連結。

帶有可插拔光纖的 SFP+ 裝置

基於 82599 的介面卡

說明
  • 如果您的基於 82599 的 Intel ® NetworkAdapter 與英特爾光學系統隨附或是一個 Intel ®乙太網伺服器介面卡 X520-2, 則它僅支援英特爾光纖和 / 或直接連線電纜下面列出。

  • 當基於 82599 的 SFP+ 裝置背靠背相連的 , 則應將它們設定為相同的速度設定通過 ethtool 。 如果設定為不同的速度設定 , 結果會有所不同。

鍵入 部件號
SR 型號
英特爾 雙速率 1G/10GSFP+SR( 保證 ) afbr-703sdz 2
英特爾 雙速率 1G/10GSFP+SR( 保證 ) ftlx8571d 3BCV-IT
英特爾 雙速率 1G/10GSFP+SR( 保證 ) afbr-703sddz 1
LR 模組
英特爾 雙速率 1G/10GSFP+LR( 保證 ) ftlx1471d 3BCV-IT
英特爾 雙速率 1G/10GSFP+LR( 保證 ) afct-701sdz 2
英特爾 雙速率 1G/10GSFP+LR( 保證 ) afct-701sddz 1

下表列出已進行過一些測試的第 3 方 SFP+ 模組和直接掛接纜線。 並非所有模組均適用於所有的裝置。

鍵入 部件號
finisar SFP+SR 保證 ,10g 單速率 ftlx8571d 3bcl
avago SFP+SR 保證 ,10g 單速率 afbr-700sdz
finisar SFP+LR 保證 ,10g 單速率 ftlx1471d 3bcl
finisar 雙速率 1G/10GSFP+SR( 未保證 ) ftlx8571d 3qcv-IT
avago 雙速率 1G/10GSFP+SR( 未保證 ) afbr-703sdz 1
finisar 雙速率 1G/10GSFP+LR( 未保證 ) ftlx1471d 3qcv-IT
avago 雙速率 1G/10GSFP+LR( 未保證 ) afct-701sdz 1
finisar 1000BASE-TSFP fclf8522P 2BTL
avago 1000BASE-TSFP abcu-5710RZ

基於 82599 的介面卡支援所有的被動和主動限制直接連線至符合 SFF-8431v4.1 和 SFF-8472v10.4 規格的電纜。

鐳射印表機的關閉的 SFP+ 當 ifconfig 下

"ifconfigdown" 關閉鐳射對基於 82599 的 SFP+ 光纖介面卡。 "ifconfigup" 即可開啟鐳射。

基於 82598 的介面卡

說明
  • Intel ®網路介面卡支援可移動光碟機模組只支援其原始的模組型別 ( 即 Intel ®萬兆 SR 雙埠高速模組僅支援 SR 光纖模組 ) 。 如果插入不同型別的模組 , 驅動程式不會載入。

  • 不支援熱替換 / 熱插拔光碟機模組。

  • 只支援單速、 10 千兆位的模組。

  • 主機板上的 LAN(LOM) 可能支援 DA 、 SR 或 LR 模組。 不支援其他模組型別。 請參閱您的系統文件 , 瞭解有關詳情。

下表列出已進行過一些測試的 SFP+ 模組和直接掛接纜線。 並非所有模組均適用於所有的裝置。

鍵入 部件號
finisar SFP+SR 保證 ,10g 單速率 ftlx8571d 3bcl
avago SFP+SR 保證 ,10g 單速率 afbr-700sdz
finisar SFP+LR 保證 ,10g 單速率 ftlx1471d 3bcl

基於 82598 的介面卡支援所有符合 SFF-8431v4.1 和 SFF-8472v10.4 規格的被動直接掛接纜。 不支援主動直接掛接纜線。

對上文提及第三方光纖模組和纜線僅列出了為高亮顯示第三方技術指標和潛在的相容性 , 並不推薦或認可或贊助的目的的任何第三方的產品由英特爾。 英特爾不保證或推銷任何第 3 方產品 , 而提供第 3 方參考僅僅為了分享有關符合以上規範的某些光纖模組和纜線的資訊。 其他生產商或供應商也可能生產或供應符合或類似這些規範或與這些規範類似的光纖模組和纜線。 客戶選購第 3 方的光纖模組和纜線時 , 必須自行研判。 判定產品和 / 或裝置的適用性以及選定購買任何產品的供應商 , 完全是客戶的責任。 英特爾對上文提及的光纖模組和纜線不提供擔保或支援。 英特爾不承擔任何責任 , 英特爾宣告對於客戶銷售和 / 或使用此類第 3 方產品或者選擇供應商沒有任何明確或隱含的保證。

返回頁首 back to top

編譯和安裝

構建該驅動程式的二進位制 RPM* 包 , 執行 ?rpmbuild-tbixgbe.tar.gz) 。

說明
  • 要成功完成建立過程 , 目前執行的核心必須與已安裝核心原始碼的版本和配置相匹配。 如果您已經重新編譯核心 , 請立即重新啟動系統。

  • RPM 功能僅在 RedHat 釋出上測試過。

要手動構建該驅動程式 :

  1. 將基礎驅動程式 tar 檔案移到您所選的目錄中。 例如 , 使用“ /home/username/ixgbe ”或“ /usr/local/src/ixgbe" 。

  2. 解壓縮該檔案檔案 :

    tarzxfixgbe-x.x.x.x.x.tar.gz
  3. 切換到驅動程式 src 目錄下 :

    cdixgbe-x.x.x/src/
  4. 編譯驅動程式模組 :

    makeinstall

    二進位制檔案將安裝為 :

    /lib/modules/[KERNEL_VERSION]/kernel/drivers/net/ixgbe/ixgbe.[k]o

    以上列出的安裝位置是預設位置。 這可能因不同的 Linux 發行版本而異。

  5. 載入模組 :

    對核心 2.6.x, 請使用 modprobe 命令 -

    modprobeixgbe< 引數 >=< 值 >

    注意 , 在 2.6 核心中 , 如果指定了驅動程式模組的完整路徑 , 可以使用 insmod 命令。 例如 :

    insmod/lib/modules/<>/kernel/drivers/net/ixgbe/ixgbe.ko 核心版本

    帶有 2.6 的核心 , 同時也要確保較舊的 ixgbe 驅動程式是從核心中去除 , 然後再載入新模組 :

    rmmodixgbe;modprobeixgbe
  6. 用下列命令指派 IP 地址至介面卡 , 其中 ,x 是介面卡號 :

    ifconfigethxIP 地址 ><netmask< 子網掩碼 >
  7. 驗證介面工作正常。 輸入以下命令。其中 <IP 地址 > 是與被測的介面在同一子網上的另一臺計算機的 IP 地址 :

    Ping<IP 地址 >

用 DCA 編譯 ixgbe 驅動程式

如果核心支援 DCA, 驅動程式的構建預設啟用 DCA 。

返回頁首 back to top

命令列引數

如果驅動程式作為模組構建 , 可以使用以下可選引數 , 按該語法在命令列中輸入與 modprobe 命令配合使用 :

modprobeixgbe[<option>=<val1>,<val2>,...]

例如 :

modprobeixgbeInterruptThrottleRate=16000,16000

除非特別說明 , 否則每個引數的預設值通常都是推薦設定。

引數名稱 有效範圍 / 設定 預設情況下 , 說明
RSS- 啟用接收方調整 ( 或針對接收多個佇列 ) 0-16 1 0= 禁用 RSS
1= 啟用 RSS, 並將描述符佇列計數為 16 或數量的
聯機 CPU, 取兩者中較小。
2-16= 啟用 RSS, 用 2-16 佇列

RSS 也體現的傳輸佇列數分配 2.6.23 和
較新核心與 CONFIG_NETDEVICES_MULTIQUEUE 只 kernel.config 檔案中設定。 CONFIG_NETDEVICES_MULTIQUEUE 只只存在從 2.6.23 到 2.6.26 。 其它選項啟用多佇列在 2.6.27 和更高版本的核心。

備註 RSS 引數 82599 的介面卡上不起作用 , 除非同時使用 FdirMode 引數禁用流量導向器。 請參閱 Intel ®®乙太網流量導向器部分的更多詳細資訊。
Mq- 多佇列 0 、 1
1 0= 禁用多佇列支援
1= 啟用多佇列支援 (RSS) 的必備條件
DCA- 直接快取記憶體訪問 0 、 1
1( 當 ixgbe_dca 已啟用 ) 0= 禁用 DCA 在驅動程式支援
1= 啟用 DCA 在驅動程式支援

請參閱上述說明用於啟用 DCA 。 如果該驅動程式已啟用的
DCA 此引數使載入時間控制的功能。

rxbuffermode 0-2

2( 基於 82598 的介面卡 )

0(82599 的介面卡 )

0= 驅動程式將為 Rx 資料包使用單一緩衝區。
1= 驅動程式將為 Rx 使用資訊包分裂模式。 資料包文頭將接收於文頭緩衝區 , 而有效資料 (payload) 將接收於資料緩衝區。
2 。 = 最佳模式。 驅動程式將為非巨幀配置使用單一緩衝區模式 , 為巨幀配置使用資料包分裂模式。

備註 headerdatasplit 在 82599 的介面卡上不受支援。
IntMode 0-2(0= 傳統 INT,1=MSI,2=msix) 2 個 IntMode 控制元件允許載入時間控制中斷註冊為由驅動程式的型別。 MSI-X 為多佇列支援之必需 , 而且一些核心以及核心 .config 選項的組合將強制實現較低層次的中斷支援。 “ cat/proc/interrupts 將顯示
對每一種型別的中斷的不同值。
InterruptThrottleRate 956-488281(0=off,1= 動態 ) 8000 中斷節流率 ( 中斷 / 秒 ) 。 ITR 引數控制每個中斷鍾能生成多少中斷。 對帶有 MSI-X 中斷的、啟用了 MQ/RSS 的核心而言 , 這意味著每個 RX 向量每秒鐘能生成 ( 預設 )8000 箇中斷 , 而每個 TX 向量每秒鐘能生成 ( 預設 )4000 箇中斷。 增加 ITR 會減少延遲時間 ; 其代價是 CPU 的使用量提高 , 儘管這在某些情況下會有助於吞吐量。

1= 動態模式試圖對每個中斷向量進行調節 , 同時將延遲保持在極低的程度。 這有時會導致額外的 CPU 使用量。 如果計劃在對延遲較敏感的環境中部署 ixgbe, 請考慮此引數。

0= 將 InterruptThrottleRate 設為 0 關閉所有的中斷調節 , 並可能會改善小資料包的等待時間 , 但通常不適用於大吞吐量通訊 , 由於 CPU 對較高的中斷速率的使用量提高。 請注意 , 在基於 82599 的介面卡 , 禁用 InterruptThrottleRate 也將導致驅動程式禁用 HWRSC 。 基於 82598 的介面卡 , 禁用 InterruptThrottleRate 也將導致禁用 LRO( 大量接收解除安裝 ) 。

LLI( 低延遲中斷 )
LLI 可即時生成一箇中斷處理後接收
符合某些標準的輸入資料包下面描述的引數所設。
LLI 引數在傳統中斷被使用時不啟用。 您必須是
使用 MSI 或 MSI-X( 參見 cat/proc/interrupts), 成功地使用 LLI 。
LLIPort 0-65535 0( 被禁用 )

LLI 通過 LLIPort 命令列引數配置 , 其中指定
哪個 TCP 埠應生成 " 低延遲中斷 " 。

例如 , 使用 LLIPort=80 可能造成硬體生成的
立即中斷在接收到任何傳送到 TCP 埠 80 的資料包上的
本地計算機。


注意 :
啟用 LLI 可導致過多的每秒鐘中斷數 , 從而可能引起系統發生問題 , 有時可能造成核心錯亂 (kernelpanic) 。
LLIPush 0-1 0( 被禁用 ) LLIPush 可設定為啟用或禁用 ( 預設 ) 。 它在有大量小型事務的環境中最有效。
注 : 啟用 LLIPush 可能會允許拒絕服務攻擊的威脅。
LLISize 使 個 0-1500 之間的 0( 被禁用 ) LLISize 使板接收到小於指定大小的資訊包時生成即時中斷。
llietype 0-x8FFF 0( 被禁用 ) 低延遲中斷乙太網協議型別。
llivlanp 0-7 0( 被禁用 ) VLAN 優先順序閾值上的低延遲中斷
流控制

乙太網流量控制 (IEEE802.3X) 可配置使用 Ethtool 啟用接收和傳輸暫停幀的 ixgbe 。 已啟用 Tx 時 , 暫停幀的接收資料包緩衝區 , 跨越了預定義的閾值時生成。 已啟用 Rx 時 , 傳輸單元將暫停的時間延遲 , 收到一個暫停幀時指定的。

流量控制為預設啟用。 如果要禁用具備流量控制功能的連結夥伴 , 使用 ethtool:

ethtool-aeth? autonegoffrxoffTX 關閉

備註 進入 1G 模式 82598 底板卡 , 預設行為改為關。 流量控制在這些裝置上 1gig 模式可能會導致 Tx 掛起。
Intel ®乙太網流量導向器

支援高階過濾器 , 直接接收資料包通過他們的流動 ,
不同的佇列。 啟用有關路由選擇的嚴密控制流中的平臺。 流程和 CPU 核心匹配的流量親和性。 支援多個引數來提供靈活的流量分類和負載平衡。

啟用流量導向器只有當核心支援多個 TX 佇列。

一個隨帶的指令碼 (set_irq_affinity.sh) 自動將 IRQ 設定至 CPU 親和性。

您可以驗證驅動程式是否使用流量導向器 , 檢視 ethtool 的計數器 :fdir_miss 和 fdir_match 。

其他 ethtool 命令 :

要啟用流量導向器

ethtool-kethXntuple 上

要新增過濾器

使用 -U 開關。例如 ,ethtool-UethX 流 - 鍵入 TCP4src-ip0 x178000 的操作 1

要檢視當前存在的篩選器列表 :

ethtool-UethX

完美過濾 : 完美過濾是一個介面 , 以載入篩選器表 ,
funnels 所有流入流導向 queue_00, 除非指定了替代佇列使用 " 動作 " 。 在該情況下 , 符合過濾器標準的所有資訊流將被導向相應佇列。

如果佇列定義為 -1, 過濾器將丟棄匹配的資料包。

為計算過濾器匹配數和不匹配數 ,ethtool 中有兩個統計量 :fdir_match 和 fdir_miss 。 此外 ,rx_queue_N_packets 顯示第 N 個佇列處理的資料包數目。

以下三個引數影響流量導向器。

FdirMode 0-2(0=off,1=ATR,2= 完美過濾模式 ) 1(ATR) 流量導向器過濾模式。
fdirpballoc 0-2(0=64K,1=128k,2=256K) 0(64k) 流量導向器分配的資料包緩衝區大小。
AtrSampleRate 1-100 之間 20 軟體 ATRTx 資料包樣本率。 例如 , 當設定為 20, 每隔 20 個數據包 , 查詢 , 檢視是否該資料包將建立一個新資料流。
max_vfs 1-63 0

如果此值大於 0, 它將強制 VMDq 引數等於 1 或以上。

此引數為 SR-IOV 新增支援。 它使驅動程式衍生至虛擬函式的 max_vfs 。

驅動程式引數 , 請執行以下位置參照。 因此 , 如果有一個基於的 82,599 介面卡 , 而每個埠想要 N 隔虛擬功能 , 舊必須為每個埠指定一個數字 , 用逗號分隔每個引數。

例如 :
insmodixgbemax_vfs=63,63

備註 如果安裝了兩個 82598 和 82599 的介面卡在同一臺計算機上 ,
您必須小心不要載入驅動程式時使用的引數。 這取決於上
系統配置、插槽數等等 It ’ s 不能預測在所有情況下 , 其中的位置將會的命令列上 , 使用者必須將通過 82598 端口占用的那些位置指定為零。
節點 0-n

1( 關閉 )

Node( 節點 ) 引數後 , 您可以選擇哪些 NUMA 節點要有介面卡上分配記憶體。

0 – n:, 其中 n 是的 NUMA 節點數 ( 即 0 – 3) 當前線上在您的系統中。

1: 關閉此選項

L2lben 0= 禁用 ,1= 啟用 (Default)( 對您的計算機進行分析並自動確定發行版本。 ( 預設 )) 1( 啟用 )

此引數控制內部交換機 (pf 和 vf 之間的 L2 環回 ) 。 在預設情況下啟用此交換機。

返回頁首 back to top

額外配置

在不同發行版本上配置驅動程式

將網路驅動程式配置為系統啟動時正確載入因釋出版本而異。 通常情況下 , 配置過程涉及到一行 alias( 別名 ) 行新增到 /etc/modules.conf 或 etc/modprobe.conf, 以及編輯其它系統啟動指令碼和 / 或配置檔案。 很多流行 Linux 發行版本提供工具幫您執行這一更改。 要了解為系統配置網路裝置的正確方式 , 請參見發行版本文件。 如果在此過程中被詢問驅動程式或模組的名稱 , 的 RedHatLinux 基礎驅動程式的名稱為的 10 千兆位系列介面卡是 ixgbe 。

檢視連結訊息

如果釋出版本限制系統訊息 , 則連結資訊不會顯示在控制檯上。 為了在控制檯上檢視網路驅動程式連結訊息 , 可以輸入以下內容將 dmesg 設定為 8:

dmesg-n8

備註 此設定未在重啟時儲存。

? 巨幀 ?

該驅動程式支援的所有介面卡的巨幀。 啟用巨幀的方法是將 MTU 的值設為大於預設的 1500 。 MTU 最大值為 16110 。 使用 ifconfig 命令來增加 MTU 的大小。 例如 , 輸入以下命令 , 其中 <x> 是介面卡號 :

ifconfigethxMTU9000 份

巨幀的最大 MTU 設定為 16110 。 該值與最大巨型幀尺寸值 16128 相符。 此驅動程式將試圖以
使用多個頁面大小的緩衝區接收各個大型資訊包。 這將有助於避免分配接收資訊包時發生緩衝區枯竭的問題。

Ethtool

驅動程式使用 ethtool 介面進行驅動程式配置和診斷 , 以及顯示統計資訊。 這一功能要求最新版本的 Ethtool 。

NAPI

NAPI(Rx 輪流檢測模式 ) 受 ixgbe 驅動程式的支援。 NAPI 基於核心的配置進行啟用或禁用。 要覆蓋預設值 , 請使用以下編譯時的標記。

您可以告訴如果在驅動程式中啟用 NAPI, 通過查詢驅動程式的版本號。 它將包含字串 -NAPI 如果啟用了 NAPI 。

要啟用 NAPI, 編譯驅動程式模組 , 位於配置選項中 :

makeCFLAGS_EXTRA=-dixgbe_napi 安裝

備註 如果在核心中禁用了 NAPI, 則不會執行任何動作。

要禁用 NAPI, 編譯驅動程式模組 , 位於配置選項中 :

makeCFLAGS_EXTRA=-dixgbe_no_napi 安裝

LRO

大量接收分載 (LRO) 是通過降低 CPU 開銷來提高來自寬頻網路連線的向內吞吐量的一項技巧。 這一方法將來自單一資訊流的多個資訊包聚合為一個較大的緩衝 , 然後將它們傳輸到網路堆疊的更高層 , 從而減少需要處理的資訊包數量。 LRO 在堆疊中將多個以太幀合併為一個接收 , 因此有降低針對接收的 CPU 使用量。

IXGBE_NO_LRO 是編譯時間標誌。 使用者可以在編譯期間將其啟用 , 以移除來自驅動程式的 LRO 支援。 則會用通過新增標誌 ,
makeCFLAGS_EXTRA="-DIXGBE_NO_LRO" 到 make 檔案 , 它在編譯時。

makeCFLAGS_EXTRA="-DIXGBE_NO_LRO" 安裝

可以通過在 Ethtool 中檢視這些計算器確認驅動程式在使用 LRO:

lro_flushed- 使用 LRO 時的接收總計。lro_aggregated- 合併的以太資訊包總量進行計數。
備註 IPv6 和 UDPLRO 所不支援的要求。

HWRSC

基於 82599 的介面卡支援 HW 的接收端聚集 (ReceiveSideCoalescing,RSC), 它可以從相同的 IPv4TCP/IP 流的多個幀合併到單一結構 , 可以跨一個或多個描述符。 它的工作方式與 SW 大量接收分載技術類似。 HWRSC 預設是啟用的 , 除非禁用 HWRSCSWLRO 不能用於基於 82599 的介面卡。

IXGBE_NO_HW_RSC 是編譯時間標誌。 使用者可以在編譯期間將其啟用要去除支援 HWRSC 從驅動程式。 標誌用 CFLAGS_EXTRA="-DIXGBE_NO_HW_RSC" 新增到 make 檔案時 , 它在編譯。

makeCFLAGS_EXTRA="-DIXGBE_NO_HW_RSC" 安裝

通過檢視 Ethtool 中的計算器可驗證該驅動程式是否使用 HWRSC:

hw_rsc_count- 對被合併的以太資訊包總量進行計數。

rx_dropped_backlog

在處於非 Napi( 或中斷 ) 模式中時 , 此計數器會表示堆疊正在丟棄資訊包。 堆疊中有一個可調節的引數可允許您調整 backlog 的數量。 建議在計數上升的時候增加 netdev_max_backlog 。

#sysctl-a|grep 時候增加 netdev_max_backlognet.core.netdev_max_backlog=1000#sysctl-enet.core.netdev_max_backlog=10000net.core.netdev_max_backlog=10000

流控制

流量控制為預設啟用。 如果要禁用具備流量控制功能的連結夥伴 , 使用 ethtool:

ethtool-aeth? autonegoffrxoffTX 關閉

MAC 和 VLAN 反欺騙功能

當惡意驅動程式嘗試傳送欺騙資料包時 , 硬體將阻止其傳輸。 系統將向 PF 驅動程式傳送中斷 , 告知其這一欺騙嘗試行為。
已檢測到欺騙資料包時 ,PF 驅動程式將以下資訊傳送到系統日誌 ( 通過 "dmesg" 命令顯示 ):

ixgbeethx:ixgbe_spoof_check:N 欺騙的資料包檢測到其中 x=PF 介面編號 ,N= 嘗試進行欺騙的 VF