使用的 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) 网络连接。

有关识别适配器的更多信息 , 请转到网络适配器及驱动程序识别指南 , 位于 :

http://support.intel.com/support/go/network/adapter/proidguide.htm

有关最新的用于 Linux 的英特尔网络驱动程序 , 请参考以下网站 : 选择该适配器的链接。

http://support.intel.com/support/go/network/adapter/home.htm

带有可插拔光纤的 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 。

Ethtool 最新的发行说明可以在以下位置找到 :http://ftp.kernel.org/pub/software/network/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

你可能感兴趣的:(intel82599es网卡)