在我的以太网 NIC 上启用流量控制

网络工程 转变 以太网 层2 自动协商 10gbase
2021-07-05 03:27:04

运行“ethtool eth0”时,

  • 我在输出中看到一行 -> Supported pause frame use: No

    1. 这是否意味着我的以太网卡根本不支持流量控制?

我尝试使用“ethtool -A eth0 rx on tx on”启用流量控制,

  • 什么都没有发生,命令执行但是“ethtool -a eth0”仍然报告它已关闭

    1. 自动协商出现,但我不确定这是否会影响流量控制。从我看来,它可以确定链路流量控制吗?

    2. 我质疑 ethtool 是因为在网上查看我的以太网卡的规格时,它似乎完全支持流量控制?

    3. 最后,我连接到第 2 层交换机。是否必须为两个端点启用自动协商才能确定流量控制?

总而言之,我只想在主机和交换机上启用流量控制

编辑

英特尔® 以太网控制器 X540-AT2

2个回答

你比你想象的更接近让它工作。事实上,问题可能只是交换机上没有启用流量控制。

ethtool 源代码(修订版 3.18)和我熟悉的部分的寄存器接口揭示了对您观察到的行为的解释。802.3x 标准定义了流量控制,但我已经有一段时间没有看过了。

流量控制(MAC 暂停)在自动协商期间启用,其中一个交换页面中有 2 位。仅当启用双工时才有效。它也在 MAC 层处理,可以在硬件中处理。因此,除了设置用于自动协商的寄存器位外,您的驱动程序可能根本不涉及。我还没有看到主动处理 MAC 层暂停帧的驱动程序,但后来我只使用了几个。

你开始于:

ethtool -A eth0 tx on rx on

然后,您需要确保启用自动协商并重新启动它。

ethtool -A eth0 autoneg on

ethtool -r eth0

大多数情况都没有关系,以太网流量控制从未得到广泛支持,大多数交换机设备会尊重PAUSE帧,但不会发送它们。话虽如此,您的问题可以很容易地得到解决:

  1. 不完全是。您仍然可以发送暂停帧,但您的卡不会尊重交换机发送的帧(无论如何您可能永远不会收到)。不过,驱动程序可能不会发送暂停帧,因此您发送的任何帧都必须手动生成。

  2. 自动协商对全双工千兆链路上的流量控制没有影响

  3. Ethtool 正在响应来自 NIC 驱动程序的信息。如果驱动程序不支持硬件支持什么并不重要,因此 ethtool 告诉您的内容很重要。

  4. 不可以。除非您以 100Mbit 的速度工作,否则一般的自动协商不会帮助您(除非您使用中继器或其他罕见的千兆位半双工设备)。