適用於 Intel(R) 萬兆乙太網 PCI Express 網絡卡的 Linux 基本驅動程式¶
Intel 萬兆 Linux 驅動程式。版權所有(c) 1999-2018 Intel Corporation。
目錄¶
識別您的介面卡
命令列引數
附加配置
已知問題
支援
識別您的介面卡¶
該驅動程式相容基於以下裝置的介面卡:
Intel(R) 乙太網控制器 82598
Intel(R) 乙太網控制器 82599
Intel(R) 乙太網控制器 X520
Intel(R) 乙太網控制器 X540
Intel(R) 乙太網控制器 X550
Intel(R) 乙太網控制器 X552
Intel(R) 乙太網控制器 X553
有關如何識別您的介面卡以及最新的 Intel 網路驅動程式的資訊,請參閱 Intel 支援網站:https://www.intel.com/support
帶可插拔光模組的 SFP+ 裝置¶
基於 82599 的介面卡¶
注意:- 如果您的 82599 型 Intel(R) 網路介面卡附帶 Intel 光模組或為 Intel(R) 乙太網伺服器介面卡 X520-2,則它僅支援 Intel 光模組和/或下列直連電纜。- 當 82599 型 SFP+ 裝置背靠背連線時,應透過 ethtool 將其速度設定設為相同。如果混合速度設定,結果可能會有所不同。
供應商 |
型別 |
部件號 |
|---|---|---|
SR 模組 |
||
Intel |
雙速率 1G/10G SFP+ SR(帶拉環) |
FTLX8571D3BCV-IT |
Intel |
雙速率 1G/10G SFP+ SR(帶拉環) |
AFBR-703SDZ-IN2 |
Intel |
雙速率 1G/10G SFP+ SR(帶拉環) |
AFBR-703SDDZ-IN1 |
LR 模組 |
||
Intel |
雙速率 1G/10G SFP+ LR(帶拉環) |
FTLX1471D3BCV-IT |
Intel |
雙速率 1G/10G SFP+ LR(帶拉環) |
AFCT-701SDZ-IN2 |
Intel |
雙速率 1G/10G SFP+ LR(帶拉環) |
AFCT-701SDDZ-IN1 |
以下是經過部分測試的第三方 SFP+ 模組列表。並非所有模組都適用於所有裝置。
供應商 |
型別 |
部件號 |
|---|---|---|
Finisar |
SFP+ SR 帶拉環,10G 單速率 |
FTLX8571D3BCL |
Avago |
SFP+ SR 帶拉環,10G 單速率 |
AFBR-700SDZ |
Finisar |
SFP+ LR 帶拉環,10G 單速率 |
FTLX1471D3BCL |
Finisar |
雙速率 1G/10G SFP+ SR(不帶拉環) |
FTLX8571D3QCV-IT |
Avago |
雙速率 1G/10G SFP+ SR(不帶拉環) |
AFBR-703SDZ-IN1 |
Finisar |
雙速率 1G/10G SFP+ LR(不帶拉環) |
FTLX1471D3QCV-IT |
Avago |
雙速率 1G/10G SFP+ LR(不帶拉環) |
AFCT-701SDZ-IN1 |
Finisar |
1000BASE-T SFP |
FCLF8522P2BTL |
Avago |
1000BASE-T |
ABCU-5710RZ |
HP |
1000BASE-SX SFP |
453153-001 |
基於 82599 的介面卡支援所有符合 SFF-8431 v4.1 和 SFF-8472 v10.4 規範的無源和有源限流直連電纜。
當 ifconfig ethX down 時 SFP+ 雷射器關閉¶
“ifconfig ethX down” 會關閉基於 82599 的 SFP+ 光纖介面卡的雷射器。“ifconfig ethX up” 會開啟雷射器。或者,您可以使用 “ip link set [down/up] dev ethX” 來關閉和開啟雷射器。
基於 82599 的 QSFP+ 介面卡¶
注意:- 如果您的 82599 型 Intel(R) 網路介面卡附帶 Intel 光模組,則它僅支援 Intel 光模組。- 基於 82599 的 QSFP+ 介面卡僅支援 4x10 Gbps 連線。不支援 1x40 Gbps 連線。QSFP+ 鏈路夥伴必須配置為 4x10 Gbps。- 基於 82599 的 QSFP+ 介面卡不支援自動鏈路速度檢測。鏈路速度必須配置為 10 Gbps 或 1 Gbps,以匹配鏈路夥伴的速度能力。不正確的速度配置將導致鏈路失敗。- Intel(R) 乙太網融合網路介面卡 X520-Q1 僅支援以下列出的光模組和直連電纜。
供應商 |
型別 |
部件號 |
|---|---|---|
Intel |
雙速率 1G/10G QSFP+ SRL(帶拉環) |
E10GQSFPSR |
基於 82599 的 QSFP+ 介面卡支援所有符合 SFF-8436 v4.1 規範的無源和有源限流 QSFP+ 直連電纜。
基於 82598 的介面卡¶
注意:- 支援可插拔光模組的 Intel(R) 乙太網網路介面卡僅支援其原始模組型別(例如,Intel(R) 萬兆 SR 雙埠 Express 模組僅支援 SR 光模組)。如果您插入不同型別的模組,驅動程式將無法載入。- 不支援光模組熱插拔。- 僅支援單速 10 千兆模組。- 主機板上的 LAN (LOM) 可能支援 DA、SR 或 LR 模組。不支援其他模組型別。請參閱您的系統文件以獲取詳細資訊。
以下是經過部分測試的 SFP+ 模組和直連電纜列表。並非所有模組都適用於所有裝置。
供應商 |
型別 |
部件號 |
|---|---|---|
Finisar |
SFP+ SR 帶拉環,10G 單速率 |
FTLX8571D3BCL |
Avago |
SFP+ SR 帶拉環,10G 單速率 |
AFBR-700SDZ |
Finisar |
SFP+ LR 帶拉環,10G 單速率 |
FTLX1471D3BCL |
基於 82598 的介面卡支援所有符合 SFF-8431 v4.1 和 SFF-8472 v10.4 規範的無源直連電纜。不支援有源直連電纜。
上述提及的第三方光模組和電纜僅為強調第三方規格和潛在相容性而列出,並非 Intel 對任何第三方產品的推薦、認可或贊助。Intel 不認可或推廣任何第三方製造的產品,提供第三方引用僅為分享關於具有上述規格的某些光模組和電纜的資訊。可能存在生產或供應具有相似或匹配描述的光模組和電纜的其他製造商或供應商。客戶必須自行判斷並勤勉地從其選擇的任何第三方購買光模組和電纜。客戶全權負責評估產品和/或裝置的適用性,並負責選擇購買任何產品的供應商。上述提及的光模組和電纜不提供 Intel 的擔保或支援。Intel 不承擔任何責任,並否認與此類第三方產品的銷售和/或使用或客戶選擇供應商相關的任何明示或暗示保證。
命令列引數¶
max_vfs¶
- 有效範圍:
1-63
此引數添加了對 SR-IOV 的支援。它使驅動程式最多生成 max_vfs 個虛擬功能。如果值大於 0,它還將強制 VMDq 引數為 1 或更多。
注意:此引數僅在核心 3.7.x 及更低版本上使用。在核心 3.8.x 及更高版本上,請使用 sysfs 啟用 VF。此外,對於 Red Hat 發行版,此引數僅在 6.6 版及更舊版本上使用。對於 6.7 版及更新版本,請使用 sysfs。例如
#echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs // enable VFs
#echo 0 > /sys/class/net/$dev/device/sriov_numvfs //disable VFs
驅動程式的引數按位置引用。因此,如果您的系統中有雙埠介面卡或多個介面卡,並且希望每個埠有 N 個虛擬功能,則必須為每個埠指定一個數字,每個引數之間用逗號分隔。例如
modprobe ixgbe max_vfs=4
這將在第一個埠上生成 4 個 VF。
modprobe ixgbe max_vfs=2,4
這將在第一個埠上生成 2 個 VF,在第二個埠上生成 4 個 VF。
注意:使用這些引數載入驅動程式時必須小心。根據您的系統配置、插槽數量等,在所有情況下都無法預測命令列上的位置。
注意:裝置和驅動程式都不控制 VF 如何對映到配置空間。匯流排佈局會因作業系統而異。在支援此功能的作業系統上,您可以檢查 sysfs 來查詢對映。
注意:當啟用 SR-IOV 模式或 VMDq 模式時,硬體 VLAN 過濾和 VLAN 標籤剝離/插入將保持啟用狀態。請在新增新的 VLAN 過濾器之前移除舊的 VLAN 過濾器。例如,
ip link set eth0 vf 0 vlan 100 // set VLAN 100 for VF 0
ip link set eth0 vf 0 vlan 0 // Delete VLAN 100
ip link set eth0 vf 0 vlan 200 // set a new VLAN 200 for VF 0
在核心 3.6 中,驅動程式支援同時使用 max_vfs 和 DCB 功能,但受限於以下所述的限制。在核心 3.6 之前,驅動程式不支援 max_vfs 大於 0 和 DCB 功能(使用優先順序流控制和擴充套件傳輸選擇的多個流量類別)的同時操作。
當啟用 DCB 時,網路流量透過多個流量類別(NIC 中的資料包緩衝區)傳輸和接收。流量根據優先順序與特定類別關聯,該優先順序在 VLAN 標籤中使用的值為 0 到 7。當未啟用 SR-IOV 時,每個流量類別都與一組接收/傳輸描述符佇列對相關聯。給定流量類別的佇列對數量取決於硬體配置。當啟用 SR-IOV 時,描述符佇列對被分組到池中。物理功能 (PF) 和每個虛擬功能 (VF) 都分配有一個接收/傳輸描述符佇列對池。當配置多個流量類別(例如,DCB 啟用時)時,每個池包含來自每個流量類別的一個佇列對。當硬體中配置單個流量類別時,池包含來自單個流量類別的多個佇列對。
可分配的 VF 數量取決於可啟用的流量類別數量。每個已啟用 VF 的可配置流量類別數量如下:0 - 15 個 VF = 最多 8 個流量類別,取決於裝置支援;16 - 31 個 VF = 最多 4 個流量類別;32 - 63 個 VF = 1 個流量類別
當配置 VF 時,PF 也被分配一個池。PF 支援 DCB 功能,但限制是每個流量類別只使用一個佇列對。當配置零個 VF 時,PF 可以支援每個流量類別的多個佇列對。
allow_unsupported_sfp¶
- 有效範圍:
0,1
- 預設值:
0(停用)
此引數允許在基於 82599 的介面卡上使用不受支援和未經測試的 SFP+ 模組,只要驅動程式知道模組型別即可。
debug¶
- 有效範圍:
0-16(0=無,...,16=全部)
- 預設值:
0
此引數調整在系統日誌中顯示的除錯訊息級別。
附加功能和配置¶
流控制¶
乙太網流控制 (IEEE 802.3x) 可以透過 ethtool 配置,以啟用 ixgbe 的接收和傳輸暫停幀。當啟用傳輸時,當接收資料包緩衝區超過預定義閾值時,會生成暫停幀。當啟用接收時,接收到暫停幀時,傳輸單元將停止指定的延遲時間。
注意:您必須有一個支援流控制的鏈路夥伴。
流控制預設啟用。
使用 ethtool 更改流控制設定。要啟用或停用 Rx 或 Tx 流控制
ethtool -A eth? rx <on|off> tx <on|off>
注意:此命令僅在停用自動協商時啟用或停用流控制。如果啟用自動協商,此命令會更改用於與鏈路夥伴進行自動協商的引數。
要啟用或停用自動協商
ethtool -s eth? autoneg <on|off>
注意:流控制自動協商是鏈路自動協商的一部分。根據您的裝置,您可能無法更改自動協商設定。
注意:對於進入 1 千兆模式的 82598 背板卡,流控制預設行為更改為關閉。這些裝置在 1 千兆模式下的流控制可能導致傳輸掛起。
Intel(R) 乙太網流導向器¶
Intel 乙太網流導向器執行以下任務:
根據流將接收到的資料包導向不同的佇列。
嚴格控制平臺中流的路由。
匹配流和 CPU 核心以實現流親和性。
支援多個引數,用於靈活的流分類和負載均衡(僅在 SFP 模式下)。
注意:Intel 乙太網流導向器掩碼的工作方式與子網掩碼相反。在以下命令中
#ethtool -N eth11 flow-type ip4 src-ip 172.4.1.2 m 255.0.0.0 dst-ip \
172.21.1.1 m 255.128.0.0 action 31
寫入過濾器的 src-ip 值將是 0.4.1.2,而不是預期中的 172.0.0.0。類似地,寫入過濾器的 dst-ip 值將是 0.21.1.1,而不是 172.0.0.0。
要啟用或停用 Intel 乙太網流導向器
# ethtool -K ethX ntuple <on|off>
停用 ntuple 過濾器時,所有使用者程式設計的過濾器都會從驅動程式快取和硬體中清除。重新啟用 ntuple 時,必須重新新增所有需要的過濾器。
要新增將資料包導向佇列 2 的過濾器,請使用 -U 或 -N 開關
# ethtool -N ethX flow-type tcp4 src-ip 192.168.10.1 dst-ip \
192.168.10.2 src-port 2000 dst-port 2001 action 2 [loc 1]
要檢視當前存在的過濾器列表
# ethtool <-u|-n> ethX
旁帶精確過濾器¶
旁帶精確過濾器用於引導匹配指定特徵的流量。它們透過 ethtool 的 ntuple 介面啟用。要新增新過濾器,請使用以下命令
ethtool -U <device> flow-type <type> src-ip <ip> dst-ip <ip> src-port <port> \
dst-port <port> action <queue>
- 其中
<device> - 要程式設計的乙太網裝置 <type> - 可以是 ip4、tcp4、udp4 或 sctp4 <ip> - 要匹配的 IP 地址 <port> - 要匹配的埠號 <queue> - 流量導向的佇列(-1 丟棄匹配的流量)
使用以下命令刪除過濾器
ethtool -U <device> delete <N>
其中 <N> 是列印所有活動過濾器時顯示的過濾器 ID,在新增過濾器時也可以使用 “loc <N>” 指定。
以下示例匹配從 192.168.0.1 埠 5300 傳送,導向 192.168.0.5 埠 80 的 TCP 流量,並將其傳送到佇列 7
ethtool -U enp130s0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5 \
src-port 5300 dst-port 80 action 7
對於每種流型別,程式設計的過濾器必須都具有相同的匹配輸入集。例如,發出以下兩個命令是可接受的
ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.5 src-port 55 action 10
然而,發出接下來的兩個命令是不可接受的,因為第一個指定了 src-ip,第二個指定了 dst-ip
ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
ethtool -U enp130s0 flow-type ip4 dst-ip 192.168.0.5 src-port 55 action 10
第二個命令將失敗並報錯。您可以程式設計多個具有相同欄位但值不同的過濾器,但是,在同一裝置上,您不能程式設計兩個具有不同匹配欄位的 TCP4 過濾器。
ixgbe 驅動程式不支援欄位子部分的匹配,因此不支援部分掩碼欄位。
要建立將流量導向特定虛擬功能 (Virtual Function) 的過濾器,請使用 “user-def” 引數。將 user-def 指定為一個 64 位值,其中低 32 位表示佇列號,接下來的 8 位表示是哪個 VF。請注意,0 是 PF,因此 VF 識別符號偏移量為 1。例如
... user-def 0x800000002 ...
指定將流量導向虛擬功能 7(8 減 1)的佇列 2。
請注意,這些過濾器不會破壞內部路由規則,並且不會路由原本不會發送到指定虛擬功能的流量。
巨型幀¶
透過將最大傳輸單元 (MTU) 更改為大於預設值 1500 的值來啟用巨型幀支援。
使用 ifconfig 命令增加 MTU 大小。例如,輸入以下內容,其中 <x> 是介面號
ifconfig eth<x> mtu 9000 up
或者,您可以使用 ip 命令,如下所示
ip link set mtu 9000 dev eth<x>
ip link set up dev eth<x>
此設定不會在重啟後保留。可以透過將 ‘MTU=9000’ 新增到檔案來使設定更改永久生效
/etc/sysconfig/network-scripts/ifcfg-eth<x> // for RHEL
/etc/sysconfig/network/<config_file> // for SLES
注意:巨型幀的最大 MTU 設定為 9710。此值與最大巨型幀大小 9728 位元組相符。
注意:此驅動程式將嘗試使用多個頁面大小的緩衝區來接收每個巨型資料包。這應有助於避免在分配接收資料包時出現緩衝區飢餓問題。
注意:對於基於 82599 的網路連線,如果您在虛擬功能 (VF) 中啟用巨型幀,則必須首先在物理功能 (PF) 中啟用巨型幀。VF MTU 設定不能大於 PF MTU。
NBASE-T 支援¶
ixgbe 驅動程式在某些裝置上支援 NBASE-T。然而,NBASE-T 速度的通告預設被抑制,以適應無法處理通告的 NBASE-T 速度的損壞網路交換機。使用 ethtool 命令在支援 NBASE-T 的裝置上啟用 NBASE-T 速度的通告
ethtool -s eth? advertise 0x1800000001028
在具有 INTERFACES(5) 的 Linux 系統上,這可以作為 /etc/network/interfaces 中的 pre-up 命令指定,以便介面始終在 NBASE-T 支援下啟動,例如:
iface eth? inet dhcp
pre-up ethtool -s eth? advertise 0x1800000001028 || true
通用接收解除安裝,又稱 GRO¶
該驅動程式支援 GRO 的核心內軟體實現。GRO 已表明,透過將 Rx 流量合併成更大的資料塊,在大量 Rx 負載下可以顯著降低 CPU 利用率。GRO 是先前使用的 LRO 介面的演進。GRO 能夠合併除 TCP 之外的其他協議。它也可以安全地用於對 LRO 有問題的配置,即橋接和 iSCSI。
資料中心橋接 (DCB)¶
注意:核心假定 TC0 可用,如果 TC0 不可用,將停用裝置上的優先順序流控制 (PFC)。要解決此問題,請確保在您的交換機上設定 DCB 時啟用 TC0。
DCB 是硬體中服務質量的一種配置實現。它使用 VLAN 優先順序標籤 (802.1p) 來過濾流量。這意味著流量可以被過濾到 8 個不同的優先順序。它還支援優先順序流控制 (802.1Qbb),可以在網路壓力下限制或消除丟包數量。頻寬可以分配給這些優先順序中的每一個,這在硬體層面執行 (802.1Qaz)。
介面卡韌體分別按照 802.1AB 和 802.1Qaz 實現了 LLDP 和 DCBX 協議代理。基於韌體的 DCBX 代理僅在 Willing 模式下執行,可以接受來自支援 DCBX 的對等體的設定。不支援透過 dcbtool/lldptool 進行 DCBX 引數的軟體配置。
ixgbe 驅動程式實現了 DCB netlink 介面層,允許使用者空間與驅動程式通訊並查詢埠的 DCB 配置。
ethtool¶
該驅動程式利用 ethtool 介面進行驅動程式配置和診斷,以及顯示統計資訊。此功能需要最新的 ethtool 版本。請在此處下載:https://kernel.linux.club.tw/pub/software/network/ethtool/
FCoE¶
ixgbe 驅動程式支援乙太網光纖通道 (FCoE) 和資料中心橋接 (DCB)。此程式碼對常規驅動程式操作沒有預設影響。配置 DCB 和 FCoE 超出了本 README 的範圍。有關 FCoE 專案資訊,請參閱 http://www.open-fcoe.org/;有關 DCB 資訊,請聯絡 ixgbe-eedc@lists.sourceforge.net。
MAC 和 VLAN 防欺騙功能¶
當惡意驅動程式嘗試傳送欺騙性資料包時,它會被硬體丟棄而不會被傳輸。
中斷會發送到 PF 驅動程式,通知它欺騙嘗試。當檢測到欺騙性資料包時,PF 驅動程式會將以下訊息傳送到系統日誌(透過 “dmesg” 命令顯示)
ixgbe ethX: ixgbe_spoof_check: n spoofed packets detected
其中 “x” 是 PF 介面號;“n” 是欺騙性資料包的數量。注意:此功能可以針對特定的虛擬功能 (VF) 停用
ip link set <pf dev> vf <vf id> spoofchk {off|on}
IPsec 解除安裝¶
ixgbe 驅動程式支援 IPsec 硬體解除安裝。在使用 “ip xfrm ...” 建立安全關聯時,可以使用 ‘offload’ 標籤選項將 IPsec SA 註冊到驅動程式,以便在安全通訊中獲得更高的吞吐量。
ixgbe 的 VF 也支援解除安裝,但 VF 必須設定為 ‘trusted’,並且必須透過以下方式啟用支援:
ethtool --set-priv-flags eth<x> vf-ipsec on
ip link set eth<x> vf <y> trust on
已知問題/故障排除¶
在 64 位 Microsoft Windows Server 2012/R2 客戶作業系統中啟用 SR-IOV¶
Linux KVM 虛擬機器管理器/VMM 支援將 PCIe 裝置直接分配給虛擬機器。這包括傳統的 PCIe 裝置,以及基於 Intel 乙太網控制器 XL710 的支援 SR-IOV 的裝置。
支援¶
有關一般資訊,請訪問 Intel 支援網站:https://www.intel.com/support/
如果在支援的核心上使用支援的介面卡發現了已釋出原始碼的問題,請將與該問題相關的具體資訊傳送電子郵件至 intel-wired-lan@lists.osuosl.org。