struct ethtool_ops详解
【get_settings】
【set_settings】
supported: SUPPORTED_10baseT_Half系列
advertising: ADVERTISED_10baseT_Half系列
speed: SPEED_10系列低16位
duplex: DUPLEX_HALF系列
port: PORT_TP系列
phy_address: PHY芯片的物理地址(0-31)
transceiver: XCVR_INTERNAL系列
autoneg: AUTONEG_DISABLE系列
mdio_support:ETH_MDIO_SUPPORTS_C22或者ETH_MDIO_SUPPORTS_C45
maxtxpkt:
maxrxpkt:
speed_hi:SPEED_10系列高16位,由于该值不是用位图来表示,所以可能超过16位
eth_tp_mdix: ETH_TP_MDI_INVALID系列
eth_tp_mdix_ctrl: ETH_TP_MDI_INVALID系列
lp_advertising:ADVERTISED_10baseT_Half系列,对端PHY芯片的能力
【get_drvinfo】
driver: 驱动的名字
version: 驱动的版本号
fw_version:有些复杂的EMAC有固件,此处提供其固件版本
bus_info: EMAC所挂载的总线信息,比如PCI,则提供pci_name(pci_dev)
其他成员现在已废弃
【get_regs_len】
返回寄存器空间的大小
【get_regs】
struct ethtool_regs中的version填写硬件的版本信息,dump的寄存器内容放在最后一个指针指向的内存空间
【get_wol】
【set_wol】
wolinfo->supported:WAKE_PHY系列,设备的wol能力
wolinfo->wolopts: WAKE_PHY系列,当前的wol设置
wolinfo->sopass: 唤醒密码,某些网卡提供此功能
【get_msglevel】
【set_msglevel】
获取和设置消息打印级别
【nway_reset】
重新进行PHY的自协商操作
【get_link】
获取PHY链路状态,一般直接调用ethtool_op_get_link()
【get_eeprom_len】
获取网卡固件大小
【get_eeprom】
根据struct ethtool_eeprom提供的参数从EEPROM中提取固件信息(包括读取位置offset以及读取长度len),同时返回EEPROM固件的幻术eeprom->magic;
【set_eeprom】
最后一个参数指针提供eeprom数据位置,struct ethtool_eeprom提供保存位置offset以及保存长度len,同时需要验证提供的eeprom->magic是否正确;
【get_coalesce】
【set_coalesce】
rx_coalesce_usecs: 一个包抵达后多久产生接收中断(以us为单位)
rx_max_coalesced_frames:产生接收中断前能接收到包的最大数量
rx_coalesce_usecs_irq:一个包抵达到接收中断服务程序处理完成之间的时间延时(以us为单位)?
rx_max_coalesced_frames_irq:中断服务程序处理过程中接收到包的最大数量?
tx_coalesce_usecs:包发送之后多久产生传输中断
tx_max_coalesced_frames:产生传输中断前所发送的数据包的最大数量
tx_coalesce_usecs_irq:
tx_max_coalesced_frames_irq:
stats_block_coalesce_usecs:内存中数据包统计区块刷新时间间隔
use_adaptive_rx_coalesce:允许自适应接收聚合
use_adaptive_tx_coalesce:允许自适应发送聚合
pkt_rate_low:数据包处理的低速门限(包数/秒)
rx_coalesce_usecs_low:当数据包处理速率低于低速门限时,一个数据包达到后多久才能产生接收中断
rx_max_coalesced_frames_low:当数据包处理速率低于低速门限时,产生接收中断前能接收到包的最大数量
tx_coalesce_usecs_low:当数据包处理速率低于低速门限时,包发送之后多久产生传输中断
tx_max_coalesced_frames_low:当数据包处理速率低于低速门限时,产生传输中断前所发送的数据包的最大数量
pkt_rate_high:数据包处理的高速门限(包数/秒)
rx_coalesce_usecs_high:当数据包处理速率高于高速门限时,一个数据包达到后多久才能产生接收中断
rx_max_coalesced_frames_high:当数据包处理速率高于高速门限时,产生接收中断前能接收到包的最大数量
tx_coalesce_usecs_high:当数据包处理速率高于高速门限时,包发送之后多久产生传输中断
tx_max_coalesced_frames_high:当数据包处理速率高于高速门限时,产生传输中断前所发送的数据包的最大数量
rate_sample_interval:聚合包速率采样间隔(以秒为单位)
【get_ringparam】
rx_max_pending:允许用户设置的接收缓存环实体的最大数量
rx_mini_max_pending:允许用户设置的接收缓存环实体的最小数量
rx_jumbo_max_pending:允许用户设置的用于jumbo帧接收的缓存环最大数量
tx_max_pending:允许用户设置的传输缓存环实体的最大数量
【set_ringparam】
rx_pending:实际用户设定值
rx_mini_pending:实际用户设定值
rx_jumbo_pending:实际用户设定值
tx_pending:实际用户设定值
注意当缓存环改变后,需要重新初始化网卡硬件和软件数据结构
【get_pauseparam】
epause->autoneg:当前网卡是否允许自协商
如果epause->autoneg非0,则epause->rx_pause和epause->tx_pause作为自协商的参数传递给对端;
如果epause->autoneg为0,则epause->rx_pause和epause->tx_pause强制硬件是否使用pause功能;
【set_pauseparam】
根据ethtool_pauseparam参数重新初始化网卡能力
【self_test】
根据ethtool_test->flag要求进行在线和或者离线自测试,包括读写内存、固件存储器、寄存去、PHY测试、回环测试等,测试结果标记到ethtool_test->flag中,返回的测试内容放到最后一个指针指向的内存空间;
参考enum ethtool_test_flags定义
【get_strings】
根据enum ethtool_stringset的要求返回描述符,只需关注ETH_SS_TEST和ETH_SS_STATS
【get_sset_count】
根据enum ethtool_stringset 的要求返回单元数量,对应于【get_strings】
【set_phys_id】
设置PHY芯片的指示方式
ETHTOOL_ID_ACTIVE:硬件需要自动指示链路状态LED
ETHTOOL_ID_ON:明确要求PHY点亮指示链路状态LED
ETHTOOL_ID_OFF:明确要求PHY熄灭指示链路状态LED
ETHTOOL_ID_INACTIVE:取消硬件自动指示链路状态LED功能
【get_ethtool_stats】
返回网卡的统计计数
【begin】
在所有其他ethtool操作之前先调用的函数
【complete】
在所有其他ethtool操作之后调用的函数
【get_priv_flags】
报告驱动特定的特征,是指dev_hw_feather?还没有驱动用到它
【set_priv_flags】
设置驱动特定的特征,还没有驱动用到它
【get_rxnfc】
【set_rxnfc】
struct ethtool_rxnfc成员说明:
cmd:ETHTOOL_GRXFH、ETHTOOL_SRXFH、ETHTOOL_GRXRINGS、ETHTOOL_GRXCLSRLCNT、ETHTOOL_GRXCLSRULE、ETHTOOL_GRXCLSRLALL、ETHTOOL_SRXCLSRLDEL、ETHTOOL_SRXCLSRLINS
flow_type:TCP_V4_FLOW系列
fs:网络流分类规则
rule_cnt:受影响的规则数量
rule_locs:用过的规则位置数组
data:命令相关的数据
ETHTOOL_GRXFH(得到接收流HASH配置信息)和ETHTOOL_SRXFH(设置接收流HASH配置信息)
设置阶段:data表示流hash字段掩码
ETHTOOL_GRXRINGS(得到可用的接收环或者队列数量)
返回阶段:data返回接收环或者接收队列的数量
ETHTOOL_GRXCLSRLCNT(得到接收分类规则数量)
返回阶段:rule_cnt返回定义规则的数量,data不为0时返回规则表的大小+RX_CLS_LOC_SPECIAL?
ETHTOOL_GRXCLSRULE(得到接收分类规则)
设置阶段:fs字段的location成员指示已存在规则的位置;
返回阶段:fs在返回时包含规则
ETHTOOL_GRXCLSRLALL(得到所有的接收分类规则)
设置阶段:rule_cnt为登记薄上的rule_locs指定用户缓冲区的阵列大小;
返回阶段:data返回规则表的大小,rule_cnt返回定义规则的数量,rule_locs返回定义规则的位置,驱动必须使用第二个传递参数来get_rxnfc() ,而不能用rule_locs
ETHTOOL_SRXCLSRLINS(插入接收分类规则)
设置阶段:fs指定要增加或者更新的规则,fs.location指定使用的位置或者一个特殊位置(RX_CLS_LOC_SPECIAL标记设置时);
返回阶段:fs.location返回实际规则的位置
RX_CLS_LOC_ANY:选择任何位置
RX_CLS_LOC_FIRST:选择第一个合适的位置(最大优先级)
RX_CLS_LOC_LAST:选择最后一个合适的位置(最小优先级)
其他标记暂未定义,驱动应返回-EINVAL
ETHTOOL_SRXCLSRLDEL(删除接收分类规则)
fs.location指定登记薄上已存在规则的位置
【flash_device】
写Flash映像到网卡设备的flash中,配合request_firmware函数拷贝映像数据到内核空间,再写到Flash中
【reset】
复位设备的部分功能
【get_rxfh_indir_size】
获取接收流HASH间接表的大小
【get_rxfh_indir】
获取接收流HASH间接表的内容
【set_rxfh_indir】
设置接收流HASH间接表的内容
关于rxfh_indir的功能,请参考《Introduction to Receive Side Scaling》
【get_channels】
【set_channels】
channel->max_rx:支持的最大接收队列数量
channel->max_tx:支持的最大发送队列数量
channel->rx_count:实际使用的接收队列数量
channel->tx_count:实际使用的发送队列数量
channel->max_other:支持的最大其他队列数量
channel->max_combined:支持的最大组合队列数量
channel->other_count:实际使用的其他队列数量
channel->combined_count:实际使用的组合队列数量
【get_dump_flag】
获取固件版本dump->version,dump标记dump->flag,dump长度dump->len
【get_dump_data】
获取dump数据
【set_dump】
设置dump私有标志
【get_ts_info】
获取时间戳、PTP硬件时钟能力
驱动不支持硬件传输时间戳功能时应调用ethtool_op_get_ts_info
info->so_timestamping设置为SOF_TIMESTAMPING_TX_HARDWARE系列
info->tx_types设置为enum hwtstamp_tx_types
info->rx_filters设置为enum hwtstamp_rx_filters
info->phc_index设置为ptp设备的索引号
【get_module_info】
返回被包含在插入光模块中的EEPROM的大小和类型
modinfo->type设置ETH_MODULE_SFF_8079系列
modinfo->eeprom_len设置为ETH_MODULE_SFF_8079_LEN系列
【get_module_eeprom】
获取插入光模块所带EEPROM内容,struct ethtool_eeprom指定检查的幻术、读取偏移、读取长度
【get_eee】
【set_eee】
eee:Energy-Efficient Ethernet
struct ethtool_eee字段分析:
supported:SUPPORTED_10baseT_Half系列
advertised:ADVERTISED_10baseT_Half系列
lp_advertised:ADVERTISED_10baseT_Half系列,对端的能力
eee_active:eee自协商结果
eee_enabled:是否启用eee模式
tx_lpi_enabled:是否允许向网卡设备周期性发送LPI信号以使其进入sleep模式
tx_lpi_timer:在发送LPI信号前的延时时间
————————————————
版权声明:本文为CSDN博主「43259260」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011955950/article/details/19030267
struct ethtool_ops详解相关推荐
- python标准类型内建模块_Python内建模块struct实例详解
本文研究的主要是Python内建模块struct的相关内容,具体如下. Python中变量的类型只有列表.元祖.字典.集合等高级抽象类型,并没有像c中定义了位.字节.整型等底层初级类型.因为Pytho ...
- struct sock详解
struct sock详解 结构体sock是套接口在网络层的表示,在代码include/net/sock.h 174行定义,下面是其内容: struct sock { stru ...
- 【C语言】结构体定义 typedef struct 用法详解和用法小结
结构体定义 typedef struct 用法详解和用法小结 文章目录 结构体定义 typedef struct 用法详解和用法小结 0. 前言 1. 首先:在C中定义一个结构体类型要用typedef ...
- c语言struct的作用和用法,c语言struct用法详解
c语言struct用法详解 在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种集合,它里面包 ...
- python struct.unpack和struct.pack详解
Python相关文档链接: https://docs.python.org/3/library/struct.html#format-characters 简介 struct模块用于将外部压缩的格式字 ...
- C语言struct关键字详解—结构体
struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用. 在网络协议.通信控制.嵌入式系统.驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合 ...
- C/C++语法知识:typedef struct 用法详解
第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...
- gethostbyname和struct hostent详解
struct hostent *gethostbyname(const char *name); gethostbyname函数根据域名解析出服务器的ip地址,它返回一个结构体struct hoste ...
- C语言struct用法详解
数组(Array),它是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为 ...
最新文章
- gc java root_一个两年Java程序员的面试总结
- Stream 与 byte[] 互转
- Javascript模板引擎handlebars使用实例及技巧
- Java应用程序的简单令牌认证
- 聆听无声的话语:手把手教你用ModelArts实现手语识别
- matlb:图像的几何矩,中心矩,Hu不变矩(含代码)
- quartz mysql 驱动_quartz mysql 集成
- android 开源 视频播放器,安卓视频播放器——ijkPlayer(Bilibili开源)
- c语言用二维数组学生姓名,C语言实验报告合集-_人人文库网
- Java实习日记(3)
- Unity内截屏实现
- C/C++编程学习 - 第22周 ② 非负数的和
- 主流移动开发平台介绍
- 方程组在原点附近解matlab,Matlab计算题:求解下列非线性方程组在原点附近的根: 9x^2 + 36y^2 + 4z^2 =36 X^2 -2y^2- 20z =0 16x –...
- web检查器要不要打开_简单粗暴,详细得不要不要的 JavaWeb快速入门
- 追加贷显示服务器出错,小蜜蜂财务软件常见问题汇总
- 计算机系统中软件的分类及各自的定义,计算机软件的定义和分类
- Python 爬取网页
- ZYNQ - 无DDR固化程序(代码运行在OCM上)
- 解析数字孪生城市的四大特点
热门文章
- 分析与设计:图书管理系统
- 【2019工研/模拟】九键输入法(巧用数组)
- [附源码]计算机毕业设计Python+uniapp基于Android的校园考勤APPo0400(程序+源码+LW+远程部署)
- 如何用matlab画烧杯,matlab 微分方程求解作图这个方程怎么解,还有图象怎么出来~dN1/dt=[r1*(1-N1/K1)-m*N2]*N...
- 登录页-登录成功后的路由守卫
- 瞬渺光电代理THZ光谱仪成功客户
- 简单又复杂的三层网络转发技术
- 利率风险结构和期限结构
- MySQL事务与锁详解,并发读异常与隔离策略
- 全球与中国冷气喷涂市场深度研究分析报告