Ethtool 结构元素以及它们是什么。它们上定义了哪些设置和信息
Ethtool Structs elements and what are they. What settings and info defined on them
我正在阅读来自 Intel E1000E
和 Realtek r1869
驱动程序的驱动程序代码。我为两者都安装了设备,
目前正在学习ethtool_ops
。我知道 Ethtool 可以成为
Long story short, ethtool is a means to display and adjust generic NIC/driver parameters
(identification, the number of receive and transmit queues, receive and transmit offloads, you > name it) in a userspace application
但是如果你看一下结构 ethtool_ops
并不是所有的东西都是 crystal 清楚的
下面是一个 Ethtool 结构
static const struct ethtool_ops rtl8169_ethtool_ops = {
.supported_coalesce_params = ETHTOOL_COALESCE_USECS |
ETHTOOL_COALESCE_MAX_FRAMES,
.get_drvinfo = rtl8169_get_drvinfo,
.get_regs_len = rtl8169_get_regs_len,
.get_link = ethtool_op_get_link,
.get_coalesce = rtl_get_coalesce,
.set_coalesce = rtl_set_coalesce,
.get_regs = rtl8169_get_regs,
.get_wol = rtl8169_get_wol,
.set_wol = rtl8169_set_wol,
.get_strings = rtl8169_get_strings,
.get_sset_count = rtl8169_get_sset_count,
.get_ethtool_stats = rtl8169_get_ethtool_stats,
.get_ts_info = ethtool_op_get_ts_info,
.nway_reset = phy_ethtool_nway_reset,
.get_eee = rtl8169_get_eee,
.set_eee = rtl8169_set_eee,
.get_link_ksettings = phy_ethtool_get_link_ksettings,
.set_link_ksettings = phy_ethtool_set_link_ksettings,
};
我不明白的是此页面上的一些信息,例如显示正在执行的设置。但是,当您查看结构时, much 毫无意义 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/monitoring-and-tuning-the-rx-ring-buffer_configuring-and-managing-networking
https://linoxide.com/linux-how-to/ethtool-command-with-examples/
所以我想知道如果我必须使用 ethtool 用户空间应用程序执行以下操作怎么办。那么哪个ethtool_ops
函数处理这个
显示丢弃的数据包数量:为此,我在 RealTek 的 r8169 驱动程序中有 .get_ethtool_stats = rtl8169_get_ethtool_stats,
。如果我错误地认为此信息由内核堆栈管理,请纠正我。
增加 RX 环形缓冲区以降低高丢包率。我不知道结构 ethtool_ops
的哪个成员处理这个
在最新的MAC和GMAC嵌入式设备中,可以通过'PAUSE'参数启用全双工流控制。
设置双工模式
哪些函数处理程序传输卸载,如用于分组发送的传输分段卸载
TCP 分段卸载。
还有什么是结构中的ksettings操作
- 使用 ethtool -h 检查哪个命令负责相应的操作
- 查看 ethtool 源代码如何处理命令
- 在内核端签入net/ethtool/
一般提示:基本上没有网络驱动程序实现所有 ethtool 功能。
我正在阅读来自 Intel E1000E
和 Realtek r1869
驱动程序的驱动程序代码。我为两者都安装了设备,
目前正在学习ethtool_ops
。我知道 Ethtool 可以成为
Long story short, ethtool is a means to display and adjust generic NIC/driver parameters
(identification, the number of receive and transmit queues, receive and transmit offloads, you > name it) in a userspace application
但是如果你看一下结构 ethtool_ops
并不是所有的东西都是 crystal 清楚的
下面是一个 Ethtool 结构
static const struct ethtool_ops rtl8169_ethtool_ops = {
.supported_coalesce_params = ETHTOOL_COALESCE_USECS |
ETHTOOL_COALESCE_MAX_FRAMES,
.get_drvinfo = rtl8169_get_drvinfo,
.get_regs_len = rtl8169_get_regs_len,
.get_link = ethtool_op_get_link,
.get_coalesce = rtl_get_coalesce,
.set_coalesce = rtl_set_coalesce,
.get_regs = rtl8169_get_regs,
.get_wol = rtl8169_get_wol,
.set_wol = rtl8169_set_wol,
.get_strings = rtl8169_get_strings,
.get_sset_count = rtl8169_get_sset_count,
.get_ethtool_stats = rtl8169_get_ethtool_stats,
.get_ts_info = ethtool_op_get_ts_info,
.nway_reset = phy_ethtool_nway_reset,
.get_eee = rtl8169_get_eee,
.set_eee = rtl8169_set_eee,
.get_link_ksettings = phy_ethtool_get_link_ksettings,
.set_link_ksettings = phy_ethtool_set_link_ksettings,
};
我不明白的是此页面上的一些信息,例如显示正在执行的设置。但是,当您查看结构时, much 毫无意义 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/monitoring-and-tuning-the-rx-ring-buffer_configuring-and-managing-networking
https://linoxide.com/linux-how-to/ethtool-command-with-examples/
所以我想知道如果我必须使用 ethtool 用户空间应用程序执行以下操作怎么办。那么哪个ethtool_ops
函数处理这个
显示丢弃的数据包数量:为此,我在 RealTek 的 r8169 驱动程序中有
.get_ethtool_stats = rtl8169_get_ethtool_stats,
。如果我错误地认为此信息由内核堆栈管理,请纠正我。增加 RX 环形缓冲区以降低高丢包率。我不知道结构
ethtool_ops
的哪个成员处理这个在最新的MAC和GMAC嵌入式设备中,可以通过'PAUSE'参数启用全双工流控制。
设置双工模式
哪些函数处理程序传输卸载,如用于分组发送的传输分段卸载
TCP 分段卸载。
还有什么是结构中的ksettings操作
- 使用 ethtool -h 检查哪个命令负责相应的操作
- 查看 ethtool 源代码如何处理命令
- 在内核端签入net/ethtool/
一般提示:基本上没有网络驱动程序实现所有 ethtool 功能。